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__
22 typedef interface ICreateDevEnum ICreateDevEnum;
23 #endif
24 
25 #ifndef __IPin_FWD_DEFINED__
26 #define __IPin_FWD_DEFINED__
27 typedef interface IPin IPin;
28 #endif
29 
30 #ifndef __IEnumPins_FWD_DEFINED__
31 #define __IEnumPins_FWD_DEFINED__
32 typedef interface IEnumPins IEnumPins;
33 #endif
34 
35 #ifndef __IEnumMediaTypes_FWD_DEFINED__
36 #define __IEnumMediaTypes_FWD_DEFINED__
37 typedef interface IEnumMediaTypes IEnumMediaTypes;
38 #endif
39 
40 #ifndef __IFilterGraph_FWD_DEFINED__
41 #define __IFilterGraph_FWD_DEFINED__
42 typedef interface IFilterGraph IFilterGraph;
43 #endif
44 
45 #ifndef __IEnumFilters_FWD_DEFINED__
46 #define __IEnumFilters_FWD_DEFINED__
47 typedef interface IEnumFilters IEnumFilters;
48 #endif
49 
50 #ifndef __IMediaFilter_FWD_DEFINED__
51 #define __IMediaFilter_FWD_DEFINED__
52 typedef interface IMediaFilter IMediaFilter;
53 #endif
54 
55 #ifndef __IBaseFilter_FWD_DEFINED__
56 #define __IBaseFilter_FWD_DEFINED__
57 typedef interface IBaseFilter IBaseFilter;
58 #endif
59 
60 #ifndef __IReferenceClock_FWD_DEFINED__
61 #define __IReferenceClock_FWD_DEFINED__
62 typedef interface IReferenceClock IReferenceClock;
63 #endif
64 
65 #ifndef __IReferenceClockTimerControl_FWD_DEFINED__
66 #define __IReferenceClockTimerControl_FWD_DEFINED__
67 typedef interface IReferenceClockTimerControl IReferenceClockTimerControl;
68 #endif
69 
70 #ifndef __IReferenceClock2_FWD_DEFINED__
71 #define __IReferenceClock2_FWD_DEFINED__
72 typedef interface IReferenceClock2 IReferenceClock2;
73 #endif
74 
75 #ifndef __IMediaSample_FWD_DEFINED__
76 #define __IMediaSample_FWD_DEFINED__
77 typedef interface IMediaSample IMediaSample;
78 #endif
79 
80 #ifndef __IMediaSample2_FWD_DEFINED__
81 #define __IMediaSample2_FWD_DEFINED__
82 typedef interface IMediaSample2 IMediaSample2;
83 #endif
84 
85 #ifndef __IMediaSample2Config_FWD_DEFINED__
86 #define __IMediaSample2Config_FWD_DEFINED__
87 typedef interface IMediaSample2Config IMediaSample2Config;
88 #endif
89 
90 #ifndef __IMemAllocator_FWD_DEFINED__
91 #define __IMemAllocator_FWD_DEFINED__
92 typedef interface IMemAllocator IMemAllocator;
93 #endif
94 
95 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
96 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
97 typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
98 #endif
99 
100 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
101 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
102 typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
103 #endif
104 
105 #ifndef __IMemInputPin_FWD_DEFINED__
106 #define __IMemInputPin_FWD_DEFINED__
107 typedef interface IMemInputPin IMemInputPin;
108 #endif
109 
110 #ifndef __IAMovieSetup_FWD_DEFINED__
111 #define __IAMovieSetup_FWD_DEFINED__
112 typedef interface IAMovieSetup IAMovieSetup;
113 #endif
114 
115 #ifndef __IMediaSeeking_FWD_DEFINED__
116 #define __IMediaSeeking_FWD_DEFINED__
117 typedef interface IMediaSeeking IMediaSeeking;
118 #endif
119 
120 #ifndef __IEnumRegFilters_FWD_DEFINED__
121 #define __IEnumRegFilters_FWD_DEFINED__
122 typedef interface IEnumRegFilters IEnumRegFilters;
123 #endif
124 
125 #ifndef __IFilterMapper_FWD_DEFINED__
126 #define __IFilterMapper_FWD_DEFINED__
127 typedef interface IFilterMapper IFilterMapper;
128 #endif
129 
130 #ifndef __IFilterMapper2_FWD_DEFINED__
131 #define __IFilterMapper2_FWD_DEFINED__
132 typedef interface IFilterMapper2 IFilterMapper2;
133 #endif
134 
135 #ifndef __IFilterMapper3_FWD_DEFINED__
136 #define __IFilterMapper3_FWD_DEFINED__
137 typedef interface IFilterMapper3 IFilterMapper3;
138 #endif
139 
140 #ifndef __IQualityControl_FWD_DEFINED__
141 #define __IQualityControl_FWD_DEFINED__
142 typedef interface IQualityControl IQualityControl;
143 #endif
144 
145 #ifndef __IOverlayNotify_FWD_DEFINED__
146 #define __IOverlayNotify_FWD_DEFINED__
147 typedef interface IOverlayNotify IOverlayNotify;
148 #endif
149 
150 #ifndef __IOverlayNotify2_FWD_DEFINED__
151 #define __IOverlayNotify2_FWD_DEFINED__
152 typedef interface IOverlayNotify2 IOverlayNotify2;
153 #endif
154 
155 #ifndef __IOverlay_FWD_DEFINED__
156 #define __IOverlay_FWD_DEFINED__
157 typedef interface IOverlay IOverlay;
158 #endif
159 
160 #ifndef __IMediaEventSink_FWD_DEFINED__
161 #define __IMediaEventSink_FWD_DEFINED__
162 typedef interface IMediaEventSink IMediaEventSink;
163 #endif
164 
165 #ifndef __IFileSourceFilter_FWD_DEFINED__
166 #define __IFileSourceFilter_FWD_DEFINED__
167 typedef interface IFileSourceFilter IFileSourceFilter;
168 #endif
169 
170 #ifndef __IFileSinkFilter_FWD_DEFINED__
171 #define __IFileSinkFilter_FWD_DEFINED__
172 typedef interface IFileSinkFilter IFileSinkFilter;
173 #endif
174 
175 #ifndef __IFileSinkFilter2_FWD_DEFINED__
176 #define __IFileSinkFilter2_FWD_DEFINED__
177 typedef interface IFileSinkFilter2 IFileSinkFilter2;
178 #endif
179 
180 #ifndef __IGraphBuilder_FWD_DEFINED__
181 #define __IGraphBuilder_FWD_DEFINED__
182 typedef interface IGraphBuilder IGraphBuilder;
183 #endif
184 
185 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
186 #define __ICaptureGraphBuilder_FWD_DEFINED__
187 typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
188 #endif
189 
190 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
191 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
192 typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
193 #endif
194 
195 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
196 #define __ICaptureGraphBuilder2_FWD_DEFINED__
197 typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
198 #endif
199 
200 #ifndef __IConfigAviMux_FWD_DEFINED__
201 #define __IConfigAviMux_FWD_DEFINED__
202 typedef interface IConfigAviMux IConfigAviMux;
203 #endif
204 
205 #ifndef __IConfigInterleaving_FWD_DEFINED__
206 #define __IConfigInterleaving_FWD_DEFINED__
207 typedef interface IConfigInterleaving IConfigInterleaving;
208 #endif
209 
210 #ifndef __IAMClockSlave_FWD_DEFINED__
211 #define __IAMClockSlave_FWD_DEFINED__
212 typedef interface IAMClockSlave IAMClockSlave;
213 #endif
214 
215 #ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
216 #define __IAMCertifiedOutputProtection_FWD_DEFINED__
217 typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
218 #endif
219 
220 #ifndef __IFilterGraph2_FWD_DEFINED__
221 #define __IFilterGraph2_FWD_DEFINED__
222 typedef interface IFilterGraph2 IFilterGraph2;
223 #endif
224 
225 #ifndef __IStreamBuilder_FWD_DEFINED__
226 #define __IStreamBuilder_FWD_DEFINED__
227 typedef interface IStreamBuilder IStreamBuilder;
228 #endif
229 
230 #ifndef __IAMStreamConfig_FWD_DEFINED__
231 #define __IAMStreamConfig_FWD_DEFINED__
232 typedef interface IAMStreamConfig IAMStreamConfig;
233 #endif
234 
235 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
236 #define __IAMVideoProcAmp_FWD_DEFINED__
237 typedef interface IAMVideoProcAmp IAMVideoProcAmp;
238 #endif
239 
240 #ifndef __IAsyncReader_FWD_DEFINED__
241 #define __IAsyncReader_FWD_DEFINED__
242 typedef interface IAsyncReader IAsyncReader;
243 #endif
244 
245 #ifndef __IGraphVersion_FWD_DEFINED__
246 #define __IGraphVersion_FWD_DEFINED__
247 typedef interface IGraphVersion IGraphVersion;
248 #endif
249 
250 #ifndef __IResourceConsumer_FWD_DEFINED__
251 #define __IResourceConsumer_FWD_DEFINED__
252 typedef interface IResourceConsumer IResourceConsumer;
253 #endif
254 
255 #ifndef __IResourceManager_FWD_DEFINED__
256 #define __IResourceManager_FWD_DEFINED__
257 typedef interface IResourceManager IResourceManager;
258 #endif
259 
260 #ifndef __IAMStreamControl_FWD_DEFINED__
261 #define __IAMStreamControl_FWD_DEFINED__
262 typedef interface IAMStreamControl IAMStreamControl;
263 #endif
264 
265 #ifndef __IKsPropertySet_FWD_DEFINED__
266 #define __IKsPropertySet_FWD_DEFINED__
267 typedef interface IKsPropertySet IKsPropertySet;
268 #endif
269 
270 #ifndef __IMediaPropertyBag_FWD_DEFINED__
271 #define __IMediaPropertyBag_FWD_DEFINED__
272 typedef interface IMediaPropertyBag IMediaPropertyBag;
273 #endif
274 
275 #ifndef __IPersistMediaPropertyBag_FWD_DEFINED__
276 #define __IPersistMediaPropertyBag_FWD_DEFINED__
277 typedef interface IPersistMediaPropertyBag IPersistMediaPropertyBag;
278 #endif
279 
280 #ifndef __ISeekingPassThru_FWD_DEFINED__
281 #define __ISeekingPassThru_FWD_DEFINED__
282 typedef interface ISeekingPassThru ISeekingPassThru;
283 #endif
284 
285 #ifndef __IAMFilterMiscFlags_FWD_DEFINED__
286 #define __IAMFilterMiscFlags_FWD_DEFINED__
287 typedef interface IAMFilterMiscFlags IAMFilterMiscFlags;
288 #endif
289 
290 #ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
291 #define __IAMGraphBuilderCallback_FWD_DEFINED__
292 typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
293 #endif
294 
295 #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
296 #define __IAMVfwCaptureDialogs_FWD_DEFINED__
297 typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
298 #endif
299 
300 #ifndef __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
301 #define __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
302 typedef interface IAMAsyncReaderTimestampScaling IAMAsyncReaderTimestampScaling;
303 #endif
304 
305 #ifndef __IAMPluginControl_FWD_DEFINED__
306 #define __IAMPluginControl_FWD_DEFINED__
307 typedef interface IAMPluginControl IAMPluginControl;
308 #endif
309 
310 /* Headers for imported files */
311 
312 #include <unknwn.h>
313 #include <objidl.h>
314 #include <oaidl.h>
315 
316 #ifdef __cplusplus
317 extern "C" {
318 #endif
319 
320 /**
321  * This file is part of the mingw-w64 runtime package.
322  * No warranty is given; refer to the file DISCLAIMER within this package.
323  */
324 
325 #include <winapifamily.h>
326 
327 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
328 
329 #define CDEF_CLASS_DEFAULT 0x1
330 #define CDEF_BYPASS_CLASS_MANAGER 0x2
331 #define CDEF_MERIT_ABOVE_DO_NOT_USE 0x8
332 #define CDEF_DEVMON_CMGR_DEVICE 0x10
333 #define CDEF_DEVMON_DMO 0x20
334 #define CDEF_DEVMON_PNP_DEVICE 0x40
335 #define CDEF_DEVMON_FILTER 0x80
336 
337 #define CDEF_DEVMON_SELECTIVE_MASK 0xf0
338 
339 
340 /*****************************************************************************
341  * ICreateDevEnum interface
342  */
343 #ifndef __ICreateDevEnum_INTERFACE_DEFINED__
344 #define __ICreateDevEnum_INTERFACE_DEFINED__
345 
346 DEFINE_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86);
347 #if defined(__cplusplus) && !defined(CINTERFACE)
348 MIDL_INTERFACE("29840822-5b84-11d0-bd3b-00a0c911ce86")
349 ICreateDevEnum : public IUnknown
350 {
351     virtual HRESULT STDMETHODCALLTYPE CreateClassEnumerator(
352         REFCLSID clsidDeviceClass,
353         IEnumMoniker **ppEnumMoniker,
354         DWORD dwFlags) = 0;
355 
356 };
357 #ifdef __CRT_UUID_DECL
358 __CRT_UUID_DECL(ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86)
359 #endif
360 #else
361 typedef struct ICreateDevEnumVtbl {
362     BEGIN_INTERFACE
363 
364     /*** IUnknown methods ***/
365     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
366         ICreateDevEnum* This,
367         REFIID riid,
368         void **ppvObject);
369 
370     ULONG (STDMETHODCALLTYPE *AddRef)(
371         ICreateDevEnum* This);
372 
373     ULONG (STDMETHODCALLTYPE *Release)(
374         ICreateDevEnum* This);
375 
376     /*** ICreateDevEnum methods ***/
377     HRESULT (STDMETHODCALLTYPE *CreateClassEnumerator)(
378         ICreateDevEnum* This,
379         REFCLSID clsidDeviceClass,
380         IEnumMoniker **ppEnumMoniker,
381         DWORD dwFlags);
382 
383     END_INTERFACE
384 } ICreateDevEnumVtbl;
385 interface ICreateDevEnum {
386     CONST_VTBL ICreateDevEnumVtbl* lpVtbl;
387 };
388 
389 #ifdef COBJMACROS
390 #ifndef WIDL_C_INLINE_WRAPPERS
391 /*** IUnknown methods ***/
392 #define ICreateDevEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
393 #define ICreateDevEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
394 #define ICreateDevEnum_Release(This) (This)->lpVtbl->Release(This)
395 /*** ICreateDevEnum methods ***/
396 #define ICreateDevEnum_CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags) (This)->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags)
397 #else
398 /*** IUnknown methods ***/
399 static FORCEINLINE HRESULT ICreateDevEnum_QueryInterface(ICreateDevEnum* This,REFIID riid,void **ppvObject) {
400     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
401 }
402 static FORCEINLINE ULONG ICreateDevEnum_AddRef(ICreateDevEnum* This) {
403     return This->lpVtbl->AddRef(This);
404 }
405 static FORCEINLINE ULONG ICreateDevEnum_Release(ICreateDevEnum* This) {
406     return This->lpVtbl->Release(This);
407 }
408 /*** ICreateDevEnum methods ***/
409 static FORCEINLINE HRESULT ICreateDevEnum_CreateClassEnumerator(ICreateDevEnum* This,REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags) {
410     return This->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags);
411 }
412 #endif
413 #endif
414 
415 #endif
416 
417 HRESULT STDMETHODCALLTYPE ICreateDevEnum_CreateClassEnumerator_Proxy(
418     ICreateDevEnum* This,
419     REFCLSID clsidDeviceClass,
420     IEnumMoniker **ppEnumMoniker,
421     DWORD dwFlags);
422 void __RPC_STUB ICreateDevEnum_CreateClassEnumerator_Stub(
423     IRpcStubBuffer* This,
424     IRpcChannelBuffer* pRpcChannelBuffer,
425     PRPC_MESSAGE pRpcMessage,
426     DWORD* pdwStubPhase);
427 
428 #endif  /* __ICreateDevEnum_INTERFACE_DEFINED__ */
429 
430 #endif
431 /**
432  * This file is part of the mingw-w64 runtime package.
433  * No warranty is given; refer to the file DISCLAIMER within this package.
434  */
435 
436 #include <winapifamily.h>
437 
438 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
439 
440 #define CHARS_IN_GUID 39
441 
442 #ifdef WINE_NO_UNICODE_MACROS
443 #undef GetTimeFormat
444 #endif
445 
446 typedef struct _AMMediaType {
447     GUID majortype;
448     GUID subtype;
449     WINBOOL bFixedSizeSamples;
450     WINBOOL bTemporalCompression;
451     ULONG lSampleSize;
452     GUID formattype;
453     IUnknown *pUnk;
454     ULONG cbFormat;
455     BYTE *pbFormat;
456 } AM_MEDIA_TYPE;
457 
458 typedef enum _PinDirection {
459     PINDIR_INPUT = 0,
460     PINDIR_OUTPUT = 1
461 } PIN_DIRECTION;
462 
463 #define MAX_PIN_NAME 128
464 #define MAX_FILTER_NAME 128
465 
466 #ifndef REFERENCE_TIME_DEFINED
467 #define REFERENCE_TIME_DEFINED
468 typedef LONGLONG REFERENCE_TIME;
469 #endif
470 
471 #ifndef REFTIME_DEFINED
472 #define REFTIME_DEFINED
473 typedef double REFTIME;
474 #endif
475 
476 typedef DWORD_PTR HSEMAPHORE;
477 typedef DWORD_PTR HEVENT;
478 
479 typedef struct _AllocatorProperties {
480     LONG cBuffers;
481     LONG cbBuffer;
482     LONG cbAlign;
483     LONG cbPrefix;
484 } ALLOCATOR_PROPERTIES;
485 
486 #ifndef __IAMovieSetup_FWD_DEFINED__
487 #define __IAMovieSetup_FWD_DEFINED__
488 typedef interface IAMovieSetup IAMovieSetup;
489 #endif
490 
491 #ifndef __IEnumFilters_FWD_DEFINED__
492 #define __IEnumFilters_FWD_DEFINED__
493 typedef interface IEnumFilters IEnumFilters;
494 #endif
495 
496 #ifndef __IEnumMediaTypes_FWD_DEFINED__
497 #define __IEnumMediaTypes_FWD_DEFINED__
498 typedef interface IEnumMediaTypes IEnumMediaTypes;
499 #endif
500 
501 #ifndef __IEnumPins_FWD_DEFINED__
502 #define __IEnumPins_FWD_DEFINED__
503 typedef interface IEnumPins IEnumPins;
504 #endif
505 
506 #ifndef __IBaseFilter_FWD_DEFINED__
507 #define __IBaseFilter_FWD_DEFINED__
508 typedef interface IBaseFilter IBaseFilter;
509 #endif
510 
511 #ifndef __IFilterGraph_FWD_DEFINED__
512 #define __IFilterGraph_FWD_DEFINED__
513 typedef interface IFilterGraph IFilterGraph;
514 #endif
515 
516 #ifndef __IMediaFilter_FWD_DEFINED__
517 #define __IMediaFilter_FWD_DEFINED__
518 typedef interface IMediaFilter IMediaFilter;
519 #endif
520 
521 #ifndef __IMediaSample_FWD_DEFINED__
522 #define __IMediaSample_FWD_DEFINED__
523 typedef interface IMediaSample IMediaSample;
524 #endif
525 
526 #ifndef __IMemAllocator_FWD_DEFINED__
527 #define __IMemAllocator_FWD_DEFINED__
528 typedef interface IMemAllocator IMemAllocator;
529 #endif
530 
531 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
532 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
533 typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
534 #endif
535 
536 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
537 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
538 typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
539 #endif
540 
541 #ifndef __IMemInputPin_FWD_DEFINED__
542 #define __IMemInputPin_FWD_DEFINED__
543 typedef interface IMemInputPin IMemInputPin;
544 #endif
545 
546 #ifndef __IPin_FWD_DEFINED__
547 #define __IPin_FWD_DEFINED__
548 typedef interface IPin IPin;
549 #endif
550 
551 #ifndef __IReferenceClock_FWD_DEFINED__
552 #define __IReferenceClock_FWD_DEFINED__
553 typedef interface IReferenceClock IReferenceClock;
554 #endif
555 
556 
557 /*****************************************************************************
558  * IPin interface
559  */
560 #ifndef __IPin_INTERFACE_DEFINED__
561 #define __IPin_INTERFACE_DEFINED__
562 
563 typedef struct _PinInfo {
564     IBaseFilter *pFilter;
565     PIN_DIRECTION dir;
566     WCHAR achName[128];
567 } PIN_INFO;
568 
569 DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
570 #if defined(__cplusplus) && !defined(CINTERFACE)
571 MIDL_INTERFACE("56a86891-0ad4-11ce-b03a-0020af0ba770")
572 IPin : public IUnknown
573 {
574     virtual HRESULT STDMETHODCALLTYPE Connect(
575         IPin *pReceivePin,
576         const AM_MEDIA_TYPE *pmt) = 0;
577 
578     virtual HRESULT STDMETHODCALLTYPE ReceiveConnection(
579         IPin *pConnector,
580         const AM_MEDIA_TYPE *pmt) = 0;
581 
582     virtual HRESULT STDMETHODCALLTYPE Disconnect(
583         ) = 0;
584 
585     virtual HRESULT STDMETHODCALLTYPE ConnectedTo(
586         IPin **pPin) = 0;
587 
588     virtual HRESULT STDMETHODCALLTYPE ConnectionMediaType(
589         AM_MEDIA_TYPE *pmt) = 0;
590 
591     virtual HRESULT STDMETHODCALLTYPE QueryPinInfo(
592         PIN_INFO *pInfo) = 0;
593 
594     virtual HRESULT STDMETHODCALLTYPE QueryDirection(
595         PIN_DIRECTION *pPinDir) = 0;
596 
597     virtual HRESULT STDMETHODCALLTYPE QueryId(
598         LPWSTR *Id) = 0;
599 
600     virtual HRESULT STDMETHODCALLTYPE QueryAccept(
601         const AM_MEDIA_TYPE *pmt) = 0;
602 
603     virtual HRESULT STDMETHODCALLTYPE EnumMediaTypes(
604         IEnumMediaTypes **ppEnum) = 0;
605 
606     virtual HRESULT STDMETHODCALLTYPE QueryInternalConnections(
607         IPin **apPin,
608         ULONG *nPin) = 0;
609 
610     virtual HRESULT STDMETHODCALLTYPE EndOfStream(
611         ) = 0;
612 
613     virtual HRESULT STDMETHODCALLTYPE BeginFlush(
614         ) = 0;
615 
616     virtual HRESULT STDMETHODCALLTYPE EndFlush(
617         ) = 0;
618 
619     virtual HRESULT STDMETHODCALLTYPE NewSegment(
620         REFERENCE_TIME tStart,
621         REFERENCE_TIME tStop,
622         double dRate) = 0;
623 
624 };
625 #ifdef __CRT_UUID_DECL
626 __CRT_UUID_DECL(IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
627 #endif
628 #else
629 typedef struct IPinVtbl {
630     BEGIN_INTERFACE
631 
632     /*** IUnknown methods ***/
633     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
634         IPin* This,
635         REFIID riid,
636         void **ppvObject);
637 
638     ULONG (STDMETHODCALLTYPE *AddRef)(
639         IPin* This);
640 
641     ULONG (STDMETHODCALLTYPE *Release)(
642         IPin* This);
643 
644     /*** IPin methods ***/
645     HRESULT (STDMETHODCALLTYPE *Connect)(
646         IPin* This,
647         IPin *pReceivePin,
648         const AM_MEDIA_TYPE *pmt);
649 
650     HRESULT (STDMETHODCALLTYPE *ReceiveConnection)(
651         IPin* This,
652         IPin *pConnector,
653         const AM_MEDIA_TYPE *pmt);
654 
655     HRESULT (STDMETHODCALLTYPE *Disconnect)(
656         IPin* This);
657 
658     HRESULT (STDMETHODCALLTYPE *ConnectedTo)(
659         IPin* This,
660         IPin **pPin);
661 
662     HRESULT (STDMETHODCALLTYPE *ConnectionMediaType)(
663         IPin* This,
664         AM_MEDIA_TYPE *pmt);
665 
666     HRESULT (STDMETHODCALLTYPE *QueryPinInfo)(
667         IPin* This,
668         PIN_INFO *pInfo);
669 
670     HRESULT (STDMETHODCALLTYPE *QueryDirection)(
671         IPin* This,
672         PIN_DIRECTION *pPinDir);
673 
674     HRESULT (STDMETHODCALLTYPE *QueryId)(
675         IPin* This,
676         LPWSTR *Id);
677 
678     HRESULT (STDMETHODCALLTYPE *QueryAccept)(
679         IPin* This,
680         const AM_MEDIA_TYPE *pmt);
681 
682     HRESULT (STDMETHODCALLTYPE *EnumMediaTypes)(
683         IPin* This,
684         IEnumMediaTypes **ppEnum);
685 
686     HRESULT (STDMETHODCALLTYPE *QueryInternalConnections)(
687         IPin* This,
688         IPin **apPin,
689         ULONG *nPin);
690 
691     HRESULT (STDMETHODCALLTYPE *EndOfStream)(
692         IPin* This);
693 
694     HRESULT (STDMETHODCALLTYPE *BeginFlush)(
695         IPin* This);
696 
697     HRESULT (STDMETHODCALLTYPE *EndFlush)(
698         IPin* This);
699 
700     HRESULT (STDMETHODCALLTYPE *NewSegment)(
701         IPin* This,
702         REFERENCE_TIME tStart,
703         REFERENCE_TIME tStop,
704         double dRate);
705 
706     END_INTERFACE
707 } IPinVtbl;
708 interface IPin {
709     CONST_VTBL IPinVtbl* lpVtbl;
710 };
711 
712 #ifdef COBJMACROS
713 #ifndef WIDL_C_INLINE_WRAPPERS
714 /*** IUnknown methods ***/
715 #define IPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
716 #define IPin_AddRef(This) (This)->lpVtbl->AddRef(This)
717 #define IPin_Release(This) (This)->lpVtbl->Release(This)
718 /*** IPin methods ***/
719 #define IPin_Connect(This,pReceivePin,pmt) (This)->lpVtbl->Connect(This,pReceivePin,pmt)
720 #define IPin_ReceiveConnection(This,pConnector,pmt) (This)->lpVtbl->ReceiveConnection(This,pConnector,pmt)
721 #define IPin_Disconnect(This) (This)->lpVtbl->Disconnect(This)
722 #define IPin_ConnectedTo(This,pPin) (This)->lpVtbl->ConnectedTo(This,pPin)
723 #define IPin_ConnectionMediaType(This,pmt) (This)->lpVtbl->ConnectionMediaType(This,pmt)
724 #define IPin_QueryPinInfo(This,pInfo) (This)->lpVtbl->QueryPinInfo(This,pInfo)
725 #define IPin_QueryDirection(This,pPinDir) (This)->lpVtbl->QueryDirection(This,pPinDir)
726 #define IPin_QueryId(This,Id) (This)->lpVtbl->QueryId(This,Id)
727 #define IPin_QueryAccept(This,pmt) (This)->lpVtbl->QueryAccept(This,pmt)
728 #define IPin_EnumMediaTypes(This,ppEnum) (This)->lpVtbl->EnumMediaTypes(This,ppEnum)
729 #define IPin_QueryInternalConnections(This,apPin,nPin) (This)->lpVtbl->QueryInternalConnections(This,apPin,nPin)
730 #define IPin_EndOfStream(This) (This)->lpVtbl->EndOfStream(This)
731 #define IPin_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
732 #define IPin_EndFlush(This) (This)->lpVtbl->EndFlush(This)
733 #define IPin_NewSegment(This,tStart,tStop,dRate) (This)->lpVtbl->NewSegment(This,tStart,tStop,dRate)
734 #else
735 /*** IUnknown methods ***/
736 static FORCEINLINE HRESULT IPin_QueryInterface(IPin* This,REFIID riid,void **ppvObject) {
737     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
738 }
739 static FORCEINLINE ULONG IPin_AddRef(IPin* This) {
740     return This->lpVtbl->AddRef(This);
741 }
742 static FORCEINLINE ULONG IPin_Release(IPin* This) {
743     return This->lpVtbl->Release(This);
744 }
745 /*** IPin methods ***/
746 static FORCEINLINE HRESULT IPin_Connect(IPin* This,IPin *pReceivePin,const AM_MEDIA_TYPE *pmt) {
747     return This->lpVtbl->Connect(This,pReceivePin,pmt);
748 }
749 static FORCEINLINE HRESULT IPin_ReceiveConnection(IPin* This,IPin *pConnector,const AM_MEDIA_TYPE *pmt) {
750     return This->lpVtbl->ReceiveConnection(This,pConnector,pmt);
751 }
752 static FORCEINLINE HRESULT IPin_Disconnect(IPin* This) {
753     return This->lpVtbl->Disconnect(This);
754 }
755 static FORCEINLINE HRESULT IPin_ConnectedTo(IPin* This,IPin **pPin) {
756     return This->lpVtbl->ConnectedTo(This,pPin);
757 }
758 static FORCEINLINE HRESULT IPin_ConnectionMediaType(IPin* This,AM_MEDIA_TYPE *pmt) {
759     return This->lpVtbl->ConnectionMediaType(This,pmt);
760 }
761 static FORCEINLINE HRESULT IPin_QueryPinInfo(IPin* This,PIN_INFO *pInfo) {
762     return This->lpVtbl->QueryPinInfo(This,pInfo);
763 }
764 static FORCEINLINE HRESULT IPin_QueryDirection(IPin* This,PIN_DIRECTION *pPinDir) {
765     return This->lpVtbl->QueryDirection(This,pPinDir);
766 }
767 static FORCEINLINE HRESULT IPin_QueryId(IPin* This,LPWSTR *Id) {
768     return This->lpVtbl->QueryId(This,Id);
769 }
770 static FORCEINLINE HRESULT IPin_QueryAccept(IPin* This,const AM_MEDIA_TYPE *pmt) {
771     return This->lpVtbl->QueryAccept(This,pmt);
772 }
773 static FORCEINLINE HRESULT IPin_EnumMediaTypes(IPin* This,IEnumMediaTypes **ppEnum) {
774     return This->lpVtbl->EnumMediaTypes(This,ppEnum);
775 }
776 static FORCEINLINE HRESULT IPin_QueryInternalConnections(IPin* This,IPin **apPin,ULONG *nPin) {
777     return This->lpVtbl->QueryInternalConnections(This,apPin,nPin);
778 }
779 static FORCEINLINE HRESULT IPin_EndOfStream(IPin* This) {
780     return This->lpVtbl->EndOfStream(This);
781 }
782 static FORCEINLINE HRESULT IPin_BeginFlush(IPin* This) {
783     return This->lpVtbl->BeginFlush(This);
784 }
785 static FORCEINLINE HRESULT IPin_EndFlush(IPin* This) {
786     return This->lpVtbl->EndFlush(This);
787 }
788 static FORCEINLINE HRESULT IPin_NewSegment(IPin* This,REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate) {
789     return This->lpVtbl->NewSegment(This,tStart,tStop,dRate);
790 }
791 #endif
792 #endif
793 
794 #endif
795 
796 HRESULT STDMETHODCALLTYPE IPin_Connect_Proxy(
797     IPin* This,
798     IPin *pReceivePin,
799     const AM_MEDIA_TYPE *pmt);
800 void __RPC_STUB IPin_Connect_Stub(
801     IRpcStubBuffer* This,
802     IRpcChannelBuffer* pRpcChannelBuffer,
803     PRPC_MESSAGE pRpcMessage,
804     DWORD* pdwStubPhase);
805 HRESULT STDMETHODCALLTYPE IPin_ReceiveConnection_Proxy(
806     IPin* This,
807     IPin *pConnector,
808     const AM_MEDIA_TYPE *pmt);
809 void __RPC_STUB IPin_ReceiveConnection_Stub(
810     IRpcStubBuffer* This,
811     IRpcChannelBuffer* pRpcChannelBuffer,
812     PRPC_MESSAGE pRpcMessage,
813     DWORD* pdwStubPhase);
814 HRESULT STDMETHODCALLTYPE IPin_Disconnect_Proxy(
815     IPin* This);
816 void __RPC_STUB IPin_Disconnect_Stub(
817     IRpcStubBuffer* This,
818     IRpcChannelBuffer* pRpcChannelBuffer,
819     PRPC_MESSAGE pRpcMessage,
820     DWORD* pdwStubPhase);
821 HRESULT STDMETHODCALLTYPE IPin_ConnectedTo_Proxy(
822     IPin* This,
823     IPin **pPin);
824 void __RPC_STUB IPin_ConnectedTo_Stub(
825     IRpcStubBuffer* This,
826     IRpcChannelBuffer* pRpcChannelBuffer,
827     PRPC_MESSAGE pRpcMessage,
828     DWORD* pdwStubPhase);
829 HRESULT STDMETHODCALLTYPE IPin_ConnectionMediaType_Proxy(
830     IPin* This,
831     AM_MEDIA_TYPE *pmt);
832 void __RPC_STUB IPin_ConnectionMediaType_Stub(
833     IRpcStubBuffer* This,
834     IRpcChannelBuffer* pRpcChannelBuffer,
835     PRPC_MESSAGE pRpcMessage,
836     DWORD* pdwStubPhase);
837 HRESULT STDMETHODCALLTYPE IPin_QueryPinInfo_Proxy(
838     IPin* This,
839     PIN_INFO *pInfo);
840 void __RPC_STUB IPin_QueryPinInfo_Stub(
841     IRpcStubBuffer* This,
842     IRpcChannelBuffer* pRpcChannelBuffer,
843     PRPC_MESSAGE pRpcMessage,
844     DWORD* pdwStubPhase);
845 HRESULT STDMETHODCALLTYPE IPin_QueryDirection_Proxy(
846     IPin* This,
847     PIN_DIRECTION *pPinDir);
848 void __RPC_STUB IPin_QueryDirection_Stub(
849     IRpcStubBuffer* This,
850     IRpcChannelBuffer* pRpcChannelBuffer,
851     PRPC_MESSAGE pRpcMessage,
852     DWORD* pdwStubPhase);
853 HRESULT STDMETHODCALLTYPE IPin_QueryId_Proxy(
854     IPin* This,
855     LPWSTR *Id);
856 void __RPC_STUB IPin_QueryId_Stub(
857     IRpcStubBuffer* This,
858     IRpcChannelBuffer* pRpcChannelBuffer,
859     PRPC_MESSAGE pRpcMessage,
860     DWORD* pdwStubPhase);
861 HRESULT STDMETHODCALLTYPE IPin_QueryAccept_Proxy(
862     IPin* This,
863     const AM_MEDIA_TYPE *pmt);
864 void __RPC_STUB IPin_QueryAccept_Stub(
865     IRpcStubBuffer* This,
866     IRpcChannelBuffer* pRpcChannelBuffer,
867     PRPC_MESSAGE pRpcMessage,
868     DWORD* pdwStubPhase);
869 HRESULT STDMETHODCALLTYPE IPin_EnumMediaTypes_Proxy(
870     IPin* This,
871     IEnumMediaTypes **ppEnum);
872 void __RPC_STUB IPin_EnumMediaTypes_Stub(
873     IRpcStubBuffer* This,
874     IRpcChannelBuffer* pRpcChannelBuffer,
875     PRPC_MESSAGE pRpcMessage,
876     DWORD* pdwStubPhase);
877 HRESULT STDMETHODCALLTYPE IPin_QueryInternalConnections_Proxy(
878     IPin* This,
879     IPin **apPin,
880     ULONG *nPin);
881 void __RPC_STUB IPin_QueryInternalConnections_Stub(
882     IRpcStubBuffer* This,
883     IRpcChannelBuffer* pRpcChannelBuffer,
884     PRPC_MESSAGE pRpcMessage,
885     DWORD* pdwStubPhase);
886 HRESULT STDMETHODCALLTYPE IPin_EndOfStream_Proxy(
887     IPin* This);
888 void __RPC_STUB IPin_EndOfStream_Stub(
889     IRpcStubBuffer* This,
890     IRpcChannelBuffer* pRpcChannelBuffer,
891     PRPC_MESSAGE pRpcMessage,
892     DWORD* pdwStubPhase);
893 HRESULT STDMETHODCALLTYPE IPin_BeginFlush_Proxy(
894     IPin* This);
895 void __RPC_STUB IPin_BeginFlush_Stub(
896     IRpcStubBuffer* This,
897     IRpcChannelBuffer* pRpcChannelBuffer,
898     PRPC_MESSAGE pRpcMessage,
899     DWORD* pdwStubPhase);
900 HRESULT STDMETHODCALLTYPE IPin_EndFlush_Proxy(
901     IPin* This);
902 void __RPC_STUB IPin_EndFlush_Stub(
903     IRpcStubBuffer* This,
904     IRpcChannelBuffer* pRpcChannelBuffer,
905     PRPC_MESSAGE pRpcMessage,
906     DWORD* pdwStubPhase);
907 HRESULT STDMETHODCALLTYPE IPin_NewSegment_Proxy(
908     IPin* This,
909     REFERENCE_TIME tStart,
910     REFERENCE_TIME tStop,
911     double dRate);
912 void __RPC_STUB IPin_NewSegment_Stub(
913     IRpcStubBuffer* This,
914     IRpcChannelBuffer* pRpcChannelBuffer,
915     PRPC_MESSAGE pRpcMessage,
916     DWORD* pdwStubPhase);
917 
918 #endif  /* __IPin_INTERFACE_DEFINED__ */
919 
920 typedef IPin *PPIN;
921 
922 /*****************************************************************************
923  * IEnumPins interface
924  */
925 #ifndef __IEnumPins_INTERFACE_DEFINED__
926 #define __IEnumPins_INTERFACE_DEFINED__
927 
928 DEFINE_GUID(IID_IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
929 #if defined(__cplusplus) && !defined(CINTERFACE)
930 MIDL_INTERFACE("56a86892-0ad4-11ce-b03a-0020af0ba770")
931 IEnumPins : public IUnknown
932 {
933     virtual HRESULT STDMETHODCALLTYPE Next(
934         ULONG cPins,
935         IPin **ppPins,
936         ULONG *pcFetched) = 0;
937 
938     virtual HRESULT STDMETHODCALLTYPE Skip(
939         ULONG cPins) = 0;
940 
941     virtual HRESULT STDMETHODCALLTYPE Reset(
942         ) = 0;
943 
944     virtual HRESULT STDMETHODCALLTYPE Clone(
945         IEnumPins **ppEnum) = 0;
946 
947 };
948 #ifdef __CRT_UUID_DECL
949 __CRT_UUID_DECL(IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
950 #endif
951 #else
952 typedef struct IEnumPinsVtbl {
953     BEGIN_INTERFACE
954 
955     /*** IUnknown methods ***/
956     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
957         IEnumPins* This,
958         REFIID riid,
959         void **ppvObject);
960 
961     ULONG (STDMETHODCALLTYPE *AddRef)(
962         IEnumPins* This);
963 
964     ULONG (STDMETHODCALLTYPE *Release)(
965         IEnumPins* This);
966 
967     /*** IEnumPins methods ***/
968     HRESULT (STDMETHODCALLTYPE *Next)(
969         IEnumPins* This,
970         ULONG cPins,
971         IPin **ppPins,
972         ULONG *pcFetched);
973 
974     HRESULT (STDMETHODCALLTYPE *Skip)(
975         IEnumPins* This,
976         ULONG cPins);
977 
978     HRESULT (STDMETHODCALLTYPE *Reset)(
979         IEnumPins* This);
980 
981     HRESULT (STDMETHODCALLTYPE *Clone)(
982         IEnumPins* This,
983         IEnumPins **ppEnum);
984 
985     END_INTERFACE
986 } IEnumPinsVtbl;
987 interface IEnumPins {
988     CONST_VTBL IEnumPinsVtbl* lpVtbl;
989 };
990 
991 #ifdef COBJMACROS
992 #ifndef WIDL_C_INLINE_WRAPPERS
993 /*** IUnknown methods ***/
994 #define IEnumPins_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
995 #define IEnumPins_AddRef(This) (This)->lpVtbl->AddRef(This)
996 #define IEnumPins_Release(This) (This)->lpVtbl->Release(This)
997 /*** IEnumPins methods ***/
998 #define IEnumPins_Next(This,cPins,ppPins,pcFetched) (This)->lpVtbl->Next(This,cPins,ppPins,pcFetched)
999 #define IEnumPins_Skip(This,cPins) (This)->lpVtbl->Skip(This,cPins)
1000 #define IEnumPins_Reset(This) (This)->lpVtbl->Reset(This)
1001 #define IEnumPins_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
1002 #else
1003 /*** IUnknown methods ***/
1004 static FORCEINLINE HRESULT IEnumPins_QueryInterface(IEnumPins* This,REFIID riid,void **ppvObject) {
1005     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1006 }
1007 static FORCEINLINE ULONG IEnumPins_AddRef(IEnumPins* This) {
1008     return This->lpVtbl->AddRef(This);
1009 }
1010 static FORCEINLINE ULONG IEnumPins_Release(IEnumPins* This) {
1011     return This->lpVtbl->Release(This);
1012 }
1013 /*** IEnumPins methods ***/
1014 static FORCEINLINE HRESULT IEnumPins_Next(IEnumPins* This,ULONG cPins,IPin **ppPins,ULONG *pcFetched) {
1015     return This->lpVtbl->Next(This,cPins,ppPins,pcFetched);
1016 }
1017 static FORCEINLINE HRESULT IEnumPins_Skip(IEnumPins* This,ULONG cPins) {
1018     return This->lpVtbl->Skip(This,cPins);
1019 }
1020 static FORCEINLINE HRESULT IEnumPins_Reset(IEnumPins* This) {
1021     return This->lpVtbl->Reset(This);
1022 }
1023 static FORCEINLINE HRESULT IEnumPins_Clone(IEnumPins* This,IEnumPins **ppEnum) {
1024     return This->lpVtbl->Clone(This,ppEnum);
1025 }
1026 #endif
1027 #endif
1028 
1029 #endif
1030 
1031 HRESULT STDMETHODCALLTYPE IEnumPins_Next_Proxy(
1032     IEnumPins* This,
1033     ULONG cPins,
1034     IPin **ppPins,
1035     ULONG *pcFetched);
1036 void __RPC_STUB IEnumPins_Next_Stub(
1037     IRpcStubBuffer* This,
1038     IRpcChannelBuffer* pRpcChannelBuffer,
1039     PRPC_MESSAGE pRpcMessage,
1040     DWORD* pdwStubPhase);
1041 HRESULT STDMETHODCALLTYPE IEnumPins_Skip_Proxy(
1042     IEnumPins* This,
1043     ULONG cPins);
1044 void __RPC_STUB IEnumPins_Skip_Stub(
1045     IRpcStubBuffer* This,
1046     IRpcChannelBuffer* pRpcChannelBuffer,
1047     PRPC_MESSAGE pRpcMessage,
1048     DWORD* pdwStubPhase);
1049 HRESULT STDMETHODCALLTYPE IEnumPins_Reset_Proxy(
1050     IEnumPins* This);
1051 void __RPC_STUB IEnumPins_Reset_Stub(
1052     IRpcStubBuffer* This,
1053     IRpcChannelBuffer* pRpcChannelBuffer,
1054     PRPC_MESSAGE pRpcMessage,
1055     DWORD* pdwStubPhase);
1056 HRESULT STDMETHODCALLTYPE IEnumPins_Clone_Proxy(
1057     IEnumPins* This,
1058     IEnumPins **ppEnum);
1059 void __RPC_STUB IEnumPins_Clone_Stub(
1060     IRpcStubBuffer* This,
1061     IRpcChannelBuffer* pRpcChannelBuffer,
1062     PRPC_MESSAGE pRpcMessage,
1063     DWORD* pdwStubPhase);
1064 
1065 #endif  /* __IEnumPins_INTERFACE_DEFINED__ */
1066 
1067 typedef IEnumPins *PENUMPINS;
1068 
1069 /*****************************************************************************
1070  * IEnumMediaTypes interface
1071  */
1072 #ifndef __IEnumMediaTypes_INTERFACE_DEFINED__
1073 #define __IEnumMediaTypes_INTERFACE_DEFINED__
1074 
1075 DEFINE_GUID(IID_IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a);
1076 #if defined(__cplusplus) && !defined(CINTERFACE)
1077 MIDL_INTERFACE("89c31040-846b-11ce-97d3-00aa0055595a")
1078 IEnumMediaTypes : public IUnknown
1079 {
1080     virtual HRESULT STDMETHODCALLTYPE Next(
1081         ULONG cMediaTypes,
1082         AM_MEDIA_TYPE **ppMediaTypes,
1083         ULONG *pcFetched) = 0;
1084 
1085     virtual HRESULT STDMETHODCALLTYPE Skip(
1086         ULONG cMediaTypes) = 0;
1087 
1088     virtual HRESULT STDMETHODCALLTYPE Reset(
1089         ) = 0;
1090 
1091     virtual HRESULT STDMETHODCALLTYPE Clone(
1092         IEnumMediaTypes **ppEnum) = 0;
1093 
1094 };
1095 #ifdef __CRT_UUID_DECL
1096 __CRT_UUID_DECL(IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a)
1097 #endif
1098 #else
1099 typedef struct IEnumMediaTypesVtbl {
1100     BEGIN_INTERFACE
1101 
1102     /*** IUnknown methods ***/
1103     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1104         IEnumMediaTypes* This,
1105         REFIID riid,
1106         void **ppvObject);
1107 
1108     ULONG (STDMETHODCALLTYPE *AddRef)(
1109         IEnumMediaTypes* This);
1110 
1111     ULONG (STDMETHODCALLTYPE *Release)(
1112         IEnumMediaTypes* This);
1113 
1114     /*** IEnumMediaTypes methods ***/
1115     HRESULT (STDMETHODCALLTYPE *Next)(
1116         IEnumMediaTypes* This,
1117         ULONG cMediaTypes,
1118         AM_MEDIA_TYPE **ppMediaTypes,
1119         ULONG *pcFetched);
1120 
1121     HRESULT (STDMETHODCALLTYPE *Skip)(
1122         IEnumMediaTypes* This,
1123         ULONG cMediaTypes);
1124 
1125     HRESULT (STDMETHODCALLTYPE *Reset)(
1126         IEnumMediaTypes* This);
1127 
1128     HRESULT (STDMETHODCALLTYPE *Clone)(
1129         IEnumMediaTypes* This,
1130         IEnumMediaTypes **ppEnum);
1131 
1132     END_INTERFACE
1133 } IEnumMediaTypesVtbl;
1134 interface IEnumMediaTypes {
1135     CONST_VTBL IEnumMediaTypesVtbl* lpVtbl;
1136 };
1137 
1138 #ifdef COBJMACROS
1139 #ifndef WIDL_C_INLINE_WRAPPERS
1140 /*** IUnknown methods ***/
1141 #define IEnumMediaTypes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1142 #define IEnumMediaTypes_AddRef(This) (This)->lpVtbl->AddRef(This)
1143 #define IEnumMediaTypes_Release(This) (This)->lpVtbl->Release(This)
1144 /*** IEnumMediaTypes methods ***/
1145 #define IEnumMediaTypes_Next(This,cMediaTypes,ppMediaTypes,pcFetched) (This)->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched)
1146 #define IEnumMediaTypes_Skip(This,cMediaTypes) (This)->lpVtbl->Skip(This,cMediaTypes)
1147 #define IEnumMediaTypes_Reset(This) (This)->lpVtbl->Reset(This)
1148 #define IEnumMediaTypes_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
1149 #else
1150 /*** IUnknown methods ***/
1151 static FORCEINLINE HRESULT IEnumMediaTypes_QueryInterface(IEnumMediaTypes* This,REFIID riid,void **ppvObject) {
1152     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1153 }
1154 static FORCEINLINE ULONG IEnumMediaTypes_AddRef(IEnumMediaTypes* This) {
1155     return This->lpVtbl->AddRef(This);
1156 }
1157 static FORCEINLINE ULONG IEnumMediaTypes_Release(IEnumMediaTypes* This) {
1158     return This->lpVtbl->Release(This);
1159 }
1160 /*** IEnumMediaTypes methods ***/
1161 static FORCEINLINE HRESULT IEnumMediaTypes_Next(IEnumMediaTypes* This,ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched) {
1162     return This->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched);
1163 }
1164 static FORCEINLINE HRESULT IEnumMediaTypes_Skip(IEnumMediaTypes* This,ULONG cMediaTypes) {
1165     return This->lpVtbl->Skip(This,cMediaTypes);
1166 }
1167 static FORCEINLINE HRESULT IEnumMediaTypes_Reset(IEnumMediaTypes* This) {
1168     return This->lpVtbl->Reset(This);
1169 }
1170 static FORCEINLINE HRESULT IEnumMediaTypes_Clone(IEnumMediaTypes* This,IEnumMediaTypes **ppEnum) {
1171     return This->lpVtbl->Clone(This,ppEnum);
1172 }
1173 #endif
1174 #endif
1175 
1176 #endif
1177 
1178 HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Next_Proxy(
1179     IEnumMediaTypes* This,
1180     ULONG cMediaTypes,
1181     AM_MEDIA_TYPE **ppMediaTypes,
1182     ULONG *pcFetched);
1183 void __RPC_STUB IEnumMediaTypes_Next_Stub(
1184     IRpcStubBuffer* This,
1185     IRpcChannelBuffer* pRpcChannelBuffer,
1186     PRPC_MESSAGE pRpcMessage,
1187     DWORD* pdwStubPhase);
1188 HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Skip_Proxy(
1189     IEnumMediaTypes* This,
1190     ULONG cMediaTypes);
1191 void __RPC_STUB IEnumMediaTypes_Skip_Stub(
1192     IRpcStubBuffer* This,
1193     IRpcChannelBuffer* pRpcChannelBuffer,
1194     PRPC_MESSAGE pRpcMessage,
1195     DWORD* pdwStubPhase);
1196 HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Reset_Proxy(
1197     IEnumMediaTypes* This);
1198 void __RPC_STUB IEnumMediaTypes_Reset_Stub(
1199     IRpcStubBuffer* This,
1200     IRpcChannelBuffer* pRpcChannelBuffer,
1201     PRPC_MESSAGE pRpcMessage,
1202     DWORD* pdwStubPhase);
1203 HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Clone_Proxy(
1204     IEnumMediaTypes* This,
1205     IEnumMediaTypes **ppEnum);
1206 void __RPC_STUB IEnumMediaTypes_Clone_Stub(
1207     IRpcStubBuffer* This,
1208     IRpcChannelBuffer* pRpcChannelBuffer,
1209     PRPC_MESSAGE pRpcMessage,
1210     DWORD* pdwStubPhase);
1211 
1212 #endif  /* __IEnumMediaTypes_INTERFACE_DEFINED__ */
1213 
1214 typedef IEnumMediaTypes *PENUMMEDIATYPES;
1215 
1216 /*****************************************************************************
1217  * IFilterGraph interface
1218  */
1219 #ifndef __IFilterGraph_INTERFACE_DEFINED__
1220 #define __IFilterGraph_INTERFACE_DEFINED__
1221 
1222 DEFINE_GUID(IID_IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1223 #if defined(__cplusplus) && !defined(CINTERFACE)
1224 MIDL_INTERFACE("56a8689f-0ad4-11ce-b03a-0020af0ba770")
1225 IFilterGraph : public IUnknown
1226 {
1227     virtual HRESULT STDMETHODCALLTYPE AddFilter(
1228         IBaseFilter *pFilter,
1229         LPCWSTR pName) = 0;
1230 
1231     virtual HRESULT STDMETHODCALLTYPE RemoveFilter(
1232         IBaseFilter *pFilter) = 0;
1233 
1234     virtual HRESULT STDMETHODCALLTYPE EnumFilters(
1235         IEnumFilters **ppEnum) = 0;
1236 
1237     virtual HRESULT STDMETHODCALLTYPE FindFilterByName(
1238         LPCWSTR pName,
1239         IBaseFilter **ppFilter) = 0;
1240 
1241     virtual HRESULT STDMETHODCALLTYPE ConnectDirect(
1242         IPin *ppinOut,
1243         IPin *ppinIn,
1244         const AM_MEDIA_TYPE *pmt) = 0;
1245 
1246     virtual HRESULT STDMETHODCALLTYPE Reconnect(
1247         IPin *ppin) = 0;
1248 
1249     virtual HRESULT STDMETHODCALLTYPE Disconnect(
1250         IPin *ppin) = 0;
1251 
1252     virtual HRESULT STDMETHODCALLTYPE SetDefaultSyncSource(
1253         ) = 0;
1254 
1255 };
1256 #ifdef __CRT_UUID_DECL
1257 __CRT_UUID_DECL(IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1258 #endif
1259 #else
1260 typedef struct IFilterGraphVtbl {
1261     BEGIN_INTERFACE
1262 
1263     /*** IUnknown methods ***/
1264     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1265         IFilterGraph* This,
1266         REFIID riid,
1267         void **ppvObject);
1268 
1269     ULONG (STDMETHODCALLTYPE *AddRef)(
1270         IFilterGraph* This);
1271 
1272     ULONG (STDMETHODCALLTYPE *Release)(
1273         IFilterGraph* This);
1274 
1275     /*** IFilterGraph methods ***/
1276     HRESULT (STDMETHODCALLTYPE *AddFilter)(
1277         IFilterGraph* This,
1278         IBaseFilter *pFilter,
1279         LPCWSTR pName);
1280 
1281     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
1282         IFilterGraph* This,
1283         IBaseFilter *pFilter);
1284 
1285     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
1286         IFilterGraph* This,
1287         IEnumFilters **ppEnum);
1288 
1289     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
1290         IFilterGraph* This,
1291         LPCWSTR pName,
1292         IBaseFilter **ppFilter);
1293 
1294     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
1295         IFilterGraph* This,
1296         IPin *ppinOut,
1297         IPin *ppinIn,
1298         const AM_MEDIA_TYPE *pmt);
1299 
1300     HRESULT (STDMETHODCALLTYPE *Reconnect)(
1301         IFilterGraph* This,
1302         IPin *ppin);
1303 
1304     HRESULT (STDMETHODCALLTYPE *Disconnect)(
1305         IFilterGraph* This,
1306         IPin *ppin);
1307 
1308     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
1309         IFilterGraph* This);
1310 
1311     END_INTERFACE
1312 } IFilterGraphVtbl;
1313 interface IFilterGraph {
1314     CONST_VTBL IFilterGraphVtbl* lpVtbl;
1315 };
1316 
1317 #ifdef COBJMACROS
1318 #ifndef WIDL_C_INLINE_WRAPPERS
1319 /*** IUnknown methods ***/
1320 #define IFilterGraph_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1321 #define IFilterGraph_AddRef(This) (This)->lpVtbl->AddRef(This)
1322 #define IFilterGraph_Release(This) (This)->lpVtbl->Release(This)
1323 /*** IFilterGraph methods ***/
1324 #define IFilterGraph_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
1325 #define IFilterGraph_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
1326 #define IFilterGraph_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
1327 #define IFilterGraph_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
1328 #define IFilterGraph_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
1329 #define IFilterGraph_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
1330 #define IFilterGraph_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
1331 #define IFilterGraph_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
1332 #else
1333 /*** IUnknown methods ***/
1334 static FORCEINLINE HRESULT IFilterGraph_QueryInterface(IFilterGraph* This,REFIID riid,void **ppvObject) {
1335     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1336 }
1337 static FORCEINLINE ULONG IFilterGraph_AddRef(IFilterGraph* This) {
1338     return This->lpVtbl->AddRef(This);
1339 }
1340 static FORCEINLINE ULONG IFilterGraph_Release(IFilterGraph* This) {
1341     return This->lpVtbl->Release(This);
1342 }
1343 /*** IFilterGraph methods ***/
1344 static FORCEINLINE HRESULT IFilterGraph_AddFilter(IFilterGraph* This,IBaseFilter *pFilter,LPCWSTR pName) {
1345     return This->lpVtbl->AddFilter(This,pFilter,pName);
1346 }
1347 static FORCEINLINE HRESULT IFilterGraph_RemoveFilter(IFilterGraph* This,IBaseFilter *pFilter) {
1348     return This->lpVtbl->RemoveFilter(This,pFilter);
1349 }
1350 static FORCEINLINE HRESULT IFilterGraph_EnumFilters(IFilterGraph* This,IEnumFilters **ppEnum) {
1351     return This->lpVtbl->EnumFilters(This,ppEnum);
1352 }
1353 static FORCEINLINE HRESULT IFilterGraph_FindFilterByName(IFilterGraph* This,LPCWSTR pName,IBaseFilter **ppFilter) {
1354     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
1355 }
1356 static FORCEINLINE HRESULT IFilterGraph_ConnectDirect(IFilterGraph* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
1357     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
1358 }
1359 static FORCEINLINE HRESULT IFilterGraph_Reconnect(IFilterGraph* This,IPin *ppin) {
1360     return This->lpVtbl->Reconnect(This,ppin);
1361 }
1362 static FORCEINLINE HRESULT IFilterGraph_Disconnect(IFilterGraph* This,IPin *ppin) {
1363     return This->lpVtbl->Disconnect(This,ppin);
1364 }
1365 static FORCEINLINE HRESULT IFilterGraph_SetDefaultSyncSource(IFilterGraph* This) {
1366     return This->lpVtbl->SetDefaultSyncSource(This);
1367 }
1368 #endif
1369 #endif
1370 
1371 #endif
1372 
1373 HRESULT STDMETHODCALLTYPE IFilterGraph_AddFilter_Proxy(
1374     IFilterGraph* This,
1375     IBaseFilter *pFilter,
1376     LPCWSTR pName);
1377 void __RPC_STUB IFilterGraph_AddFilter_Stub(
1378     IRpcStubBuffer* This,
1379     IRpcChannelBuffer* pRpcChannelBuffer,
1380     PRPC_MESSAGE pRpcMessage,
1381     DWORD* pdwStubPhase);
1382 HRESULT STDMETHODCALLTYPE IFilterGraph_RemoveFilter_Proxy(
1383     IFilterGraph* This,
1384     IBaseFilter *pFilter);
1385 void __RPC_STUB IFilterGraph_RemoveFilter_Stub(
1386     IRpcStubBuffer* This,
1387     IRpcChannelBuffer* pRpcChannelBuffer,
1388     PRPC_MESSAGE pRpcMessage,
1389     DWORD* pdwStubPhase);
1390 HRESULT STDMETHODCALLTYPE IFilterGraph_EnumFilters_Proxy(
1391     IFilterGraph* This,
1392     IEnumFilters **ppEnum);
1393 void __RPC_STUB IFilterGraph_EnumFilters_Stub(
1394     IRpcStubBuffer* This,
1395     IRpcChannelBuffer* pRpcChannelBuffer,
1396     PRPC_MESSAGE pRpcMessage,
1397     DWORD* pdwStubPhase);
1398 HRESULT STDMETHODCALLTYPE IFilterGraph_FindFilterByName_Proxy(
1399     IFilterGraph* This,
1400     LPCWSTR pName,
1401     IBaseFilter **ppFilter);
1402 void __RPC_STUB IFilterGraph_FindFilterByName_Stub(
1403     IRpcStubBuffer* This,
1404     IRpcChannelBuffer* pRpcChannelBuffer,
1405     PRPC_MESSAGE pRpcMessage,
1406     DWORD* pdwStubPhase);
1407 HRESULT STDMETHODCALLTYPE IFilterGraph_ConnectDirect_Proxy(
1408     IFilterGraph* This,
1409     IPin *ppinOut,
1410     IPin *ppinIn,
1411     const AM_MEDIA_TYPE *pmt);
1412 void __RPC_STUB IFilterGraph_ConnectDirect_Stub(
1413     IRpcStubBuffer* This,
1414     IRpcChannelBuffer* pRpcChannelBuffer,
1415     PRPC_MESSAGE pRpcMessage,
1416     DWORD* pdwStubPhase);
1417 HRESULT STDMETHODCALLTYPE IFilterGraph_Reconnect_Proxy(
1418     IFilterGraph* This,
1419     IPin *ppin);
1420 void __RPC_STUB IFilterGraph_Reconnect_Stub(
1421     IRpcStubBuffer* This,
1422     IRpcChannelBuffer* pRpcChannelBuffer,
1423     PRPC_MESSAGE pRpcMessage,
1424     DWORD* pdwStubPhase);
1425 HRESULT STDMETHODCALLTYPE IFilterGraph_Disconnect_Proxy(
1426     IFilterGraph* This,
1427     IPin *ppin);
1428 void __RPC_STUB IFilterGraph_Disconnect_Stub(
1429     IRpcStubBuffer* This,
1430     IRpcChannelBuffer* pRpcChannelBuffer,
1431     PRPC_MESSAGE pRpcMessage,
1432     DWORD* pdwStubPhase);
1433 HRESULT STDMETHODCALLTYPE IFilterGraph_SetDefaultSyncSource_Proxy(
1434     IFilterGraph* This);
1435 void __RPC_STUB IFilterGraph_SetDefaultSyncSource_Stub(
1436     IRpcStubBuffer* This,
1437     IRpcChannelBuffer* pRpcChannelBuffer,
1438     PRPC_MESSAGE pRpcMessage,
1439     DWORD* pdwStubPhase);
1440 
1441 #endif  /* __IFilterGraph_INTERFACE_DEFINED__ */
1442 
1443 typedef IFilterGraph *PFILTERGRAPH;
1444 
1445 /*****************************************************************************
1446  * IEnumFilters interface
1447  */
1448 #ifndef __IEnumFilters_INTERFACE_DEFINED__
1449 #define __IEnumFilters_INTERFACE_DEFINED__
1450 
1451 DEFINE_GUID(IID_IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1452 #if defined(__cplusplus) && !defined(CINTERFACE)
1453 MIDL_INTERFACE("56a86893-0ad4-11ce-b03a-0020af0ba770")
1454 IEnumFilters : public IUnknown
1455 {
1456     virtual HRESULT STDMETHODCALLTYPE Next(
1457         ULONG cFilters,
1458         IBaseFilter **ppFilter,
1459         ULONG *pcFetched) = 0;
1460 
1461     virtual HRESULT STDMETHODCALLTYPE Skip(
1462         ULONG cFilters) = 0;
1463 
1464     virtual HRESULT STDMETHODCALLTYPE Reset(
1465         ) = 0;
1466 
1467     virtual HRESULT STDMETHODCALLTYPE Clone(
1468         IEnumFilters **ppEnum) = 0;
1469 
1470 };
1471 #ifdef __CRT_UUID_DECL
1472 __CRT_UUID_DECL(IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1473 #endif
1474 #else
1475 typedef struct IEnumFiltersVtbl {
1476     BEGIN_INTERFACE
1477 
1478     /*** IUnknown methods ***/
1479     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1480         IEnumFilters* This,
1481         REFIID riid,
1482         void **ppvObject);
1483 
1484     ULONG (STDMETHODCALLTYPE *AddRef)(
1485         IEnumFilters* This);
1486 
1487     ULONG (STDMETHODCALLTYPE *Release)(
1488         IEnumFilters* This);
1489 
1490     /*** IEnumFilters methods ***/
1491     HRESULT (STDMETHODCALLTYPE *Next)(
1492         IEnumFilters* This,
1493         ULONG cFilters,
1494         IBaseFilter **ppFilter,
1495         ULONG *pcFetched);
1496 
1497     HRESULT (STDMETHODCALLTYPE *Skip)(
1498         IEnumFilters* This,
1499         ULONG cFilters);
1500 
1501     HRESULT (STDMETHODCALLTYPE *Reset)(
1502         IEnumFilters* This);
1503 
1504     HRESULT (STDMETHODCALLTYPE *Clone)(
1505         IEnumFilters* This,
1506         IEnumFilters **ppEnum);
1507 
1508     END_INTERFACE
1509 } IEnumFiltersVtbl;
1510 interface IEnumFilters {
1511     CONST_VTBL IEnumFiltersVtbl* lpVtbl;
1512 };
1513 
1514 #ifdef COBJMACROS
1515 #ifndef WIDL_C_INLINE_WRAPPERS
1516 /*** IUnknown methods ***/
1517 #define IEnumFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1518 #define IEnumFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
1519 #define IEnumFilters_Release(This) (This)->lpVtbl->Release(This)
1520 /*** IEnumFilters methods ***/
1521 #define IEnumFilters_Next(This,cFilters,ppFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,ppFilter,pcFetched)
1522 #define IEnumFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
1523 #define IEnumFilters_Reset(This) (This)->lpVtbl->Reset(This)
1524 #define IEnumFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
1525 #else
1526 /*** IUnknown methods ***/
1527 static FORCEINLINE HRESULT IEnumFilters_QueryInterface(IEnumFilters* This,REFIID riid,void **ppvObject) {
1528     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1529 }
1530 static FORCEINLINE ULONG IEnumFilters_AddRef(IEnumFilters* This) {
1531     return This->lpVtbl->AddRef(This);
1532 }
1533 static FORCEINLINE ULONG IEnumFilters_Release(IEnumFilters* This) {
1534     return This->lpVtbl->Release(This);
1535 }
1536 /*** IEnumFilters methods ***/
1537 static FORCEINLINE HRESULT IEnumFilters_Next(IEnumFilters* This,ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched) {
1538     return This->lpVtbl->Next(This,cFilters,ppFilter,pcFetched);
1539 }
1540 static FORCEINLINE HRESULT IEnumFilters_Skip(IEnumFilters* This,ULONG cFilters) {
1541     return This->lpVtbl->Skip(This,cFilters);
1542 }
1543 static FORCEINLINE HRESULT IEnumFilters_Reset(IEnumFilters* This) {
1544     return This->lpVtbl->Reset(This);
1545 }
1546 static FORCEINLINE HRESULT IEnumFilters_Clone(IEnumFilters* This,IEnumFilters **ppEnum) {
1547     return This->lpVtbl->Clone(This,ppEnum);
1548 }
1549 #endif
1550 #endif
1551 
1552 #endif
1553 
1554 HRESULT STDMETHODCALLTYPE IEnumFilters_Next_Proxy(
1555     IEnumFilters* This,
1556     ULONG cFilters,
1557     IBaseFilter **ppFilter,
1558     ULONG *pcFetched);
1559 void __RPC_STUB IEnumFilters_Next_Stub(
1560     IRpcStubBuffer* This,
1561     IRpcChannelBuffer* pRpcChannelBuffer,
1562     PRPC_MESSAGE pRpcMessage,
1563     DWORD* pdwStubPhase);
1564 HRESULT STDMETHODCALLTYPE IEnumFilters_Skip_Proxy(
1565     IEnumFilters* This,
1566     ULONG cFilters);
1567 void __RPC_STUB IEnumFilters_Skip_Stub(
1568     IRpcStubBuffer* This,
1569     IRpcChannelBuffer* pRpcChannelBuffer,
1570     PRPC_MESSAGE pRpcMessage,
1571     DWORD* pdwStubPhase);
1572 HRESULT STDMETHODCALLTYPE IEnumFilters_Reset_Proxy(
1573     IEnumFilters* This);
1574 void __RPC_STUB IEnumFilters_Reset_Stub(
1575     IRpcStubBuffer* This,
1576     IRpcChannelBuffer* pRpcChannelBuffer,
1577     PRPC_MESSAGE pRpcMessage,
1578     DWORD* pdwStubPhase);
1579 HRESULT STDMETHODCALLTYPE IEnumFilters_Clone_Proxy(
1580     IEnumFilters* This,
1581     IEnumFilters **ppEnum);
1582 void __RPC_STUB IEnumFilters_Clone_Stub(
1583     IRpcStubBuffer* This,
1584     IRpcChannelBuffer* pRpcChannelBuffer,
1585     PRPC_MESSAGE pRpcMessage,
1586     DWORD* pdwStubPhase);
1587 
1588 #endif  /* __IEnumFilters_INTERFACE_DEFINED__ */
1589 
1590 typedef IEnumFilters *PENUMFILTERS;
1591 
1592 /*****************************************************************************
1593  * IMediaFilter interface
1594  */
1595 #ifndef __IMediaFilter_INTERFACE_DEFINED__
1596 #define __IMediaFilter_INTERFACE_DEFINED__
1597 
1598 typedef enum _FilterState {
1599     State_Stopped = 0,
1600     State_Paused = 1,
1601     State_Running = 2
1602 } FILTER_STATE;
1603 
1604 DEFINE_GUID(IID_IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1605 #if defined(__cplusplus) && !defined(CINTERFACE)
1606 MIDL_INTERFACE("56a86899-0ad4-11ce-b03a-0020af0ba770")
1607 IMediaFilter : public IPersist
1608 {
1609     virtual HRESULT STDMETHODCALLTYPE Stop(
1610         ) = 0;
1611 
1612     virtual HRESULT STDMETHODCALLTYPE Pause(
1613         ) = 0;
1614 
1615     virtual HRESULT STDMETHODCALLTYPE Run(
1616         REFERENCE_TIME tStart) = 0;
1617 
1618     virtual HRESULT STDMETHODCALLTYPE GetState(
1619         DWORD dwMilliSecsTimeout,
1620         FILTER_STATE *State) = 0;
1621 
1622     virtual HRESULT STDMETHODCALLTYPE SetSyncSource(
1623         IReferenceClock *pClock) = 0;
1624 
1625     virtual HRESULT STDMETHODCALLTYPE GetSyncSource(
1626         IReferenceClock **pClock) = 0;
1627 
1628 };
1629 #ifdef __CRT_UUID_DECL
1630 __CRT_UUID_DECL(IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1631 #endif
1632 #else
1633 typedef struct IMediaFilterVtbl {
1634     BEGIN_INTERFACE
1635 
1636     /*** IUnknown methods ***/
1637     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1638         IMediaFilter* This,
1639         REFIID riid,
1640         void **ppvObject);
1641 
1642     ULONG (STDMETHODCALLTYPE *AddRef)(
1643         IMediaFilter* This);
1644 
1645     ULONG (STDMETHODCALLTYPE *Release)(
1646         IMediaFilter* This);
1647 
1648     /*** IPersist methods ***/
1649     HRESULT (STDMETHODCALLTYPE *GetClassID)(
1650         IMediaFilter* This,
1651         CLSID *pClassID);
1652 
1653     /*** IMediaFilter methods ***/
1654     HRESULT (STDMETHODCALLTYPE *Stop)(
1655         IMediaFilter* This);
1656 
1657     HRESULT (STDMETHODCALLTYPE *Pause)(
1658         IMediaFilter* This);
1659 
1660     HRESULT (STDMETHODCALLTYPE *Run)(
1661         IMediaFilter* This,
1662         REFERENCE_TIME tStart);
1663 
1664     HRESULT (STDMETHODCALLTYPE *GetState)(
1665         IMediaFilter* This,
1666         DWORD dwMilliSecsTimeout,
1667         FILTER_STATE *State);
1668 
1669     HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
1670         IMediaFilter* This,
1671         IReferenceClock *pClock);
1672 
1673     HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
1674         IMediaFilter* This,
1675         IReferenceClock **pClock);
1676 
1677     END_INTERFACE
1678 } IMediaFilterVtbl;
1679 interface IMediaFilter {
1680     CONST_VTBL IMediaFilterVtbl* lpVtbl;
1681 };
1682 
1683 #ifdef COBJMACROS
1684 #ifndef WIDL_C_INLINE_WRAPPERS
1685 /*** IUnknown methods ***/
1686 #define IMediaFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1687 #define IMediaFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
1688 #define IMediaFilter_Release(This) (This)->lpVtbl->Release(This)
1689 /*** IPersist methods ***/
1690 #define IMediaFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
1691 /*** IMediaFilter methods ***/
1692 #define IMediaFilter_Stop(This) (This)->lpVtbl->Stop(This)
1693 #define IMediaFilter_Pause(This) (This)->lpVtbl->Pause(This)
1694 #define IMediaFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
1695 #define IMediaFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
1696 #define IMediaFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
1697 #define IMediaFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
1698 #else
1699 /*** IUnknown methods ***/
1700 static FORCEINLINE HRESULT IMediaFilter_QueryInterface(IMediaFilter* This,REFIID riid,void **ppvObject) {
1701     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1702 }
1703 static FORCEINLINE ULONG IMediaFilter_AddRef(IMediaFilter* This) {
1704     return This->lpVtbl->AddRef(This);
1705 }
1706 static FORCEINLINE ULONG IMediaFilter_Release(IMediaFilter* This) {
1707     return This->lpVtbl->Release(This);
1708 }
1709 /*** IPersist methods ***/
1710 static FORCEINLINE HRESULT IMediaFilter_GetClassID(IMediaFilter* This,CLSID *pClassID) {
1711     return This->lpVtbl->GetClassID(This,pClassID);
1712 }
1713 /*** IMediaFilter methods ***/
1714 static FORCEINLINE HRESULT IMediaFilter_Stop(IMediaFilter* This) {
1715     return This->lpVtbl->Stop(This);
1716 }
1717 static FORCEINLINE HRESULT IMediaFilter_Pause(IMediaFilter* This) {
1718     return This->lpVtbl->Pause(This);
1719 }
1720 static FORCEINLINE HRESULT IMediaFilter_Run(IMediaFilter* This,REFERENCE_TIME tStart) {
1721     return This->lpVtbl->Run(This,tStart);
1722 }
1723 static FORCEINLINE HRESULT IMediaFilter_GetState(IMediaFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
1724     return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
1725 }
1726 static FORCEINLINE HRESULT IMediaFilter_SetSyncSource(IMediaFilter* This,IReferenceClock *pClock) {
1727     return This->lpVtbl->SetSyncSource(This,pClock);
1728 }
1729 static FORCEINLINE HRESULT IMediaFilter_GetSyncSource(IMediaFilter* This,IReferenceClock **pClock) {
1730     return This->lpVtbl->GetSyncSource(This,pClock);
1731 }
1732 #endif
1733 #endif
1734 
1735 #endif
1736 
1737 HRESULT STDMETHODCALLTYPE IMediaFilter_Stop_Proxy(
1738     IMediaFilter* This);
1739 void __RPC_STUB IMediaFilter_Stop_Stub(
1740     IRpcStubBuffer* This,
1741     IRpcChannelBuffer* pRpcChannelBuffer,
1742     PRPC_MESSAGE pRpcMessage,
1743     DWORD* pdwStubPhase);
1744 HRESULT STDMETHODCALLTYPE IMediaFilter_Pause_Proxy(
1745     IMediaFilter* This);
1746 void __RPC_STUB IMediaFilter_Pause_Stub(
1747     IRpcStubBuffer* This,
1748     IRpcChannelBuffer* pRpcChannelBuffer,
1749     PRPC_MESSAGE pRpcMessage,
1750     DWORD* pdwStubPhase);
1751 HRESULT STDMETHODCALLTYPE IMediaFilter_Run_Proxy(
1752     IMediaFilter* This,
1753     REFERENCE_TIME tStart);
1754 void __RPC_STUB IMediaFilter_Run_Stub(
1755     IRpcStubBuffer* This,
1756     IRpcChannelBuffer* pRpcChannelBuffer,
1757     PRPC_MESSAGE pRpcMessage,
1758     DWORD* pdwStubPhase);
1759 HRESULT STDMETHODCALLTYPE IMediaFilter_GetState_Proxy(
1760     IMediaFilter* This,
1761     DWORD dwMilliSecsTimeout,
1762     FILTER_STATE *State);
1763 void __RPC_STUB IMediaFilter_GetState_Stub(
1764     IRpcStubBuffer* This,
1765     IRpcChannelBuffer* pRpcChannelBuffer,
1766     PRPC_MESSAGE pRpcMessage,
1767     DWORD* pdwStubPhase);
1768 HRESULT STDMETHODCALLTYPE IMediaFilter_SetSyncSource_Proxy(
1769     IMediaFilter* This,
1770     IReferenceClock *pClock);
1771 void __RPC_STUB IMediaFilter_SetSyncSource_Stub(
1772     IRpcStubBuffer* This,
1773     IRpcChannelBuffer* pRpcChannelBuffer,
1774     PRPC_MESSAGE pRpcMessage,
1775     DWORD* pdwStubPhase);
1776 HRESULT STDMETHODCALLTYPE IMediaFilter_GetSyncSource_Proxy(
1777     IMediaFilter* This,
1778     IReferenceClock **pClock);
1779 void __RPC_STUB IMediaFilter_GetSyncSource_Stub(
1780     IRpcStubBuffer* This,
1781     IRpcChannelBuffer* pRpcChannelBuffer,
1782     PRPC_MESSAGE pRpcMessage,
1783     DWORD* pdwStubPhase);
1784 
1785 #endif  /* __IMediaFilter_INTERFACE_DEFINED__ */
1786 
1787 typedef IMediaFilter *PMEDIAFILTER;
1788 
1789 /*****************************************************************************
1790  * IBaseFilter interface
1791  */
1792 #ifndef __IBaseFilter_INTERFACE_DEFINED__
1793 #define __IBaseFilter_INTERFACE_DEFINED__
1794 
1795 typedef struct _FilterInfo {
1796     WCHAR achName[128];
1797     IFilterGraph *pGraph;
1798 } FILTER_INFO;
1799 
1800 DEFINE_GUID(IID_IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1801 #if defined(__cplusplus) && !defined(CINTERFACE)
1802 MIDL_INTERFACE("56a86895-0ad4-11ce-b03a-0020af0ba770")
1803 IBaseFilter : public IMediaFilter
1804 {
1805     virtual HRESULT STDMETHODCALLTYPE EnumPins(
1806         IEnumPins **ppEnum) = 0;
1807 
1808     virtual HRESULT STDMETHODCALLTYPE FindPin(
1809         LPCWSTR Id,
1810         IPin **ppPin) = 0;
1811 
1812     virtual HRESULT STDMETHODCALLTYPE QueryFilterInfo(
1813         FILTER_INFO *pInfo) = 0;
1814 
1815     virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph(
1816         IFilterGraph *pGraph,
1817         LPCWSTR pName) = 0;
1818 
1819     virtual HRESULT STDMETHODCALLTYPE QueryVendorInfo(
1820         LPWSTR *pVendorInfo) = 0;
1821 
1822 };
1823 #ifdef __CRT_UUID_DECL
1824 __CRT_UUID_DECL(IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1825 #endif
1826 #else
1827 typedef struct IBaseFilterVtbl {
1828     BEGIN_INTERFACE
1829 
1830     /*** IUnknown methods ***/
1831     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1832         IBaseFilter* This,
1833         REFIID riid,
1834         void **ppvObject);
1835 
1836     ULONG (STDMETHODCALLTYPE *AddRef)(
1837         IBaseFilter* This);
1838 
1839     ULONG (STDMETHODCALLTYPE *Release)(
1840         IBaseFilter* This);
1841 
1842     /*** IPersist methods ***/
1843     HRESULT (STDMETHODCALLTYPE *GetClassID)(
1844         IBaseFilter* This,
1845         CLSID *pClassID);
1846 
1847     /*** IMediaFilter methods ***/
1848     HRESULT (STDMETHODCALLTYPE *Stop)(
1849         IBaseFilter* This);
1850 
1851     HRESULT (STDMETHODCALLTYPE *Pause)(
1852         IBaseFilter* This);
1853 
1854     HRESULT (STDMETHODCALLTYPE *Run)(
1855         IBaseFilter* This,
1856         REFERENCE_TIME tStart);
1857 
1858     HRESULT (STDMETHODCALLTYPE *GetState)(
1859         IBaseFilter* This,
1860         DWORD dwMilliSecsTimeout,
1861         FILTER_STATE *State);
1862 
1863     HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
1864         IBaseFilter* This,
1865         IReferenceClock *pClock);
1866 
1867     HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
1868         IBaseFilter* This,
1869         IReferenceClock **pClock);
1870 
1871     /*** IBaseFilter methods ***/
1872     HRESULT (STDMETHODCALLTYPE *EnumPins)(
1873         IBaseFilter* This,
1874         IEnumPins **ppEnum);
1875 
1876     HRESULT (STDMETHODCALLTYPE *FindPin)(
1877         IBaseFilter* This,
1878         LPCWSTR Id,
1879         IPin **ppPin);
1880 
1881     HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)(
1882         IBaseFilter* This,
1883         FILTER_INFO *pInfo);
1884 
1885     HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
1886         IBaseFilter* This,
1887         IFilterGraph *pGraph,
1888         LPCWSTR pName);
1889 
1890     HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)(
1891         IBaseFilter* This,
1892         LPWSTR *pVendorInfo);
1893 
1894     END_INTERFACE
1895 } IBaseFilterVtbl;
1896 interface IBaseFilter {
1897     CONST_VTBL IBaseFilterVtbl* lpVtbl;
1898 };
1899 
1900 #ifdef COBJMACROS
1901 #ifndef WIDL_C_INLINE_WRAPPERS
1902 /*** IUnknown methods ***/
1903 #define IBaseFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1904 #define IBaseFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
1905 #define IBaseFilter_Release(This) (This)->lpVtbl->Release(This)
1906 /*** IPersist methods ***/
1907 #define IBaseFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
1908 /*** IMediaFilter methods ***/
1909 #define IBaseFilter_Stop(This) (This)->lpVtbl->Stop(This)
1910 #define IBaseFilter_Pause(This) (This)->lpVtbl->Pause(This)
1911 #define IBaseFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
1912 #define IBaseFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
1913 #define IBaseFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
1914 #define IBaseFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
1915 /*** IBaseFilter methods ***/
1916 #define IBaseFilter_EnumPins(This,ppEnum) (This)->lpVtbl->EnumPins(This,ppEnum)
1917 #define IBaseFilter_FindPin(This,Id,ppPin) (This)->lpVtbl->FindPin(This,Id,ppPin)
1918 #define IBaseFilter_QueryFilterInfo(This,pInfo) (This)->lpVtbl->QueryFilterInfo(This,pInfo)
1919 #define IBaseFilter_JoinFilterGraph(This,pGraph,pName) (This)->lpVtbl->JoinFilterGraph(This,pGraph,pName)
1920 #define IBaseFilter_QueryVendorInfo(This,pVendorInfo) (This)->lpVtbl->QueryVendorInfo(This,pVendorInfo)
1921 #else
1922 /*** IUnknown methods ***/
1923 static FORCEINLINE HRESULT IBaseFilter_QueryInterface(IBaseFilter* This,REFIID riid,void **ppvObject) {
1924     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1925 }
1926 static FORCEINLINE ULONG IBaseFilter_AddRef(IBaseFilter* This) {
1927     return This->lpVtbl->AddRef(This);
1928 }
1929 static FORCEINLINE ULONG IBaseFilter_Release(IBaseFilter* This) {
1930     return This->lpVtbl->Release(This);
1931 }
1932 /*** IPersist methods ***/
1933 static FORCEINLINE HRESULT IBaseFilter_GetClassID(IBaseFilter* This,CLSID *pClassID) {
1934     return This->lpVtbl->GetClassID(This,pClassID);
1935 }
1936 /*** IMediaFilter methods ***/
1937 static FORCEINLINE HRESULT IBaseFilter_Stop(IBaseFilter* This) {
1938     return This->lpVtbl->Stop(This);
1939 }
1940 static FORCEINLINE HRESULT IBaseFilter_Pause(IBaseFilter* This) {
1941     return This->lpVtbl->Pause(This);
1942 }
1943 static FORCEINLINE HRESULT IBaseFilter_Run(IBaseFilter* This,REFERENCE_TIME tStart) {
1944     return This->lpVtbl->Run(This,tStart);
1945 }
1946 static FORCEINLINE HRESULT IBaseFilter_GetState(IBaseFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
1947     return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
1948 }
1949 static FORCEINLINE HRESULT IBaseFilter_SetSyncSource(IBaseFilter* This,IReferenceClock *pClock) {
1950     return This->lpVtbl->SetSyncSource(This,pClock);
1951 }
1952 static FORCEINLINE HRESULT IBaseFilter_GetSyncSource(IBaseFilter* This,IReferenceClock **pClock) {
1953     return This->lpVtbl->GetSyncSource(This,pClock);
1954 }
1955 /*** IBaseFilter methods ***/
1956 static FORCEINLINE HRESULT IBaseFilter_EnumPins(IBaseFilter* This,IEnumPins **ppEnum) {
1957     return This->lpVtbl->EnumPins(This,ppEnum);
1958 }
1959 static FORCEINLINE HRESULT IBaseFilter_FindPin(IBaseFilter* This,LPCWSTR Id,IPin **ppPin) {
1960     return This->lpVtbl->FindPin(This,Id,ppPin);
1961 }
1962 static FORCEINLINE HRESULT IBaseFilter_QueryFilterInfo(IBaseFilter* This,FILTER_INFO *pInfo) {
1963     return This->lpVtbl->QueryFilterInfo(This,pInfo);
1964 }
1965 static FORCEINLINE HRESULT IBaseFilter_JoinFilterGraph(IBaseFilter* This,IFilterGraph *pGraph,LPCWSTR pName) {
1966     return This->lpVtbl->JoinFilterGraph(This,pGraph,pName);
1967 }
1968 static FORCEINLINE HRESULT IBaseFilter_QueryVendorInfo(IBaseFilter* This,LPWSTR *pVendorInfo) {
1969     return This->lpVtbl->QueryVendorInfo(This,pVendorInfo);
1970 }
1971 #endif
1972 #endif
1973 
1974 #endif
1975 
1976 HRESULT STDMETHODCALLTYPE IBaseFilter_EnumPins_Proxy(
1977     IBaseFilter* This,
1978     IEnumPins **ppEnum);
1979 void __RPC_STUB IBaseFilter_EnumPins_Stub(
1980     IRpcStubBuffer* This,
1981     IRpcChannelBuffer* pRpcChannelBuffer,
1982     PRPC_MESSAGE pRpcMessage,
1983     DWORD* pdwStubPhase);
1984 HRESULT STDMETHODCALLTYPE IBaseFilter_FindPin_Proxy(
1985     IBaseFilter* This,
1986     LPCWSTR Id,
1987     IPin **ppPin);
1988 void __RPC_STUB IBaseFilter_FindPin_Stub(
1989     IRpcStubBuffer* This,
1990     IRpcChannelBuffer* pRpcChannelBuffer,
1991     PRPC_MESSAGE pRpcMessage,
1992     DWORD* pdwStubPhase);
1993 HRESULT STDMETHODCALLTYPE IBaseFilter_QueryFilterInfo_Proxy(
1994     IBaseFilter* This,
1995     FILTER_INFO *pInfo);
1996 void __RPC_STUB IBaseFilter_QueryFilterInfo_Stub(
1997     IRpcStubBuffer* This,
1998     IRpcChannelBuffer* pRpcChannelBuffer,
1999     PRPC_MESSAGE pRpcMessage,
2000     DWORD* pdwStubPhase);
2001 HRESULT STDMETHODCALLTYPE IBaseFilter_JoinFilterGraph_Proxy(
2002     IBaseFilter* This,
2003     IFilterGraph *pGraph,
2004     LPCWSTR pName);
2005 void __RPC_STUB IBaseFilter_JoinFilterGraph_Stub(
2006     IRpcStubBuffer* This,
2007     IRpcChannelBuffer* pRpcChannelBuffer,
2008     PRPC_MESSAGE pRpcMessage,
2009     DWORD* pdwStubPhase);
2010 HRESULT STDMETHODCALLTYPE IBaseFilter_QueryVendorInfo_Proxy(
2011     IBaseFilter* This,
2012     LPWSTR *pVendorInfo);
2013 void __RPC_STUB IBaseFilter_QueryVendorInfo_Stub(
2014     IRpcStubBuffer* This,
2015     IRpcChannelBuffer* pRpcChannelBuffer,
2016     PRPC_MESSAGE pRpcMessage,
2017     DWORD* pdwStubPhase);
2018 
2019 #endif  /* __IBaseFilter_INTERFACE_DEFINED__ */
2020 
2021 typedef IBaseFilter *PFILTER;
2022 
2023 /*****************************************************************************
2024  * IReferenceClock interface
2025  */
2026 #ifndef __IReferenceClock_INTERFACE_DEFINED__
2027 #define __IReferenceClock_INTERFACE_DEFINED__
2028 
2029 DEFINE_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
2030 #if defined(__cplusplus) && !defined(CINTERFACE)
2031 MIDL_INTERFACE("56a86897-0ad4-11ce-b03a-0020af0ba770")
2032 IReferenceClock : public IUnknown
2033 {
2034     virtual HRESULT STDMETHODCALLTYPE GetTime(
2035         REFERENCE_TIME *pTime) = 0;
2036 
2037     virtual HRESULT STDMETHODCALLTYPE AdviseTime(
2038         REFERENCE_TIME baseTime,
2039         REFERENCE_TIME streamTime,
2040         HEVENT hEvent,
2041         DWORD_PTR *pdwAdviseCookie) = 0;
2042 
2043     virtual HRESULT STDMETHODCALLTYPE AdvisePeriodic(
2044         REFERENCE_TIME startTime,
2045         REFERENCE_TIME periodTime,
2046         HSEMAPHORE hSemaphore,
2047         DWORD_PTR *pdwAdviseCookie) = 0;
2048 
2049     virtual HRESULT STDMETHODCALLTYPE Unadvise(
2050         DWORD_PTR dwAdviseCookie) = 0;
2051 
2052 };
2053 #ifdef __CRT_UUID_DECL
2054 __CRT_UUID_DECL(IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
2055 #endif
2056 #else
2057 typedef struct IReferenceClockVtbl {
2058     BEGIN_INTERFACE
2059 
2060     /*** IUnknown methods ***/
2061     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2062         IReferenceClock* This,
2063         REFIID riid,
2064         void **ppvObject);
2065 
2066     ULONG (STDMETHODCALLTYPE *AddRef)(
2067         IReferenceClock* This);
2068 
2069     ULONG (STDMETHODCALLTYPE *Release)(
2070         IReferenceClock* This);
2071 
2072     /*** IReferenceClock methods ***/
2073     HRESULT (STDMETHODCALLTYPE *GetTime)(
2074         IReferenceClock* This,
2075         REFERENCE_TIME *pTime);
2076 
2077     HRESULT (STDMETHODCALLTYPE *AdviseTime)(
2078         IReferenceClock* This,
2079         REFERENCE_TIME baseTime,
2080         REFERENCE_TIME streamTime,
2081         HEVENT hEvent,
2082         DWORD_PTR *pdwAdviseCookie);
2083 
2084     HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
2085         IReferenceClock* This,
2086         REFERENCE_TIME startTime,
2087         REFERENCE_TIME periodTime,
2088         HSEMAPHORE hSemaphore,
2089         DWORD_PTR *pdwAdviseCookie);
2090 
2091     HRESULT (STDMETHODCALLTYPE *Unadvise)(
2092         IReferenceClock* This,
2093         DWORD_PTR dwAdviseCookie);
2094 
2095     END_INTERFACE
2096 } IReferenceClockVtbl;
2097 interface IReferenceClock {
2098     CONST_VTBL IReferenceClockVtbl* lpVtbl;
2099 };
2100 
2101 #ifdef COBJMACROS
2102 #ifndef WIDL_C_INLINE_WRAPPERS
2103 /*** IUnknown methods ***/
2104 #define IReferenceClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2105 #define IReferenceClock_AddRef(This) (This)->lpVtbl->AddRef(This)
2106 #define IReferenceClock_Release(This) (This)->lpVtbl->Release(This)
2107 /*** IReferenceClock methods ***/
2108 #define IReferenceClock_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
2109 #define IReferenceClock_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
2110 #define IReferenceClock_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
2111 #define IReferenceClock_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
2112 #else
2113 /*** IUnknown methods ***/
2114 static FORCEINLINE HRESULT IReferenceClock_QueryInterface(IReferenceClock* This,REFIID riid,void **ppvObject) {
2115     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2116 }
2117 static FORCEINLINE ULONG IReferenceClock_AddRef(IReferenceClock* This) {
2118     return This->lpVtbl->AddRef(This);
2119 }
2120 static FORCEINLINE ULONG IReferenceClock_Release(IReferenceClock* This) {
2121     return This->lpVtbl->Release(This);
2122 }
2123 /*** IReferenceClock methods ***/
2124 static FORCEINLINE HRESULT IReferenceClock_GetTime(IReferenceClock* This,REFERENCE_TIME *pTime) {
2125     return This->lpVtbl->GetTime(This,pTime);
2126 }
2127 static FORCEINLINE HRESULT IReferenceClock_AdviseTime(IReferenceClock* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
2128     return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
2129 }
2130 static FORCEINLINE HRESULT IReferenceClock_AdvisePeriodic(IReferenceClock* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
2131     return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
2132 }
2133 static FORCEINLINE HRESULT IReferenceClock_Unadvise(IReferenceClock* This,DWORD_PTR dwAdviseCookie) {
2134     return This->lpVtbl->Unadvise(This,dwAdviseCookie);
2135 }
2136 #endif
2137 #endif
2138 
2139 #endif
2140 
2141 HRESULT STDMETHODCALLTYPE IReferenceClock_GetTime_Proxy(
2142     IReferenceClock* This,
2143     REFERENCE_TIME *pTime);
2144 void __RPC_STUB IReferenceClock_GetTime_Stub(
2145     IRpcStubBuffer* This,
2146     IRpcChannelBuffer* pRpcChannelBuffer,
2147     PRPC_MESSAGE pRpcMessage,
2148     DWORD* pdwStubPhase);
2149 HRESULT STDMETHODCALLTYPE IReferenceClock_AdviseTime_Proxy(
2150     IReferenceClock* This,
2151     REFERENCE_TIME baseTime,
2152     REFERENCE_TIME streamTime,
2153     HEVENT hEvent,
2154     DWORD_PTR *pdwAdviseCookie);
2155 void __RPC_STUB IReferenceClock_AdviseTime_Stub(
2156     IRpcStubBuffer* This,
2157     IRpcChannelBuffer* pRpcChannelBuffer,
2158     PRPC_MESSAGE pRpcMessage,
2159     DWORD* pdwStubPhase);
2160 HRESULT STDMETHODCALLTYPE IReferenceClock_AdvisePeriodic_Proxy(
2161     IReferenceClock* This,
2162     REFERENCE_TIME startTime,
2163     REFERENCE_TIME periodTime,
2164     HSEMAPHORE hSemaphore,
2165     DWORD_PTR *pdwAdviseCookie);
2166 void __RPC_STUB IReferenceClock_AdvisePeriodic_Stub(
2167     IRpcStubBuffer* This,
2168     IRpcChannelBuffer* pRpcChannelBuffer,
2169     PRPC_MESSAGE pRpcMessage,
2170     DWORD* pdwStubPhase);
2171 HRESULT STDMETHODCALLTYPE IReferenceClock_Unadvise_Proxy(
2172     IReferenceClock* This,
2173     DWORD_PTR dwAdviseCookie);
2174 void __RPC_STUB IReferenceClock_Unadvise_Stub(
2175     IRpcStubBuffer* This,
2176     IRpcChannelBuffer* pRpcChannelBuffer,
2177     PRPC_MESSAGE pRpcMessage,
2178     DWORD* pdwStubPhase);
2179 
2180 #endif  /* __IReferenceClock_INTERFACE_DEFINED__ */
2181 
2182 typedef IReferenceClock *PREFERENCECLOCK;
2183 
2184 /*****************************************************************************
2185  * IReferenceClockTimerControl interface
2186  */
2187 #ifndef __IReferenceClockTimerControl_INTERFACE_DEFINED__
2188 #define __IReferenceClockTimerControl_INTERFACE_DEFINED__
2189 
2190 DEFINE_GUID(IID_IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8);
2191 #if defined(__cplusplus) && !defined(CINTERFACE)
2192 MIDL_INTERFACE("ebec459c-2eca-4d42-a8af-30df557614b8")
2193 IReferenceClockTimerControl : public IUnknown
2194 {
2195     virtual HRESULT STDMETHODCALLTYPE SetDefaultTimerResolution(
2196         REFERENCE_TIME timerResolution) = 0;
2197 
2198     virtual HRESULT STDMETHODCALLTYPE GetDefaultTimerResolution(
2199         REFERENCE_TIME *pTimerResolution) = 0;
2200 
2201 };
2202 #ifdef __CRT_UUID_DECL
2203 __CRT_UUID_DECL(IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8)
2204 #endif
2205 #else
2206 typedef struct IReferenceClockTimerControlVtbl {
2207     BEGIN_INTERFACE
2208 
2209     /*** IUnknown methods ***/
2210     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2211         IReferenceClockTimerControl* This,
2212         REFIID riid,
2213         void **ppvObject);
2214 
2215     ULONG (STDMETHODCALLTYPE *AddRef)(
2216         IReferenceClockTimerControl* This);
2217 
2218     ULONG (STDMETHODCALLTYPE *Release)(
2219         IReferenceClockTimerControl* This);
2220 
2221     /*** IReferenceClockTimerControl methods ***/
2222     HRESULT (STDMETHODCALLTYPE *SetDefaultTimerResolution)(
2223         IReferenceClockTimerControl* This,
2224         REFERENCE_TIME timerResolution);
2225 
2226     HRESULT (STDMETHODCALLTYPE *GetDefaultTimerResolution)(
2227         IReferenceClockTimerControl* This,
2228         REFERENCE_TIME *pTimerResolution);
2229 
2230     END_INTERFACE
2231 } IReferenceClockTimerControlVtbl;
2232 interface IReferenceClockTimerControl {
2233     CONST_VTBL IReferenceClockTimerControlVtbl* lpVtbl;
2234 };
2235 
2236 #ifdef COBJMACROS
2237 #ifndef WIDL_C_INLINE_WRAPPERS
2238 /*** IUnknown methods ***/
2239 #define IReferenceClockTimerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2240 #define IReferenceClockTimerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
2241 #define IReferenceClockTimerControl_Release(This) (This)->lpVtbl->Release(This)
2242 /*** IReferenceClockTimerControl methods ***/
2243 #define IReferenceClockTimerControl_SetDefaultTimerResolution(This,timerResolution) (This)->lpVtbl->SetDefaultTimerResolution(This,timerResolution)
2244 #define IReferenceClockTimerControl_GetDefaultTimerResolution(This,pTimerResolution) (This)->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution)
2245 #else
2246 /*** IUnknown methods ***/
2247 static FORCEINLINE HRESULT IReferenceClockTimerControl_QueryInterface(IReferenceClockTimerControl* This,REFIID riid,void **ppvObject) {
2248     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2249 }
2250 static FORCEINLINE ULONG IReferenceClockTimerControl_AddRef(IReferenceClockTimerControl* This) {
2251     return This->lpVtbl->AddRef(This);
2252 }
2253 static FORCEINLINE ULONG IReferenceClockTimerControl_Release(IReferenceClockTimerControl* This) {
2254     return This->lpVtbl->Release(This);
2255 }
2256 /*** IReferenceClockTimerControl methods ***/
2257 static FORCEINLINE HRESULT IReferenceClockTimerControl_SetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME timerResolution) {
2258     return This->lpVtbl->SetDefaultTimerResolution(This,timerResolution);
2259 }
2260 static FORCEINLINE HRESULT IReferenceClockTimerControl_GetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME *pTimerResolution) {
2261     return This->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution);
2262 }
2263 #endif
2264 #endif
2265 
2266 #endif
2267 
2268 HRESULT STDMETHODCALLTYPE IReferenceClockTimerControl_SetDefaultTimerResolution_Proxy(
2269     IReferenceClockTimerControl* This,
2270     REFERENCE_TIME timerResolution);
2271 void __RPC_STUB IReferenceClockTimerControl_SetDefaultTimerResolution_Stub(
2272     IRpcStubBuffer* This,
2273     IRpcChannelBuffer* pRpcChannelBuffer,
2274     PRPC_MESSAGE pRpcMessage,
2275     DWORD* pdwStubPhase);
2276 HRESULT STDMETHODCALLTYPE IReferenceClockTimerControl_GetDefaultTimerResolution_Proxy(
2277     IReferenceClockTimerControl* This,
2278     REFERENCE_TIME *pTimerResolution);
2279 void __RPC_STUB IReferenceClockTimerControl_GetDefaultTimerResolution_Stub(
2280     IRpcStubBuffer* This,
2281     IRpcChannelBuffer* pRpcChannelBuffer,
2282     PRPC_MESSAGE pRpcMessage,
2283     DWORD* pdwStubPhase);
2284 
2285 #endif  /* __IReferenceClockTimerControl_INTERFACE_DEFINED__ */
2286 
2287 
2288 /*****************************************************************************
2289  * IReferenceClock2 interface
2290  */
2291 #ifndef __IReferenceClock2_INTERFACE_DEFINED__
2292 #define __IReferenceClock2_INTERFACE_DEFINED__
2293 
2294 DEFINE_GUID(IID_IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
2295 #if defined(__cplusplus) && !defined(CINTERFACE)
2296 MIDL_INTERFACE("36b73885-c2c8-11cf-8b46-00805f6cef60")
2297 IReferenceClock2 : public IReferenceClock
2298 {
2299 };
2300 #ifdef __CRT_UUID_DECL
2301 __CRT_UUID_DECL(IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
2302 #endif
2303 #else
2304 typedef struct IReferenceClock2Vtbl {
2305     BEGIN_INTERFACE
2306 
2307     /*** IUnknown methods ***/
2308     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2309         IReferenceClock2* This,
2310         REFIID riid,
2311         void **ppvObject);
2312 
2313     ULONG (STDMETHODCALLTYPE *AddRef)(
2314         IReferenceClock2* This);
2315 
2316     ULONG (STDMETHODCALLTYPE *Release)(
2317         IReferenceClock2* This);
2318 
2319     /*** IReferenceClock methods ***/
2320     HRESULT (STDMETHODCALLTYPE *GetTime)(
2321         IReferenceClock2* This,
2322         REFERENCE_TIME *pTime);
2323 
2324     HRESULT (STDMETHODCALLTYPE *AdviseTime)(
2325         IReferenceClock2* This,
2326         REFERENCE_TIME baseTime,
2327         REFERENCE_TIME streamTime,
2328         HEVENT hEvent,
2329         DWORD_PTR *pdwAdviseCookie);
2330 
2331     HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
2332         IReferenceClock2* This,
2333         REFERENCE_TIME startTime,
2334         REFERENCE_TIME periodTime,
2335         HSEMAPHORE hSemaphore,
2336         DWORD_PTR *pdwAdviseCookie);
2337 
2338     HRESULT (STDMETHODCALLTYPE *Unadvise)(
2339         IReferenceClock2* This,
2340         DWORD_PTR dwAdviseCookie);
2341 
2342     END_INTERFACE
2343 } IReferenceClock2Vtbl;
2344 interface IReferenceClock2 {
2345     CONST_VTBL IReferenceClock2Vtbl* lpVtbl;
2346 };
2347 
2348 #ifdef COBJMACROS
2349 #ifndef WIDL_C_INLINE_WRAPPERS
2350 /*** IUnknown methods ***/
2351 #define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2352 #define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
2353 #define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
2354 /*** IReferenceClock methods ***/
2355 #define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
2356 #define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
2357 #define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
2358 #define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
2359 #else
2360 /*** IUnknown methods ***/
2361 static FORCEINLINE HRESULT IReferenceClock2_QueryInterface(IReferenceClock2* This,REFIID riid,void **ppvObject) {
2362     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2363 }
2364 static FORCEINLINE ULONG IReferenceClock2_AddRef(IReferenceClock2* This) {
2365     return This->lpVtbl->AddRef(This);
2366 }
2367 static FORCEINLINE ULONG IReferenceClock2_Release(IReferenceClock2* This) {
2368     return This->lpVtbl->Release(This);
2369 }
2370 /*** IReferenceClock methods ***/
2371 static FORCEINLINE HRESULT IReferenceClock2_GetTime(IReferenceClock2* This,REFERENCE_TIME *pTime) {
2372     return This->lpVtbl->GetTime(This,pTime);
2373 }
2374 static FORCEINLINE HRESULT IReferenceClock2_AdviseTime(IReferenceClock2* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
2375     return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
2376 }
2377 static FORCEINLINE HRESULT IReferenceClock2_AdvisePeriodic(IReferenceClock2* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
2378     return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
2379 }
2380 static FORCEINLINE HRESULT IReferenceClock2_Unadvise(IReferenceClock2* This,DWORD_PTR dwAdviseCookie) {
2381     return This->lpVtbl->Unadvise(This,dwAdviseCookie);
2382 }
2383 #endif
2384 #endif
2385 
2386 #endif
2387 
2388 
2389 #endif  /* __IReferenceClock2_INTERFACE_DEFINED__ */
2390 
2391 typedef IReferenceClock2 *PREFERENCECLOCK2;
2392 
2393 /*****************************************************************************
2394  * IMediaSample interface
2395  */
2396 #ifndef __IMediaSample_INTERFACE_DEFINED__
2397 #define __IMediaSample_INTERFACE_DEFINED__
2398 
2399 DEFINE_GUID(IID_IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
2400 #if defined(__cplusplus) && !defined(CINTERFACE)
2401 MIDL_INTERFACE("56a8689a-0ad4-11ce-b03a-0020af0ba770")
2402 IMediaSample : public IUnknown
2403 {
2404     virtual HRESULT STDMETHODCALLTYPE GetPointer(
2405         BYTE **ppBuffer) = 0;
2406 
2407     virtual LONG STDMETHODCALLTYPE GetSize(
2408         ) = 0;
2409 
2410     virtual HRESULT STDMETHODCALLTYPE GetTime(
2411         REFERENCE_TIME *pTimeStart,
2412         REFERENCE_TIME *pTimeEnd) = 0;
2413 
2414     virtual HRESULT STDMETHODCALLTYPE SetTime(
2415         REFERENCE_TIME *pTimeStart,
2416         REFERENCE_TIME *pTimeEnd) = 0;
2417 
2418     virtual HRESULT STDMETHODCALLTYPE IsSyncPoint(
2419         ) = 0;
2420 
2421     virtual HRESULT STDMETHODCALLTYPE SetSyncPoint(
2422         WINBOOL bIsSyncPoint) = 0;
2423 
2424     virtual HRESULT STDMETHODCALLTYPE IsPreroll(
2425         ) = 0;
2426 
2427     virtual HRESULT STDMETHODCALLTYPE SetPreroll(
2428         WINBOOL bIsPreroll) = 0;
2429 
2430     virtual LONG STDMETHODCALLTYPE GetActualDataLength(
2431         ) = 0;
2432 
2433     virtual HRESULT STDMETHODCALLTYPE SetActualDataLength(
2434         LONG a) = 0;
2435 
2436     virtual HRESULT STDMETHODCALLTYPE GetMediaType(
2437         AM_MEDIA_TYPE **ppMediaType) = 0;
2438 
2439     virtual HRESULT STDMETHODCALLTYPE SetMediaType(
2440         AM_MEDIA_TYPE *pMediaType) = 0;
2441 
2442     virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity(
2443         ) = 0;
2444 
2445     virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity(
2446         WINBOOL bDiscontinuity) = 0;
2447 
2448     virtual HRESULT STDMETHODCALLTYPE GetMediaTime(
2449         LONGLONG *pTimeStart,
2450         LONGLONG *pTimeEnd) = 0;
2451 
2452     virtual HRESULT STDMETHODCALLTYPE SetMediaTime(
2453         LONGLONG *pTimeStart,
2454         LONGLONG *pTimeEnd) = 0;
2455 
2456 };
2457 #ifdef __CRT_UUID_DECL
2458 __CRT_UUID_DECL(IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
2459 #endif
2460 #else
2461 typedef struct IMediaSampleVtbl {
2462     BEGIN_INTERFACE
2463 
2464     /*** IUnknown methods ***/
2465     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2466         IMediaSample* This,
2467         REFIID riid,
2468         void **ppvObject);
2469 
2470     ULONG (STDMETHODCALLTYPE *AddRef)(
2471         IMediaSample* This);
2472 
2473     ULONG (STDMETHODCALLTYPE *Release)(
2474         IMediaSample* This);
2475 
2476     /*** IMediaSample methods ***/
2477     HRESULT (STDMETHODCALLTYPE *GetPointer)(
2478         IMediaSample* This,
2479         BYTE **ppBuffer);
2480 
2481     LONG (STDMETHODCALLTYPE *GetSize)(
2482         IMediaSample* This);
2483 
2484     HRESULT (STDMETHODCALLTYPE *GetTime)(
2485         IMediaSample* This,
2486         REFERENCE_TIME *pTimeStart,
2487         REFERENCE_TIME *pTimeEnd);
2488 
2489     HRESULT (STDMETHODCALLTYPE *SetTime)(
2490         IMediaSample* This,
2491         REFERENCE_TIME *pTimeStart,
2492         REFERENCE_TIME *pTimeEnd);
2493 
2494     HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
2495         IMediaSample* This);
2496 
2497     HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
2498         IMediaSample* This,
2499         WINBOOL bIsSyncPoint);
2500 
2501     HRESULT (STDMETHODCALLTYPE *IsPreroll)(
2502         IMediaSample* This);
2503 
2504     HRESULT (STDMETHODCALLTYPE *SetPreroll)(
2505         IMediaSample* This,
2506         WINBOOL bIsPreroll);
2507 
2508     LONG (STDMETHODCALLTYPE *GetActualDataLength)(
2509         IMediaSample* This);
2510 
2511     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
2512         IMediaSample* This,
2513         LONG a);
2514 
2515     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
2516         IMediaSample* This,
2517         AM_MEDIA_TYPE **ppMediaType);
2518 
2519     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
2520         IMediaSample* This,
2521         AM_MEDIA_TYPE *pMediaType);
2522 
2523     HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
2524         IMediaSample* This);
2525 
2526     HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
2527         IMediaSample* This,
2528         WINBOOL bDiscontinuity);
2529 
2530     HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
2531         IMediaSample* This,
2532         LONGLONG *pTimeStart,
2533         LONGLONG *pTimeEnd);
2534 
2535     HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
2536         IMediaSample* This,
2537         LONGLONG *pTimeStart,
2538         LONGLONG *pTimeEnd);
2539 
2540     END_INTERFACE
2541 } IMediaSampleVtbl;
2542 interface IMediaSample {
2543     CONST_VTBL IMediaSampleVtbl* lpVtbl;
2544 };
2545 
2546 #ifdef COBJMACROS
2547 #ifndef WIDL_C_INLINE_WRAPPERS
2548 /*** IUnknown methods ***/
2549 #define IMediaSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2550 #define IMediaSample_AddRef(This) (This)->lpVtbl->AddRef(This)
2551 #define IMediaSample_Release(This) (This)->lpVtbl->Release(This)
2552 /*** IMediaSample methods ***/
2553 #define IMediaSample_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
2554 #define IMediaSample_GetSize(This) (This)->lpVtbl->GetSize(This)
2555 #define IMediaSample_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
2556 #define IMediaSample_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
2557 #define IMediaSample_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
2558 #define IMediaSample_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
2559 #define IMediaSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
2560 #define IMediaSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
2561 #define IMediaSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
2562 #define IMediaSample_SetActualDataLength(This,a) (This)->lpVtbl->SetActualDataLength(This,a)
2563 #define IMediaSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
2564 #define IMediaSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
2565 #define IMediaSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
2566 #define IMediaSample_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
2567 #define IMediaSample_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
2568 #define IMediaSample_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
2569 #else
2570 /*** IUnknown methods ***/
2571 static FORCEINLINE HRESULT IMediaSample_QueryInterface(IMediaSample* This,REFIID riid,void **ppvObject) {
2572     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2573 }
2574 static FORCEINLINE ULONG IMediaSample_AddRef(IMediaSample* This) {
2575     return This->lpVtbl->AddRef(This);
2576 }
2577 static FORCEINLINE ULONG IMediaSample_Release(IMediaSample* This) {
2578     return This->lpVtbl->Release(This);
2579 }
2580 /*** IMediaSample methods ***/
2581 static FORCEINLINE HRESULT IMediaSample_GetPointer(IMediaSample* This,BYTE **ppBuffer) {
2582     return This->lpVtbl->GetPointer(This,ppBuffer);
2583 }
2584 static FORCEINLINE LONG IMediaSample_GetSize(IMediaSample* This) {
2585     return This->lpVtbl->GetSize(This);
2586 }
2587 static FORCEINLINE HRESULT IMediaSample_GetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2588     return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
2589 }
2590 static FORCEINLINE HRESULT IMediaSample_SetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2591     return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
2592 }
2593 static FORCEINLINE HRESULT IMediaSample_IsSyncPoint(IMediaSample* This) {
2594     return This->lpVtbl->IsSyncPoint(This);
2595 }
2596 static FORCEINLINE HRESULT IMediaSample_SetSyncPoint(IMediaSample* This,WINBOOL bIsSyncPoint) {
2597     return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
2598 }
2599 static FORCEINLINE HRESULT IMediaSample_IsPreroll(IMediaSample* This) {
2600     return This->lpVtbl->IsPreroll(This);
2601 }
2602 static FORCEINLINE HRESULT IMediaSample_SetPreroll(IMediaSample* This,WINBOOL bIsPreroll) {
2603     return This->lpVtbl->SetPreroll(This,bIsPreroll);
2604 }
2605 static FORCEINLINE LONG IMediaSample_GetActualDataLength(IMediaSample* This) {
2606     return This->lpVtbl->GetActualDataLength(This);
2607 }
2608 static FORCEINLINE HRESULT IMediaSample_SetActualDataLength(IMediaSample* This,LONG a) {
2609     return This->lpVtbl->SetActualDataLength(This,a);
2610 }
2611 static FORCEINLINE HRESULT IMediaSample_GetMediaType(IMediaSample* This,AM_MEDIA_TYPE **ppMediaType) {
2612     return This->lpVtbl->GetMediaType(This,ppMediaType);
2613 }
2614 static FORCEINLINE HRESULT IMediaSample_SetMediaType(IMediaSample* This,AM_MEDIA_TYPE *pMediaType) {
2615     return This->lpVtbl->SetMediaType(This,pMediaType);
2616 }
2617 static FORCEINLINE HRESULT IMediaSample_IsDiscontinuity(IMediaSample* This) {
2618     return This->lpVtbl->IsDiscontinuity(This);
2619 }
2620 static FORCEINLINE HRESULT IMediaSample_SetDiscontinuity(IMediaSample* This,WINBOOL bDiscontinuity) {
2621     return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
2622 }
2623 static FORCEINLINE HRESULT IMediaSample_GetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2624     return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
2625 }
2626 static FORCEINLINE HRESULT IMediaSample_SetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2627     return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
2628 }
2629 #endif
2630 #endif
2631 
2632 #endif
2633 
2634 HRESULT STDMETHODCALLTYPE IMediaSample_GetPointer_Proxy(
2635     IMediaSample* This,
2636     BYTE **ppBuffer);
2637 void __RPC_STUB IMediaSample_GetPointer_Stub(
2638     IRpcStubBuffer* This,
2639     IRpcChannelBuffer* pRpcChannelBuffer,
2640     PRPC_MESSAGE pRpcMessage,
2641     DWORD* pdwStubPhase);
2642 LONG STDMETHODCALLTYPE IMediaSample_GetSize_Proxy(
2643     IMediaSample* This);
2644 void __RPC_STUB IMediaSample_GetSize_Stub(
2645     IRpcStubBuffer* This,
2646     IRpcChannelBuffer* pRpcChannelBuffer,
2647     PRPC_MESSAGE pRpcMessage,
2648     DWORD* pdwStubPhase);
2649 HRESULT STDMETHODCALLTYPE IMediaSample_GetTime_Proxy(
2650     IMediaSample* This,
2651     REFERENCE_TIME *pTimeStart,
2652     REFERENCE_TIME *pTimeEnd);
2653 void __RPC_STUB IMediaSample_GetTime_Stub(
2654     IRpcStubBuffer* This,
2655     IRpcChannelBuffer* pRpcChannelBuffer,
2656     PRPC_MESSAGE pRpcMessage,
2657     DWORD* pdwStubPhase);
2658 HRESULT STDMETHODCALLTYPE IMediaSample_SetTime_Proxy(
2659     IMediaSample* This,
2660     REFERENCE_TIME *pTimeStart,
2661     REFERENCE_TIME *pTimeEnd);
2662 void __RPC_STUB IMediaSample_SetTime_Stub(
2663     IRpcStubBuffer* This,
2664     IRpcChannelBuffer* pRpcChannelBuffer,
2665     PRPC_MESSAGE pRpcMessage,
2666     DWORD* pdwStubPhase);
2667 HRESULT STDMETHODCALLTYPE IMediaSample_IsSyncPoint_Proxy(
2668     IMediaSample* This);
2669 void __RPC_STUB IMediaSample_IsSyncPoint_Stub(
2670     IRpcStubBuffer* This,
2671     IRpcChannelBuffer* pRpcChannelBuffer,
2672     PRPC_MESSAGE pRpcMessage,
2673     DWORD* pdwStubPhase);
2674 HRESULT STDMETHODCALLTYPE IMediaSample_SetSyncPoint_Proxy(
2675     IMediaSample* This,
2676     WINBOOL bIsSyncPoint);
2677 void __RPC_STUB IMediaSample_SetSyncPoint_Stub(
2678     IRpcStubBuffer* This,
2679     IRpcChannelBuffer* pRpcChannelBuffer,
2680     PRPC_MESSAGE pRpcMessage,
2681     DWORD* pdwStubPhase);
2682 HRESULT STDMETHODCALLTYPE IMediaSample_IsPreroll_Proxy(
2683     IMediaSample* This);
2684 void __RPC_STUB IMediaSample_IsPreroll_Stub(
2685     IRpcStubBuffer* This,
2686     IRpcChannelBuffer* pRpcChannelBuffer,
2687     PRPC_MESSAGE pRpcMessage,
2688     DWORD* pdwStubPhase);
2689 HRESULT STDMETHODCALLTYPE IMediaSample_SetPreroll_Proxy(
2690     IMediaSample* This,
2691     WINBOOL bIsPreroll);
2692 void __RPC_STUB IMediaSample_SetPreroll_Stub(
2693     IRpcStubBuffer* This,
2694     IRpcChannelBuffer* pRpcChannelBuffer,
2695     PRPC_MESSAGE pRpcMessage,
2696     DWORD* pdwStubPhase);
2697 LONG STDMETHODCALLTYPE IMediaSample_GetActualDataLength_Proxy(
2698     IMediaSample* This);
2699 void __RPC_STUB IMediaSample_GetActualDataLength_Stub(
2700     IRpcStubBuffer* This,
2701     IRpcChannelBuffer* pRpcChannelBuffer,
2702     PRPC_MESSAGE pRpcMessage,
2703     DWORD* pdwStubPhase);
2704 HRESULT STDMETHODCALLTYPE IMediaSample_SetActualDataLength_Proxy(
2705     IMediaSample* This,
2706     LONG a);
2707 void __RPC_STUB IMediaSample_SetActualDataLength_Stub(
2708     IRpcStubBuffer* This,
2709     IRpcChannelBuffer* pRpcChannelBuffer,
2710     PRPC_MESSAGE pRpcMessage,
2711     DWORD* pdwStubPhase);
2712 HRESULT STDMETHODCALLTYPE IMediaSample_GetMediaType_Proxy(
2713     IMediaSample* This,
2714     AM_MEDIA_TYPE **ppMediaType);
2715 void __RPC_STUB IMediaSample_GetMediaType_Stub(
2716     IRpcStubBuffer* This,
2717     IRpcChannelBuffer* pRpcChannelBuffer,
2718     PRPC_MESSAGE pRpcMessage,
2719     DWORD* pdwStubPhase);
2720 HRESULT STDMETHODCALLTYPE IMediaSample_SetMediaType_Proxy(
2721     IMediaSample* This,
2722     AM_MEDIA_TYPE *pMediaType);
2723 void __RPC_STUB IMediaSample_SetMediaType_Stub(
2724     IRpcStubBuffer* This,
2725     IRpcChannelBuffer* pRpcChannelBuffer,
2726     PRPC_MESSAGE pRpcMessage,
2727     DWORD* pdwStubPhase);
2728 HRESULT STDMETHODCALLTYPE IMediaSample_IsDiscontinuity_Proxy(
2729     IMediaSample* This);
2730 void __RPC_STUB IMediaSample_IsDiscontinuity_Stub(
2731     IRpcStubBuffer* This,
2732     IRpcChannelBuffer* pRpcChannelBuffer,
2733     PRPC_MESSAGE pRpcMessage,
2734     DWORD* pdwStubPhase);
2735 HRESULT STDMETHODCALLTYPE IMediaSample_SetDiscontinuity_Proxy(
2736     IMediaSample* This,
2737     WINBOOL bDiscontinuity);
2738 void __RPC_STUB IMediaSample_SetDiscontinuity_Stub(
2739     IRpcStubBuffer* This,
2740     IRpcChannelBuffer* pRpcChannelBuffer,
2741     PRPC_MESSAGE pRpcMessage,
2742     DWORD* pdwStubPhase);
2743 HRESULT STDMETHODCALLTYPE IMediaSample_GetMediaTime_Proxy(
2744     IMediaSample* This,
2745     LONGLONG *pTimeStart,
2746     LONGLONG *pTimeEnd);
2747 void __RPC_STUB IMediaSample_GetMediaTime_Stub(
2748     IRpcStubBuffer* This,
2749     IRpcChannelBuffer* pRpcChannelBuffer,
2750     PRPC_MESSAGE pRpcMessage,
2751     DWORD* pdwStubPhase);
2752 HRESULT STDMETHODCALLTYPE IMediaSample_SetMediaTime_Proxy(
2753     IMediaSample* This,
2754     LONGLONG *pTimeStart,
2755     LONGLONG *pTimeEnd);
2756 void __RPC_STUB IMediaSample_SetMediaTime_Stub(
2757     IRpcStubBuffer* This,
2758     IRpcChannelBuffer* pRpcChannelBuffer,
2759     PRPC_MESSAGE pRpcMessage,
2760     DWORD* pdwStubPhase);
2761 
2762 #endif  /* __IMediaSample_INTERFACE_DEFINED__ */
2763 
2764 typedef IMediaSample *PMEDIASAMPLE;
2765 
2766 enum tagAM_SAMPLE_PROPERTY_FLAGS {
2767     AM_SAMPLE_SPLICEPOINT = 0x1,
2768     AM_SAMPLE_PREROLL = 0x2,
2769     AM_SAMPLE_DATADISCONTINUITY = 0x4,
2770     AM_SAMPLE_TYPECHANGED = 0x8,
2771     AM_SAMPLE_TIMEVALID = 0x10,
2772     AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
2773     AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
2774     AM_SAMPLE_STOPVALID = 0x100,
2775     AM_SAMPLE_ENDOFSTREAM = 0x200,
2776     AM_STREAM_MEDIA = 0,
2777     AM_STREAM_CONTROL = 1
2778 };
2779 
2780 
2781 typedef struct tagAM_SAMPLE2_PROPERTIES {
2782     DWORD cbData;
2783     DWORD dwTypeSpecificFlags;
2784     DWORD dwSampleFlags;
2785     LONG lActual;
2786     REFERENCE_TIME tStart;
2787     REFERENCE_TIME tStop;
2788     DWORD dwStreamId;
2789     AM_MEDIA_TYPE *pMediaType;
2790     BYTE *pbBuffer;
2791     LONG cbBuffer;
2792 } AM_SAMPLE2_PROPERTIES;
2793 
2794 /*****************************************************************************
2795  * IMediaSample2 interface
2796  */
2797 #ifndef __IMediaSample2_INTERFACE_DEFINED__
2798 #define __IMediaSample2_INTERFACE_DEFINED__
2799 
2800 DEFINE_GUID(IID_IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
2801 #if defined(__cplusplus) && !defined(CINTERFACE)
2802 MIDL_INTERFACE("36b73884-c2c8-11cf-8b46-00805f6cef60")
2803 IMediaSample2 : public IMediaSample
2804 {
2805     virtual HRESULT STDMETHODCALLTYPE GetProperties(
2806         DWORD cbProperties,
2807         BYTE *pbProperties) = 0;
2808 
2809     virtual HRESULT STDMETHODCALLTYPE SetProperties(
2810         DWORD cbProperties,
2811         const BYTE *pbProperties) = 0;
2812 
2813 };
2814 #ifdef __CRT_UUID_DECL
2815 __CRT_UUID_DECL(IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
2816 #endif
2817 #else
2818 typedef struct IMediaSample2Vtbl {
2819     BEGIN_INTERFACE
2820 
2821     /*** IUnknown methods ***/
2822     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2823         IMediaSample2* This,
2824         REFIID riid,
2825         void **ppvObject);
2826 
2827     ULONG (STDMETHODCALLTYPE *AddRef)(
2828         IMediaSample2* This);
2829 
2830     ULONG (STDMETHODCALLTYPE *Release)(
2831         IMediaSample2* This);
2832 
2833     /*** IMediaSample methods ***/
2834     HRESULT (STDMETHODCALLTYPE *GetPointer)(
2835         IMediaSample2* This,
2836         BYTE **ppBuffer);
2837 
2838     LONG (STDMETHODCALLTYPE *GetSize)(
2839         IMediaSample2* This);
2840 
2841     HRESULT (STDMETHODCALLTYPE *GetTime)(
2842         IMediaSample2* This,
2843         REFERENCE_TIME *pTimeStart,
2844         REFERENCE_TIME *pTimeEnd);
2845 
2846     HRESULT (STDMETHODCALLTYPE *SetTime)(
2847         IMediaSample2* This,
2848         REFERENCE_TIME *pTimeStart,
2849         REFERENCE_TIME *pTimeEnd);
2850 
2851     HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
2852         IMediaSample2* This);
2853 
2854     HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
2855         IMediaSample2* This,
2856         WINBOOL bIsSyncPoint);
2857 
2858     HRESULT (STDMETHODCALLTYPE *IsPreroll)(
2859         IMediaSample2* This);
2860 
2861     HRESULT (STDMETHODCALLTYPE *SetPreroll)(
2862         IMediaSample2* This,
2863         WINBOOL bIsPreroll);
2864 
2865     LONG (STDMETHODCALLTYPE *GetActualDataLength)(
2866         IMediaSample2* This);
2867 
2868     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
2869         IMediaSample2* This,
2870         LONG a);
2871 
2872     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
2873         IMediaSample2* This,
2874         AM_MEDIA_TYPE **ppMediaType);
2875 
2876     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
2877         IMediaSample2* This,
2878         AM_MEDIA_TYPE *pMediaType);
2879 
2880     HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
2881         IMediaSample2* This);
2882 
2883     HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
2884         IMediaSample2* This,
2885         WINBOOL bDiscontinuity);
2886 
2887     HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
2888         IMediaSample2* This,
2889         LONGLONG *pTimeStart,
2890         LONGLONG *pTimeEnd);
2891 
2892     HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
2893         IMediaSample2* This,
2894         LONGLONG *pTimeStart,
2895         LONGLONG *pTimeEnd);
2896 
2897     /*** IMediaSample2 methods ***/
2898     HRESULT (STDMETHODCALLTYPE *GetProperties)(
2899         IMediaSample2* This,
2900         DWORD cbProperties,
2901         BYTE *pbProperties);
2902 
2903     HRESULT (STDMETHODCALLTYPE *SetProperties)(
2904         IMediaSample2* This,
2905         DWORD cbProperties,
2906         const BYTE *pbProperties);
2907 
2908     END_INTERFACE
2909 } IMediaSample2Vtbl;
2910 interface IMediaSample2 {
2911     CONST_VTBL IMediaSample2Vtbl* lpVtbl;
2912 };
2913 
2914 #ifdef COBJMACROS
2915 #ifndef WIDL_C_INLINE_WRAPPERS
2916 /*** IUnknown methods ***/
2917 #define IMediaSample2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2918 #define IMediaSample2_AddRef(This) (This)->lpVtbl->AddRef(This)
2919 #define IMediaSample2_Release(This) (This)->lpVtbl->Release(This)
2920 /*** IMediaSample methods ***/
2921 #define IMediaSample2_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
2922 #define IMediaSample2_GetSize(This) (This)->lpVtbl->GetSize(This)
2923 #define IMediaSample2_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
2924 #define IMediaSample2_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
2925 #define IMediaSample2_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
2926 #define IMediaSample2_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
2927 #define IMediaSample2_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
2928 #define IMediaSample2_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
2929 #define IMediaSample2_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
2930 #define IMediaSample2_SetActualDataLength(This,a) (This)->lpVtbl->SetActualDataLength(This,a)
2931 #define IMediaSample2_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
2932 #define IMediaSample2_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
2933 #define IMediaSample2_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
2934 #define IMediaSample2_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
2935 #define IMediaSample2_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
2936 #define IMediaSample2_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
2937 /*** IMediaSample2 methods ***/
2938 #define IMediaSample2_GetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->GetProperties(This,cbProperties,pbProperties)
2939 #define IMediaSample2_SetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->SetProperties(This,cbProperties,pbProperties)
2940 #else
2941 /*** IUnknown methods ***/
2942 static FORCEINLINE HRESULT IMediaSample2_QueryInterface(IMediaSample2* This,REFIID riid,void **ppvObject) {
2943     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2944 }
2945 static FORCEINLINE ULONG IMediaSample2_AddRef(IMediaSample2* This) {
2946     return This->lpVtbl->AddRef(This);
2947 }
2948 static FORCEINLINE ULONG IMediaSample2_Release(IMediaSample2* This) {
2949     return This->lpVtbl->Release(This);
2950 }
2951 /*** IMediaSample methods ***/
2952 static FORCEINLINE HRESULT IMediaSample2_GetPointer(IMediaSample2* This,BYTE **ppBuffer) {
2953     return This->lpVtbl->GetPointer(This,ppBuffer);
2954 }
2955 static FORCEINLINE LONG IMediaSample2_GetSize(IMediaSample2* This) {
2956     return This->lpVtbl->GetSize(This);
2957 }
2958 static FORCEINLINE HRESULT IMediaSample2_GetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2959     return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
2960 }
2961 static FORCEINLINE HRESULT IMediaSample2_SetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2962     return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
2963 }
2964 static FORCEINLINE HRESULT IMediaSample2_IsSyncPoint(IMediaSample2* This) {
2965     return This->lpVtbl->IsSyncPoint(This);
2966 }
2967 static FORCEINLINE HRESULT IMediaSample2_SetSyncPoint(IMediaSample2* This,WINBOOL bIsSyncPoint) {
2968     return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
2969 }
2970 static FORCEINLINE HRESULT IMediaSample2_IsPreroll(IMediaSample2* This) {
2971     return This->lpVtbl->IsPreroll(This);
2972 }
2973 static FORCEINLINE HRESULT IMediaSample2_SetPreroll(IMediaSample2* This,WINBOOL bIsPreroll) {
2974     return This->lpVtbl->SetPreroll(This,bIsPreroll);
2975 }
2976 static FORCEINLINE LONG IMediaSample2_GetActualDataLength(IMediaSample2* This) {
2977     return This->lpVtbl->GetActualDataLength(This);
2978 }
2979 static FORCEINLINE HRESULT IMediaSample2_SetActualDataLength(IMediaSample2* This,LONG a) {
2980     return This->lpVtbl->SetActualDataLength(This,a);
2981 }
2982 static FORCEINLINE HRESULT IMediaSample2_GetMediaType(IMediaSample2* This,AM_MEDIA_TYPE **ppMediaType) {
2983     return This->lpVtbl->GetMediaType(This,ppMediaType);
2984 }
2985 static FORCEINLINE HRESULT IMediaSample2_SetMediaType(IMediaSample2* This,AM_MEDIA_TYPE *pMediaType) {
2986     return This->lpVtbl->SetMediaType(This,pMediaType);
2987 }
2988 static FORCEINLINE HRESULT IMediaSample2_IsDiscontinuity(IMediaSample2* This) {
2989     return This->lpVtbl->IsDiscontinuity(This);
2990 }
2991 static FORCEINLINE HRESULT IMediaSample2_SetDiscontinuity(IMediaSample2* This,WINBOOL bDiscontinuity) {
2992     return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
2993 }
2994 static FORCEINLINE HRESULT IMediaSample2_GetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2995     return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
2996 }
2997 static FORCEINLINE HRESULT IMediaSample2_SetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2998     return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
2999 }
3000 /*** IMediaSample2 methods ***/
3001 static FORCEINLINE HRESULT IMediaSample2_GetProperties(IMediaSample2* This,DWORD cbProperties,BYTE *pbProperties) {
3002     return This->lpVtbl->GetProperties(This,cbProperties,pbProperties);
3003 }
3004 static FORCEINLINE HRESULT IMediaSample2_SetProperties(IMediaSample2* This,DWORD cbProperties,const BYTE *pbProperties) {
3005     return This->lpVtbl->SetProperties(This,cbProperties,pbProperties);
3006 }
3007 #endif
3008 #endif
3009 
3010 #endif
3011 
3012 HRESULT STDMETHODCALLTYPE IMediaSample2_GetProperties_Proxy(
3013     IMediaSample2* This,
3014     DWORD cbProperties,
3015     BYTE *pbProperties);
3016 void __RPC_STUB IMediaSample2_GetProperties_Stub(
3017     IRpcStubBuffer* This,
3018     IRpcChannelBuffer* pRpcChannelBuffer,
3019     PRPC_MESSAGE pRpcMessage,
3020     DWORD* pdwStubPhase);
3021 HRESULT STDMETHODCALLTYPE IMediaSample2_SetProperties_Proxy(
3022     IMediaSample2* This,
3023     DWORD cbProperties,
3024     const BYTE *pbProperties);
3025 void __RPC_STUB IMediaSample2_SetProperties_Stub(
3026     IRpcStubBuffer* This,
3027     IRpcChannelBuffer* pRpcChannelBuffer,
3028     PRPC_MESSAGE pRpcMessage,
3029     DWORD* pdwStubPhase);
3030 
3031 #endif  /* __IMediaSample2_INTERFACE_DEFINED__ */
3032 
3033 typedef IMediaSample2 *PMEDIASAMPLE2;
3034 
3035 /*****************************************************************************
3036  * IMediaSample2Config interface
3037  */
3038 #ifndef __IMediaSample2Config_INTERFACE_DEFINED__
3039 #define __IMediaSample2Config_INTERFACE_DEFINED__
3040 
3041 DEFINE_GUID(IID_IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3);
3042 #if defined(__cplusplus) && !defined(CINTERFACE)
3043 MIDL_INTERFACE("68961e68-832b-41ea-bc91-63593f3e70e3")
3044 IMediaSample2Config : public IUnknown
3045 {
3046     virtual HRESULT STDMETHODCALLTYPE GetSurface(
3047         IUnknown **ppDirect3DSurface9) = 0;
3048 
3049 };
3050 #ifdef __CRT_UUID_DECL
3051 __CRT_UUID_DECL(IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3)
3052 #endif
3053 #else
3054 typedef struct IMediaSample2ConfigVtbl {
3055     BEGIN_INTERFACE
3056 
3057     /*** IUnknown methods ***/
3058     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3059         IMediaSample2Config* This,
3060         REFIID riid,
3061         void **ppvObject);
3062 
3063     ULONG (STDMETHODCALLTYPE *AddRef)(
3064         IMediaSample2Config* This);
3065 
3066     ULONG (STDMETHODCALLTYPE *Release)(
3067         IMediaSample2Config* This);
3068 
3069     /*** IMediaSample2Config methods ***/
3070     HRESULT (STDMETHODCALLTYPE *GetSurface)(
3071         IMediaSample2Config* This,
3072         IUnknown **ppDirect3DSurface9);
3073 
3074     END_INTERFACE
3075 } IMediaSample2ConfigVtbl;
3076 interface IMediaSample2Config {
3077     CONST_VTBL IMediaSample2ConfigVtbl* lpVtbl;
3078 };
3079 
3080 #ifdef COBJMACROS
3081 #ifndef WIDL_C_INLINE_WRAPPERS
3082 /*** IUnknown methods ***/
3083 #define IMediaSample2Config_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3084 #define IMediaSample2Config_AddRef(This) (This)->lpVtbl->AddRef(This)
3085 #define IMediaSample2Config_Release(This) (This)->lpVtbl->Release(This)
3086 /*** IMediaSample2Config methods ***/
3087 #define IMediaSample2Config_GetSurface(This,ppDirect3DSurface9) (This)->lpVtbl->GetSurface(This,ppDirect3DSurface9)
3088 #else
3089 /*** IUnknown methods ***/
3090 static FORCEINLINE HRESULT IMediaSample2Config_QueryInterface(IMediaSample2Config* This,REFIID riid,void **ppvObject) {
3091     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3092 }
3093 static FORCEINLINE ULONG IMediaSample2Config_AddRef(IMediaSample2Config* This) {
3094     return This->lpVtbl->AddRef(This);
3095 }
3096 static FORCEINLINE ULONG IMediaSample2Config_Release(IMediaSample2Config* This) {
3097     return This->lpVtbl->Release(This);
3098 }
3099 /*** IMediaSample2Config methods ***/
3100 static FORCEINLINE HRESULT IMediaSample2Config_GetSurface(IMediaSample2Config* This,IUnknown **ppDirect3DSurface9) {
3101     return This->lpVtbl->GetSurface(This,ppDirect3DSurface9);
3102 }
3103 #endif
3104 #endif
3105 
3106 #endif
3107 
3108 HRESULT STDMETHODCALLTYPE IMediaSample2Config_GetSurface_Proxy(
3109     IMediaSample2Config* This,
3110     IUnknown **ppDirect3DSurface9);
3111 void __RPC_STUB IMediaSample2Config_GetSurface_Stub(
3112     IRpcStubBuffer* This,
3113     IRpcChannelBuffer* pRpcChannelBuffer,
3114     PRPC_MESSAGE pRpcMessage,
3115     DWORD* pdwStubPhase);
3116 
3117 #endif  /* __IMediaSample2Config_INTERFACE_DEFINED__ */
3118 
3119 
3120 #define AM_GBF_PREVFRAMESKIPPED 1
3121 #define AM_GBF_NOTASYNCPOINT 2
3122 #define AM_GBF_NOWAIT 4
3123 #define AM_GBF_NODDSURFACELOCK 8
3124 
3125 /*****************************************************************************
3126  * IMemAllocator interface
3127  */
3128 #ifndef __IMemAllocator_INTERFACE_DEFINED__
3129 #define __IMemAllocator_INTERFACE_DEFINED__
3130 
3131 DEFINE_GUID(IID_IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
3132 #if defined(__cplusplus) && !defined(CINTERFACE)
3133 MIDL_INTERFACE("56a8689c-0ad4-11ce-b03a-0020af0ba770")
3134 IMemAllocator : public IUnknown
3135 {
3136     virtual HRESULT STDMETHODCALLTYPE SetProperties(
3137         ALLOCATOR_PROPERTIES *pRequest,
3138         ALLOCATOR_PROPERTIES *pActual) = 0;
3139 
3140     virtual HRESULT STDMETHODCALLTYPE GetProperties(
3141         ALLOCATOR_PROPERTIES *pProps) = 0;
3142 
3143     virtual HRESULT STDMETHODCALLTYPE Commit(
3144         ) = 0;
3145 
3146     virtual HRESULT STDMETHODCALLTYPE Decommit(
3147         ) = 0;
3148 
3149     virtual HRESULT STDMETHODCALLTYPE GetBuffer(
3150         IMediaSample **ppBuffer,
3151         REFERENCE_TIME *pStartTime,
3152         REFERENCE_TIME *pEndTime,
3153         DWORD dwFlags) = 0;
3154 
3155     virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
3156         IMediaSample *pBuffer) = 0;
3157 
3158 };
3159 #ifdef __CRT_UUID_DECL
3160 __CRT_UUID_DECL(IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
3161 #endif
3162 #else
3163 typedef struct IMemAllocatorVtbl {
3164     BEGIN_INTERFACE
3165 
3166     /*** IUnknown methods ***/
3167     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3168         IMemAllocator* This,
3169         REFIID riid,
3170         void **ppvObject);
3171 
3172     ULONG (STDMETHODCALLTYPE *AddRef)(
3173         IMemAllocator* This);
3174 
3175     ULONG (STDMETHODCALLTYPE *Release)(
3176         IMemAllocator* This);
3177 
3178     /*** IMemAllocator methods ***/
3179     HRESULT (STDMETHODCALLTYPE *SetProperties)(
3180         IMemAllocator* This,
3181         ALLOCATOR_PROPERTIES *pRequest,
3182         ALLOCATOR_PROPERTIES *pActual);
3183 
3184     HRESULT (STDMETHODCALLTYPE *GetProperties)(
3185         IMemAllocator* This,
3186         ALLOCATOR_PROPERTIES *pProps);
3187 
3188     HRESULT (STDMETHODCALLTYPE *Commit)(
3189         IMemAllocator* This);
3190 
3191     HRESULT (STDMETHODCALLTYPE *Decommit)(
3192         IMemAllocator* This);
3193 
3194     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
3195         IMemAllocator* This,
3196         IMediaSample **ppBuffer,
3197         REFERENCE_TIME *pStartTime,
3198         REFERENCE_TIME *pEndTime,
3199         DWORD dwFlags);
3200 
3201     HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
3202         IMemAllocator* This,
3203         IMediaSample *pBuffer);
3204 
3205     END_INTERFACE
3206 } IMemAllocatorVtbl;
3207 interface IMemAllocator {
3208     CONST_VTBL IMemAllocatorVtbl* lpVtbl;
3209 };
3210 
3211 #ifdef COBJMACROS
3212 #ifndef WIDL_C_INLINE_WRAPPERS
3213 /*** IUnknown methods ***/
3214 #define IMemAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3215 #define IMemAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
3216 #define IMemAllocator_Release(This) (This)->lpVtbl->Release(This)
3217 /*** IMemAllocator methods ***/
3218 #define IMemAllocator_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
3219 #define IMemAllocator_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
3220 #define IMemAllocator_Commit(This) (This)->lpVtbl->Commit(This)
3221 #define IMemAllocator_Decommit(This) (This)->lpVtbl->Decommit(This)
3222 #define IMemAllocator_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
3223 #define IMemAllocator_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
3224 #else
3225 /*** IUnknown methods ***/
3226 static FORCEINLINE HRESULT IMemAllocator_QueryInterface(IMemAllocator* This,REFIID riid,void **ppvObject) {
3227     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3228 }
3229 static FORCEINLINE ULONG IMemAllocator_AddRef(IMemAllocator* This) {
3230     return This->lpVtbl->AddRef(This);
3231 }
3232 static FORCEINLINE ULONG IMemAllocator_Release(IMemAllocator* This) {
3233     return This->lpVtbl->Release(This);
3234 }
3235 /*** IMemAllocator methods ***/
3236 static FORCEINLINE HRESULT IMemAllocator_SetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
3237     return This->lpVtbl->SetProperties(This,pRequest,pActual);
3238 }
3239 static FORCEINLINE HRESULT IMemAllocator_GetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pProps) {
3240     return This->lpVtbl->GetProperties(This,pProps);
3241 }
3242 static FORCEINLINE HRESULT IMemAllocator_Commit(IMemAllocator* This) {
3243     return This->lpVtbl->Commit(This);
3244 }
3245 static FORCEINLINE HRESULT IMemAllocator_Decommit(IMemAllocator* This) {
3246     return This->lpVtbl->Decommit(This);
3247 }
3248 static FORCEINLINE HRESULT IMemAllocator_GetBuffer(IMemAllocator* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) {
3249     return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags);
3250 }
3251 static FORCEINLINE HRESULT IMemAllocator_ReleaseBuffer(IMemAllocator* This,IMediaSample *pBuffer) {
3252     return This->lpVtbl->ReleaseBuffer(This,pBuffer);
3253 }
3254 #endif
3255 #endif
3256 
3257 #endif
3258 
3259 HRESULT STDMETHODCALLTYPE IMemAllocator_SetProperties_Proxy(
3260     IMemAllocator* This,
3261     ALLOCATOR_PROPERTIES *pRequest,
3262     ALLOCATOR_PROPERTIES *pActual);
3263 void __RPC_STUB IMemAllocator_SetProperties_Stub(
3264     IRpcStubBuffer* This,
3265     IRpcChannelBuffer* pRpcChannelBuffer,
3266     PRPC_MESSAGE pRpcMessage,
3267     DWORD* pdwStubPhase);
3268 HRESULT STDMETHODCALLTYPE IMemAllocator_GetProperties_Proxy(
3269     IMemAllocator* This,
3270     ALLOCATOR_PROPERTIES *pProps);
3271 void __RPC_STUB IMemAllocator_GetProperties_Stub(
3272     IRpcStubBuffer* This,
3273     IRpcChannelBuffer* pRpcChannelBuffer,
3274     PRPC_MESSAGE pRpcMessage,
3275     DWORD* pdwStubPhase);
3276 HRESULT STDMETHODCALLTYPE IMemAllocator_Commit_Proxy(
3277     IMemAllocator* This);
3278 void __RPC_STUB IMemAllocator_Commit_Stub(
3279     IRpcStubBuffer* This,
3280     IRpcChannelBuffer* pRpcChannelBuffer,
3281     PRPC_MESSAGE pRpcMessage,
3282     DWORD* pdwStubPhase);
3283 HRESULT STDMETHODCALLTYPE IMemAllocator_Decommit_Proxy(
3284     IMemAllocator* This);
3285 void __RPC_STUB IMemAllocator_Decommit_Stub(
3286     IRpcStubBuffer* This,
3287     IRpcChannelBuffer* pRpcChannelBuffer,
3288     PRPC_MESSAGE pRpcMessage,
3289     DWORD* pdwStubPhase);
3290 HRESULT STDMETHODCALLTYPE IMemAllocator_GetBuffer_Proxy(
3291     IMemAllocator* This,
3292     IMediaSample **ppBuffer,
3293     REFERENCE_TIME *pStartTime,
3294     REFERENCE_TIME *pEndTime,
3295     DWORD dwFlags);
3296 void __RPC_STUB IMemAllocator_GetBuffer_Stub(
3297     IRpcStubBuffer* This,
3298     IRpcChannelBuffer* pRpcChannelBuffer,
3299     PRPC_MESSAGE pRpcMessage,
3300     DWORD* pdwStubPhase);
3301 HRESULT STDMETHODCALLTYPE IMemAllocator_ReleaseBuffer_Proxy(
3302     IMemAllocator* This,
3303     IMediaSample *pBuffer);
3304 void __RPC_STUB IMemAllocator_ReleaseBuffer_Stub(
3305     IRpcStubBuffer* This,
3306     IRpcChannelBuffer* pRpcChannelBuffer,
3307     PRPC_MESSAGE pRpcMessage,
3308     DWORD* pdwStubPhase);
3309 
3310 #endif  /* __IMemAllocator_INTERFACE_DEFINED__ */
3311 
3312 typedef IMemAllocator *PMEMALLOCATOR;
3313 
3314 /*****************************************************************************
3315  * IMemAllocatorCallbackTemp interface
3316  */
3317 #ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
3318 #define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
3319 
3320 DEFINE_GUID(IID_IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
3321 #if defined(__cplusplus) && !defined(CINTERFACE)
3322 MIDL_INTERFACE("379a0cf0-c1de-11d2-abf5-00a0c905f375")
3323 IMemAllocatorCallbackTemp : public IMemAllocator
3324 {
3325     virtual HRESULT STDMETHODCALLTYPE SetNotify(
3326         IMemAllocatorNotifyCallbackTemp *pNotify) = 0;
3327 
3328     virtual HRESULT STDMETHODCALLTYPE GetFreeCount(
3329         LONG *plBuffersFree) = 0;
3330 
3331 };
3332 #ifdef __CRT_UUID_DECL
3333 __CRT_UUID_DECL(IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
3334 #endif
3335 #else
3336 typedef struct IMemAllocatorCallbackTempVtbl {
3337     BEGIN_INTERFACE
3338 
3339     /*** IUnknown methods ***/
3340     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3341         IMemAllocatorCallbackTemp* This,
3342         REFIID riid,
3343         void **ppvObject);
3344 
3345     ULONG (STDMETHODCALLTYPE *AddRef)(
3346         IMemAllocatorCallbackTemp* This);
3347 
3348     ULONG (STDMETHODCALLTYPE *Release)(
3349         IMemAllocatorCallbackTemp* This);
3350 
3351     /*** IMemAllocator methods ***/
3352     HRESULT (STDMETHODCALLTYPE *SetProperties)(
3353         IMemAllocatorCallbackTemp* This,
3354         ALLOCATOR_PROPERTIES *pRequest,
3355         ALLOCATOR_PROPERTIES *pActual);
3356 
3357     HRESULT (STDMETHODCALLTYPE *GetProperties)(
3358         IMemAllocatorCallbackTemp* This,
3359         ALLOCATOR_PROPERTIES *pProps);
3360 
3361     HRESULT (STDMETHODCALLTYPE *Commit)(
3362         IMemAllocatorCallbackTemp* This);
3363 
3364     HRESULT (STDMETHODCALLTYPE *Decommit)(
3365         IMemAllocatorCallbackTemp* This);
3366 
3367     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
3368         IMemAllocatorCallbackTemp* This,
3369         IMediaSample **ppBuffer,
3370         REFERENCE_TIME *pStartTime,
3371         REFERENCE_TIME *pEndTime,
3372         DWORD dwFlags);
3373 
3374     HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
3375         IMemAllocatorCallbackTemp* This,
3376         IMediaSample *pBuffer);
3377 
3378     /*** IMemAllocatorCallbackTemp methods ***/
3379     HRESULT (STDMETHODCALLTYPE *SetNotify)(
3380         IMemAllocatorCallbackTemp* This,
3381         IMemAllocatorNotifyCallbackTemp *pNotify);
3382 
3383     HRESULT (STDMETHODCALLTYPE *GetFreeCount)(
3384         IMemAllocatorCallbackTemp* This,
3385         LONG *plBuffersFree);
3386 
3387     END_INTERFACE
3388 } IMemAllocatorCallbackTempVtbl;
3389 interface IMemAllocatorCallbackTemp {
3390     CONST_VTBL IMemAllocatorCallbackTempVtbl* lpVtbl;
3391 };
3392 
3393 #ifdef COBJMACROS
3394 #ifndef WIDL_C_INLINE_WRAPPERS
3395 /*** IUnknown methods ***/
3396 #define IMemAllocatorCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3397 #define IMemAllocatorCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
3398 #define IMemAllocatorCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
3399 /*** IMemAllocator methods ***/
3400 #define IMemAllocatorCallbackTemp_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
3401 #define IMemAllocatorCallbackTemp_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
3402 #define IMemAllocatorCallbackTemp_Commit(This) (This)->lpVtbl->Commit(This)
3403 #define IMemAllocatorCallbackTemp_Decommit(This) (This)->lpVtbl->Decommit(This)
3404 #define IMemAllocatorCallbackTemp_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
3405 #define IMemAllocatorCallbackTemp_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
3406 /*** IMemAllocatorCallbackTemp methods ***/
3407 #define IMemAllocatorCallbackTemp_SetNotify(This,pNotify) (This)->lpVtbl->SetNotify(This,pNotify)
3408 #define IMemAllocatorCallbackTemp_GetFreeCount(This,plBuffersFree) (This)->lpVtbl->GetFreeCount(This,plBuffersFree)
3409 #else
3410 /*** IUnknown methods ***/
3411 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_QueryInterface(IMemAllocatorCallbackTemp* This,REFIID riid,void **ppvObject) {
3412     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3413 }
3414 static FORCEINLINE ULONG IMemAllocatorCallbackTemp_AddRef(IMemAllocatorCallbackTemp* This) {
3415     return This->lpVtbl->AddRef(This);
3416 }
3417 static FORCEINLINE ULONG IMemAllocatorCallbackTemp_Release(IMemAllocatorCallbackTemp* This) {
3418     return This->lpVtbl->Release(This);
3419 }
3420 /*** IMemAllocator methods ***/
3421 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_SetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
3422     return This->lpVtbl->SetProperties(This,pRequest,pActual);
3423 }
3424 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pProps) {
3425     return This->lpVtbl->GetProperties(This,pProps);
3426 }
3427 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_Commit(IMemAllocatorCallbackTemp* This) {
3428     return This->lpVtbl->Commit(This);
3429 }
3430 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_Decommit(IMemAllocatorCallbackTemp* This) {
3431     return This->lpVtbl->Decommit(This);
3432 }
3433 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetBuffer(IMemAllocatorCallbackTemp* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) {
3434     return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags);
3435 }
3436 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_ReleaseBuffer(IMemAllocatorCallbackTemp* This,IMediaSample *pBuffer) {
3437     return This->lpVtbl->ReleaseBuffer(This,pBuffer);
3438 }
3439 /*** IMemAllocatorCallbackTemp methods ***/
3440 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_SetNotify(IMemAllocatorCallbackTemp* This,IMemAllocatorNotifyCallbackTemp *pNotify) {
3441     return This->lpVtbl->SetNotify(This,pNotify);
3442 }
3443 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetFreeCount(IMemAllocatorCallbackTemp* This,LONG *plBuffersFree) {
3444     return This->lpVtbl->GetFreeCount(This,plBuffersFree);
3445 }
3446 #endif
3447 #endif
3448 
3449 #endif
3450 
3451 HRESULT STDMETHODCALLTYPE IMemAllocatorCallbackTemp_SetNotify_Proxy(
3452     IMemAllocatorCallbackTemp* This,
3453     IMemAllocatorNotifyCallbackTemp *pNotify);
3454 void __RPC_STUB IMemAllocatorCallbackTemp_SetNotify_Stub(
3455     IRpcStubBuffer* This,
3456     IRpcChannelBuffer* pRpcChannelBuffer,
3457     PRPC_MESSAGE pRpcMessage,
3458     DWORD* pdwStubPhase);
3459 HRESULT STDMETHODCALLTYPE IMemAllocatorCallbackTemp_GetFreeCount_Proxy(
3460     IMemAllocatorCallbackTemp* This,
3461     LONG *plBuffersFree);
3462 void __RPC_STUB IMemAllocatorCallbackTemp_GetFreeCount_Stub(
3463     IRpcStubBuffer* This,
3464     IRpcChannelBuffer* pRpcChannelBuffer,
3465     PRPC_MESSAGE pRpcMessage,
3466     DWORD* pdwStubPhase);
3467 
3468 #endif  /* __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ */
3469 
3470 
3471 /*****************************************************************************
3472  * IMemAllocatorNotifyCallbackTemp interface
3473  */
3474 #ifndef __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
3475 #define __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
3476 
3477 DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
3478 #if defined(__cplusplus) && !defined(CINTERFACE)
3479 MIDL_INTERFACE("92980b30-c1de-11d2-abf5-00a0c905f375")
3480 IMemAllocatorNotifyCallbackTemp : public IUnknown
3481 {
3482     virtual HRESULT STDMETHODCALLTYPE NotifyRelease(
3483         ) = 0;
3484 
3485 };
3486 #ifdef __CRT_UUID_DECL
3487 __CRT_UUID_DECL(IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
3488 #endif
3489 #else
3490 typedef struct IMemAllocatorNotifyCallbackTempVtbl {
3491     BEGIN_INTERFACE
3492 
3493     /*** IUnknown methods ***/
3494     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3495         IMemAllocatorNotifyCallbackTemp* This,
3496         REFIID riid,
3497         void **ppvObject);
3498 
3499     ULONG (STDMETHODCALLTYPE *AddRef)(
3500         IMemAllocatorNotifyCallbackTemp* This);
3501 
3502     ULONG (STDMETHODCALLTYPE *Release)(
3503         IMemAllocatorNotifyCallbackTemp* This);
3504 
3505     /*** IMemAllocatorNotifyCallbackTemp methods ***/
3506     HRESULT (STDMETHODCALLTYPE *NotifyRelease)(
3507         IMemAllocatorNotifyCallbackTemp* This);
3508 
3509     END_INTERFACE
3510 } IMemAllocatorNotifyCallbackTempVtbl;
3511 interface IMemAllocatorNotifyCallbackTemp {
3512     CONST_VTBL IMemAllocatorNotifyCallbackTempVtbl* lpVtbl;
3513 };
3514 
3515 #ifdef COBJMACROS
3516 #ifndef WIDL_C_INLINE_WRAPPERS
3517 /*** IUnknown methods ***/
3518 #define IMemAllocatorNotifyCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3519 #define IMemAllocatorNotifyCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
3520 #define IMemAllocatorNotifyCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
3521 /*** IMemAllocatorNotifyCallbackTemp methods ***/
3522 #define IMemAllocatorNotifyCallbackTemp_NotifyRelease(This) (This)->lpVtbl->NotifyRelease(This)
3523 #else
3524 /*** IUnknown methods ***/
3525 static FORCEINLINE HRESULT IMemAllocatorNotifyCallbackTemp_QueryInterface(IMemAllocatorNotifyCallbackTemp* This,REFIID riid,void **ppvObject) {
3526     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3527 }
3528 static FORCEINLINE ULONG IMemAllocatorNotifyCallbackTemp_AddRef(IMemAllocatorNotifyCallbackTemp* This) {
3529     return This->lpVtbl->AddRef(This);
3530 }
3531 static FORCEINLINE ULONG IMemAllocatorNotifyCallbackTemp_Release(IMemAllocatorNotifyCallbackTemp* This) {
3532     return This->lpVtbl->Release(This);
3533 }
3534 /*** IMemAllocatorNotifyCallbackTemp methods ***/
3535 static FORCEINLINE HRESULT IMemAllocatorNotifyCallbackTemp_NotifyRelease(IMemAllocatorNotifyCallbackTemp* This) {
3536     return This->lpVtbl->NotifyRelease(This);
3537 }
3538 #endif
3539 #endif
3540 
3541 #endif
3542 
3543 HRESULT STDMETHODCALLTYPE IMemAllocatorNotifyCallbackTemp_NotifyRelease_Proxy(
3544     IMemAllocatorNotifyCallbackTemp* This);
3545 void __RPC_STUB IMemAllocatorNotifyCallbackTemp_NotifyRelease_Stub(
3546     IRpcStubBuffer* This,
3547     IRpcChannelBuffer* pRpcChannelBuffer,
3548     PRPC_MESSAGE pRpcMessage,
3549     DWORD* pdwStubPhase);
3550 
3551 #endif  /* __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ */
3552 
3553 
3554 /*****************************************************************************
3555  * IMemInputPin interface
3556  */
3557 #ifndef __IMemInputPin_INTERFACE_DEFINED__
3558 #define __IMemInputPin_INTERFACE_DEFINED__
3559 
3560 DEFINE_GUID(IID_IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
3561 #if defined(__cplusplus) && !defined(CINTERFACE)
3562 MIDL_INTERFACE("56a8689d-0ad4-11ce-b03a-0020af0ba770")
3563 IMemInputPin : public IUnknown
3564 {
3565     virtual HRESULT STDMETHODCALLTYPE GetAllocator(
3566         IMemAllocator **ppAllocator) = 0;
3567 
3568     virtual HRESULT STDMETHODCALLTYPE NotifyAllocator(
3569         IMemAllocator *pAllocator,
3570         WINBOOL bReadOnly) = 0;
3571 
3572     virtual HRESULT STDMETHODCALLTYPE GetAllocatorRequirements(
3573         ALLOCATOR_PROPERTIES *pProps) = 0;
3574 
3575     virtual HRESULT STDMETHODCALLTYPE Receive(
3576         IMediaSample *pSample) = 0;
3577 
3578     virtual HRESULT STDMETHODCALLTYPE ReceiveMultiple(
3579         IMediaSample **pSamples,
3580         LONG nSamples,
3581         LONG *nSamplesProcessed) = 0;
3582 
3583     virtual HRESULT STDMETHODCALLTYPE ReceiveCanBlock(
3584         ) = 0;
3585 
3586 };
3587 #ifdef __CRT_UUID_DECL
3588 __CRT_UUID_DECL(IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
3589 #endif
3590 #else
3591 typedef struct IMemInputPinVtbl {
3592     BEGIN_INTERFACE
3593 
3594     /*** IUnknown methods ***/
3595     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3596         IMemInputPin* This,
3597         REFIID riid,
3598         void **ppvObject);
3599 
3600     ULONG (STDMETHODCALLTYPE *AddRef)(
3601         IMemInputPin* This);
3602 
3603     ULONG (STDMETHODCALLTYPE *Release)(
3604         IMemInputPin* This);
3605 
3606     /*** IMemInputPin methods ***/
3607     HRESULT (STDMETHODCALLTYPE *GetAllocator)(
3608         IMemInputPin* This,
3609         IMemAllocator **ppAllocator);
3610 
3611     HRESULT (STDMETHODCALLTYPE *NotifyAllocator)(
3612         IMemInputPin* This,
3613         IMemAllocator *pAllocator,
3614         WINBOOL bReadOnly);
3615 
3616     HRESULT (STDMETHODCALLTYPE *GetAllocatorRequirements)(
3617         IMemInputPin* This,
3618         ALLOCATOR_PROPERTIES *pProps);
3619 
3620     HRESULT (STDMETHODCALLTYPE *Receive)(
3621         IMemInputPin* This,
3622         IMediaSample *pSample);
3623 
3624     HRESULT (STDMETHODCALLTYPE *ReceiveMultiple)(
3625         IMemInputPin* This,
3626         IMediaSample **pSamples,
3627         LONG nSamples,
3628         LONG *nSamplesProcessed);
3629 
3630     HRESULT (STDMETHODCALLTYPE *ReceiveCanBlock)(
3631         IMemInputPin* This);
3632 
3633     END_INTERFACE
3634 } IMemInputPinVtbl;
3635 interface IMemInputPin {
3636     CONST_VTBL IMemInputPinVtbl* lpVtbl;
3637 };
3638 
3639 #ifdef COBJMACROS
3640 #ifndef WIDL_C_INLINE_WRAPPERS
3641 /*** IUnknown methods ***/
3642 #define IMemInputPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3643 #define IMemInputPin_AddRef(This) (This)->lpVtbl->AddRef(This)
3644 #define IMemInputPin_Release(This) (This)->lpVtbl->Release(This)
3645 /*** IMemInputPin methods ***/
3646 #define IMemInputPin_GetAllocator(This,ppAllocator) (This)->lpVtbl->GetAllocator(This,ppAllocator)
3647 #define IMemInputPin_NotifyAllocator(This,pAllocator,bReadOnly) (This)->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly)
3648 #define IMemInputPin_GetAllocatorRequirements(This,pProps) (This)->lpVtbl->GetAllocatorRequirements(This,pProps)
3649 #define IMemInputPin_Receive(This,pSample) (This)->lpVtbl->Receive(This,pSample)
3650 #define IMemInputPin_ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed) (This)->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed)
3651 #define IMemInputPin_ReceiveCanBlock(This) (This)->lpVtbl->ReceiveCanBlock(This)
3652 #else
3653 /*** IUnknown methods ***/
3654 static FORCEINLINE HRESULT IMemInputPin_QueryInterface(IMemInputPin* This,REFIID riid,void **ppvObject) {
3655     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3656 }
3657 static FORCEINLINE ULONG IMemInputPin_AddRef(IMemInputPin* This) {
3658     return This->lpVtbl->AddRef(This);
3659 }
3660 static FORCEINLINE ULONG IMemInputPin_Release(IMemInputPin* This) {
3661     return This->lpVtbl->Release(This);
3662 }
3663 /*** IMemInputPin methods ***/
3664 static FORCEINLINE HRESULT IMemInputPin_GetAllocator(IMemInputPin* This,IMemAllocator **ppAllocator) {
3665     return This->lpVtbl->GetAllocator(This,ppAllocator);
3666 }
3667 static FORCEINLINE HRESULT IMemInputPin_NotifyAllocator(IMemInputPin* This,IMemAllocator *pAllocator,WINBOOL bReadOnly) {
3668     return This->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly);
3669 }
3670 static FORCEINLINE HRESULT IMemInputPin_GetAllocatorRequirements(IMemInputPin* This,ALLOCATOR_PROPERTIES *pProps) {
3671     return This->lpVtbl->GetAllocatorRequirements(This,pProps);
3672 }
3673 static FORCEINLINE HRESULT IMemInputPin_Receive(IMemInputPin* This,IMediaSample *pSample) {
3674     return This->lpVtbl->Receive(This,pSample);
3675 }
3676 static FORCEINLINE HRESULT IMemInputPin_ReceiveMultiple(IMemInputPin* This,IMediaSample **pSamples,LONG nSamples,LONG *nSamplesProcessed) {
3677     return This->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed);
3678 }
3679 static FORCEINLINE HRESULT IMemInputPin_ReceiveCanBlock(IMemInputPin* This) {
3680     return This->lpVtbl->ReceiveCanBlock(This);
3681 }
3682 #endif
3683 #endif
3684 
3685 #endif
3686 
3687 HRESULT STDMETHODCALLTYPE IMemInputPin_GetAllocator_Proxy(
3688     IMemInputPin* This,
3689     IMemAllocator **ppAllocator);
3690 void __RPC_STUB IMemInputPin_GetAllocator_Stub(
3691     IRpcStubBuffer* This,
3692     IRpcChannelBuffer* pRpcChannelBuffer,
3693     PRPC_MESSAGE pRpcMessage,
3694     DWORD* pdwStubPhase);
3695 HRESULT STDMETHODCALLTYPE IMemInputPin_NotifyAllocator_Proxy(
3696     IMemInputPin* This,
3697     IMemAllocator *pAllocator,
3698     WINBOOL bReadOnly);
3699 void __RPC_STUB IMemInputPin_NotifyAllocator_Stub(
3700     IRpcStubBuffer* This,
3701     IRpcChannelBuffer* pRpcChannelBuffer,
3702     PRPC_MESSAGE pRpcMessage,
3703     DWORD* pdwStubPhase);
3704 HRESULT STDMETHODCALLTYPE IMemInputPin_GetAllocatorRequirements_Proxy(
3705     IMemInputPin* This,
3706     ALLOCATOR_PROPERTIES *pProps);
3707 void __RPC_STUB IMemInputPin_GetAllocatorRequirements_Stub(
3708     IRpcStubBuffer* This,
3709     IRpcChannelBuffer* pRpcChannelBuffer,
3710     PRPC_MESSAGE pRpcMessage,
3711     DWORD* pdwStubPhase);
3712 HRESULT STDMETHODCALLTYPE IMemInputPin_Receive_Proxy(
3713     IMemInputPin* This,
3714     IMediaSample *pSample);
3715 void __RPC_STUB IMemInputPin_Receive_Stub(
3716     IRpcStubBuffer* This,
3717     IRpcChannelBuffer* pRpcChannelBuffer,
3718     PRPC_MESSAGE pRpcMessage,
3719     DWORD* pdwStubPhase);
3720 HRESULT STDMETHODCALLTYPE IMemInputPin_ReceiveMultiple_Proxy(
3721     IMemInputPin* This,
3722     IMediaSample **pSamples,
3723     LONG nSamples,
3724     LONG *nSamplesProcessed);
3725 void __RPC_STUB IMemInputPin_ReceiveMultiple_Stub(
3726     IRpcStubBuffer* This,
3727     IRpcChannelBuffer* pRpcChannelBuffer,
3728     PRPC_MESSAGE pRpcMessage,
3729     DWORD* pdwStubPhase);
3730 HRESULT STDMETHODCALLTYPE IMemInputPin_ReceiveCanBlock_Proxy(
3731     IMemInputPin* This);
3732 void __RPC_STUB IMemInputPin_ReceiveCanBlock_Stub(
3733     IRpcStubBuffer* This,
3734     IRpcChannelBuffer* pRpcChannelBuffer,
3735     PRPC_MESSAGE pRpcMessage,
3736     DWORD* pdwStubPhase);
3737 
3738 #endif  /* __IMemInputPin_INTERFACE_DEFINED__ */
3739 
3740 typedef IMemInputPin *PMEMINPUTPIN;
3741 
3742 /*****************************************************************************
3743  * IAMovieSetup interface
3744  */
3745 #ifndef __IAMovieSetup_INTERFACE_DEFINED__
3746 #define __IAMovieSetup_INTERFACE_DEFINED__
3747 
3748 DEFINE_GUID(IID_IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20);
3749 #if defined(__cplusplus) && !defined(CINTERFACE)
3750 MIDL_INTERFACE("a3d8cec0-7e5a-11cf-bbc5-00805f6cef20")
3751 IAMovieSetup : public IUnknown
3752 {
3753     virtual HRESULT STDMETHODCALLTYPE Register(
3754         ) = 0;
3755 
3756     virtual HRESULT STDMETHODCALLTYPE Unregister(
3757         ) = 0;
3758 
3759 };
3760 #ifdef __CRT_UUID_DECL
3761 __CRT_UUID_DECL(IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20)
3762 #endif
3763 #else
3764 typedef struct IAMovieSetupVtbl {
3765     BEGIN_INTERFACE
3766 
3767     /*** IUnknown methods ***/
3768     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3769         IAMovieSetup* This,
3770         REFIID riid,
3771         void **ppvObject);
3772 
3773     ULONG (STDMETHODCALLTYPE *AddRef)(
3774         IAMovieSetup* This);
3775 
3776     ULONG (STDMETHODCALLTYPE *Release)(
3777         IAMovieSetup* This);
3778 
3779     /*** IAMovieSetup methods ***/
3780     HRESULT (STDMETHODCALLTYPE *Register)(
3781         IAMovieSetup* This);
3782 
3783     HRESULT (STDMETHODCALLTYPE *Unregister)(
3784         IAMovieSetup* This);
3785 
3786     END_INTERFACE
3787 } IAMovieSetupVtbl;
3788 interface IAMovieSetup {
3789     CONST_VTBL IAMovieSetupVtbl* lpVtbl;
3790 };
3791 
3792 #ifdef COBJMACROS
3793 #ifndef WIDL_C_INLINE_WRAPPERS
3794 /*** IUnknown methods ***/
3795 #define IAMovieSetup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3796 #define IAMovieSetup_AddRef(This) (This)->lpVtbl->AddRef(This)
3797 #define IAMovieSetup_Release(This) (This)->lpVtbl->Release(This)
3798 /*** IAMovieSetup methods ***/
3799 #define IAMovieSetup_Register(This) (This)->lpVtbl->Register(This)
3800 #define IAMovieSetup_Unregister(This) (This)->lpVtbl->Unregister(This)
3801 #else
3802 /*** IUnknown methods ***/
3803 static FORCEINLINE HRESULT IAMovieSetup_QueryInterface(IAMovieSetup* This,REFIID riid,void **ppvObject) {
3804     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3805 }
3806 static FORCEINLINE ULONG IAMovieSetup_AddRef(IAMovieSetup* This) {
3807     return This->lpVtbl->AddRef(This);
3808 }
3809 static FORCEINLINE ULONG IAMovieSetup_Release(IAMovieSetup* This) {
3810     return This->lpVtbl->Release(This);
3811 }
3812 /*** IAMovieSetup methods ***/
3813 static FORCEINLINE HRESULT IAMovieSetup_Register(IAMovieSetup* This) {
3814     return This->lpVtbl->Register(This);
3815 }
3816 static FORCEINLINE HRESULT IAMovieSetup_Unregister(IAMovieSetup* This) {
3817     return This->lpVtbl->Unregister(This);
3818 }
3819 #endif
3820 #endif
3821 
3822 #endif
3823 
3824 HRESULT STDMETHODCALLTYPE IAMovieSetup_Register_Proxy(
3825     IAMovieSetup* This);
3826 void __RPC_STUB IAMovieSetup_Register_Stub(
3827     IRpcStubBuffer* This,
3828     IRpcChannelBuffer* pRpcChannelBuffer,
3829     PRPC_MESSAGE pRpcMessage,
3830     DWORD* pdwStubPhase);
3831 HRESULT STDMETHODCALLTYPE IAMovieSetup_Unregister_Proxy(
3832     IAMovieSetup* This);
3833 void __RPC_STUB IAMovieSetup_Unregister_Stub(
3834     IRpcStubBuffer* This,
3835     IRpcChannelBuffer* pRpcChannelBuffer,
3836     PRPC_MESSAGE pRpcMessage,
3837     DWORD* pdwStubPhase);
3838 
3839 #endif  /* __IAMovieSetup_INTERFACE_DEFINED__ */
3840 
3841 typedef IAMovieSetup *PAMOVIESETUP;
3842 
3843 typedef enum AM_SEEKING_SeekingFlags {
3844     AM_SEEKING_NoPositioning = 0x0,
3845     AM_SEEKING_AbsolutePositioning = 0x1,
3846     AM_SEEKING_RelativePositioning = 0x2,
3847     AM_SEEKING_IncrementalPositioning = 0x3,
3848     AM_SEEKING_PositioningBitsMask = 0x3,
3849     AM_SEEKING_SeekToKeyFrame = 0x4,
3850     AM_SEEKING_ReturnTime = 0x8,
3851     AM_SEEKING_Segment = 0x10,
3852     AM_SEEKING_NoFlush = 0x20
3853 } AM_SEEKING_SEEKING_FLAGS;
3854 
3855 typedef enum AM_SEEKING_SeekingCapabilities {
3856     AM_SEEKING_CanSeekAbsolute = 0x1,
3857     AM_SEEKING_CanSeekForwards = 0x2,
3858     AM_SEEKING_CanSeekBackwards = 0x4,
3859     AM_SEEKING_CanGetCurrentPos = 0x8,
3860     AM_SEEKING_CanGetStopPos = 0x10,
3861     AM_SEEKING_CanGetDuration = 0x20,
3862     AM_SEEKING_CanPlayBackwards = 0x40,
3863     AM_SEEKING_CanDoSegments = 0x80,
3864     AM_SEEKING_Source = 0x100
3865 } AM_SEEKING_SEEKING_CAPABILITIES;
3866 
3867 /*****************************************************************************
3868  * IMediaSeeking interface
3869  */
3870 #ifndef __IMediaSeeking_INTERFACE_DEFINED__
3871 #define __IMediaSeeking_INTERFACE_DEFINED__
3872 
3873 DEFINE_GUID(IID_IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
3874 #if defined(__cplusplus) && !defined(CINTERFACE)
3875 MIDL_INTERFACE("36b73880-c2c8-11cf-8b46-00805f6cef60")
3876 IMediaSeeking : public IUnknown
3877 {
3878     virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
3879         DWORD *pCapabilities) = 0;
3880 
3881     virtual HRESULT STDMETHODCALLTYPE CheckCapabilities(
3882         DWORD *pCapabilities) = 0;
3883 
3884     virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
3885         const GUID *pFormat) = 0;
3886 
3887     virtual HRESULT STDMETHODCALLTYPE QueryPreferredFormat(
3888         GUID *pFormat) = 0;
3889 
3890     virtual HRESULT STDMETHODCALLTYPE GetTimeFormat(
3891         GUID *pFormat) = 0;
3892 
3893     virtual HRESULT STDMETHODCALLTYPE IsUsingTimeFormat(
3894         const GUID *pFormat) = 0;
3895 
3896     virtual HRESULT STDMETHODCALLTYPE SetTimeFormat(
3897         const GUID *pFormat) = 0;
3898 
3899     virtual HRESULT STDMETHODCALLTYPE GetDuration(
3900         LONGLONG *pDuration) = 0;
3901 
3902     virtual HRESULT STDMETHODCALLTYPE GetStopPosition(
3903         LONGLONG *pStop) = 0;
3904 
3905     virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(
3906         LONGLONG *pCurrent) = 0;
3907 
3908     virtual HRESULT STDMETHODCALLTYPE ConvertTimeFormat(
3909         LONGLONG *pTarget,
3910         const GUID *pTargetFormat,
3911         LONGLONG Source,
3912         const GUID *pSourceFormat) = 0;
3913 
3914     virtual HRESULT STDMETHODCALLTYPE SetPositions(
3915         LONGLONG *pCurrent,
3916         DWORD dwCurrentFlags,
3917         LONGLONG *pStop,
3918         DWORD dwStopFlags) = 0;
3919 
3920     virtual HRESULT STDMETHODCALLTYPE GetPositions(
3921         LONGLONG *pCurrent,
3922         LONGLONG *pStop) = 0;
3923 
3924     virtual HRESULT STDMETHODCALLTYPE GetAvailable(
3925         LONGLONG *pEarliest,
3926         LONGLONG *pLatest) = 0;
3927 
3928     virtual HRESULT STDMETHODCALLTYPE SetRate(
3929         double dRate) = 0;
3930 
3931     virtual HRESULT STDMETHODCALLTYPE GetRate(
3932         double *pdRate) = 0;
3933 
3934     virtual HRESULT STDMETHODCALLTYPE GetPreroll(
3935         LONGLONG *pllPreroll) = 0;
3936 
3937 };
3938 #ifdef __CRT_UUID_DECL
3939 __CRT_UUID_DECL(IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
3940 #endif
3941 #else
3942 typedef struct IMediaSeekingVtbl {
3943     BEGIN_INTERFACE
3944 
3945     /*** IUnknown methods ***/
3946     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3947         IMediaSeeking* This,
3948         REFIID riid,
3949         void **ppvObject);
3950 
3951     ULONG (STDMETHODCALLTYPE *AddRef)(
3952         IMediaSeeking* This);
3953 
3954     ULONG (STDMETHODCALLTYPE *Release)(
3955         IMediaSeeking* This);
3956 
3957     /*** IMediaSeeking methods ***/
3958     HRESULT (STDMETHODCALLTYPE *GetCapabilities)(
3959         IMediaSeeking* This,
3960         DWORD *pCapabilities);
3961 
3962     HRESULT (STDMETHODCALLTYPE *CheckCapabilities)(
3963         IMediaSeeking* This,
3964         DWORD *pCapabilities);
3965 
3966     HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
3967         IMediaSeeking* This,
3968         const GUID *pFormat);
3969 
3970     HRESULT (STDMETHODCALLTYPE *QueryPreferredFormat)(
3971         IMediaSeeking* This,
3972         GUID *pFormat);
3973 
3974     HRESULT (STDMETHODCALLTYPE *GetTimeFormat)(
3975         IMediaSeeking* This,
3976         GUID *pFormat);
3977 
3978     HRESULT (STDMETHODCALLTYPE *IsUsingTimeFormat)(
3979         IMediaSeeking* This,
3980         const GUID *pFormat);
3981 
3982     HRESULT (STDMETHODCALLTYPE *SetTimeFormat)(
3983         IMediaSeeking* This,
3984         const GUID *pFormat);
3985 
3986     HRESULT (STDMETHODCALLTYPE *GetDuration)(
3987         IMediaSeeking* This,
3988         LONGLONG *pDuration);
3989 
3990     HRESULT (STDMETHODCALLTYPE *GetStopPosition)(
3991         IMediaSeeking* This,
3992         LONGLONG *pStop);
3993 
3994     HRESULT (STDMETHODCALLTYPE *GetCurrentPosition)(
3995         IMediaSeeking* This,
3996         LONGLONG *pCurrent);
3997 
3998     HRESULT (STDMETHODCALLTYPE *ConvertTimeFormat)(
3999         IMediaSeeking* This,
4000         LONGLONG *pTarget,
4001         const GUID *pTargetFormat,
4002         LONGLONG Source,
4003         const GUID *pSourceFormat);
4004 
4005     HRESULT (STDMETHODCALLTYPE *SetPositions)(
4006         IMediaSeeking* This,
4007         LONGLONG *pCurrent,
4008         DWORD dwCurrentFlags,
4009         LONGLONG *pStop,
4010         DWORD dwStopFlags);
4011 
4012     HRESULT (STDMETHODCALLTYPE *GetPositions)(
4013         IMediaSeeking* This,
4014         LONGLONG *pCurrent,
4015         LONGLONG *pStop);
4016 
4017     HRESULT (STDMETHODCALLTYPE *GetAvailable)(
4018         IMediaSeeking* This,
4019         LONGLONG *pEarliest,
4020         LONGLONG *pLatest);
4021 
4022     HRESULT (STDMETHODCALLTYPE *SetRate)(
4023         IMediaSeeking* This,
4024         double dRate);
4025 
4026     HRESULT (STDMETHODCALLTYPE *GetRate)(
4027         IMediaSeeking* This,
4028         double *pdRate);
4029 
4030     HRESULT (STDMETHODCALLTYPE *GetPreroll)(
4031         IMediaSeeking* This,
4032         LONGLONG *pllPreroll);
4033 
4034     END_INTERFACE
4035 } IMediaSeekingVtbl;
4036 interface IMediaSeeking {
4037     CONST_VTBL IMediaSeekingVtbl* lpVtbl;
4038 };
4039 
4040 #ifdef COBJMACROS
4041 #ifndef WIDL_C_INLINE_WRAPPERS
4042 /*** IUnknown methods ***/
4043 #define IMediaSeeking_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4044 #define IMediaSeeking_AddRef(This) (This)->lpVtbl->AddRef(This)
4045 #define IMediaSeeking_Release(This) (This)->lpVtbl->Release(This)
4046 /*** IMediaSeeking methods ***/
4047 #define IMediaSeeking_GetCapabilities(This,pCapabilities) (This)->lpVtbl->GetCapabilities(This,pCapabilities)
4048 #define IMediaSeeking_CheckCapabilities(This,pCapabilities) (This)->lpVtbl->CheckCapabilities(This,pCapabilities)
4049 #define IMediaSeeking_IsFormatSupported(This,pFormat) (This)->lpVtbl->IsFormatSupported(This,pFormat)
4050 #define IMediaSeeking_QueryPreferredFormat(This,pFormat) (This)->lpVtbl->QueryPreferredFormat(This,pFormat)
4051 #define IMediaSeeking_GetTimeFormat(This,pFormat) (This)->lpVtbl->GetTimeFormat(This,pFormat)
4052 #define IMediaSeeking_IsUsingTimeFormat(This,pFormat) (This)->lpVtbl->IsUsingTimeFormat(This,pFormat)
4053 #define IMediaSeeking_SetTimeFormat(This,pFormat) (This)->lpVtbl->SetTimeFormat(This,pFormat)
4054 #define IMediaSeeking_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration)
4055 #define IMediaSeeking_GetStopPosition(This,pStop) (This)->lpVtbl->GetStopPosition(This,pStop)
4056 #define IMediaSeeking_GetCurrentPosition(This,pCurrent) (This)->lpVtbl->GetCurrentPosition(This,pCurrent)
4057 #define IMediaSeeking_ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat) (This)->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat)
4058 #define IMediaSeeking_SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags) (This)->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags)
4059 #define IMediaSeeking_GetPositions(This,pCurrent,pStop) (This)->lpVtbl->GetPositions(This,pCurrent,pStop)
4060 #define IMediaSeeking_GetAvailable(This,pEarliest,pLatest) (This)->lpVtbl->GetAvailable(This,pEarliest,pLatest)
4061 #define IMediaSeeking_SetRate(This,dRate) (This)->lpVtbl->SetRate(This,dRate)
4062 #define IMediaSeeking_GetRate(This,pdRate) (This)->lpVtbl->GetRate(This,pdRate)
4063 #define IMediaSeeking_GetPreroll(This,pllPreroll) (This)->lpVtbl->GetPreroll(This,pllPreroll)
4064 #else
4065 /*** IUnknown methods ***/
4066 static FORCEINLINE HRESULT IMediaSeeking_QueryInterface(IMediaSeeking* This,REFIID riid,void **ppvObject) {
4067     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4068 }
4069 static FORCEINLINE ULONG IMediaSeeking_AddRef(IMediaSeeking* This) {
4070     return This->lpVtbl->AddRef(This);
4071 }
4072 static FORCEINLINE ULONG IMediaSeeking_Release(IMediaSeeking* This) {
4073     return This->lpVtbl->Release(This);
4074 }
4075 /*** IMediaSeeking methods ***/
4076 static FORCEINLINE HRESULT IMediaSeeking_GetCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
4077     return This->lpVtbl->GetCapabilities(This,pCapabilities);
4078 }
4079 static FORCEINLINE HRESULT IMediaSeeking_CheckCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
4080     return This->lpVtbl->CheckCapabilities(This,pCapabilities);
4081 }
4082 static FORCEINLINE HRESULT IMediaSeeking_IsFormatSupported(IMediaSeeking* This,const GUID *pFormat) {
4083     return This->lpVtbl->IsFormatSupported(This,pFormat);
4084 }
4085 static FORCEINLINE HRESULT IMediaSeeking_QueryPreferredFormat(IMediaSeeking* This,GUID *pFormat) {
4086     return This->lpVtbl->QueryPreferredFormat(This,pFormat);
4087 }
4088 static FORCEINLINE HRESULT IMediaSeeking_GetTimeFormat(IMediaSeeking* This,GUID *pFormat) {
4089     return This->lpVtbl->GetTimeFormat(This,pFormat);
4090 }
4091 static FORCEINLINE HRESULT IMediaSeeking_IsUsingTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
4092     return This->lpVtbl->IsUsingTimeFormat(This,pFormat);
4093 }
4094 static FORCEINLINE HRESULT IMediaSeeking_SetTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
4095     return This->lpVtbl->SetTimeFormat(This,pFormat);
4096 }
4097 static FORCEINLINE HRESULT IMediaSeeking_GetDuration(IMediaSeeking* This,LONGLONG *pDuration) {
4098     return This->lpVtbl->GetDuration(This,pDuration);
4099 }
4100 static FORCEINLINE HRESULT IMediaSeeking_GetStopPosition(IMediaSeeking* This,LONGLONG *pStop) {
4101     return This->lpVtbl->GetStopPosition(This,pStop);
4102 }
4103 static FORCEINLINE HRESULT IMediaSeeking_GetCurrentPosition(IMediaSeeking* This,LONGLONG *pCurrent) {
4104     return This->lpVtbl->GetCurrentPosition(This,pCurrent);
4105 }
4106 static FORCEINLINE HRESULT IMediaSeeking_ConvertTimeFormat(IMediaSeeking* This,LONGLONG *pTarget,const GUID *pTargetFormat,LONGLONG Source,const GUID *pSourceFormat) {
4107     return This->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat);
4108 }
4109 static FORCEINLINE HRESULT IMediaSeeking_SetPositions(IMediaSeeking* This,LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags) {
4110     return This->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags);
4111 }
4112 static FORCEINLINE HRESULT IMediaSeeking_GetPositions(IMediaSeeking* This,LONGLONG *pCurrent,LONGLONG *pStop) {
4113     return This->lpVtbl->GetPositions(This,pCurrent,pStop);
4114 }
4115 static FORCEINLINE HRESULT IMediaSeeking_GetAvailable(IMediaSeeking* This,LONGLONG *pEarliest,LONGLONG *pLatest) {
4116     return This->lpVtbl->GetAvailable(This,pEarliest,pLatest);
4117 }
4118 static FORCEINLINE HRESULT IMediaSeeking_SetRate(IMediaSeeking* This,double dRate) {
4119     return This->lpVtbl->SetRate(This,dRate);
4120 }
4121 static FORCEINLINE HRESULT IMediaSeeking_GetRate(IMediaSeeking* This,double *pdRate) {
4122     return This->lpVtbl->GetRate(This,pdRate);
4123 }
4124 static FORCEINLINE HRESULT IMediaSeeking_GetPreroll(IMediaSeeking* This,LONGLONG *pllPreroll) {
4125     return This->lpVtbl->GetPreroll(This,pllPreroll);
4126 }
4127 #endif
4128 #endif
4129 
4130 #endif
4131 
4132 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetCapabilities_Proxy(
4133     IMediaSeeking* This,
4134     DWORD *pCapabilities);
4135 void __RPC_STUB IMediaSeeking_GetCapabilities_Stub(
4136     IRpcStubBuffer* This,
4137     IRpcChannelBuffer* pRpcChannelBuffer,
4138     PRPC_MESSAGE pRpcMessage,
4139     DWORD* pdwStubPhase);
4140 HRESULT STDMETHODCALLTYPE IMediaSeeking_CheckCapabilities_Proxy(
4141     IMediaSeeking* This,
4142     DWORD *pCapabilities);
4143 void __RPC_STUB IMediaSeeking_CheckCapabilities_Stub(
4144     IRpcStubBuffer* This,
4145     IRpcChannelBuffer* pRpcChannelBuffer,
4146     PRPC_MESSAGE pRpcMessage,
4147     DWORD* pdwStubPhase);
4148 HRESULT STDMETHODCALLTYPE IMediaSeeking_IsFormatSupported_Proxy(
4149     IMediaSeeking* This,
4150     const GUID *pFormat);
4151 void __RPC_STUB IMediaSeeking_IsFormatSupported_Stub(
4152     IRpcStubBuffer* This,
4153     IRpcChannelBuffer* pRpcChannelBuffer,
4154     PRPC_MESSAGE pRpcMessage,
4155     DWORD* pdwStubPhase);
4156 HRESULT STDMETHODCALLTYPE IMediaSeeking_QueryPreferredFormat_Proxy(
4157     IMediaSeeking* This,
4158     GUID *pFormat);
4159 void __RPC_STUB IMediaSeeking_QueryPreferredFormat_Stub(
4160     IRpcStubBuffer* This,
4161     IRpcChannelBuffer* pRpcChannelBuffer,
4162     PRPC_MESSAGE pRpcMessage,
4163     DWORD* pdwStubPhase);
4164 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetTimeFormat_Proxy(
4165     IMediaSeeking* This,
4166     GUID *pFormat);
4167 void __RPC_STUB IMediaSeeking_GetTimeFormat_Stub(
4168     IRpcStubBuffer* This,
4169     IRpcChannelBuffer* pRpcChannelBuffer,
4170     PRPC_MESSAGE pRpcMessage,
4171     DWORD* pdwStubPhase);
4172 HRESULT STDMETHODCALLTYPE IMediaSeeking_IsUsingTimeFormat_Proxy(
4173     IMediaSeeking* This,
4174     const GUID *pFormat);
4175 void __RPC_STUB IMediaSeeking_IsUsingTimeFormat_Stub(
4176     IRpcStubBuffer* This,
4177     IRpcChannelBuffer* pRpcChannelBuffer,
4178     PRPC_MESSAGE pRpcMessage,
4179     DWORD* pdwStubPhase);
4180 HRESULT STDMETHODCALLTYPE IMediaSeeking_SetTimeFormat_Proxy(
4181     IMediaSeeking* This,
4182     const GUID *pFormat);
4183 void __RPC_STUB IMediaSeeking_SetTimeFormat_Stub(
4184     IRpcStubBuffer* This,
4185     IRpcChannelBuffer* pRpcChannelBuffer,
4186     PRPC_MESSAGE pRpcMessage,
4187     DWORD* pdwStubPhase);
4188 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetDuration_Proxy(
4189     IMediaSeeking* This,
4190     LONGLONG *pDuration);
4191 void __RPC_STUB IMediaSeeking_GetDuration_Stub(
4192     IRpcStubBuffer* This,
4193     IRpcChannelBuffer* pRpcChannelBuffer,
4194     PRPC_MESSAGE pRpcMessage,
4195     DWORD* pdwStubPhase);
4196 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetStopPosition_Proxy(
4197     IMediaSeeking* This,
4198     LONGLONG *pStop);
4199 void __RPC_STUB IMediaSeeking_GetStopPosition_Stub(
4200     IRpcStubBuffer* This,
4201     IRpcChannelBuffer* pRpcChannelBuffer,
4202     PRPC_MESSAGE pRpcMessage,
4203     DWORD* pdwStubPhase);
4204 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetCurrentPosition_Proxy(
4205     IMediaSeeking* This,
4206     LONGLONG *pCurrent);
4207 void __RPC_STUB IMediaSeeking_GetCurrentPosition_Stub(
4208     IRpcStubBuffer* This,
4209     IRpcChannelBuffer* pRpcChannelBuffer,
4210     PRPC_MESSAGE pRpcMessage,
4211     DWORD* pdwStubPhase);
4212 HRESULT STDMETHODCALLTYPE IMediaSeeking_ConvertTimeFormat_Proxy(
4213     IMediaSeeking* This,
4214     LONGLONG *pTarget,
4215     const GUID *pTargetFormat,
4216     LONGLONG Source,
4217     const GUID *pSourceFormat);
4218 void __RPC_STUB IMediaSeeking_ConvertTimeFormat_Stub(
4219     IRpcStubBuffer* This,
4220     IRpcChannelBuffer* pRpcChannelBuffer,
4221     PRPC_MESSAGE pRpcMessage,
4222     DWORD* pdwStubPhase);
4223 HRESULT STDMETHODCALLTYPE IMediaSeeking_SetPositions_Proxy(
4224     IMediaSeeking* This,
4225     LONGLONG *pCurrent,
4226     DWORD dwCurrentFlags,
4227     LONGLONG *pStop,
4228     DWORD dwStopFlags);
4229 void __RPC_STUB IMediaSeeking_SetPositions_Stub(
4230     IRpcStubBuffer* This,
4231     IRpcChannelBuffer* pRpcChannelBuffer,
4232     PRPC_MESSAGE pRpcMessage,
4233     DWORD* pdwStubPhase);
4234 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetPositions_Proxy(
4235     IMediaSeeking* This,
4236     LONGLONG *pCurrent,
4237     LONGLONG *pStop);
4238 void __RPC_STUB IMediaSeeking_GetPositions_Stub(
4239     IRpcStubBuffer* This,
4240     IRpcChannelBuffer* pRpcChannelBuffer,
4241     PRPC_MESSAGE pRpcMessage,
4242     DWORD* pdwStubPhase);
4243 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetAvailable_Proxy(
4244     IMediaSeeking* This,
4245     LONGLONG *pEarliest,
4246     LONGLONG *pLatest);
4247 void __RPC_STUB IMediaSeeking_GetAvailable_Stub(
4248     IRpcStubBuffer* This,
4249     IRpcChannelBuffer* pRpcChannelBuffer,
4250     PRPC_MESSAGE pRpcMessage,
4251     DWORD* pdwStubPhase);
4252 HRESULT STDMETHODCALLTYPE IMediaSeeking_SetRate_Proxy(
4253     IMediaSeeking* This,
4254     double dRate);
4255 void __RPC_STUB IMediaSeeking_SetRate_Stub(
4256     IRpcStubBuffer* This,
4257     IRpcChannelBuffer* pRpcChannelBuffer,
4258     PRPC_MESSAGE pRpcMessage,
4259     DWORD* pdwStubPhase);
4260 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetRate_Proxy(
4261     IMediaSeeking* This,
4262     double *pdRate);
4263 void __RPC_STUB IMediaSeeking_GetRate_Stub(
4264     IRpcStubBuffer* This,
4265     IRpcChannelBuffer* pRpcChannelBuffer,
4266     PRPC_MESSAGE pRpcMessage,
4267     DWORD* pdwStubPhase);
4268 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetPreroll_Proxy(
4269     IMediaSeeking* This,
4270     LONGLONG *pllPreroll);
4271 void __RPC_STUB IMediaSeeking_GetPreroll_Stub(
4272     IRpcStubBuffer* This,
4273     IRpcChannelBuffer* pRpcChannelBuffer,
4274     PRPC_MESSAGE pRpcMessage,
4275     DWORD* pdwStubPhase);
4276 
4277 #endif  /* __IMediaSeeking_INTERFACE_DEFINED__ */
4278 
4279 typedef IMediaSeeking *PMEDIASEEKING;
4280 
4281 enum tagAM_MEDIAEVENT_FLAGS {
4282   AM_MEDIAEVENT_NONOTIFY = 0x1
4283 };
4284 
4285 #endif
4286 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
4287 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
4288 typedef interface IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
4289 #endif
4290 
4291 #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
4292 #define __IAMAnalogVideoEncoder_FWD_DEFINED__
4293 typedef interface IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
4294 #endif
4295 
4296 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
4297 #define __IAMAudioInputMixer_FWD_DEFINED__
4298 typedef interface IAMAudioInputMixer IAMAudioInputMixer;
4299 #endif
4300 
4301 #ifndef __IAMAudioRendererStats_FWD_DEFINED__
4302 #define __IAMAudioRendererStats_FWD_DEFINED__
4303 typedef interface IAMAudioRendererStats IAMAudioRendererStats;
4304 #endif
4305 
4306 #ifndef __IAMBufferNegotiation_FWD_DEFINED__
4307 #define __IAMBufferNegotiation_FWD_DEFINED__
4308 typedef interface IAMBufferNegotiation IAMBufferNegotiation;
4309 #endif
4310 
4311 #ifndef __IAMCameraControl_FWD_DEFINED__
4312 #define __IAMCameraControl_FWD_DEFINED__
4313 typedef interface IAMCameraControl IAMCameraControl;
4314 #endif
4315 
4316 #ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
4317 #define __IAMCertifiedOutputProtection_FWD_DEFINED__
4318 typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
4319 #endif
4320 
4321 #ifndef __IAMClockSlave_FWD_DEFINED__
4322 #define __IAMClockSlave_FWD_DEFINED__
4323 typedef interface IAMClockSlave IAMClockSlave;
4324 #endif
4325 
4326 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
4327 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
4328 typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
4329 #endif
4330 
4331 #ifndef __IAMCrossbar_FWD_DEFINED__
4332 #define __IAMCrossbar_FWD_DEFINED__
4333 typedef interface IAMCrossbar IAMCrossbar;
4334 #endif
4335 
4336 #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
4337 #define __IAMDevMemoryAllocator_FWD_DEFINED__
4338 typedef interface IAMDevMemoryAllocator IAMDevMemoryAllocator;
4339 #endif
4340 
4341 #ifndef __IAMDevMemoryControl_FWD_DEFINED__
4342 #define __IAMDevMemoryControl_FWD_DEFINED__
4343 typedef interface IAMDevMemoryControl IAMDevMemoryControl;
4344 #endif
4345 
4346 #ifndef __IAMDroppedFrames_FWD_DEFINED__
4347 #define __IAMDroppedFrames_FWD_DEFINED__
4348 typedef interface IAMDroppedFrames IAMDroppedFrames;
4349 #endif
4350 
4351 #ifndef __IAMExtDevice_FWD_DEFINED__
4352 #define __IAMExtDevice_FWD_DEFINED__
4353 typedef interface IAMExtDevice IAMExtDevice;
4354 #endif
4355 
4356 #ifndef __IAMExtTransport_FWD_DEFINED__
4357 #define __IAMExtTransport_FWD_DEFINED__
4358 typedef interface IAMExtTransport IAMExtTransport;
4359 #endif
4360 
4361 #ifndef __IAMGraphStreams_FWD_DEFINED__
4362 #define __IAMGraphStreams_FWD_DEFINED__
4363 typedef interface IAMGraphStreams IAMGraphStreams;
4364 #endif
4365 
4366 #ifndef __IAMLatency_FWD_DEFINED__
4367 #define __IAMLatency_FWD_DEFINED__
4368 typedef interface IAMLatency IAMLatency;
4369 #endif
4370 
4371 #ifndef __IAMOpenProgress_FWD_DEFINED__
4372 #define __IAMOpenProgress_FWD_DEFINED__
4373 typedef interface IAMOpenProgress IAMOpenProgress;
4374 #endif
4375 
4376 #ifndef __IAMOverlayFX_FWD_DEFINED__
4377 #define __IAMOverlayFX_FWD_DEFINED__
4378 typedef interface IAMOverlayFX IAMOverlayFX;
4379 #endif
4380 
4381 #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
4382 #define __IAMPhysicalPinInfo_FWD_DEFINED__
4383 typedef interface IAMPhysicalPinInfo IAMPhysicalPinInfo;
4384 #endif
4385 
4386 #ifndef __IAMPushSource_FWD_DEFINED__
4387 #define __IAMPushSource_FWD_DEFINED__
4388 typedef interface IAMPushSource IAMPushSource;
4389 #endif
4390 
4391 #ifndef __IAMStreamConfig_FWD_DEFINED__
4392 #define __IAMStreamConfig_FWD_DEFINED__
4393 typedef interface IAMStreamConfig IAMStreamConfig;
4394 #endif
4395 
4396 #ifndef __IAMTimecodeDisplay_FWD_DEFINED__
4397 #define __IAMTimecodeDisplay_FWD_DEFINED__
4398 typedef interface IAMTimecodeDisplay IAMTimecodeDisplay;
4399 #endif
4400 
4401 #ifndef __IAMTimecodeGenerator_FWD_DEFINED__
4402 #define __IAMTimecodeGenerator_FWD_DEFINED__
4403 typedef interface IAMTimecodeGenerator IAMTimecodeGenerator;
4404 #endif
4405 
4406 #ifndef __IAMTimecodeReader_FWD_DEFINED__
4407 #define __IAMTimecodeReader_FWD_DEFINED__
4408 typedef interface IAMTimecodeReader IAMTimecodeReader;
4409 #endif
4410 
4411 #ifndef __IAMTVTuner_FWD_DEFINED__
4412 #define __IAMTVTuner_FWD_DEFINED__
4413 typedef interface IAMTVTuner IAMTVTuner;
4414 #endif
4415 
4416 #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
4417 #define __IAMVfwCaptureDialogs_FWD_DEFINED__
4418 typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
4419 #endif
4420 
4421 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
4422 #define __IAMVfwCompressDialogs_FWD_DEFINED__
4423 typedef interface IAMVfwCompressDialogs IAMVfwCompressDialogs;
4424 #endif
4425 
4426 #ifndef __IAMVideoCompression_FWD_DEFINED__
4427 #define __IAMVideoCompression_FWD_DEFINED__
4428 typedef interface IAMVideoCompression IAMVideoCompression;
4429 #endif
4430 
4431 #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
4432 #define __IAMVideoDecimationProperties_FWD_DEFINED__
4433 typedef interface IAMVideoDecimationProperties IAMVideoDecimationProperties;
4434 #endif
4435 
4436 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
4437 #define __IAMVideoProcAmp_FWD_DEFINED__
4438 typedef interface IAMVideoProcAmp IAMVideoProcAmp;
4439 #endif
4440 
4441 #ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
4442 #define __IAMGraphBuilderCallback_FWD_DEFINED__
4443 typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
4444 #endif
4445 
4446 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
4447 #define __ICaptureGraphBuilder_FWD_DEFINED__
4448 typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
4449 #endif
4450 
4451 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
4452 #define __ICaptureGraphBuilder2_FWD_DEFINED__
4453 typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
4454 #endif
4455 
4456 #ifndef __IConfigAviMux_FWD_DEFINED__
4457 #define __IConfigAviMux_FWD_DEFINED__
4458 typedef interface IConfigAviMux IConfigAviMux;
4459 #endif
4460 
4461 #ifndef __IConfigInterleaving_FWD_DEFINED__
4462 #define __IConfigInterleaving_FWD_DEFINED__
4463 typedef interface IConfigInterleaving IConfigInterleaving;
4464 #endif
4465 
4466 #ifndef __IDecimateVideoImage_FWD_DEFINED__
4467 #define __IDecimateVideoImage_FWD_DEFINED__
4468 typedef interface IDecimateVideoImage IDecimateVideoImage;
4469 #endif
4470 
4471 #ifndef __IDrawVideoImage_FWD_DEFINED__
4472 #define __IDrawVideoImage_FWD_DEFINED__
4473 typedef interface IDrawVideoImage IDrawVideoImage;
4474 #endif
4475 
4476 #ifndef __IEnumRegFilters_FWD_DEFINED__
4477 #define __IEnumRegFilters_FWD_DEFINED__
4478 typedef interface IEnumRegFilters IEnumRegFilters;
4479 #endif
4480 
4481 #ifndef __IEnumStreamIdMap_FWD_DEFINED__
4482 #define __IEnumStreamIdMap_FWD_DEFINED__
4483 typedef interface IEnumStreamIdMap IEnumStreamIdMap;
4484 #endif
4485 
4486 #ifndef __IFileSourceFilter_FWD_DEFINED__
4487 #define __IFileSourceFilter_FWD_DEFINED__
4488 typedef interface IFileSourceFilter IFileSourceFilter;
4489 #endif
4490 
4491 #ifndef __IFileSinkFilter_FWD_DEFINED__
4492 #define __IFileSinkFilter_FWD_DEFINED__
4493 typedef interface IFileSinkFilter IFileSinkFilter;
4494 #endif
4495 
4496 #ifndef __IFileSinkFilter2_FWD_DEFINED__
4497 #define __IFileSinkFilter2_FWD_DEFINED__
4498 typedef interface IFileSinkFilter2 IFileSinkFilter2;
4499 #endif
4500 
4501 #ifndef __IFilterMapper_FWD_DEFINED__
4502 #define __IFilterMapper_FWD_DEFINED__
4503 typedef interface IFilterMapper IFilterMapper;
4504 #endif
4505 
4506 #ifndef __IFilterMapper2_FWD_DEFINED__
4507 #define __IFilterMapper2_FWD_DEFINED__
4508 typedef interface IFilterMapper2 IFilterMapper2;
4509 #endif
4510 
4511 #ifndef __IGraphBuilder_FWD_DEFINED__
4512 #define __IGraphBuilder_FWD_DEFINED__
4513 typedef interface IGraphBuilder IGraphBuilder;
4514 #endif
4515 
4516 #ifndef __IKsPropertySet_FWD_DEFINED__
4517 #define __IKsPropertySet_FWD_DEFINED__
4518 typedef interface IKsPropertySet IKsPropertySet;
4519 #endif
4520 
4521 #ifndef __IMediaEventSink_FWD_DEFINED__
4522 #define __IMediaEventSink_FWD_DEFINED__
4523 typedef interface IMediaEventSink IMediaEventSink;
4524 #endif
4525 
4526 #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
4527 #define __IMpeg2Demultiplexer_FWD_DEFINED__
4528 typedef interface IMpeg2Demultiplexer IMpeg2Demultiplexer;
4529 #endif
4530 
4531 #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
4532 #define __IMPEG2StreamIdMap_FWD_DEFINED__
4533 typedef interface IMPEG2StreamIdMap IMPEG2StreamIdMap;
4534 #endif
4535 
4536 #ifndef __IOverlay_FWD_DEFINED__
4537 #define __IOverlay_FWD_DEFINED__
4538 typedef interface IOverlay IOverlay;
4539 #endif
4540 
4541 #ifndef __IOverlayNotify_FWD_DEFINED__
4542 #define __IOverlayNotify_FWD_DEFINED__
4543 typedef interface IOverlayNotify IOverlayNotify;
4544 #endif
4545 
4546 #ifndef __IOverlayNotify2_FWD_DEFINED__
4547 #define __IOverlayNotify2_FWD_DEFINED__
4548 typedef interface IOverlayNotify2 IOverlayNotify2;
4549 #endif
4550 
4551 #ifndef __IQualityControl_FWD_DEFINED__
4552 #define __IQualityControl_FWD_DEFINED__
4553 typedef interface IQualityControl IQualityControl;
4554 #endif
4555 
4556 #ifndef __ISeekingPassThru_FWD_DEFINED__
4557 #define __ISeekingPassThru_FWD_DEFINED__
4558 typedef interface ISeekingPassThru ISeekingPassThru;
4559 #endif
4560 
4561 typedef enum tagAnalogVideoStandard {
4562     AnalogVideo_None = 0x0,
4563     AnalogVideo_NTSC_M = 0x1,
4564     AnalogVideo_NTSC_M_J = 0x2,
4565     AnalogVideo_NTSC_433 = 0x4,
4566     AnalogVideo_PAL_B = 0x10,
4567     AnalogVideo_PAL_D = 0x20,
4568     AnalogVideo_PAL_G = 0x40,
4569     AnalogVideo_PAL_H = 0x80,
4570     AnalogVideo_PAL_I = 0x100,
4571     AnalogVideo_PAL_M = 0x200,
4572     AnalogVideo_PAL_N = 0x400,
4573     AnalogVideo_PAL_60 = 0x800,
4574     AnalogVideo_SECAM_B = 0x1000,
4575     AnalogVideo_SECAM_D = 0x2000,
4576     AnalogVideo_SECAM_G = 0x4000,
4577     AnalogVideo_SECAM_H = 0x8000,
4578     AnalogVideo_SECAM_K = 0x10000,
4579     AnalogVideo_SECAM_K1 = 0x20000,
4580     AnalogVideo_SECAM_L = 0x40000,
4581     AnalogVideo_SECAM_L1 = 0x80000,
4582     AnalogVideo_PAL_N_COMBO = 0x100000,
4583     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,
4584     AnalogVideoMask_MCE_PAL = (((AnalogVideo_PAL_B | AnalogVideo_PAL_D) | AnalogVideo_PAL_G) | AnalogVideo_PAL_H) | AnalogVideo_PAL_I,
4585     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
4586 } AnalogVideoStandard;
4587 typedef enum tagTunerInputType {
4588     TunerInputCable = 0,
4589     TunerInputAntenna = 1
4590 } TunerInputType;
4591 typedef struct __WIDL_strmif_generated_name_00000002 {
4592     CLSID Clsid;
4593     LPWSTR Name;
4594 } REGFILTER;
4595 typedef enum tagTVAudioMode {
4596     AMTVAUDIO_MODE_MONO = 0x1,
4597     AMTVAUDIO_MODE_STEREO = 0x2,
4598     AMTVAUDIO_MODE_LANG_A = 0x10,
4599     AMTVAUDIO_MODE_LANG_B = 0x20,
4600     AMTVAUDIO_MODE_LANG_C = 0x40,
4601     AMTVAUDIO_PRESET_STEREO = 0x200,
4602     AMTVAUDIO_PRESET_LANG_A = 0x1000,
4603     AMTVAUDIO_PRESET_LANG_B = 0x2000,
4604     AMTVAUDIO_PRESET_LANG_C = 0x4000
4605 } TVAudioMode;
4606 /*****************************************************************************
4607  * IEnumRegFilters interface
4608  */
4609 #ifndef __IEnumRegFilters_INTERFACE_DEFINED__
4610 #define __IEnumRegFilters_INTERFACE_DEFINED__
4611 
4612 DEFINE_GUID(IID_IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4613 #if defined(__cplusplus) && !defined(CINTERFACE)
4614 MIDL_INTERFACE("56a868a4-0ad4-11ce-b03a-0020af0ba770")
4615 IEnumRegFilters : public IUnknown
4616 {
4617     virtual HRESULT STDMETHODCALLTYPE Next(
4618         ULONG cFilters,
4619         REGFILTER **apRegFilter,
4620         ULONG *pcFetched) = 0;
4621 
4622     virtual HRESULT STDMETHODCALLTYPE Skip(
4623         ULONG cFilters) = 0;
4624 
4625     virtual HRESULT STDMETHODCALLTYPE Reset(
4626         ) = 0;
4627 
4628     virtual HRESULT STDMETHODCALLTYPE Clone(
4629         IEnumRegFilters **ppEnum) = 0;
4630 
4631 };
4632 #ifdef __CRT_UUID_DECL
4633 __CRT_UUID_DECL(IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
4634 #endif
4635 #else
4636 typedef struct IEnumRegFiltersVtbl {
4637     BEGIN_INTERFACE
4638 
4639     /*** IUnknown methods ***/
4640     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4641         IEnumRegFilters* This,
4642         REFIID riid,
4643         void **ppvObject);
4644 
4645     ULONG (STDMETHODCALLTYPE *AddRef)(
4646         IEnumRegFilters* This);
4647 
4648     ULONG (STDMETHODCALLTYPE *Release)(
4649         IEnumRegFilters* This);
4650 
4651     /*** IEnumRegFilters methods ***/
4652     HRESULT (STDMETHODCALLTYPE *Next)(
4653         IEnumRegFilters* This,
4654         ULONG cFilters,
4655         REGFILTER **apRegFilter,
4656         ULONG *pcFetched);
4657 
4658     HRESULT (STDMETHODCALLTYPE *Skip)(
4659         IEnumRegFilters* This,
4660         ULONG cFilters);
4661 
4662     HRESULT (STDMETHODCALLTYPE *Reset)(
4663         IEnumRegFilters* This);
4664 
4665     HRESULT (STDMETHODCALLTYPE *Clone)(
4666         IEnumRegFilters* This,
4667         IEnumRegFilters **ppEnum);
4668 
4669     END_INTERFACE
4670 } IEnumRegFiltersVtbl;
4671 interface IEnumRegFilters {
4672     CONST_VTBL IEnumRegFiltersVtbl* lpVtbl;
4673 };
4674 
4675 #ifdef COBJMACROS
4676 #ifndef WIDL_C_INLINE_WRAPPERS
4677 /*** IUnknown methods ***/
4678 #define IEnumRegFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4679 #define IEnumRegFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
4680 #define IEnumRegFilters_Release(This) (This)->lpVtbl->Release(This)
4681 /*** IEnumRegFilters methods ***/
4682 #define IEnumRegFilters_Next(This,cFilters,apRegFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched)
4683 #define IEnumRegFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
4684 #define IEnumRegFilters_Reset(This) (This)->lpVtbl->Reset(This)
4685 #define IEnumRegFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
4686 #else
4687 /*** IUnknown methods ***/
4688 static FORCEINLINE HRESULT IEnumRegFilters_QueryInterface(IEnumRegFilters* This,REFIID riid,void **ppvObject) {
4689     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4690 }
4691 static FORCEINLINE ULONG IEnumRegFilters_AddRef(IEnumRegFilters* This) {
4692     return This->lpVtbl->AddRef(This);
4693 }
4694 static FORCEINLINE ULONG IEnumRegFilters_Release(IEnumRegFilters* This) {
4695     return This->lpVtbl->Release(This);
4696 }
4697 /*** IEnumRegFilters methods ***/
4698 static FORCEINLINE HRESULT IEnumRegFilters_Next(IEnumRegFilters* This,ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched) {
4699     return This->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched);
4700 }
4701 static FORCEINLINE HRESULT IEnumRegFilters_Skip(IEnumRegFilters* This,ULONG cFilters) {
4702     return This->lpVtbl->Skip(This,cFilters);
4703 }
4704 static FORCEINLINE HRESULT IEnumRegFilters_Reset(IEnumRegFilters* This) {
4705     return This->lpVtbl->Reset(This);
4706 }
4707 static FORCEINLINE HRESULT IEnumRegFilters_Clone(IEnumRegFilters* This,IEnumRegFilters **ppEnum) {
4708     return This->lpVtbl->Clone(This,ppEnum);
4709 }
4710 #endif
4711 #endif
4712 
4713 #endif
4714 
4715 HRESULT STDMETHODCALLTYPE IEnumRegFilters_Next_Proxy(
4716     IEnumRegFilters* This,
4717     ULONG cFilters,
4718     REGFILTER **apRegFilter,
4719     ULONG *pcFetched);
4720 void __RPC_STUB IEnumRegFilters_Next_Stub(
4721     IRpcStubBuffer* This,
4722     IRpcChannelBuffer* pRpcChannelBuffer,
4723     PRPC_MESSAGE pRpcMessage,
4724     DWORD* pdwStubPhase);
4725 HRESULT STDMETHODCALLTYPE IEnumRegFilters_Skip_Proxy(
4726     IEnumRegFilters* This,
4727     ULONG cFilters);
4728 void __RPC_STUB IEnumRegFilters_Skip_Stub(
4729     IRpcStubBuffer* This,
4730     IRpcChannelBuffer* pRpcChannelBuffer,
4731     PRPC_MESSAGE pRpcMessage,
4732     DWORD* pdwStubPhase);
4733 HRESULT STDMETHODCALLTYPE IEnumRegFilters_Reset_Proxy(
4734     IEnumRegFilters* This);
4735 void __RPC_STUB IEnumRegFilters_Reset_Stub(
4736     IRpcStubBuffer* This,
4737     IRpcChannelBuffer* pRpcChannelBuffer,
4738     PRPC_MESSAGE pRpcMessage,
4739     DWORD* pdwStubPhase);
4740 HRESULT STDMETHODCALLTYPE IEnumRegFilters_Clone_Proxy(
4741     IEnumRegFilters* This,
4742     IEnumRegFilters **ppEnum);
4743 void __RPC_STUB IEnumRegFilters_Clone_Stub(
4744     IRpcStubBuffer* This,
4745     IRpcChannelBuffer* pRpcChannelBuffer,
4746     PRPC_MESSAGE pRpcMessage,
4747     DWORD* pdwStubPhase);
4748 
4749 #endif  /* __IEnumRegFilters_INTERFACE_DEFINED__ */
4750 
4751 typedef IEnumRegFilters *PENUMREGFILTERS;
4752 /*****************************************************************************
4753  * IFilterMapper interface
4754  */
4755 #ifndef __IFilterMapper_INTERFACE_DEFINED__
4756 #define __IFilterMapper_INTERFACE_DEFINED__
4757 
4758 enum {
4759     MERIT_PREFERRED = 0x800000,
4760     MERIT_NORMAL = 0x600000,
4761     MERIT_UNLIKELY = 0x400000,
4762     MERIT_DO_NOT_USE = 0x200000,
4763     MERIT_SW_COMPRESSOR = 0x100000,
4764     MERIT_HW_COMPRESSOR = 0x100050
4765 };
4766 
4767 DEFINE_GUID(IID_IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4768 #if defined(__cplusplus) && !defined(CINTERFACE)
4769 MIDL_INTERFACE("56a868a3-0ad4-11ce-b03a-0020af0ba770")
4770 IFilterMapper : public IUnknown
4771 {
4772     virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
4773         CLSID clsid,
4774         LPCWSTR Name,
4775         DWORD dwMerit) = 0;
4776 
4777     virtual HRESULT STDMETHODCALLTYPE RegisterFilterInstance(
4778         CLSID clsid,
4779         LPCWSTR Name,
4780         CLSID *MRId) = 0;
4781 
4782     virtual HRESULT STDMETHODCALLTYPE RegisterPin(
4783         CLSID Filter,
4784         LPCWSTR Name,
4785         WINBOOL bRendered,
4786         WINBOOL bOutput,
4787         WINBOOL bZero,
4788         WINBOOL bMany,
4789         CLSID ConnectsToFilter,
4790         LPCWSTR ConnectsToPin) = 0;
4791 
4792     virtual HRESULT STDMETHODCALLTYPE RegisterPinType(
4793         CLSID clsFilter,
4794         LPCWSTR strName,
4795         CLSID clsMajorType,
4796         CLSID clsSubType) = 0;
4797 
4798     virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
4799         CLSID Filter) = 0;
4800 
4801     virtual HRESULT STDMETHODCALLTYPE UnregisterFilterInstance(
4802         CLSID MRId) = 0;
4803 
4804     virtual HRESULT STDMETHODCALLTYPE UnregisterPin(
4805         CLSID Filter,
4806         LPCWSTR Name) = 0;
4807 
4808     virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
4809         IEnumRegFilters **ppEnum,
4810         DWORD dwMerit,
4811         WINBOOL bInputNeeded,
4812         CLSID clsInMaj,
4813         CLSID clsInSub,
4814         WINBOOL bRender,
4815         WINBOOL bOututNeeded,
4816         CLSID clsOutMaj,
4817         CLSID clsOutSub) = 0;
4818 
4819 };
4820 #ifdef __CRT_UUID_DECL
4821 __CRT_UUID_DECL(IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
4822 #endif
4823 #else
4824 typedef struct IFilterMapperVtbl {
4825     BEGIN_INTERFACE
4826 
4827     /*** IUnknown methods ***/
4828     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4829         IFilterMapper* This,
4830         REFIID riid,
4831         void **ppvObject);
4832 
4833     ULONG (STDMETHODCALLTYPE *AddRef)(
4834         IFilterMapper* This);
4835 
4836     ULONG (STDMETHODCALLTYPE *Release)(
4837         IFilterMapper* This);
4838 
4839     /*** IFilterMapper methods ***/
4840     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
4841         IFilterMapper* This,
4842         CLSID clsid,
4843         LPCWSTR Name,
4844         DWORD dwMerit);
4845 
4846     HRESULT (STDMETHODCALLTYPE *RegisterFilterInstance)(
4847         IFilterMapper* This,
4848         CLSID clsid,
4849         LPCWSTR Name,
4850         CLSID *MRId);
4851 
4852     HRESULT (STDMETHODCALLTYPE *RegisterPin)(
4853         IFilterMapper* This,
4854         CLSID Filter,
4855         LPCWSTR Name,
4856         WINBOOL bRendered,
4857         WINBOOL bOutput,
4858         WINBOOL bZero,
4859         WINBOOL bMany,
4860         CLSID ConnectsToFilter,
4861         LPCWSTR ConnectsToPin);
4862 
4863     HRESULT (STDMETHODCALLTYPE *RegisterPinType)(
4864         IFilterMapper* This,
4865         CLSID clsFilter,
4866         LPCWSTR strName,
4867         CLSID clsMajorType,
4868         CLSID clsSubType);
4869 
4870     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
4871         IFilterMapper* This,
4872         CLSID Filter);
4873 
4874     HRESULT (STDMETHODCALLTYPE *UnregisterFilterInstance)(
4875         IFilterMapper* This,
4876         CLSID MRId);
4877 
4878     HRESULT (STDMETHODCALLTYPE *UnregisterPin)(
4879         IFilterMapper* This,
4880         CLSID Filter,
4881         LPCWSTR Name);
4882 
4883     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
4884         IFilterMapper* This,
4885         IEnumRegFilters **ppEnum,
4886         DWORD dwMerit,
4887         WINBOOL bInputNeeded,
4888         CLSID clsInMaj,
4889         CLSID clsInSub,
4890         WINBOOL bRender,
4891         WINBOOL bOututNeeded,
4892         CLSID clsOutMaj,
4893         CLSID clsOutSub);
4894 
4895     END_INTERFACE
4896 } IFilterMapperVtbl;
4897 interface IFilterMapper {
4898     CONST_VTBL IFilterMapperVtbl* lpVtbl;
4899 };
4900 
4901 #ifdef COBJMACROS
4902 #ifndef WIDL_C_INLINE_WRAPPERS
4903 /*** IUnknown methods ***/
4904 #define IFilterMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4905 #define IFilterMapper_AddRef(This) (This)->lpVtbl->AddRef(This)
4906 #define IFilterMapper_Release(This) (This)->lpVtbl->Release(This)
4907 /*** IFilterMapper methods ***/
4908 #define IFilterMapper_RegisterFilter(This,clsid,Name,dwMerit) (This)->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit)
4909 #define IFilterMapper_RegisterFilterInstance(This,clsid,Name,MRId) (This)->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId)
4910 #define IFilterMapper_RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin) (This)->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin)
4911 #define IFilterMapper_RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType) (This)->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType)
4912 #define IFilterMapper_UnregisterFilter(This,Filter) (This)->lpVtbl->UnregisterFilter(This,Filter)
4913 #define IFilterMapper_UnregisterFilterInstance(This,MRId) (This)->lpVtbl->UnregisterFilterInstance(This,MRId)
4914 #define IFilterMapper_UnregisterPin(This,Filter,Name) (This)->lpVtbl->UnregisterPin(This,Filter,Name)
4915 #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)
4916 #else
4917 /*** IUnknown methods ***/
4918 static FORCEINLINE HRESULT IFilterMapper_QueryInterface(IFilterMapper* This,REFIID riid,void **ppvObject) {
4919     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4920 }
4921 static FORCEINLINE ULONG IFilterMapper_AddRef(IFilterMapper* This) {
4922     return This->lpVtbl->AddRef(This);
4923 }
4924 static FORCEINLINE ULONG IFilterMapper_Release(IFilterMapper* This) {
4925     return This->lpVtbl->Release(This);
4926 }
4927 /*** IFilterMapper methods ***/
4928 static FORCEINLINE HRESULT IFilterMapper_RegisterFilter(IFilterMapper* This,CLSID clsid,LPCWSTR Name,DWORD dwMerit) {
4929     return This->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit);
4930 }
4931 static FORCEINLINE HRESULT IFilterMapper_RegisterFilterInstance(IFilterMapper* This,CLSID clsid,LPCWSTR Name,CLSID *MRId) {
4932     return This->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId);
4933 }
4934 static FORCEINLINE HRESULT IFilterMapper_RegisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name,WINBOOL bRendered,WINBOOL bOutput,WINBOOL bZero,WINBOOL bMany,CLSID ConnectsToFilter,LPCWSTR ConnectsToPin) {
4935     return This->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin);
4936 }
4937 static FORCEINLINE HRESULT IFilterMapper_RegisterPinType(IFilterMapper* This,CLSID clsFilter,LPCWSTR strName,CLSID clsMajorType,CLSID clsSubType) {
4938     return This->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType);
4939 }
4940 static FORCEINLINE HRESULT IFilterMapper_UnregisterFilter(IFilterMapper* This,CLSID Filter) {
4941     return This->lpVtbl->UnregisterFilter(This,Filter);
4942 }
4943 static FORCEINLINE HRESULT IFilterMapper_UnregisterFilterInstance(IFilterMapper* This,CLSID MRId) {
4944     return This->lpVtbl->UnregisterFilterInstance(This,MRId);
4945 }
4946 static FORCEINLINE HRESULT IFilterMapper_UnregisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name) {
4947     return This->lpVtbl->UnregisterPin(This,Filter,Name);
4948 }
4949 static FORCEINLINE HRESULT IFilterMapper_EnumMatchingFilters(IFilterMapper* This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOututNeeded,CLSID clsOutMaj,CLSID clsOutSub) {
4950     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub);
4951 }
4952 #endif
4953 #endif
4954 
4955 #endif
4956 
4957 HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterFilter_Proxy(
4958     IFilterMapper* This,
4959     CLSID clsid,
4960     LPCWSTR Name,
4961     DWORD dwMerit);
4962 void __RPC_STUB IFilterMapper_RegisterFilter_Stub(
4963     IRpcStubBuffer* This,
4964     IRpcChannelBuffer* pRpcChannelBuffer,
4965     PRPC_MESSAGE pRpcMessage,
4966     DWORD* pdwStubPhase);
4967 HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterFilterInstance_Proxy(
4968     IFilterMapper* This,
4969     CLSID clsid,
4970     LPCWSTR Name,
4971     CLSID *MRId);
4972 void __RPC_STUB IFilterMapper_RegisterFilterInstance_Stub(
4973     IRpcStubBuffer* This,
4974     IRpcChannelBuffer* pRpcChannelBuffer,
4975     PRPC_MESSAGE pRpcMessage,
4976     DWORD* pdwStubPhase);
4977 HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterPin_Proxy(
4978     IFilterMapper* This,
4979     CLSID Filter,
4980     LPCWSTR Name,
4981     WINBOOL bRendered,
4982     WINBOOL bOutput,
4983     WINBOOL bZero,
4984     WINBOOL bMany,
4985     CLSID ConnectsToFilter,
4986     LPCWSTR ConnectsToPin);
4987 void __RPC_STUB IFilterMapper_RegisterPin_Stub(
4988     IRpcStubBuffer* This,
4989     IRpcChannelBuffer* pRpcChannelBuffer,
4990     PRPC_MESSAGE pRpcMessage,
4991     DWORD* pdwStubPhase);
4992 HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterPinType_Proxy(
4993     IFilterMapper* This,
4994     CLSID clsFilter,
4995     LPCWSTR strName,
4996     CLSID clsMajorType,
4997     CLSID clsSubType);
4998 void __RPC_STUB IFilterMapper_RegisterPinType_Stub(
4999     IRpcStubBuffer* This,
5000     IRpcChannelBuffer* pRpcChannelBuffer,
5001     PRPC_MESSAGE pRpcMessage,
5002     DWORD* pdwStubPhase);
5003 HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterFilter_Proxy(
5004     IFilterMapper* This,
5005     CLSID Filter);
5006 void __RPC_STUB IFilterMapper_UnregisterFilter_Stub(
5007     IRpcStubBuffer* This,
5008     IRpcChannelBuffer* pRpcChannelBuffer,
5009     PRPC_MESSAGE pRpcMessage,
5010     DWORD* pdwStubPhase);
5011 HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterFilterInstance_Proxy(
5012     IFilterMapper* This,
5013     CLSID MRId);
5014 void __RPC_STUB IFilterMapper_UnregisterFilterInstance_Stub(
5015     IRpcStubBuffer* This,
5016     IRpcChannelBuffer* pRpcChannelBuffer,
5017     PRPC_MESSAGE pRpcMessage,
5018     DWORD* pdwStubPhase);
5019 HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterPin_Proxy(
5020     IFilterMapper* This,
5021     CLSID Filter,
5022     LPCWSTR Name);
5023 void __RPC_STUB IFilterMapper_UnregisterPin_Stub(
5024     IRpcStubBuffer* This,
5025     IRpcChannelBuffer* pRpcChannelBuffer,
5026     PRPC_MESSAGE pRpcMessage,
5027     DWORD* pdwStubPhase);
5028 HRESULT STDMETHODCALLTYPE IFilterMapper_EnumMatchingFilters_Proxy(
5029     IFilterMapper* This,
5030     IEnumRegFilters **ppEnum,
5031     DWORD dwMerit,
5032     WINBOOL bInputNeeded,
5033     CLSID clsInMaj,
5034     CLSID clsInSub,
5035     WINBOOL bRender,
5036     WINBOOL bOututNeeded,
5037     CLSID clsOutMaj,
5038     CLSID clsOutSub);
5039 void __RPC_STUB IFilterMapper_EnumMatchingFilters_Stub(
5040     IRpcStubBuffer* This,
5041     IRpcChannelBuffer* pRpcChannelBuffer,
5042     PRPC_MESSAGE pRpcMessage,
5043     DWORD* pdwStubPhase);
5044 
5045 #endif  /* __IFilterMapper_INTERFACE_DEFINED__ */
5046 
5047 typedef struct __WIDL_strmif_generated_name_00000003 {
5048     const CLSID *clsMajorType;
5049     const CLSID *clsMinorType;
5050 } REGPINTYPES;
5051 typedef struct __WIDL_strmif_generated_name_00000004 {
5052     LPWSTR strName;
5053     WINBOOL bRendered;
5054     WINBOOL bOutput;
5055     WINBOOL bZero;
5056     WINBOOL bMany;
5057     const CLSID *clsConnectsToFilter;
5058     const WCHAR *strConnectsToPin;
5059     UINT nMediaTypes;
5060     const REGPINTYPES *lpMediaType;
5061 } REGFILTERPINS;
5062 typedef struct __WIDL_strmif_generated_name_00000005 {
5063     CLSID clsMedium;
5064     DWORD dw1;
5065     DWORD dw2;
5066 } REGPINMEDIUM;
5067 enum {
5068     REG_PINFLAG_B_ZERO = 0x1,
5069     REG_PINFLAG_B_RENDERER = 0x2,
5070     REG_PINFLAG_B_MANY = 0x4,
5071     REG_PINFLAG_B_OUTPUT = 0x8
5072 };
5073 
5074 typedef struct __WIDL_strmif_generated_name_00000006 {
5075     DWORD dwFlags;
5076     UINT cInstances;
5077     UINT nMediaTypes;
5078     const REGPINTYPES *lpMediaType;
5079     UINT nMediums;
5080     const REGPINMEDIUM *lpMedium;
5081     const CLSID *clsPinCategory;
5082 } REGFILTERPINS2;
5083 typedef struct __WIDL_strmif_generated_name_00000007 {
5084     DWORD dwVersion;
5085     DWORD dwMerit;
5086     __C89_NAMELESS union {
5087         __C89_NAMELESS struct {
5088             ULONG cPins;
5089             const REGFILTERPINS *rgPins;
5090         } __C89_NAMELESSSTRUCTNAME1;
5091         __C89_NAMELESS struct {
5092             ULONG cPins2;
5093             const REGFILTERPINS2 *rgPins2;
5094         } __C89_NAMELESSSTRUCTNAME2;
5095     } __C89_NAMELESSUNIONNAME;
5096 } REGFILTER2;
5097 /*****************************************************************************
5098  * IFilterMapper2 interface
5099  */
5100 #ifndef __IFilterMapper2_INTERFACE_DEFINED__
5101 #define __IFilterMapper2_INTERFACE_DEFINED__
5102 
5103 DEFINE_GUID(IID_IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
5104 #if defined(__cplusplus) && !defined(CINTERFACE)
5105 MIDL_INTERFACE("b79bb0b0-33c1-11d1-abe1-00a0c905f375")
5106 IFilterMapper2 : public IUnknown
5107 {
5108     virtual HRESULT STDMETHODCALLTYPE CreateCategory(
5109         REFCLSID clsidCategory,
5110         DWORD dwCategoryMerit,
5111         LPCWSTR Description) = 0;
5112 
5113     virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
5114         const CLSID *pclsidCategory,
5115         LPCOLESTR szInstance,
5116         REFCLSID Filter) = 0;
5117 
5118     virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
5119         REFCLSID clsidFilter,
5120         LPCWSTR Name,
5121         IMoniker **ppMoniker,
5122         const CLSID *pclsidCategory,
5123         LPCOLESTR szInstance,
5124         const REGFILTER2 *prf2) = 0;
5125 
5126     virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
5127         IEnumMoniker **ppEnum,
5128         DWORD dwFlags,
5129         WINBOOL bExactMatch,
5130         DWORD dwMerit,
5131         WINBOOL bInputNeeded,
5132         DWORD cInputTypes,
5133         const GUID *pInputTypes,
5134         const REGPINMEDIUM *pMedIn,
5135         const CLSID *pPinCategoryIn,
5136         WINBOOL bRender,
5137         WINBOOL bOutputNeeded,
5138         DWORD cOutputTypes,
5139         const GUID *pOutputTypes,
5140         const REGPINMEDIUM *pMedOut,
5141         const CLSID *pPinCategoryOut) = 0;
5142 
5143 };
5144 #ifdef __CRT_UUID_DECL
5145 __CRT_UUID_DECL(IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
5146 #endif
5147 #else
5148 typedef struct IFilterMapper2Vtbl {
5149     BEGIN_INTERFACE
5150 
5151     /*** IUnknown methods ***/
5152     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5153         IFilterMapper2* This,
5154         REFIID riid,
5155         void **ppvObject);
5156 
5157     ULONG (STDMETHODCALLTYPE *AddRef)(
5158         IFilterMapper2* This);
5159 
5160     ULONG (STDMETHODCALLTYPE *Release)(
5161         IFilterMapper2* This);
5162 
5163     /*** IFilterMapper2 methods ***/
5164     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
5165         IFilterMapper2* This,
5166         REFCLSID clsidCategory,
5167         DWORD dwCategoryMerit,
5168         LPCWSTR Description);
5169 
5170     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
5171         IFilterMapper2* This,
5172         const CLSID *pclsidCategory,
5173         LPCOLESTR szInstance,
5174         REFCLSID Filter);
5175 
5176     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
5177         IFilterMapper2* This,
5178         REFCLSID clsidFilter,
5179         LPCWSTR Name,
5180         IMoniker **ppMoniker,
5181         const CLSID *pclsidCategory,
5182         LPCOLESTR szInstance,
5183         const REGFILTER2 *prf2);
5184 
5185     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
5186         IFilterMapper2* This,
5187         IEnumMoniker **ppEnum,
5188         DWORD dwFlags,
5189         WINBOOL bExactMatch,
5190         DWORD dwMerit,
5191         WINBOOL bInputNeeded,
5192         DWORD cInputTypes,
5193         const GUID *pInputTypes,
5194         const REGPINMEDIUM *pMedIn,
5195         const CLSID *pPinCategoryIn,
5196         WINBOOL bRender,
5197         WINBOOL bOutputNeeded,
5198         DWORD cOutputTypes,
5199         const GUID *pOutputTypes,
5200         const REGPINMEDIUM *pMedOut,
5201         const CLSID *pPinCategoryOut);
5202 
5203     END_INTERFACE
5204 } IFilterMapper2Vtbl;
5205 interface IFilterMapper2 {
5206     CONST_VTBL IFilterMapper2Vtbl* lpVtbl;
5207 };
5208 
5209 #ifdef COBJMACROS
5210 #ifndef WIDL_C_INLINE_WRAPPERS
5211 /*** IUnknown methods ***/
5212 #define IFilterMapper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5213 #define IFilterMapper2_AddRef(This) (This)->lpVtbl->AddRef(This)
5214 #define IFilterMapper2_Release(This) (This)->lpVtbl->Release(This)
5215 /*** IFilterMapper2 methods ***/
5216 #define IFilterMapper2_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
5217 #define IFilterMapper2_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
5218 #define IFilterMapper2_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
5219 #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)
5220 #else
5221 /*** IUnknown methods ***/
5222 static FORCEINLINE HRESULT IFilterMapper2_QueryInterface(IFilterMapper2* This,REFIID riid,void **ppvObject) {
5223     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5224 }
5225 static FORCEINLINE ULONG IFilterMapper2_AddRef(IFilterMapper2* This) {
5226     return This->lpVtbl->AddRef(This);
5227 }
5228 static FORCEINLINE ULONG IFilterMapper2_Release(IFilterMapper2* This) {
5229     return This->lpVtbl->Release(This);
5230 }
5231 /*** IFilterMapper2 methods ***/
5232 static FORCEINLINE HRESULT IFilterMapper2_CreateCategory(IFilterMapper2* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
5233     return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
5234 }
5235 static FORCEINLINE HRESULT IFilterMapper2_UnregisterFilter(IFilterMapper2* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
5236     return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
5237 }
5238 static FORCEINLINE HRESULT IFilterMapper2_RegisterFilter(IFilterMapper2* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) {
5239     return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2);
5240 }
5241 static FORCEINLINE HRESULT IFilterMapper2_EnumMatchingFilters(IFilterMapper2* This,IEnumMoniker **ppEnum,DWORD dwFlags,WINBOOL bExactMatch,DWORD dwMerit,WINBOOL bInputNeeded,DWORD cInputTypes,const GUID *pInputTypes,const REGPINMEDIUM *pMedIn,const CLSID *pPinCategoryIn,WINBOOL bRender,WINBOOL bOutputNeeded,DWORD cOutputTypes,const GUID *pOutputTypes,const REGPINMEDIUM *pMedOut,const CLSID *pPinCategoryOut) {
5242     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut);
5243 }
5244 #endif
5245 #endif
5246 
5247 #endif
5248 
5249 HRESULT STDMETHODCALLTYPE IFilterMapper2_CreateCategory_Proxy(
5250     IFilterMapper2* This,
5251     REFCLSID clsidCategory,
5252     DWORD dwCategoryMerit,
5253     LPCWSTR Description);
5254 void __RPC_STUB IFilterMapper2_CreateCategory_Stub(
5255     IRpcStubBuffer* This,
5256     IRpcChannelBuffer* pRpcChannelBuffer,
5257     PRPC_MESSAGE pRpcMessage,
5258     DWORD* pdwStubPhase);
5259 HRESULT STDMETHODCALLTYPE IFilterMapper2_UnregisterFilter_Proxy(
5260     IFilterMapper2* This,
5261     const CLSID *pclsidCategory,
5262     LPCOLESTR szInstance,
5263     REFCLSID Filter);
5264 void __RPC_STUB IFilterMapper2_UnregisterFilter_Stub(
5265     IRpcStubBuffer* This,
5266     IRpcChannelBuffer* pRpcChannelBuffer,
5267     PRPC_MESSAGE pRpcMessage,
5268     DWORD* pdwStubPhase);
5269 HRESULT STDMETHODCALLTYPE IFilterMapper2_RegisterFilter_Proxy(
5270     IFilterMapper2* This,
5271     REFCLSID clsidFilter,
5272     LPCWSTR Name,
5273     IMoniker **ppMoniker,
5274     const CLSID *pclsidCategory,
5275     LPCOLESTR szInstance,
5276     const REGFILTER2 *prf2);
5277 void __RPC_STUB IFilterMapper2_RegisterFilter_Stub(
5278     IRpcStubBuffer* This,
5279     IRpcChannelBuffer* pRpcChannelBuffer,
5280     PRPC_MESSAGE pRpcMessage,
5281     DWORD* pdwStubPhase);
5282 HRESULT STDMETHODCALLTYPE IFilterMapper2_EnumMatchingFilters_Proxy(
5283     IFilterMapper2* This,
5284     IEnumMoniker **ppEnum,
5285     DWORD dwFlags,
5286     WINBOOL bExactMatch,
5287     DWORD dwMerit,
5288     WINBOOL bInputNeeded,
5289     DWORD cInputTypes,
5290     const GUID *pInputTypes,
5291     const REGPINMEDIUM *pMedIn,
5292     const CLSID *pPinCategoryIn,
5293     WINBOOL bRender,
5294     WINBOOL bOutputNeeded,
5295     DWORD cOutputTypes,
5296     const GUID *pOutputTypes,
5297     const REGPINMEDIUM *pMedOut,
5298     const CLSID *pPinCategoryOut);
5299 void __RPC_STUB IFilterMapper2_EnumMatchingFilters_Stub(
5300     IRpcStubBuffer* This,
5301     IRpcChannelBuffer* pRpcChannelBuffer,
5302     PRPC_MESSAGE pRpcMessage,
5303     DWORD* pdwStubPhase);
5304 
5305 #endif  /* __IFilterMapper2_INTERFACE_DEFINED__ */
5306 
5307 /*****************************************************************************
5308  * IFilterMapper3 interface
5309  */
5310 #ifndef __IFilterMapper3_INTERFACE_DEFINED__
5311 #define __IFilterMapper3_INTERFACE_DEFINED__
5312 
5313 DEFINE_GUID(IID_IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
5314 #if defined(__cplusplus) && !defined(CINTERFACE)
5315 MIDL_INTERFACE("b79bb0b1-33c1-11d1-abe1-00a0c905f375")
5316 IFilterMapper3 : public IFilterMapper2
5317 {
5318     virtual HRESULT STDMETHODCALLTYPE GetICreateDevEnum(
5319         ICreateDevEnum **ppEnum) = 0;
5320 
5321 };
5322 #ifdef __CRT_UUID_DECL
5323 __CRT_UUID_DECL(IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
5324 #endif
5325 #else
5326 typedef struct IFilterMapper3Vtbl {
5327     BEGIN_INTERFACE
5328 
5329     /*** IUnknown methods ***/
5330     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5331         IFilterMapper3* This,
5332         REFIID riid,
5333         void **ppvObject);
5334 
5335     ULONG (STDMETHODCALLTYPE *AddRef)(
5336         IFilterMapper3* This);
5337 
5338     ULONG (STDMETHODCALLTYPE *Release)(
5339         IFilterMapper3* This);
5340 
5341     /*** IFilterMapper2 methods ***/
5342     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
5343         IFilterMapper3* This,
5344         REFCLSID clsidCategory,
5345         DWORD dwCategoryMerit,
5346         LPCWSTR Description);
5347 
5348     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
5349         IFilterMapper3* This,
5350         const CLSID *pclsidCategory,
5351         LPCOLESTR szInstance,
5352         REFCLSID Filter);
5353 
5354     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
5355         IFilterMapper3* This,
5356         REFCLSID clsidFilter,
5357         LPCWSTR Name,
5358         IMoniker **ppMoniker,
5359         const CLSID *pclsidCategory,
5360         LPCOLESTR szInstance,
5361         const REGFILTER2 *prf2);
5362 
5363     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
5364         IFilterMapper3* This,
5365         IEnumMoniker **ppEnum,
5366         DWORD dwFlags,
5367         WINBOOL bExactMatch,
5368         DWORD dwMerit,
5369         WINBOOL bInputNeeded,
5370         DWORD cInputTypes,
5371         const GUID *pInputTypes,
5372         const REGPINMEDIUM *pMedIn,
5373         const CLSID *pPinCategoryIn,
5374         WINBOOL bRender,
5375         WINBOOL bOutputNeeded,
5376         DWORD cOutputTypes,
5377         const GUID *pOutputTypes,
5378         const REGPINMEDIUM *pMedOut,
5379         const CLSID *pPinCategoryOut);
5380 
5381     /*** IFilterMapper3 methods ***/
5382     HRESULT (STDMETHODCALLTYPE *GetICreateDevEnum)(
5383         IFilterMapper3* This,
5384         ICreateDevEnum **ppEnum);
5385 
5386     END_INTERFACE
5387 } IFilterMapper3Vtbl;
5388 interface IFilterMapper3 {
5389     CONST_VTBL IFilterMapper3Vtbl* lpVtbl;
5390 };
5391 
5392 #ifdef COBJMACROS
5393 #ifndef WIDL_C_INLINE_WRAPPERS
5394 /*** IUnknown methods ***/
5395 #define IFilterMapper3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5396 #define IFilterMapper3_AddRef(This) (This)->lpVtbl->AddRef(This)
5397 #define IFilterMapper3_Release(This) (This)->lpVtbl->Release(This)
5398 /*** IFilterMapper2 methods ***/
5399 #define IFilterMapper3_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
5400 #define IFilterMapper3_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
5401 #define IFilterMapper3_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
5402 #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)
5403 /*** IFilterMapper3 methods ***/
5404 #define IFilterMapper3_GetICreateDevEnum(This,ppEnum) (This)->lpVtbl->GetICreateDevEnum(This,ppEnum)
5405 #else
5406 /*** IUnknown methods ***/
5407 static FORCEINLINE HRESULT IFilterMapper3_QueryInterface(IFilterMapper3* This,REFIID riid,void **ppvObject) {
5408     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5409 }
5410 static FORCEINLINE ULONG IFilterMapper3_AddRef(IFilterMapper3* This) {
5411     return This->lpVtbl->AddRef(This);
5412 }
5413 static FORCEINLINE ULONG IFilterMapper3_Release(IFilterMapper3* This) {
5414     return This->lpVtbl->Release(This);
5415 }
5416 /*** IFilterMapper2 methods ***/
5417 static FORCEINLINE HRESULT IFilterMapper3_CreateCategory(IFilterMapper3* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
5418     return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
5419 }
5420 static FORCEINLINE HRESULT IFilterMapper3_UnregisterFilter(IFilterMapper3* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
5421     return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
5422 }
5423 static FORCEINLINE HRESULT IFilterMapper3_RegisterFilter(IFilterMapper3* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) {
5424     return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2);
5425 }
5426 static FORCEINLINE HRESULT IFilterMapper3_EnumMatchingFilters(IFilterMapper3* This,IEnumMoniker **ppEnum,DWORD dwFlags,WINBOOL bExactMatch,DWORD dwMerit,WINBOOL bInputNeeded,DWORD cInputTypes,const GUID *pInputTypes,const REGPINMEDIUM *pMedIn,const CLSID *pPinCategoryIn,WINBOOL bRender,WINBOOL bOutputNeeded,DWORD cOutputTypes,const GUID *pOutputTypes,const REGPINMEDIUM *pMedOut,const CLSID *pPinCategoryOut) {
5427     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut);
5428 }
5429 /*** IFilterMapper3 methods ***/
5430 static FORCEINLINE HRESULT IFilterMapper3_GetICreateDevEnum(IFilterMapper3* This,ICreateDevEnum **ppEnum) {
5431     return This->lpVtbl->GetICreateDevEnum(This,ppEnum);
5432 }
5433 #endif
5434 #endif
5435 
5436 #endif
5437 
5438 HRESULT STDMETHODCALLTYPE IFilterMapper3_GetICreateDevEnum_Proxy(
5439     IFilterMapper3* This,
5440     ICreateDevEnum **ppEnum);
5441 void __RPC_STUB IFilterMapper3_GetICreateDevEnum_Stub(
5442     IRpcStubBuffer* This,
5443     IRpcChannelBuffer* pRpcChannelBuffer,
5444     PRPC_MESSAGE pRpcMessage,
5445     DWORD* pdwStubPhase);
5446 
5447 #endif  /* __IFilterMapper3_INTERFACE_DEFINED__ */
5448 
5449 typedef enum tagQualityMessageType {
5450     Famine = 0,
5451     Flood = 1
5452 } QualityMessageType;
5453 typedef struct tagQuality {
5454     QualityMessageType Type;
5455     LONG Proportion;
5456     REFERENCE_TIME Late;
5457     REFERENCE_TIME TimeStamp;
5458 } Quality;
5459 typedef IQualityControl *PQUALITYCONTROL;
5460 /*****************************************************************************
5461  * IQualityControl interface
5462  */
5463 #ifndef __IQualityControl_INTERFACE_DEFINED__
5464 #define __IQualityControl_INTERFACE_DEFINED__
5465 
5466 DEFINE_GUID(IID_IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5467 #if defined(__cplusplus) && !defined(CINTERFACE)
5468 MIDL_INTERFACE("56a868a5-0ad4-11ce-b03a-0020af0ba770")
5469 IQualityControl : public IUnknown
5470 {
5471     virtual HRESULT STDMETHODCALLTYPE Notify(
5472         IBaseFilter *pSelf,
5473         Quality q) = 0;
5474 
5475     virtual HRESULT STDMETHODCALLTYPE SetSink(
5476         IQualityControl *piqc) = 0;
5477 
5478 };
5479 #ifdef __CRT_UUID_DECL
5480 __CRT_UUID_DECL(IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5481 #endif
5482 #else
5483 typedef struct IQualityControlVtbl {
5484     BEGIN_INTERFACE
5485 
5486     /*** IUnknown methods ***/
5487     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5488         IQualityControl* This,
5489         REFIID riid,
5490         void **ppvObject);
5491 
5492     ULONG (STDMETHODCALLTYPE *AddRef)(
5493         IQualityControl* This);
5494 
5495     ULONG (STDMETHODCALLTYPE *Release)(
5496         IQualityControl* This);
5497 
5498     /*** IQualityControl methods ***/
5499     HRESULT (STDMETHODCALLTYPE *Notify)(
5500         IQualityControl* This,
5501         IBaseFilter *pSelf,
5502         Quality q);
5503 
5504     HRESULT (STDMETHODCALLTYPE *SetSink)(
5505         IQualityControl* This,
5506         IQualityControl *piqc);
5507 
5508     END_INTERFACE
5509 } IQualityControlVtbl;
5510 interface IQualityControl {
5511     CONST_VTBL IQualityControlVtbl* lpVtbl;
5512 };
5513 
5514 #ifdef COBJMACROS
5515 #ifndef WIDL_C_INLINE_WRAPPERS
5516 /*** IUnknown methods ***/
5517 #define IQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5518 #define IQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
5519 #define IQualityControl_Release(This) (This)->lpVtbl->Release(This)
5520 /*** IQualityControl methods ***/
5521 #define IQualityControl_Notify(This,pSelf,q) (This)->lpVtbl->Notify(This,pSelf,q)
5522 #define IQualityControl_SetSink(This,piqc) (This)->lpVtbl->SetSink(This,piqc)
5523 #else
5524 /*** IUnknown methods ***/
5525 static FORCEINLINE HRESULT IQualityControl_QueryInterface(IQualityControl* This,REFIID riid,void **ppvObject) {
5526     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5527 }
5528 static FORCEINLINE ULONG IQualityControl_AddRef(IQualityControl* This) {
5529     return This->lpVtbl->AddRef(This);
5530 }
5531 static FORCEINLINE ULONG IQualityControl_Release(IQualityControl* This) {
5532     return This->lpVtbl->Release(This);
5533 }
5534 /*** IQualityControl methods ***/
5535 static FORCEINLINE HRESULT IQualityControl_Notify(IQualityControl* This,IBaseFilter *pSelf,Quality q) {
5536     return This->lpVtbl->Notify(This,pSelf,q);
5537 }
5538 static FORCEINLINE HRESULT IQualityControl_SetSink(IQualityControl* This,IQualityControl *piqc) {
5539     return This->lpVtbl->SetSink(This,piqc);
5540 }
5541 #endif
5542 #endif
5543 
5544 #endif
5545 
5546 HRESULT STDMETHODCALLTYPE IQualityControl_Notify_Proxy(
5547     IQualityControl* This,
5548     IBaseFilter *pSelf,
5549     Quality q);
5550 void __RPC_STUB IQualityControl_Notify_Stub(
5551     IRpcStubBuffer* This,
5552     IRpcChannelBuffer* pRpcChannelBuffer,
5553     PRPC_MESSAGE pRpcMessage,
5554     DWORD* pdwStubPhase);
5555 HRESULT STDMETHODCALLTYPE IQualityControl_SetSink_Proxy(
5556     IQualityControl* This,
5557     IQualityControl *piqc);
5558 void __RPC_STUB IQualityControl_SetSink_Stub(
5559     IRpcStubBuffer* This,
5560     IRpcChannelBuffer* pRpcChannelBuffer,
5561     PRPC_MESSAGE pRpcMessage,
5562     DWORD* pdwStubPhase);
5563 
5564 #endif  /* __IQualityControl_INTERFACE_DEFINED__ */
5565 
5566 enum {
5567     CK_NOCOLORKEY = 0x0,
5568     CK_INDEX = 0x1,
5569     CK_RGB = 0x2
5570 };
5571 
5572 typedef struct tagCOLORKEY {
5573     DWORD KeyType;
5574     DWORD PaletteIndex;
5575     COLORREF LowColorValue;
5576     COLORREF HighColorValue;
5577 } COLORKEY;
5578 enum {
5579     ADVISE_NONE = 0x0,
5580     ADVISE_CLIPPING = 0x1,
5581     ADVISE_PALETTE = 0x2,
5582     ADVISE_COLORKEY = 0x4,
5583     ADVISE_POSITION = 0x8,
5584     ADVISE_DISPLAY_CHANGE = 0x10
5585 };
5586 
5587 #define ADVISE_ALL (((ADVISE_CLIPPING | ADVISE_PALETTE) | ADVISE_COLORKEY) | ADVISE_POSITION)
5588 
5589 #define ADVISE_ALL2 (ADVISE_ALL | ADVISE_DISPLAY_CHANGE)
5590 
5591 #ifndef _WINGDI_
5592 typedef struct _RGNDATAHEADER {
5593     DWORD dwSize;
5594     DWORD iType;
5595     DWORD nCount;
5596     DWORD nRgnSize;
5597     RECT rcBound;
5598 } RGNDATAHEADER;
5599 typedef struct _RGNDATA {
5600     RGNDATAHEADER rdh;
5601     char Buffer[1];
5602 } RGNDATA;
5603 #endif /* _WINGDI_ */
5604 /*****************************************************************************
5605  * IOverlayNotify interface
5606  */
5607 #ifndef __IOverlayNotify_INTERFACE_DEFINED__
5608 #define __IOverlayNotify_INTERFACE_DEFINED__
5609 
5610 DEFINE_GUID(IID_IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5611 #if defined(__cplusplus) && !defined(CINTERFACE)
5612 MIDL_INTERFACE("56a868a0-0ad4-11ce-b03a-0020af0ba770")
5613 IOverlayNotify : public IUnknown
5614 {
5615     virtual HRESULT STDMETHODCALLTYPE OnPaletteChange(
5616         DWORD dwColors,
5617         const PALETTEENTRY *pPalette) = 0;
5618 
5619     virtual HRESULT STDMETHODCALLTYPE OnClipChange(
5620         const RECT *pSourceRect,
5621         const RECT *pDestinationRect,
5622         const RGNDATA *pRgnData) = 0;
5623 
5624     virtual HRESULT STDMETHODCALLTYPE OnColorKeyChange(
5625         const COLORKEY *pColorKey) = 0;
5626 
5627     virtual HRESULT STDMETHODCALLTYPE OnPositionChange(
5628         const RECT *pSourceRect,
5629         const RECT *pDestinationRect) = 0;
5630 
5631 };
5632 #ifdef __CRT_UUID_DECL
5633 __CRT_UUID_DECL(IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5634 #endif
5635 #else
5636 typedef struct IOverlayNotifyVtbl {
5637     BEGIN_INTERFACE
5638 
5639     /*** IUnknown methods ***/
5640     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5641         IOverlayNotify* This,
5642         REFIID riid,
5643         void **ppvObject);
5644 
5645     ULONG (STDMETHODCALLTYPE *AddRef)(
5646         IOverlayNotify* This);
5647 
5648     ULONG (STDMETHODCALLTYPE *Release)(
5649         IOverlayNotify* This);
5650 
5651     /*** IOverlayNotify methods ***/
5652     HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
5653         IOverlayNotify* This,
5654         DWORD dwColors,
5655         const PALETTEENTRY *pPalette);
5656 
5657     HRESULT (STDMETHODCALLTYPE *OnClipChange)(
5658         IOverlayNotify* This,
5659         const RECT *pSourceRect,
5660         const RECT *pDestinationRect,
5661         const RGNDATA *pRgnData);
5662 
5663     HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
5664         IOverlayNotify* This,
5665         const COLORKEY *pColorKey);
5666 
5667     HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
5668         IOverlayNotify* This,
5669         const RECT *pSourceRect,
5670         const RECT *pDestinationRect);
5671 
5672     END_INTERFACE
5673 } IOverlayNotifyVtbl;
5674 interface IOverlayNotify {
5675     CONST_VTBL IOverlayNotifyVtbl* lpVtbl;
5676 };
5677 
5678 #ifdef COBJMACROS
5679 #ifndef WIDL_C_INLINE_WRAPPERS
5680 /*** IUnknown methods ***/
5681 #define IOverlayNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5682 #define IOverlayNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
5683 #define IOverlayNotify_Release(This) (This)->lpVtbl->Release(This)
5684 /*** IOverlayNotify methods ***/
5685 #define IOverlayNotify_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
5686 #define IOverlayNotify_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
5687 #define IOverlayNotify_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
5688 #define IOverlayNotify_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
5689 #else
5690 /*** IUnknown methods ***/
5691 static FORCEINLINE HRESULT IOverlayNotify_QueryInterface(IOverlayNotify* This,REFIID riid,void **ppvObject) {
5692     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5693 }
5694 static FORCEINLINE ULONG IOverlayNotify_AddRef(IOverlayNotify* This) {
5695     return This->lpVtbl->AddRef(This);
5696 }
5697 static FORCEINLINE ULONG IOverlayNotify_Release(IOverlayNotify* This) {
5698     return This->lpVtbl->Release(This);
5699 }
5700 /*** IOverlayNotify methods ***/
5701 static FORCEINLINE HRESULT IOverlayNotify_OnPaletteChange(IOverlayNotify* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
5702     return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
5703 }
5704 static FORCEINLINE HRESULT IOverlayNotify_OnClipChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) {
5705     return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData);
5706 }
5707 static FORCEINLINE HRESULT IOverlayNotify_OnColorKeyChange(IOverlayNotify* This,const COLORKEY *pColorKey) {
5708     return This->lpVtbl->OnColorKeyChange(This,pColorKey);
5709 }
5710 static FORCEINLINE HRESULT IOverlayNotify_OnPositionChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
5711     return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
5712 }
5713 #endif
5714 #endif
5715 
5716 #endif
5717 
5718 HRESULT STDMETHODCALLTYPE IOverlayNotify_OnPaletteChange_Proxy(
5719     IOverlayNotify* This,
5720     DWORD dwColors,
5721     const PALETTEENTRY *pPalette);
5722 void __RPC_STUB IOverlayNotify_OnPaletteChange_Stub(
5723     IRpcStubBuffer* This,
5724     IRpcChannelBuffer* pRpcChannelBuffer,
5725     PRPC_MESSAGE pRpcMessage,
5726     DWORD* pdwStubPhase);
5727 HRESULT STDMETHODCALLTYPE IOverlayNotify_OnClipChange_Proxy(
5728     IOverlayNotify* This,
5729     const RECT *pSourceRect,
5730     const RECT *pDestinationRect,
5731     const RGNDATA *pRgnData);
5732 void __RPC_STUB IOverlayNotify_OnClipChange_Stub(
5733     IRpcStubBuffer* This,
5734     IRpcChannelBuffer* pRpcChannelBuffer,
5735     PRPC_MESSAGE pRpcMessage,
5736     DWORD* pdwStubPhase);
5737 HRESULT STDMETHODCALLTYPE IOverlayNotify_OnColorKeyChange_Proxy(
5738     IOverlayNotify* This,
5739     const COLORKEY *pColorKey);
5740 void __RPC_STUB IOverlayNotify_OnColorKeyChange_Stub(
5741     IRpcStubBuffer* This,
5742     IRpcChannelBuffer* pRpcChannelBuffer,
5743     PRPC_MESSAGE pRpcMessage,
5744     DWORD* pdwStubPhase);
5745 HRESULT STDMETHODCALLTYPE IOverlayNotify_OnPositionChange_Proxy(
5746     IOverlayNotify* This,
5747     const RECT *pSourceRect,
5748     const RECT *pDestinationRect);
5749 void __RPC_STUB IOverlayNotify_OnPositionChange_Stub(
5750     IRpcStubBuffer* This,
5751     IRpcChannelBuffer* pRpcChannelBuffer,
5752     PRPC_MESSAGE pRpcMessage,
5753     DWORD* pdwStubPhase);
5754 
5755 #endif  /* __IOverlayNotify_INTERFACE_DEFINED__ */
5756 
5757 typedef IOverlayNotify *POVERLAYNOTIFY;
5758 #if 0
5759 typedef HANDLE HMONITOR;
5760 #endif /* 0 */
5761 /*****************************************************************************
5762  * IOverlayNotify2 interface
5763  */
5764 #ifndef __IOverlayNotify2_INTERFACE_DEFINED__
5765 #define __IOverlayNotify2_INTERFACE_DEFINED__
5766 
5767 DEFINE_GUID(IID_IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96);
5768 #if defined(__cplusplus) && !defined(CINTERFACE)
5769 MIDL_INTERFACE("680efa10-d535-11d1-87c8-00a0c9223196")
5770 IOverlayNotify2 : public IOverlayNotify
5771 {
5772     virtual HRESULT STDMETHODCALLTYPE OnDisplayChange(
5773         HMONITOR hMonitor) = 0;
5774 
5775 };
5776 #ifdef __CRT_UUID_DECL
5777 __CRT_UUID_DECL(IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96)
5778 #endif
5779 #else
5780 typedef struct IOverlayNotify2Vtbl {
5781     BEGIN_INTERFACE
5782 
5783     /*** IUnknown methods ***/
5784     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5785         IOverlayNotify2* This,
5786         REFIID riid,
5787         void **ppvObject);
5788 
5789     ULONG (STDMETHODCALLTYPE *AddRef)(
5790         IOverlayNotify2* This);
5791 
5792     ULONG (STDMETHODCALLTYPE *Release)(
5793         IOverlayNotify2* This);
5794 
5795     /*** IOverlayNotify methods ***/
5796     HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
5797         IOverlayNotify2* This,
5798         DWORD dwColors,
5799         const PALETTEENTRY *pPalette);
5800 
5801     HRESULT (STDMETHODCALLTYPE *OnClipChange)(
5802         IOverlayNotify2* This,
5803         const RECT *pSourceRect,
5804         const RECT *pDestinationRect,
5805         const RGNDATA *pRgnData);
5806 
5807     HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
5808         IOverlayNotify2* This,
5809         const COLORKEY *pColorKey);
5810 
5811     HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
5812         IOverlayNotify2* This,
5813         const RECT *pSourceRect,
5814         const RECT *pDestinationRect);
5815 
5816     /*** IOverlayNotify2 methods ***/
5817     HRESULT (STDMETHODCALLTYPE *OnDisplayChange)(
5818         IOverlayNotify2* This,
5819         HMONITOR hMonitor);
5820 
5821     END_INTERFACE
5822 } IOverlayNotify2Vtbl;
5823 interface IOverlayNotify2 {
5824     CONST_VTBL IOverlayNotify2Vtbl* lpVtbl;
5825 };
5826 
5827 #ifdef COBJMACROS
5828 #ifndef WIDL_C_INLINE_WRAPPERS
5829 /*** IUnknown methods ***/
5830 #define IOverlayNotify2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5831 #define IOverlayNotify2_AddRef(This) (This)->lpVtbl->AddRef(This)
5832 #define IOverlayNotify2_Release(This) (This)->lpVtbl->Release(This)
5833 /*** IOverlayNotify methods ***/
5834 #define IOverlayNotify2_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
5835 #define IOverlayNotify2_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
5836 #define IOverlayNotify2_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
5837 #define IOverlayNotify2_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
5838 /*** IOverlayNotify2 methods ***/
5839 #define IOverlayNotify2_OnDisplayChange(This,hMonitor) (This)->lpVtbl->OnDisplayChange(This,hMonitor)
5840 #else
5841 /*** IUnknown methods ***/
5842 static FORCEINLINE HRESULT IOverlayNotify2_QueryInterface(IOverlayNotify2* This,REFIID riid,void **ppvObject) {
5843     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5844 }
5845 static FORCEINLINE ULONG IOverlayNotify2_AddRef(IOverlayNotify2* This) {
5846     return This->lpVtbl->AddRef(This);
5847 }
5848 static FORCEINLINE ULONG IOverlayNotify2_Release(IOverlayNotify2* This) {
5849     return This->lpVtbl->Release(This);
5850 }
5851 /*** IOverlayNotify methods ***/
5852 static FORCEINLINE HRESULT IOverlayNotify2_OnPaletteChange(IOverlayNotify2* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
5853     return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
5854 }
5855 static FORCEINLINE HRESULT IOverlayNotify2_OnClipChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) {
5856     return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData);
5857 }
5858 static FORCEINLINE HRESULT IOverlayNotify2_OnColorKeyChange(IOverlayNotify2* This,const COLORKEY *pColorKey) {
5859     return This->lpVtbl->OnColorKeyChange(This,pColorKey);
5860 }
5861 static FORCEINLINE HRESULT IOverlayNotify2_OnPositionChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
5862     return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
5863 }
5864 /*** IOverlayNotify2 methods ***/
5865 static FORCEINLINE HRESULT IOverlayNotify2_OnDisplayChange(IOverlayNotify2* This,HMONITOR hMonitor) {
5866     return This->lpVtbl->OnDisplayChange(This,hMonitor);
5867 }
5868 #endif
5869 #endif
5870 
5871 #endif
5872 
5873 HRESULT STDMETHODCALLTYPE IOverlayNotify2_OnDisplayChange_Proxy(
5874     IOverlayNotify2* This,
5875     HMONITOR hMonitor);
5876 void __RPC_STUB IOverlayNotify2_OnDisplayChange_Stub(
5877     IRpcStubBuffer* This,
5878     IRpcChannelBuffer* pRpcChannelBuffer,
5879     PRPC_MESSAGE pRpcMessage,
5880     DWORD* pdwStubPhase);
5881 
5882 #endif  /* __IOverlayNotify2_INTERFACE_DEFINED__ */
5883 
5884 typedef IOverlayNotify2 *POVERLAYNOTIFY2;
5885 /*****************************************************************************
5886  * IOverlay interface
5887  */
5888 #ifndef __IOverlay_INTERFACE_DEFINED__
5889 #define __IOverlay_INTERFACE_DEFINED__
5890 
5891 DEFINE_GUID(IID_IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5892 #if defined(__cplusplus) && !defined(CINTERFACE)
5893 MIDL_INTERFACE("56a868a1-0ad4-11ce-b03a-0020af0ba770")
5894 IOverlay : public IUnknown
5895 {
5896     virtual HRESULT STDMETHODCALLTYPE GetPalette(
5897         DWORD *pdwColors,
5898         PALETTEENTRY **ppPalette) = 0;
5899 
5900     virtual HRESULT STDMETHODCALLTYPE SetPalette(
5901         DWORD dwColors,
5902         PALETTEENTRY *pPalette) = 0;
5903 
5904     virtual HRESULT STDMETHODCALLTYPE GetDefaultColorKey(
5905         COLORKEY *pColorKey) = 0;
5906 
5907     virtual HRESULT STDMETHODCALLTYPE GetColorKey(
5908         COLORKEY *pColorKey) = 0;
5909 
5910     virtual HRESULT STDMETHODCALLTYPE SetColorKey(
5911         COLORKEY *pColorKey) = 0;
5912 
5913     virtual HRESULT STDMETHODCALLTYPE GetWindowHandle(
5914         HWND *pHwnd) = 0;
5915 
5916     virtual HRESULT STDMETHODCALLTYPE GetClipList(
5917         RECT *pSourceRect,
5918         RECT *pDestinationRect,
5919         RGNDATA **ppRgnData) = 0;
5920 
5921     virtual HRESULT STDMETHODCALLTYPE GetVideoPosition(
5922         RECT *pSourceRect,
5923         RECT *pDestinationRect) = 0;
5924 
5925     virtual HRESULT STDMETHODCALLTYPE Advise(
5926         IOverlayNotify *pOverlayNotify,
5927         DWORD dwInterests) = 0;
5928 
5929     virtual HRESULT STDMETHODCALLTYPE Unadvise(
5930         ) = 0;
5931 
5932 };
5933 #ifdef __CRT_UUID_DECL
5934 __CRT_UUID_DECL(IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5935 #endif
5936 #else
5937 typedef struct IOverlayVtbl {
5938     BEGIN_INTERFACE
5939 
5940     /*** IUnknown methods ***/
5941     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5942         IOverlay* This,
5943         REFIID riid,
5944         void **ppvObject);
5945 
5946     ULONG (STDMETHODCALLTYPE *AddRef)(
5947         IOverlay* This);
5948 
5949     ULONG (STDMETHODCALLTYPE *Release)(
5950         IOverlay* This);
5951 
5952     /*** IOverlay methods ***/
5953     HRESULT (STDMETHODCALLTYPE *GetPalette)(
5954         IOverlay* This,
5955         DWORD *pdwColors,
5956         PALETTEENTRY **ppPalette);
5957 
5958     HRESULT (STDMETHODCALLTYPE *SetPalette)(
5959         IOverlay* This,
5960         DWORD dwColors,
5961         PALETTEENTRY *pPalette);
5962 
5963     HRESULT (STDMETHODCALLTYPE *GetDefaultColorKey)(
5964         IOverlay* This,
5965         COLORKEY *pColorKey);
5966 
5967     HRESULT (STDMETHODCALLTYPE *GetColorKey)(
5968         IOverlay* This,
5969         COLORKEY *pColorKey);
5970 
5971     HRESULT (STDMETHODCALLTYPE *SetColorKey)(
5972         IOverlay* This,
5973         COLORKEY *pColorKey);
5974 
5975     HRESULT (STDMETHODCALLTYPE *GetWindowHandle)(
5976         IOverlay* This,
5977         HWND *pHwnd);
5978 
5979     HRESULT (STDMETHODCALLTYPE *GetClipList)(
5980         IOverlay* This,
5981         RECT *pSourceRect,
5982         RECT *pDestinationRect,
5983         RGNDATA **ppRgnData);
5984 
5985     HRESULT (STDMETHODCALLTYPE *GetVideoPosition)(
5986         IOverlay* This,
5987         RECT *pSourceRect,
5988         RECT *pDestinationRect);
5989 
5990     HRESULT (STDMETHODCALLTYPE *Advise)(
5991         IOverlay* This,
5992         IOverlayNotify *pOverlayNotify,
5993         DWORD dwInterests);
5994 
5995     HRESULT (STDMETHODCALLTYPE *Unadvise)(
5996         IOverlay* This);
5997 
5998     END_INTERFACE
5999 } IOverlayVtbl;
6000 interface IOverlay {
6001     CONST_VTBL IOverlayVtbl* lpVtbl;
6002 };
6003 
6004 #ifdef COBJMACROS
6005 #ifndef WIDL_C_INLINE_WRAPPERS
6006 /*** IUnknown methods ***/
6007 #define IOverlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6008 #define IOverlay_AddRef(This) (This)->lpVtbl->AddRef(This)
6009 #define IOverlay_Release(This) (This)->lpVtbl->Release(This)
6010 /*** IOverlay methods ***/
6011 #define IOverlay_GetPalette(This,pdwColors,ppPalette) (This)->lpVtbl->GetPalette(This,pdwColors,ppPalette)
6012 #define IOverlay_SetPalette(This,dwColors,pPalette) (This)->lpVtbl->SetPalette(This,dwColors,pPalette)
6013 #define IOverlay_GetDefaultColorKey(This,pColorKey) (This)->lpVtbl->GetDefaultColorKey(This,pColorKey)
6014 #define IOverlay_GetColorKey(This,pColorKey) (This)->lpVtbl->GetColorKey(This,pColorKey)
6015 #define IOverlay_SetColorKey(This,pColorKey) (This)->lpVtbl->SetColorKey(This,pColorKey)
6016 #define IOverlay_GetWindowHandle(This,pHwnd) (This)->lpVtbl->GetWindowHandle(This,pHwnd)
6017 #define IOverlay_GetClipList(This,pSourceRect,pDestinationRect,ppRgnData) (This)->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData)
6018 #define IOverlay_GetVideoPosition(This,pSourceRect,pDestinationRect) (This)->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect)
6019 #define IOverlay_Advise(This,pOverlayNotify,dwInterests) (This)->lpVtbl->Advise(This,pOverlayNotify,dwInterests)
6020 #define IOverlay_Unadvise(This) (This)->lpVtbl->Unadvise(This)
6021 #else
6022 /*** IUnknown methods ***/
6023 static FORCEINLINE HRESULT IOverlay_QueryInterface(IOverlay* This,REFIID riid,void **ppvObject) {
6024     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6025 }
6026 static FORCEINLINE ULONG IOverlay_AddRef(IOverlay* This) {
6027     return This->lpVtbl->AddRef(This);
6028 }
6029 static FORCEINLINE ULONG IOverlay_Release(IOverlay* This) {
6030     return This->lpVtbl->Release(This);
6031 }
6032 /*** IOverlay methods ***/
6033 static FORCEINLINE HRESULT IOverlay_GetPalette(IOverlay* This,DWORD *pdwColors,PALETTEENTRY **ppPalette) {
6034     return This->lpVtbl->GetPalette(This,pdwColors,ppPalette);
6035 }
6036 static FORCEINLINE HRESULT IOverlay_SetPalette(IOverlay* This,DWORD dwColors,PALETTEENTRY *pPalette) {
6037     return This->lpVtbl->SetPalette(This,dwColors,pPalette);
6038 }
6039 static FORCEINLINE HRESULT IOverlay_GetDefaultColorKey(IOverlay* This,COLORKEY *pColorKey) {
6040     return This->lpVtbl->GetDefaultColorKey(This,pColorKey);
6041 }
6042 static FORCEINLINE HRESULT IOverlay_GetColorKey(IOverlay* This,COLORKEY *pColorKey) {
6043     return This->lpVtbl->GetColorKey(This,pColorKey);
6044 }
6045 static FORCEINLINE HRESULT IOverlay_SetColorKey(IOverlay* This,COLORKEY *pColorKey) {
6046     return This->lpVtbl->SetColorKey(This,pColorKey);
6047 }
6048 static FORCEINLINE HRESULT IOverlay_GetWindowHandle(IOverlay* This,HWND *pHwnd) {
6049     return This->lpVtbl->GetWindowHandle(This,pHwnd);
6050 }
6051 static FORCEINLINE HRESULT IOverlay_GetClipList(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData) {
6052     return This->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData);
6053 }
6054 static FORCEINLINE HRESULT IOverlay_GetVideoPosition(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect) {
6055     return This->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect);
6056 }
6057 static FORCEINLINE HRESULT IOverlay_Advise(IOverlay* This,IOverlayNotify *pOverlayNotify,DWORD dwInterests) {
6058     return This->lpVtbl->Advise(This,pOverlayNotify,dwInterests);
6059 }
6060 static FORCEINLINE HRESULT IOverlay_Unadvise(IOverlay* This) {
6061     return This->lpVtbl->Unadvise(This);
6062 }
6063 #endif
6064 #endif
6065 
6066 #endif
6067 
6068 HRESULT STDMETHODCALLTYPE IOverlay_GetPalette_Proxy(
6069     IOverlay* This,
6070     DWORD *pdwColors,
6071     PALETTEENTRY **ppPalette);
6072 void __RPC_STUB IOverlay_GetPalette_Stub(
6073     IRpcStubBuffer* This,
6074     IRpcChannelBuffer* pRpcChannelBuffer,
6075     PRPC_MESSAGE pRpcMessage,
6076     DWORD* pdwStubPhase);
6077 HRESULT STDMETHODCALLTYPE IOverlay_SetPalette_Proxy(
6078     IOverlay* This,
6079     DWORD dwColors,
6080     PALETTEENTRY *pPalette);
6081 void __RPC_STUB IOverlay_SetPalette_Stub(
6082     IRpcStubBuffer* This,
6083     IRpcChannelBuffer* pRpcChannelBuffer,
6084     PRPC_MESSAGE pRpcMessage,
6085     DWORD* pdwStubPhase);
6086 HRESULT STDMETHODCALLTYPE IOverlay_GetDefaultColorKey_Proxy(
6087     IOverlay* This,
6088     COLORKEY *pColorKey);
6089 void __RPC_STUB IOverlay_GetDefaultColorKey_Stub(
6090     IRpcStubBuffer* This,
6091     IRpcChannelBuffer* pRpcChannelBuffer,
6092     PRPC_MESSAGE pRpcMessage,
6093     DWORD* pdwStubPhase);
6094 HRESULT STDMETHODCALLTYPE IOverlay_GetColorKey_Proxy(
6095     IOverlay* This,
6096     COLORKEY *pColorKey);
6097 void __RPC_STUB IOverlay_GetColorKey_Stub(
6098     IRpcStubBuffer* This,
6099     IRpcChannelBuffer* pRpcChannelBuffer,
6100     PRPC_MESSAGE pRpcMessage,
6101     DWORD* pdwStubPhase);
6102 HRESULT STDMETHODCALLTYPE IOverlay_SetColorKey_Proxy(
6103     IOverlay* This,
6104     COLORKEY *pColorKey);
6105 void __RPC_STUB IOverlay_SetColorKey_Stub(
6106     IRpcStubBuffer* This,
6107     IRpcChannelBuffer* pRpcChannelBuffer,
6108     PRPC_MESSAGE pRpcMessage,
6109     DWORD* pdwStubPhase);
6110 HRESULT STDMETHODCALLTYPE IOverlay_GetWindowHandle_Proxy(
6111     IOverlay* This,
6112     HWND *pHwnd);
6113 void __RPC_STUB IOverlay_GetWindowHandle_Stub(
6114     IRpcStubBuffer* This,
6115     IRpcChannelBuffer* pRpcChannelBuffer,
6116     PRPC_MESSAGE pRpcMessage,
6117     DWORD* pdwStubPhase);
6118 HRESULT STDMETHODCALLTYPE IOverlay_GetClipList_Proxy(
6119     IOverlay* This,
6120     RECT *pSourceRect,
6121     RECT *pDestinationRect,
6122     RGNDATA **ppRgnData);
6123 void __RPC_STUB IOverlay_GetClipList_Stub(
6124     IRpcStubBuffer* This,
6125     IRpcChannelBuffer* pRpcChannelBuffer,
6126     PRPC_MESSAGE pRpcMessage,
6127     DWORD* pdwStubPhase);
6128 HRESULT STDMETHODCALLTYPE IOverlay_GetVideoPosition_Proxy(
6129     IOverlay* This,
6130     RECT *pSourceRect,
6131     RECT *pDestinationRect);
6132 void __RPC_STUB IOverlay_GetVideoPosition_Stub(
6133     IRpcStubBuffer* This,
6134     IRpcChannelBuffer* pRpcChannelBuffer,
6135     PRPC_MESSAGE pRpcMessage,
6136     DWORD* pdwStubPhase);
6137 HRESULT STDMETHODCALLTYPE IOverlay_Advise_Proxy(
6138     IOverlay* This,
6139     IOverlayNotify *pOverlayNotify,
6140     DWORD dwInterests);
6141 void __RPC_STUB IOverlay_Advise_Stub(
6142     IRpcStubBuffer* This,
6143     IRpcChannelBuffer* pRpcChannelBuffer,
6144     PRPC_MESSAGE pRpcMessage,
6145     DWORD* pdwStubPhase);
6146 HRESULT STDMETHODCALLTYPE IOverlay_Unadvise_Proxy(
6147     IOverlay* This);
6148 void __RPC_STUB IOverlay_Unadvise_Stub(
6149     IRpcStubBuffer* This,
6150     IRpcChannelBuffer* pRpcChannelBuffer,
6151     PRPC_MESSAGE pRpcMessage,
6152     DWORD* pdwStubPhase);
6153 
6154 #endif  /* __IOverlay_INTERFACE_DEFINED__ */
6155 
6156 typedef IOverlay *POVERLAY;
6157 /*****************************************************************************
6158  * IMediaEventSink interface
6159  */
6160 #ifndef __IMediaEventSink_INTERFACE_DEFINED__
6161 #define __IMediaEventSink_INTERFACE_DEFINED__
6162 
6163 DEFINE_GUID(IID_IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6164 #if defined(__cplusplus) && !defined(CINTERFACE)
6165 MIDL_INTERFACE("56a868a2-0ad4-11ce-b03a-0020af0ba770")
6166 IMediaEventSink : public IUnknown
6167 {
6168     virtual HRESULT STDMETHODCALLTYPE Notify(
6169         LONG EventCode,
6170         LONG_PTR EventParam1,
6171         LONG_PTR EventParam2) = 0;
6172 
6173 };
6174 #ifdef __CRT_UUID_DECL
6175 __CRT_UUID_DECL(IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
6176 #endif
6177 #else
6178 typedef struct IMediaEventSinkVtbl {
6179     BEGIN_INTERFACE
6180 
6181     /*** IUnknown methods ***/
6182     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6183         IMediaEventSink* This,
6184         REFIID riid,
6185         void **ppvObject);
6186 
6187     ULONG (STDMETHODCALLTYPE *AddRef)(
6188         IMediaEventSink* This);
6189 
6190     ULONG (STDMETHODCALLTYPE *Release)(
6191         IMediaEventSink* This);
6192 
6193     /*** IMediaEventSink methods ***/
6194     HRESULT (STDMETHODCALLTYPE *Notify)(
6195         IMediaEventSink* This,
6196         LONG EventCode,
6197         LONG_PTR EventParam1,
6198         LONG_PTR EventParam2);
6199 
6200     END_INTERFACE
6201 } IMediaEventSinkVtbl;
6202 interface IMediaEventSink {
6203     CONST_VTBL IMediaEventSinkVtbl* lpVtbl;
6204 };
6205 
6206 #ifdef COBJMACROS
6207 #ifndef WIDL_C_INLINE_WRAPPERS
6208 /*** IUnknown methods ***/
6209 #define IMediaEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6210 #define IMediaEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
6211 #define IMediaEventSink_Release(This) (This)->lpVtbl->Release(This)
6212 /*** IMediaEventSink methods ***/
6213 #define IMediaEventSink_Notify(This,EventCode,EventParam1,EventParam2) (This)->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2)
6214 #else
6215 /*** IUnknown methods ***/
6216 static FORCEINLINE HRESULT IMediaEventSink_QueryInterface(IMediaEventSink* This,REFIID riid,void **ppvObject) {
6217     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6218 }
6219 static FORCEINLINE ULONG IMediaEventSink_AddRef(IMediaEventSink* This) {
6220     return This->lpVtbl->AddRef(This);
6221 }
6222 static FORCEINLINE ULONG IMediaEventSink_Release(IMediaEventSink* This) {
6223     return This->lpVtbl->Release(This);
6224 }
6225 /*** IMediaEventSink methods ***/
6226 static FORCEINLINE HRESULT IMediaEventSink_Notify(IMediaEventSink* This,LONG EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2) {
6227     return This->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2);
6228 }
6229 #endif
6230 #endif
6231 
6232 #endif
6233 
6234 HRESULT STDMETHODCALLTYPE IMediaEventSink_Notify_Proxy(
6235     IMediaEventSink* This,
6236     LONG EventCode,
6237     LONG_PTR EventParam1,
6238     LONG_PTR EventParam2);
6239 void __RPC_STUB IMediaEventSink_Notify_Stub(
6240     IRpcStubBuffer* This,
6241     IRpcChannelBuffer* pRpcChannelBuffer,
6242     PRPC_MESSAGE pRpcMessage,
6243     DWORD* pdwStubPhase);
6244 
6245 #endif  /* __IMediaEventSink_INTERFACE_DEFINED__ */
6246 
6247 typedef IMediaEventSink *PMEDIAEVENTSINK;
6248 /*****************************************************************************
6249  * IFileSourceFilter interface
6250  */
6251 #ifndef __IFileSourceFilter_INTERFACE_DEFINED__
6252 #define __IFileSourceFilter_INTERFACE_DEFINED__
6253 
6254 DEFINE_GUID(IID_IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6255 #if defined(__cplusplus) && !defined(CINTERFACE)
6256 MIDL_INTERFACE("56a868a6-0ad4-11ce-b03a-0020af0ba770")
6257 IFileSourceFilter : public IUnknown
6258 {
6259     virtual HRESULT STDMETHODCALLTYPE Load(
6260         LPCOLESTR pszFileName,
6261         const AM_MEDIA_TYPE *pmt) = 0;
6262 
6263     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
6264         LPOLESTR *ppszFileName,
6265         AM_MEDIA_TYPE *pmt) = 0;
6266 
6267 };
6268 #ifdef __CRT_UUID_DECL
6269 __CRT_UUID_DECL(IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
6270 #endif
6271 #else
6272 typedef struct IFileSourceFilterVtbl {
6273     BEGIN_INTERFACE
6274 
6275     /*** IUnknown methods ***/
6276     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6277         IFileSourceFilter* This,
6278         REFIID riid,
6279         void **ppvObject);
6280 
6281     ULONG (STDMETHODCALLTYPE *AddRef)(
6282         IFileSourceFilter* This);
6283 
6284     ULONG (STDMETHODCALLTYPE *Release)(
6285         IFileSourceFilter* This);
6286 
6287     /*** IFileSourceFilter methods ***/
6288     HRESULT (STDMETHODCALLTYPE *Load)(
6289         IFileSourceFilter* This,
6290         LPCOLESTR pszFileName,
6291         const AM_MEDIA_TYPE *pmt);
6292 
6293     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
6294         IFileSourceFilter* This,
6295         LPOLESTR *ppszFileName,
6296         AM_MEDIA_TYPE *pmt);
6297 
6298     END_INTERFACE
6299 } IFileSourceFilterVtbl;
6300 interface IFileSourceFilter {
6301     CONST_VTBL IFileSourceFilterVtbl* lpVtbl;
6302 };
6303 
6304 #ifdef COBJMACROS
6305 #ifndef WIDL_C_INLINE_WRAPPERS
6306 /*** IUnknown methods ***/
6307 #define IFileSourceFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6308 #define IFileSourceFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
6309 #define IFileSourceFilter_Release(This) (This)->lpVtbl->Release(This)
6310 /*** IFileSourceFilter methods ***/
6311 #define IFileSourceFilter_Load(This,pszFileName,pmt) (This)->lpVtbl->Load(This,pszFileName,pmt)
6312 #define IFileSourceFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
6313 #else
6314 /*** IUnknown methods ***/
6315 static FORCEINLINE HRESULT IFileSourceFilter_QueryInterface(IFileSourceFilter* This,REFIID riid,void **ppvObject) {
6316     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6317 }
6318 static FORCEINLINE ULONG IFileSourceFilter_AddRef(IFileSourceFilter* This) {
6319     return This->lpVtbl->AddRef(This);
6320 }
6321 static FORCEINLINE ULONG IFileSourceFilter_Release(IFileSourceFilter* This) {
6322     return This->lpVtbl->Release(This);
6323 }
6324 /*** IFileSourceFilter methods ***/
6325 static FORCEINLINE HRESULT IFileSourceFilter_Load(IFileSourceFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
6326     return This->lpVtbl->Load(This,pszFileName,pmt);
6327 }
6328 static FORCEINLINE HRESULT IFileSourceFilter_GetCurFile(IFileSourceFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
6329     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
6330 }
6331 #endif
6332 #endif
6333 
6334 #endif
6335 
6336 HRESULT STDMETHODCALLTYPE IFileSourceFilter_Load_Proxy(
6337     IFileSourceFilter* This,
6338     LPCOLESTR pszFileName,
6339     const AM_MEDIA_TYPE *pmt);
6340 void __RPC_STUB IFileSourceFilter_Load_Stub(
6341     IRpcStubBuffer* This,
6342     IRpcChannelBuffer* pRpcChannelBuffer,
6343     PRPC_MESSAGE pRpcMessage,
6344     DWORD* pdwStubPhase);
6345 HRESULT STDMETHODCALLTYPE IFileSourceFilter_GetCurFile_Proxy(
6346     IFileSourceFilter* This,
6347     LPOLESTR *ppszFileName,
6348     AM_MEDIA_TYPE *pmt);
6349 void __RPC_STUB IFileSourceFilter_GetCurFile_Stub(
6350     IRpcStubBuffer* This,
6351     IRpcChannelBuffer* pRpcChannelBuffer,
6352     PRPC_MESSAGE pRpcMessage,
6353     DWORD* pdwStubPhase);
6354 
6355 #endif  /* __IFileSourceFilter_INTERFACE_DEFINED__ */
6356 
6357 typedef IFileSourceFilter *PFILTERFILESOURCE;
6358 /*****************************************************************************
6359  * IFileSinkFilter interface
6360  */
6361 #ifndef __IFileSinkFilter_INTERFACE_DEFINED__
6362 #define __IFileSinkFilter_INTERFACE_DEFINED__
6363 
6364 DEFINE_GUID(IID_IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
6365 #if defined(__cplusplus) && !defined(CINTERFACE)
6366 MIDL_INTERFACE("a2104830-7c70-11cf-8bce-00aa00a3f1a6")
6367 IFileSinkFilter : public IUnknown
6368 {
6369     virtual HRESULT STDMETHODCALLTYPE SetFileName(
6370         LPCOLESTR pszFileName,
6371         const AM_MEDIA_TYPE *pmt) = 0;
6372 
6373     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
6374         LPOLESTR *ppszFileName,
6375         AM_MEDIA_TYPE *pmt) = 0;
6376 
6377 };
6378 #ifdef __CRT_UUID_DECL
6379 __CRT_UUID_DECL(IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6)
6380 #endif
6381 #else
6382 typedef struct IFileSinkFilterVtbl {
6383     BEGIN_INTERFACE
6384 
6385     /*** IUnknown methods ***/
6386     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6387         IFileSinkFilter* This,
6388         REFIID riid,
6389         void **ppvObject);
6390 
6391     ULONG (STDMETHODCALLTYPE *AddRef)(
6392         IFileSinkFilter* This);
6393 
6394     ULONG (STDMETHODCALLTYPE *Release)(
6395         IFileSinkFilter* This);
6396 
6397     /*** IFileSinkFilter methods ***/
6398     HRESULT (STDMETHODCALLTYPE *SetFileName)(
6399         IFileSinkFilter* This,
6400         LPCOLESTR pszFileName,
6401         const AM_MEDIA_TYPE *pmt);
6402 
6403     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
6404         IFileSinkFilter* This,
6405         LPOLESTR *ppszFileName,
6406         AM_MEDIA_TYPE *pmt);
6407 
6408     END_INTERFACE
6409 } IFileSinkFilterVtbl;
6410 interface IFileSinkFilter {
6411     CONST_VTBL IFileSinkFilterVtbl* lpVtbl;
6412 };
6413 
6414 #ifdef COBJMACROS
6415 #ifndef WIDL_C_INLINE_WRAPPERS
6416 /*** IUnknown methods ***/
6417 #define IFileSinkFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6418 #define IFileSinkFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
6419 #define IFileSinkFilter_Release(This) (This)->lpVtbl->Release(This)
6420 /*** IFileSinkFilter methods ***/
6421 #define IFileSinkFilter_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
6422 #define IFileSinkFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
6423 #else
6424 /*** IUnknown methods ***/
6425 static FORCEINLINE HRESULT IFileSinkFilter_QueryInterface(IFileSinkFilter* This,REFIID riid,void **ppvObject) {
6426     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6427 }
6428 static FORCEINLINE ULONG IFileSinkFilter_AddRef(IFileSinkFilter* This) {
6429     return This->lpVtbl->AddRef(This);
6430 }
6431 static FORCEINLINE ULONG IFileSinkFilter_Release(IFileSinkFilter* This) {
6432     return This->lpVtbl->Release(This);
6433 }
6434 /*** IFileSinkFilter methods ***/
6435 static FORCEINLINE HRESULT IFileSinkFilter_SetFileName(IFileSinkFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
6436     return This->lpVtbl->SetFileName(This,pszFileName,pmt);
6437 }
6438 static FORCEINLINE HRESULT IFileSinkFilter_GetCurFile(IFileSinkFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
6439     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
6440 }
6441 #endif
6442 #endif
6443 
6444 #endif
6445 
6446 HRESULT STDMETHODCALLTYPE IFileSinkFilter_SetFileName_Proxy(
6447     IFileSinkFilter* This,
6448     LPCOLESTR pszFileName,
6449     const AM_MEDIA_TYPE *pmt);
6450 void __RPC_STUB IFileSinkFilter_SetFileName_Stub(
6451     IRpcStubBuffer* This,
6452     IRpcChannelBuffer* pRpcChannelBuffer,
6453     PRPC_MESSAGE pRpcMessage,
6454     DWORD* pdwStubPhase);
6455 HRESULT STDMETHODCALLTYPE IFileSinkFilter_GetCurFile_Proxy(
6456     IFileSinkFilter* This,
6457     LPOLESTR *ppszFileName,
6458     AM_MEDIA_TYPE *pmt);
6459 void __RPC_STUB IFileSinkFilter_GetCurFile_Stub(
6460     IRpcStubBuffer* This,
6461     IRpcChannelBuffer* pRpcChannelBuffer,
6462     PRPC_MESSAGE pRpcMessage,
6463     DWORD* pdwStubPhase);
6464 
6465 #endif  /* __IFileSinkFilter_INTERFACE_DEFINED__ */
6466 
6467 typedef IFileSinkFilter *PFILTERFILESINK;
6468 /*****************************************************************************
6469  * IFileSinkFilter2 interface
6470  */
6471 #ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
6472 #define __IFileSinkFilter2_INTERFACE_DEFINED__
6473 
6474 DEFINE_GUID(IID_IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86);
6475 #if defined(__cplusplus) && !defined(CINTERFACE)
6476 MIDL_INTERFACE("00855b90-ce1b-11d0-bd4f-00a0c911ce86")
6477 IFileSinkFilter2 : public IFileSinkFilter
6478 {
6479     virtual HRESULT STDMETHODCALLTYPE SetMode(
6480         DWORD dwFlags) = 0;
6481 
6482     virtual HRESULT STDMETHODCALLTYPE GetMode(
6483         DWORD *pdwFlags) = 0;
6484 
6485 };
6486 #ifdef __CRT_UUID_DECL
6487 __CRT_UUID_DECL(IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86)
6488 #endif
6489 #else
6490 typedef struct IFileSinkFilter2Vtbl {
6491     BEGIN_INTERFACE
6492 
6493     /*** IUnknown methods ***/
6494     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6495         IFileSinkFilter2* This,
6496         REFIID riid,
6497         void **ppvObject);
6498 
6499     ULONG (STDMETHODCALLTYPE *AddRef)(
6500         IFileSinkFilter2* This);
6501 
6502     ULONG (STDMETHODCALLTYPE *Release)(
6503         IFileSinkFilter2* This);
6504 
6505     /*** IFileSinkFilter methods ***/
6506     HRESULT (STDMETHODCALLTYPE *SetFileName)(
6507         IFileSinkFilter2* This,
6508         LPCOLESTR pszFileName,
6509         const AM_MEDIA_TYPE *pmt);
6510 
6511     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
6512         IFileSinkFilter2* This,
6513         LPOLESTR *ppszFileName,
6514         AM_MEDIA_TYPE *pmt);
6515 
6516     /*** IFileSinkFilter2 methods ***/
6517     HRESULT (STDMETHODCALLTYPE *SetMode)(
6518         IFileSinkFilter2* This,
6519         DWORD dwFlags);
6520 
6521     HRESULT (STDMETHODCALLTYPE *GetMode)(
6522         IFileSinkFilter2* This,
6523         DWORD *pdwFlags);
6524 
6525     END_INTERFACE
6526 } IFileSinkFilter2Vtbl;
6527 interface IFileSinkFilter2 {
6528     CONST_VTBL IFileSinkFilter2Vtbl* lpVtbl;
6529 };
6530 
6531 #ifdef COBJMACROS
6532 #ifndef WIDL_C_INLINE_WRAPPERS
6533 /*** IUnknown methods ***/
6534 #define IFileSinkFilter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6535 #define IFileSinkFilter2_AddRef(This) (This)->lpVtbl->AddRef(This)
6536 #define IFileSinkFilter2_Release(This) (This)->lpVtbl->Release(This)
6537 /*** IFileSinkFilter methods ***/
6538 #define IFileSinkFilter2_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
6539 #define IFileSinkFilter2_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
6540 /*** IFileSinkFilter2 methods ***/
6541 #define IFileSinkFilter2_SetMode(This,dwFlags) (This)->lpVtbl->SetMode(This,dwFlags)
6542 #define IFileSinkFilter2_GetMode(This,pdwFlags) (This)->lpVtbl->GetMode(This,pdwFlags)
6543 #else
6544 /*** IUnknown methods ***/
6545 static FORCEINLINE HRESULT IFileSinkFilter2_QueryInterface(IFileSinkFilter2* This,REFIID riid,void **ppvObject) {
6546     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6547 }
6548 static FORCEINLINE ULONG IFileSinkFilter2_AddRef(IFileSinkFilter2* This) {
6549     return This->lpVtbl->AddRef(This);
6550 }
6551 static FORCEINLINE ULONG IFileSinkFilter2_Release(IFileSinkFilter2* This) {
6552     return This->lpVtbl->Release(This);
6553 }
6554 /*** IFileSinkFilter methods ***/
6555 static FORCEINLINE HRESULT IFileSinkFilter2_SetFileName(IFileSinkFilter2* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
6556     return This->lpVtbl->SetFileName(This,pszFileName,pmt);
6557 }
6558 static FORCEINLINE HRESULT IFileSinkFilter2_GetCurFile(IFileSinkFilter2* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
6559     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
6560 }
6561 /*** IFileSinkFilter2 methods ***/
6562 static FORCEINLINE HRESULT IFileSinkFilter2_SetMode(IFileSinkFilter2* This,DWORD dwFlags) {
6563     return This->lpVtbl->SetMode(This,dwFlags);
6564 }
6565 static FORCEINLINE HRESULT IFileSinkFilter2_GetMode(IFileSinkFilter2* This,DWORD *pdwFlags) {
6566     return This->lpVtbl->GetMode(This,pdwFlags);
6567 }
6568 #endif
6569 #endif
6570 
6571 #endif
6572 
6573 HRESULT STDMETHODCALLTYPE IFileSinkFilter2_SetMode_Proxy(
6574     IFileSinkFilter2* This,
6575     DWORD dwFlags);
6576 void __RPC_STUB IFileSinkFilter2_SetMode_Stub(
6577     IRpcStubBuffer* This,
6578     IRpcChannelBuffer* pRpcChannelBuffer,
6579     PRPC_MESSAGE pRpcMessage,
6580     DWORD* pdwStubPhase);
6581 HRESULT STDMETHODCALLTYPE IFileSinkFilter2_GetMode_Proxy(
6582     IFileSinkFilter2* This,
6583     DWORD *pdwFlags);
6584 void __RPC_STUB IFileSinkFilter2_GetMode_Stub(
6585     IRpcStubBuffer* This,
6586     IRpcChannelBuffer* pRpcChannelBuffer,
6587     PRPC_MESSAGE pRpcMessage,
6588     DWORD* pdwStubPhase);
6589 
6590 #endif  /* __IFileSinkFilter2_INTERFACE_DEFINED__ */
6591 
6592 typedef IFileSinkFilter2 *PFILESINKFILTER2;
6593 typedef enum __WIDL_strmif_generated_name_00000008 {
6594     AM_FILE_OVERWRITE = 0x1
6595 } AM_FILESINK_FLAGS;
6596 /*****************************************************************************
6597  * IGraphBuilder interface
6598  */
6599 #ifndef __IGraphBuilder_INTERFACE_DEFINED__
6600 #define __IGraphBuilder_INTERFACE_DEFINED__
6601 
6602 DEFINE_GUID(IID_IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6603 #if defined(__cplusplus) && !defined(CINTERFACE)
6604 MIDL_INTERFACE("56a868a9-0ad4-11ce-b03a-0020af0ba770")
6605 IGraphBuilder : public IFilterGraph
6606 {
6607     virtual HRESULT STDMETHODCALLTYPE Connect(
6608         IPin *ppinOut,
6609         IPin *ppinIn) = 0;
6610 
6611     virtual HRESULT STDMETHODCALLTYPE Render(
6612         IPin *ppinOut) = 0;
6613 
6614     virtual HRESULT STDMETHODCALLTYPE RenderFile(
6615         LPCWSTR lpcwstrFile,
6616         LPCWSTR lpcwstrPlayList) = 0;
6617 
6618     virtual HRESULT STDMETHODCALLTYPE AddSourceFilter(
6619         LPCWSTR lpcwstrFileName,
6620         LPCWSTR lpcwstrFilterName,
6621         IBaseFilter **ppFilter) = 0;
6622 
6623     virtual HRESULT STDMETHODCALLTYPE SetLogFile(
6624         DWORD_PTR hFile) = 0;
6625 
6626     virtual HRESULT STDMETHODCALLTYPE Abort(
6627         ) = 0;
6628 
6629     virtual HRESULT STDMETHODCALLTYPE ShouldOperationContinue(
6630         ) = 0;
6631 
6632 };
6633 #ifdef __CRT_UUID_DECL
6634 __CRT_UUID_DECL(IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
6635 #endif
6636 #else
6637 typedef struct IGraphBuilderVtbl {
6638     BEGIN_INTERFACE
6639 
6640     /*** IUnknown methods ***/
6641     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6642         IGraphBuilder* This,
6643         REFIID riid,
6644         void **ppvObject);
6645 
6646     ULONG (STDMETHODCALLTYPE *AddRef)(
6647         IGraphBuilder* This);
6648 
6649     ULONG (STDMETHODCALLTYPE *Release)(
6650         IGraphBuilder* This);
6651 
6652     /*** IFilterGraph methods ***/
6653     HRESULT (STDMETHODCALLTYPE *AddFilter)(
6654         IGraphBuilder* This,
6655         IBaseFilter *pFilter,
6656         LPCWSTR pName);
6657 
6658     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
6659         IGraphBuilder* This,
6660         IBaseFilter *pFilter);
6661 
6662     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
6663         IGraphBuilder* This,
6664         IEnumFilters **ppEnum);
6665 
6666     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
6667         IGraphBuilder* This,
6668         LPCWSTR pName,
6669         IBaseFilter **ppFilter);
6670 
6671     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
6672         IGraphBuilder* This,
6673         IPin *ppinOut,
6674         IPin *ppinIn,
6675         const AM_MEDIA_TYPE *pmt);
6676 
6677     HRESULT (STDMETHODCALLTYPE *Reconnect)(
6678         IGraphBuilder* This,
6679         IPin *ppin);
6680 
6681     HRESULT (STDMETHODCALLTYPE *Disconnect)(
6682         IGraphBuilder* This,
6683         IPin *ppin);
6684 
6685     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
6686         IGraphBuilder* This);
6687 
6688     /*** IGraphBuilder methods ***/
6689     HRESULT (STDMETHODCALLTYPE *Connect)(
6690         IGraphBuilder* This,
6691         IPin *ppinOut,
6692         IPin *ppinIn);
6693 
6694     HRESULT (STDMETHODCALLTYPE *Render)(
6695         IGraphBuilder* This,
6696         IPin *ppinOut);
6697 
6698     HRESULT (STDMETHODCALLTYPE *RenderFile)(
6699         IGraphBuilder* This,
6700         LPCWSTR lpcwstrFile,
6701         LPCWSTR lpcwstrPlayList);
6702 
6703     HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
6704         IGraphBuilder* This,
6705         LPCWSTR lpcwstrFileName,
6706         LPCWSTR lpcwstrFilterName,
6707         IBaseFilter **ppFilter);
6708 
6709     HRESULT (STDMETHODCALLTYPE *SetLogFile)(
6710         IGraphBuilder* This,
6711         DWORD_PTR hFile);
6712 
6713     HRESULT (STDMETHODCALLTYPE *Abort)(
6714         IGraphBuilder* This);
6715 
6716     HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
6717         IGraphBuilder* This);
6718 
6719     END_INTERFACE
6720 } IGraphBuilderVtbl;
6721 interface IGraphBuilder {
6722     CONST_VTBL IGraphBuilderVtbl* lpVtbl;
6723 };
6724 
6725 #ifdef COBJMACROS
6726 #ifndef WIDL_C_INLINE_WRAPPERS
6727 /*** IUnknown methods ***/
6728 #define IGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6729 #define IGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
6730 #define IGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
6731 /*** IFilterGraph methods ***/
6732 #define IGraphBuilder_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
6733 #define IGraphBuilder_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
6734 #define IGraphBuilder_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
6735 #define IGraphBuilder_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
6736 #define IGraphBuilder_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
6737 #define IGraphBuilder_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
6738 #define IGraphBuilder_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
6739 #define IGraphBuilder_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
6740 /*** IGraphBuilder methods ***/
6741 #define IGraphBuilder_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
6742 #define IGraphBuilder_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
6743 #define IGraphBuilder_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
6744 #define IGraphBuilder_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
6745 #define IGraphBuilder_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
6746 #define IGraphBuilder_Abort(This) (This)->lpVtbl->Abort(This)
6747 #define IGraphBuilder_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
6748 #else
6749 /*** IUnknown methods ***/
6750 static FORCEINLINE HRESULT IGraphBuilder_QueryInterface(IGraphBuilder* This,REFIID riid,void **ppvObject) {
6751     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6752 }
6753 static FORCEINLINE ULONG IGraphBuilder_AddRef(IGraphBuilder* This) {
6754     return This->lpVtbl->AddRef(This);
6755 }
6756 static FORCEINLINE ULONG IGraphBuilder_Release(IGraphBuilder* This) {
6757     return This->lpVtbl->Release(This);
6758 }
6759 /*** IFilterGraph methods ***/
6760 static FORCEINLINE HRESULT IGraphBuilder_AddFilter(IGraphBuilder* This,IBaseFilter *pFilter,LPCWSTR pName) {
6761     return This->lpVtbl->AddFilter(This,pFilter,pName);
6762 }
6763 static FORCEINLINE HRESULT IGraphBuilder_RemoveFilter(IGraphBuilder* This,IBaseFilter *pFilter) {
6764     return This->lpVtbl->RemoveFilter(This,pFilter);
6765 }
6766 static FORCEINLINE HRESULT IGraphBuilder_EnumFilters(IGraphBuilder* This,IEnumFilters **ppEnum) {
6767     return This->lpVtbl->EnumFilters(This,ppEnum);
6768 }
6769 static FORCEINLINE HRESULT IGraphBuilder_FindFilterByName(IGraphBuilder* This,LPCWSTR pName,IBaseFilter **ppFilter) {
6770     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
6771 }
6772 static FORCEINLINE HRESULT IGraphBuilder_ConnectDirect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
6773     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
6774 }
6775 static FORCEINLINE HRESULT IGraphBuilder_Reconnect(IGraphBuilder* This,IPin *ppin) {
6776     return This->lpVtbl->Reconnect(This,ppin);
6777 }
6778 static FORCEINLINE HRESULT IGraphBuilder_Disconnect(IGraphBuilder* This,IPin *ppin) {
6779     return This->lpVtbl->Disconnect(This,ppin);
6780 }
6781 static FORCEINLINE HRESULT IGraphBuilder_SetDefaultSyncSource(IGraphBuilder* This) {
6782     return This->lpVtbl->SetDefaultSyncSource(This);
6783 }
6784 /*** IGraphBuilder methods ***/
6785 static FORCEINLINE HRESULT IGraphBuilder_Connect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn) {
6786     return This->lpVtbl->Connect(This,ppinOut,ppinIn);
6787 }
6788 static FORCEINLINE HRESULT IGraphBuilder_Render(IGraphBuilder* This,IPin *ppinOut) {
6789     return This->lpVtbl->Render(This,ppinOut);
6790 }
6791 static FORCEINLINE HRESULT IGraphBuilder_RenderFile(IGraphBuilder* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
6792     return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
6793 }
6794 static FORCEINLINE HRESULT IGraphBuilder_AddSourceFilter(IGraphBuilder* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
6795     return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
6796 }
6797 static FORCEINLINE HRESULT IGraphBuilder_SetLogFile(IGraphBuilder* This,DWORD_PTR hFile) {
6798     return This->lpVtbl->SetLogFile(This,hFile);
6799 }
6800 static FORCEINLINE HRESULT IGraphBuilder_Abort(IGraphBuilder* This) {
6801     return This->lpVtbl->Abort(This);
6802 }
6803 static FORCEINLINE HRESULT IGraphBuilder_ShouldOperationContinue(IGraphBuilder* This) {
6804     return This->lpVtbl->ShouldOperationContinue(This);
6805 }
6806 #endif
6807 #endif
6808 
6809 #endif
6810 
6811 HRESULT STDMETHODCALLTYPE IGraphBuilder_Connect_Proxy(
6812     IGraphBuilder* This,
6813     IPin *ppinOut,
6814     IPin *ppinIn);
6815 void __RPC_STUB IGraphBuilder_Connect_Stub(
6816     IRpcStubBuffer* This,
6817     IRpcChannelBuffer* pRpcChannelBuffer,
6818     PRPC_MESSAGE pRpcMessage,
6819     DWORD* pdwStubPhase);
6820 HRESULT STDMETHODCALLTYPE IGraphBuilder_Render_Proxy(
6821     IGraphBuilder* This,
6822     IPin *ppinOut);
6823 void __RPC_STUB IGraphBuilder_Render_Stub(
6824     IRpcStubBuffer* This,
6825     IRpcChannelBuffer* pRpcChannelBuffer,
6826     PRPC_MESSAGE pRpcMessage,
6827     DWORD* pdwStubPhase);
6828 HRESULT STDMETHODCALLTYPE IGraphBuilder_RenderFile_Proxy(
6829     IGraphBuilder* This,
6830     LPCWSTR lpcwstrFile,
6831     LPCWSTR lpcwstrPlayList);
6832 void __RPC_STUB IGraphBuilder_RenderFile_Stub(
6833     IRpcStubBuffer* This,
6834     IRpcChannelBuffer* pRpcChannelBuffer,
6835     PRPC_MESSAGE pRpcMessage,
6836     DWORD* pdwStubPhase);
6837 HRESULT STDMETHODCALLTYPE IGraphBuilder_AddSourceFilter_Proxy(
6838     IGraphBuilder* This,
6839     LPCWSTR lpcwstrFileName,
6840     LPCWSTR lpcwstrFilterName,
6841     IBaseFilter **ppFilter);
6842 void __RPC_STUB IGraphBuilder_AddSourceFilter_Stub(
6843     IRpcStubBuffer* This,
6844     IRpcChannelBuffer* pRpcChannelBuffer,
6845     PRPC_MESSAGE pRpcMessage,
6846     DWORD* pdwStubPhase);
6847 HRESULT STDMETHODCALLTYPE IGraphBuilder_SetLogFile_Proxy(
6848     IGraphBuilder* This,
6849     DWORD_PTR hFile);
6850 void __RPC_STUB IGraphBuilder_SetLogFile_Stub(
6851     IRpcStubBuffer* This,
6852     IRpcChannelBuffer* pRpcChannelBuffer,
6853     PRPC_MESSAGE pRpcMessage,
6854     DWORD* pdwStubPhase);
6855 HRESULT STDMETHODCALLTYPE IGraphBuilder_Abort_Proxy(
6856     IGraphBuilder* This);
6857 void __RPC_STUB IGraphBuilder_Abort_Stub(
6858     IRpcStubBuffer* This,
6859     IRpcChannelBuffer* pRpcChannelBuffer,
6860     PRPC_MESSAGE pRpcMessage,
6861     DWORD* pdwStubPhase);
6862 HRESULT STDMETHODCALLTYPE IGraphBuilder_ShouldOperationContinue_Proxy(
6863     IGraphBuilder* This);
6864 void __RPC_STUB IGraphBuilder_ShouldOperationContinue_Stub(
6865     IRpcStubBuffer* This,
6866     IRpcChannelBuffer* pRpcChannelBuffer,
6867     PRPC_MESSAGE pRpcMessage,
6868     DWORD* pdwStubPhase);
6869 
6870 #endif  /* __IGraphBuilder_INTERFACE_DEFINED__ */
6871 
6872 /*****************************************************************************
6873  * ICaptureGraphBuilder interface
6874  */
6875 #ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__
6876 #define __ICaptureGraphBuilder_INTERFACE_DEFINED__
6877 
6878 DEFINE_GUID(IID_ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
6879 #if defined(__cplusplus) && !defined(CINTERFACE)
6880 MIDL_INTERFACE("bf87b6e0-8c27-11d0-b3f0-00aa003761c5")
6881 ICaptureGraphBuilder : public IUnknown
6882 {
6883     virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
6884         IGraphBuilder *pfg) = 0;
6885 
6886     virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
6887         IGraphBuilder **ppfg) = 0;
6888 
6889     virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
6890         const GUID *pType,
6891         LPCOLESTR lpstrFile,
6892         IBaseFilter **ppf,
6893         IFileSinkFilter **ppSink) = 0;
6894 
6895     virtual HRESULT STDMETHODCALLTYPE FindInterface(
6896         const GUID *pCategory,
6897         IBaseFilter *pf,
6898         REFIID riid,
6899         void **ppint) = 0;
6900 
6901     virtual HRESULT STDMETHODCALLTYPE RenderStream(
6902         const GUID *pCategory,
6903         IUnknown *pSource,
6904         IBaseFilter *pfCompressor,
6905         IBaseFilter *pfRenderer) = 0;
6906 
6907     virtual HRESULT STDMETHODCALLTYPE ControlStream(
6908         const GUID *pCategory,
6909         IBaseFilter *pFilter,
6910         REFERENCE_TIME *pstart,
6911         REFERENCE_TIME *pstop,
6912         WORD wStartCookie,
6913         WORD wStopCookie) = 0;
6914 
6915     virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
6916         LPCOLESTR lpstr,
6917         DWORDLONG dwlSize) = 0;
6918 
6919     virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
6920         LPOLESTR lpwstrOld,
6921         LPOLESTR lpwstrNew,
6922         int fAllowEscAbort,
6923         IAMCopyCaptureFileProgress *pCallback) = 0;
6924 
6925 };
6926 #ifdef __CRT_UUID_DECL
6927 __CRT_UUID_DECL(ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
6928 #endif
6929 #else
6930 typedef struct ICaptureGraphBuilderVtbl {
6931     BEGIN_INTERFACE
6932 
6933     /*** IUnknown methods ***/
6934     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6935         ICaptureGraphBuilder* This,
6936         REFIID riid,
6937         void **ppvObject);
6938 
6939     ULONG (STDMETHODCALLTYPE *AddRef)(
6940         ICaptureGraphBuilder* This);
6941 
6942     ULONG (STDMETHODCALLTYPE *Release)(
6943         ICaptureGraphBuilder* This);
6944 
6945     /*** ICaptureGraphBuilder methods ***/
6946     HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
6947         ICaptureGraphBuilder* This,
6948         IGraphBuilder *pfg);
6949 
6950     HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
6951         ICaptureGraphBuilder* This,
6952         IGraphBuilder **ppfg);
6953 
6954     HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
6955         ICaptureGraphBuilder* This,
6956         const GUID *pType,
6957         LPCOLESTR lpstrFile,
6958         IBaseFilter **ppf,
6959         IFileSinkFilter **ppSink);
6960 
6961     HRESULT (STDMETHODCALLTYPE *FindInterface)(
6962         ICaptureGraphBuilder* This,
6963         const GUID *pCategory,
6964         IBaseFilter *pf,
6965         REFIID riid,
6966         void **ppint);
6967 
6968     HRESULT (STDMETHODCALLTYPE *RenderStream)(
6969         ICaptureGraphBuilder* This,
6970         const GUID *pCategory,
6971         IUnknown *pSource,
6972         IBaseFilter *pfCompressor,
6973         IBaseFilter *pfRenderer);
6974 
6975     HRESULT (STDMETHODCALLTYPE *ControlStream)(
6976         ICaptureGraphBuilder* This,
6977         const GUID *pCategory,
6978         IBaseFilter *pFilter,
6979         REFERENCE_TIME *pstart,
6980         REFERENCE_TIME *pstop,
6981         WORD wStartCookie,
6982         WORD wStopCookie);
6983 
6984     HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
6985         ICaptureGraphBuilder* This,
6986         LPCOLESTR lpstr,
6987         DWORDLONG dwlSize);
6988 
6989     HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
6990         ICaptureGraphBuilder* This,
6991         LPOLESTR lpwstrOld,
6992         LPOLESTR lpwstrNew,
6993         int fAllowEscAbort,
6994         IAMCopyCaptureFileProgress *pCallback);
6995 
6996     END_INTERFACE
6997 } ICaptureGraphBuilderVtbl;
6998 interface ICaptureGraphBuilder {
6999     CONST_VTBL ICaptureGraphBuilderVtbl* lpVtbl;
7000 };
7001 
7002 #ifdef COBJMACROS
7003 #ifndef WIDL_C_INLINE_WRAPPERS
7004 /*** IUnknown methods ***/
7005 #define ICaptureGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7006 #define ICaptureGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
7007 #define ICaptureGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
7008 /*** ICaptureGraphBuilder methods ***/
7009 #define ICaptureGraphBuilder_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
7010 #define ICaptureGraphBuilder_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
7011 #define ICaptureGraphBuilder_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
7012 #define ICaptureGraphBuilder_FindInterface(This,pCategory,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint)
7013 #define ICaptureGraphBuilder_RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer)
7014 #define ICaptureGraphBuilder_ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie)
7015 #define ICaptureGraphBuilder_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
7016 #define ICaptureGraphBuilder_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
7017 #else
7018 /*** IUnknown methods ***/
7019 static FORCEINLINE HRESULT ICaptureGraphBuilder_QueryInterface(ICaptureGraphBuilder* This,REFIID riid,void **ppvObject) {
7020     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7021 }
7022 static FORCEINLINE ULONG ICaptureGraphBuilder_AddRef(ICaptureGraphBuilder* This) {
7023     return This->lpVtbl->AddRef(This);
7024 }
7025 static FORCEINLINE ULONG ICaptureGraphBuilder_Release(ICaptureGraphBuilder* This) {
7026     return This->lpVtbl->Release(This);
7027 }
7028 /*** ICaptureGraphBuilder methods ***/
7029 static FORCEINLINE HRESULT ICaptureGraphBuilder_SetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder *pfg) {
7030     return This->lpVtbl->SetFiltergraph(This,pfg);
7031 }
7032 static FORCEINLINE HRESULT ICaptureGraphBuilder_GetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder **ppfg) {
7033     return This->lpVtbl->GetFiltergraph(This,ppfg);
7034 }
7035 static FORCEINLINE HRESULT ICaptureGraphBuilder_SetOutputFileName(ICaptureGraphBuilder* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) {
7036     return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink);
7037 }
7038 static FORCEINLINE HRESULT ICaptureGraphBuilder_FindInterface(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,void **ppint) {
7039     return This->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint);
7040 }
7041 static FORCEINLINE HRESULT ICaptureGraphBuilder_RenderStream(ICaptureGraphBuilder* This,const GUID *pCategory,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) {
7042     return This->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer);
7043 }
7044 static FORCEINLINE HRESULT ICaptureGraphBuilder_ControlStream(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) {
7045     return This->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie);
7046 }
7047 static FORCEINLINE HRESULT ICaptureGraphBuilder_AllocCapFile(ICaptureGraphBuilder* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
7048     return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
7049 }
7050 static FORCEINLINE HRESULT ICaptureGraphBuilder_CopyCaptureFile(ICaptureGraphBuilder* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) {
7051     return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback);
7052 }
7053 #endif
7054 #endif
7055 
7056 #endif
7057 
7058 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_SetFiltergraph_Proxy(
7059     ICaptureGraphBuilder* This,
7060     IGraphBuilder *pfg);
7061 void __RPC_STUB ICaptureGraphBuilder_SetFiltergraph_Stub(
7062     IRpcStubBuffer* This,
7063     IRpcChannelBuffer* pRpcChannelBuffer,
7064     PRPC_MESSAGE pRpcMessage,
7065     DWORD* pdwStubPhase);
7066 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_GetFiltergraph_Proxy(
7067     ICaptureGraphBuilder* This,
7068     IGraphBuilder **ppfg);
7069 void __RPC_STUB ICaptureGraphBuilder_GetFiltergraph_Stub(
7070     IRpcStubBuffer* This,
7071     IRpcChannelBuffer* pRpcChannelBuffer,
7072     PRPC_MESSAGE pRpcMessage,
7073     DWORD* pdwStubPhase);
7074 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_SetOutputFileName_Proxy(
7075     ICaptureGraphBuilder* This,
7076     const GUID *pType,
7077     LPCOLESTR lpstrFile,
7078     IBaseFilter **ppf,
7079     IFileSinkFilter **ppSink);
7080 void __RPC_STUB ICaptureGraphBuilder_SetOutputFileName_Stub(
7081     IRpcStubBuffer* This,
7082     IRpcChannelBuffer* pRpcChannelBuffer,
7083     PRPC_MESSAGE pRpcMessage,
7084     DWORD* pdwStubPhase);
7085 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RemoteFindInterface_Proxy(
7086     ICaptureGraphBuilder* This,
7087     const GUID *pCategory,
7088     IBaseFilter *pf,
7089     REFIID riid,
7090     IUnknown **ppint);
7091 void __RPC_STUB ICaptureGraphBuilder_RemoteFindInterface_Stub(
7092     IRpcStubBuffer* This,
7093     IRpcChannelBuffer* pRpcChannelBuffer,
7094     PRPC_MESSAGE pRpcMessage,
7095     DWORD* pdwStubPhase);
7096 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RenderStream_Proxy(
7097     ICaptureGraphBuilder* This,
7098     const GUID *pCategory,
7099     IUnknown *pSource,
7100     IBaseFilter *pfCompressor,
7101     IBaseFilter *pfRenderer);
7102 void __RPC_STUB ICaptureGraphBuilder_RenderStream_Stub(
7103     IRpcStubBuffer* This,
7104     IRpcChannelBuffer* pRpcChannelBuffer,
7105     PRPC_MESSAGE pRpcMessage,
7106     DWORD* pdwStubPhase);
7107 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_ControlStream_Proxy(
7108     ICaptureGraphBuilder* This,
7109     const GUID *pCategory,
7110     IBaseFilter *pFilter,
7111     REFERENCE_TIME *pstart,
7112     REFERENCE_TIME *pstop,
7113     WORD wStartCookie,
7114     WORD wStopCookie);
7115 void __RPC_STUB ICaptureGraphBuilder_ControlStream_Stub(
7116     IRpcStubBuffer* This,
7117     IRpcChannelBuffer* pRpcChannelBuffer,
7118     PRPC_MESSAGE pRpcMessage,
7119     DWORD* pdwStubPhase);
7120 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_AllocCapFile_Proxy(
7121     ICaptureGraphBuilder* This,
7122     LPCOLESTR lpstr,
7123     DWORDLONG dwlSize);
7124 void __RPC_STUB ICaptureGraphBuilder_AllocCapFile_Stub(
7125     IRpcStubBuffer* This,
7126     IRpcChannelBuffer* pRpcChannelBuffer,
7127     PRPC_MESSAGE pRpcMessage,
7128     DWORD* pdwStubPhase);
7129 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_CopyCaptureFile_Proxy(
7130     ICaptureGraphBuilder* This,
7131     LPOLESTR lpwstrOld,
7132     LPOLESTR lpwstrNew,
7133     int fAllowEscAbort,
7134     IAMCopyCaptureFileProgress *pCallback);
7135 void __RPC_STUB ICaptureGraphBuilder_CopyCaptureFile_Stub(
7136     IRpcStubBuffer* This,
7137     IRpcChannelBuffer* pRpcChannelBuffer,
7138     PRPC_MESSAGE pRpcMessage,
7139     DWORD* pdwStubPhase);
7140 HRESULT CALLBACK ICaptureGraphBuilder_FindInterface_Proxy(
7141     ICaptureGraphBuilder* This,
7142     const GUID *pCategory,
7143     IBaseFilter *pf,
7144     REFIID riid,
7145     void **ppint);
7146 HRESULT __RPC_STUB ICaptureGraphBuilder_FindInterface_Stub(
7147     ICaptureGraphBuilder* This,
7148     const GUID *pCategory,
7149     IBaseFilter *pf,
7150     REFIID riid,
7151     IUnknown **ppint);
7152 
7153 #endif  /* __ICaptureGraphBuilder_INTERFACE_DEFINED__ */
7154 
7155 /*****************************************************************************
7156  * IAMCopyCaptureFileProgress interface
7157  */
7158 #ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
7159 #define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
7160 
7161 DEFINE_GUID(IID_IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
7162 #if defined(__cplusplus) && !defined(CINTERFACE)
7163 MIDL_INTERFACE("670d1d20-a068-11d0-b3f0-00aa003761c5")
7164 IAMCopyCaptureFileProgress : public IUnknown
7165 {
7166     virtual HRESULT STDMETHODCALLTYPE Progress(
7167         int iProgress) = 0;
7168 
7169 };
7170 #ifdef __CRT_UUID_DECL
7171 __CRT_UUID_DECL(IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
7172 #endif
7173 #else
7174 typedef struct IAMCopyCaptureFileProgressVtbl {
7175     BEGIN_INTERFACE
7176 
7177     /*** IUnknown methods ***/
7178     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7179         IAMCopyCaptureFileProgress* This,
7180         REFIID riid,
7181         void **ppvObject);
7182 
7183     ULONG (STDMETHODCALLTYPE *AddRef)(
7184         IAMCopyCaptureFileProgress* This);
7185 
7186     ULONG (STDMETHODCALLTYPE *Release)(
7187         IAMCopyCaptureFileProgress* This);
7188 
7189     /*** IAMCopyCaptureFileProgress methods ***/
7190     HRESULT (STDMETHODCALLTYPE *Progress)(
7191         IAMCopyCaptureFileProgress* This,
7192         int iProgress);
7193 
7194     END_INTERFACE
7195 } IAMCopyCaptureFileProgressVtbl;
7196 interface IAMCopyCaptureFileProgress {
7197     CONST_VTBL IAMCopyCaptureFileProgressVtbl* lpVtbl;
7198 };
7199 
7200 #ifdef COBJMACROS
7201 #ifndef WIDL_C_INLINE_WRAPPERS
7202 /*** IUnknown methods ***/
7203 #define IAMCopyCaptureFileProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7204 #define IAMCopyCaptureFileProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
7205 #define IAMCopyCaptureFileProgress_Release(This) (This)->lpVtbl->Release(This)
7206 /*** IAMCopyCaptureFileProgress methods ***/
7207 #define IAMCopyCaptureFileProgress_Progress(This,iProgress) (This)->lpVtbl->Progress(This,iProgress)
7208 #else
7209 /*** IUnknown methods ***/
7210 static FORCEINLINE HRESULT IAMCopyCaptureFileProgress_QueryInterface(IAMCopyCaptureFileProgress* This,REFIID riid,void **ppvObject) {
7211     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7212 }
7213 static FORCEINLINE ULONG IAMCopyCaptureFileProgress_AddRef(IAMCopyCaptureFileProgress* This) {
7214     return This->lpVtbl->AddRef(This);
7215 }
7216 static FORCEINLINE ULONG IAMCopyCaptureFileProgress_Release(IAMCopyCaptureFileProgress* This) {
7217     return This->lpVtbl->Release(This);
7218 }
7219 /*** IAMCopyCaptureFileProgress methods ***/
7220 static FORCEINLINE HRESULT IAMCopyCaptureFileProgress_Progress(IAMCopyCaptureFileProgress* This,int iProgress) {
7221     return This->lpVtbl->Progress(This,iProgress);
7222 }
7223 #endif
7224 #endif
7225 
7226 #endif
7227 
7228 HRESULT STDMETHODCALLTYPE IAMCopyCaptureFileProgress_Progress_Proxy(
7229     IAMCopyCaptureFileProgress* This,
7230     int iProgress);
7231 void __RPC_STUB IAMCopyCaptureFileProgress_Progress_Stub(
7232     IRpcStubBuffer* This,
7233     IRpcChannelBuffer* pRpcChannelBuffer,
7234     PRPC_MESSAGE pRpcMessage,
7235     DWORD* pdwStubPhase);
7236 
7237 #endif  /* __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ */
7238 
7239 /*****************************************************************************
7240  * ICaptureGraphBuilder2 interface
7241  */
7242 #ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
7243 #define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
7244 
7245 DEFINE_GUID(IID_ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d);
7246 #if defined(__cplusplus) && !defined(CINTERFACE)
7247 MIDL_INTERFACE("93e5a4e0-2d50-11d2-abfa-00a0c9c6e38d")
7248 ICaptureGraphBuilder2 : public IUnknown
7249 {
7250     virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
7251         IGraphBuilder *pfg) = 0;
7252 
7253     virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
7254         IGraphBuilder **ppfg) = 0;
7255 
7256     virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
7257         const GUID *pType,
7258         LPCOLESTR lpstrFile,
7259         IBaseFilter **ppf,
7260         IFileSinkFilter **ppSink) = 0;
7261 
7262     virtual HRESULT STDMETHODCALLTYPE FindInterface(
7263         const GUID *pCategory,
7264         const GUID *pType,
7265         IBaseFilter *pf,
7266         REFIID riid,
7267         void **ppint) = 0;
7268 
7269     virtual HRESULT STDMETHODCALLTYPE RenderStream(
7270         const GUID *pCategory,
7271         const GUID *pType,
7272         IUnknown *pSource,
7273         IBaseFilter *pfCompressor,
7274         IBaseFilter *pfRenderer) = 0;
7275 
7276     virtual HRESULT STDMETHODCALLTYPE ControlStream(
7277         const GUID *pCategory,
7278         const GUID *pType,
7279         IBaseFilter *pFilter,
7280         REFERENCE_TIME *pstart,
7281         REFERENCE_TIME *pstop,
7282         WORD wStartCookie,
7283         WORD wStopCookie) = 0;
7284 
7285     virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
7286         LPCOLESTR lpstr,
7287         DWORDLONG dwlSize) = 0;
7288 
7289     virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
7290         LPOLESTR lpwstrOld,
7291         LPOLESTR lpwstrNew,
7292         int fAllowEscAbort,
7293         IAMCopyCaptureFileProgress *pCallback) = 0;
7294 
7295     virtual HRESULT STDMETHODCALLTYPE FindPin(
7296         IUnknown *pSource,
7297         PIN_DIRECTION pindir,
7298         const GUID *pCategory,
7299         const GUID *pType,
7300         WINBOOL fUnconnected,
7301         int num,
7302         IPin **ppPin) = 0;
7303 
7304 };
7305 #ifdef __CRT_UUID_DECL
7306 __CRT_UUID_DECL(ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d)
7307 #endif
7308 #else
7309 typedef struct ICaptureGraphBuilder2Vtbl {
7310     BEGIN_INTERFACE
7311 
7312     /*** IUnknown methods ***/
7313     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7314         ICaptureGraphBuilder2* This,
7315         REFIID riid,
7316         void **ppvObject);
7317 
7318     ULONG (STDMETHODCALLTYPE *AddRef)(
7319         ICaptureGraphBuilder2* This);
7320 
7321     ULONG (STDMETHODCALLTYPE *Release)(
7322         ICaptureGraphBuilder2* This);
7323 
7324     /*** ICaptureGraphBuilder2 methods ***/
7325     HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
7326         ICaptureGraphBuilder2* This,
7327         IGraphBuilder *pfg);
7328 
7329     HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
7330         ICaptureGraphBuilder2* This,
7331         IGraphBuilder **ppfg);
7332 
7333     HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
7334         ICaptureGraphBuilder2* This,
7335         const GUID *pType,
7336         LPCOLESTR lpstrFile,
7337         IBaseFilter **ppf,
7338         IFileSinkFilter **ppSink);
7339 
7340     HRESULT (STDMETHODCALLTYPE *FindInterface)(
7341         ICaptureGraphBuilder2* This,
7342         const GUID *pCategory,
7343         const GUID *pType,
7344         IBaseFilter *pf,
7345         REFIID riid,
7346         void **ppint);
7347 
7348     HRESULT (STDMETHODCALLTYPE *RenderStream)(
7349         ICaptureGraphBuilder2* This,
7350         const GUID *pCategory,
7351         const GUID *pType,
7352         IUnknown *pSource,
7353         IBaseFilter *pfCompressor,
7354         IBaseFilter *pfRenderer);
7355 
7356     HRESULT (STDMETHODCALLTYPE *ControlStream)(
7357         ICaptureGraphBuilder2* This,
7358         const GUID *pCategory,
7359         const GUID *pType,
7360         IBaseFilter *pFilter,
7361         REFERENCE_TIME *pstart,
7362         REFERENCE_TIME *pstop,
7363         WORD wStartCookie,
7364         WORD wStopCookie);
7365 
7366     HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
7367         ICaptureGraphBuilder2* This,
7368         LPCOLESTR lpstr,
7369         DWORDLONG dwlSize);
7370 
7371     HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
7372         ICaptureGraphBuilder2* This,
7373         LPOLESTR lpwstrOld,
7374         LPOLESTR lpwstrNew,
7375         int fAllowEscAbort,
7376         IAMCopyCaptureFileProgress *pCallback);
7377 
7378     HRESULT (STDMETHODCALLTYPE *FindPin)(
7379         ICaptureGraphBuilder2* This,
7380         IUnknown *pSource,
7381         PIN_DIRECTION pindir,
7382         const GUID *pCategory,
7383         const GUID *pType,
7384         WINBOOL fUnconnected,
7385         int num,
7386         IPin **ppPin);
7387 
7388     END_INTERFACE
7389 } ICaptureGraphBuilder2Vtbl;
7390 interface ICaptureGraphBuilder2 {
7391     CONST_VTBL ICaptureGraphBuilder2Vtbl* lpVtbl;
7392 };
7393 
7394 #ifdef COBJMACROS
7395 #ifndef WIDL_C_INLINE_WRAPPERS
7396 /*** IUnknown methods ***/
7397 #define ICaptureGraphBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7398 #define ICaptureGraphBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
7399 #define ICaptureGraphBuilder2_Release(This) (This)->lpVtbl->Release(This)
7400 /*** ICaptureGraphBuilder2 methods ***/
7401 #define ICaptureGraphBuilder2_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
7402 #define ICaptureGraphBuilder2_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
7403 #define ICaptureGraphBuilder2_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
7404 #define ICaptureGraphBuilder2_FindInterface(This,pCategory,pType,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint)
7405 #define ICaptureGraphBuilder2_RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer)
7406 #define ICaptureGraphBuilder2_ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie)
7407 #define ICaptureGraphBuilder2_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
7408 #define ICaptureGraphBuilder2_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
7409 #define ICaptureGraphBuilder2_FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin) (This)->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin)
7410 #else
7411 /*** IUnknown methods ***/
7412 static FORCEINLINE HRESULT ICaptureGraphBuilder2_QueryInterface(ICaptureGraphBuilder2* This,REFIID riid,void **ppvObject) {
7413     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7414 }
7415 static FORCEINLINE ULONG ICaptureGraphBuilder2_AddRef(ICaptureGraphBuilder2* This) {
7416     return This->lpVtbl->AddRef(This);
7417 }
7418 static FORCEINLINE ULONG ICaptureGraphBuilder2_Release(ICaptureGraphBuilder2* This) {
7419     return This->lpVtbl->Release(This);
7420 }
7421 /*** ICaptureGraphBuilder2 methods ***/
7422 static FORCEINLINE HRESULT ICaptureGraphBuilder2_SetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder *pfg) {
7423     return This->lpVtbl->SetFiltergraph(This,pfg);
7424 }
7425 static FORCEINLINE HRESULT ICaptureGraphBuilder2_GetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder **ppfg) {
7426     return This->lpVtbl->GetFiltergraph(This,ppfg);
7427 }
7428 static FORCEINLINE HRESULT ICaptureGraphBuilder2_SetOutputFileName(ICaptureGraphBuilder2* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) {
7429     return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink);
7430 }
7431 static FORCEINLINE HRESULT ICaptureGraphBuilder2_FindInterface(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,void **ppint) {
7432     return This->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint);
7433 }
7434 static FORCEINLINE HRESULT ICaptureGraphBuilder2_RenderStream(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) {
7435     return This->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer);
7436 }
7437 static FORCEINLINE HRESULT ICaptureGraphBuilder2_ControlStream(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) {
7438     return This->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie);
7439 }
7440 static FORCEINLINE HRESULT ICaptureGraphBuilder2_AllocCapFile(ICaptureGraphBuilder2* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
7441     return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
7442 }
7443 static FORCEINLINE HRESULT ICaptureGraphBuilder2_CopyCaptureFile(ICaptureGraphBuilder2* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) {
7444     return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback);
7445 }
7446 static FORCEINLINE HRESULT ICaptureGraphBuilder2_FindPin(ICaptureGraphBuilder2* This,IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,WINBOOL fUnconnected,int num,IPin **ppPin) {
7447     return This->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin);
7448 }
7449 #endif
7450 #endif
7451 
7452 #endif
7453 
7454 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_SetFiltergraph_Proxy(
7455     ICaptureGraphBuilder2* This,
7456     IGraphBuilder *pfg);
7457 void __RPC_STUB ICaptureGraphBuilder2_SetFiltergraph_Stub(
7458     IRpcStubBuffer* This,
7459     IRpcChannelBuffer* pRpcChannelBuffer,
7460     PRPC_MESSAGE pRpcMessage,
7461     DWORD* pdwStubPhase);
7462 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_GetFiltergraph_Proxy(
7463     ICaptureGraphBuilder2* This,
7464     IGraphBuilder **ppfg);
7465 void __RPC_STUB ICaptureGraphBuilder2_GetFiltergraph_Stub(
7466     IRpcStubBuffer* This,
7467     IRpcChannelBuffer* pRpcChannelBuffer,
7468     PRPC_MESSAGE pRpcMessage,
7469     DWORD* pdwStubPhase);
7470 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_SetOutputFileName_Proxy(
7471     ICaptureGraphBuilder2* This,
7472     const GUID *pType,
7473     LPCOLESTR lpstrFile,
7474     IBaseFilter **ppf,
7475     IFileSinkFilter **ppSink);
7476 void __RPC_STUB ICaptureGraphBuilder2_SetOutputFileName_Stub(
7477     IRpcStubBuffer* This,
7478     IRpcChannelBuffer* pRpcChannelBuffer,
7479     PRPC_MESSAGE pRpcMessage,
7480     DWORD* pdwStubPhase);
7481 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RemoteFindInterface_Proxy(
7482     ICaptureGraphBuilder2* This,
7483     const GUID *pCategory,
7484     const GUID *pType,
7485     IBaseFilter *pf,
7486     REFIID riid,
7487     IUnknown **ppint);
7488 void __RPC_STUB ICaptureGraphBuilder2_RemoteFindInterface_Stub(
7489     IRpcStubBuffer* This,
7490     IRpcChannelBuffer* pRpcChannelBuffer,
7491     PRPC_MESSAGE pRpcMessage,
7492     DWORD* pdwStubPhase);
7493 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RenderStream_Proxy(
7494     ICaptureGraphBuilder2* This,
7495     const GUID *pCategory,
7496     const GUID *pType,
7497     IUnknown *pSource,
7498     IBaseFilter *pfCompressor,
7499     IBaseFilter *pfRenderer);
7500 void __RPC_STUB ICaptureGraphBuilder2_RenderStream_Stub(
7501     IRpcStubBuffer* This,
7502     IRpcChannelBuffer* pRpcChannelBuffer,
7503     PRPC_MESSAGE pRpcMessage,
7504     DWORD* pdwStubPhase);
7505 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_ControlStream_Proxy(
7506     ICaptureGraphBuilder2* This,
7507     const GUID *pCategory,
7508     const GUID *pType,
7509     IBaseFilter *pFilter,
7510     REFERENCE_TIME *pstart,
7511     REFERENCE_TIME *pstop,
7512     WORD wStartCookie,
7513     WORD wStopCookie);
7514 void __RPC_STUB ICaptureGraphBuilder2_ControlStream_Stub(
7515     IRpcStubBuffer* This,
7516     IRpcChannelBuffer* pRpcChannelBuffer,
7517     PRPC_MESSAGE pRpcMessage,
7518     DWORD* pdwStubPhase);
7519 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_AllocCapFile_Proxy(
7520     ICaptureGraphBuilder2* This,
7521     LPCOLESTR lpstr,
7522     DWORDLONG dwlSize);
7523 void __RPC_STUB ICaptureGraphBuilder2_AllocCapFile_Stub(
7524     IRpcStubBuffer* This,
7525     IRpcChannelBuffer* pRpcChannelBuffer,
7526     PRPC_MESSAGE pRpcMessage,
7527     DWORD* pdwStubPhase);
7528 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_CopyCaptureFile_Proxy(
7529     ICaptureGraphBuilder2* This,
7530     LPOLESTR lpwstrOld,
7531     LPOLESTR lpwstrNew,
7532     int fAllowEscAbort,
7533     IAMCopyCaptureFileProgress *pCallback);
7534 void __RPC_STUB ICaptureGraphBuilder2_CopyCaptureFile_Stub(
7535     IRpcStubBuffer* This,
7536     IRpcChannelBuffer* pRpcChannelBuffer,
7537     PRPC_MESSAGE pRpcMessage,
7538     DWORD* pdwStubPhase);
7539 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_FindPin_Proxy(
7540     ICaptureGraphBuilder2* This,
7541     IUnknown *pSource,
7542     PIN_DIRECTION pindir,
7543     const GUID *pCategory,
7544     const GUID *pType,
7545     WINBOOL fUnconnected,
7546     int num,
7547     IPin **ppPin);
7548 void __RPC_STUB ICaptureGraphBuilder2_FindPin_Stub(
7549     IRpcStubBuffer* This,
7550     IRpcChannelBuffer* pRpcChannelBuffer,
7551     PRPC_MESSAGE pRpcMessage,
7552     DWORD* pdwStubPhase);
7553 HRESULT CALLBACK ICaptureGraphBuilder2_FindInterface_Proxy(
7554     ICaptureGraphBuilder2* This,
7555     const GUID *pCategory,
7556     const GUID *pType,
7557     IBaseFilter *pf,
7558     REFIID riid,
7559     void **ppint);
7560 HRESULT __RPC_STUB ICaptureGraphBuilder2_FindInterface_Stub(
7561     ICaptureGraphBuilder2* This,
7562     const GUID *pCategory,
7563     const GUID *pType,
7564     IBaseFilter *pf,
7565     REFIID riid,
7566     IUnknown **ppint);
7567 
7568 #endif  /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */
7569 
7570 /*****************************************************************************
7571  * IConfigAviMux interface
7572  */
7573 #ifndef __IConfigAviMux_INTERFACE_DEFINED__
7574 #define __IConfigAviMux_INTERFACE_DEFINED__
7575 
7576 DEFINE_GUID(IID_IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
7577 #if defined(__cplusplus) && !defined(CINTERFACE)
7578 MIDL_INTERFACE("5acd6aa0-f482-11ce-8b67-00aa00a3f1a6")
7579 IConfigAviMux : public IUnknown
7580 {
7581     virtual HRESULT STDMETHODCALLTYPE SetMasterStream(
7582         LONG iStream) = 0;
7583 
7584     virtual HRESULT STDMETHODCALLTYPE GetMasterStream(
7585         LONG *pStream) = 0;
7586 
7587     virtual HRESULT STDMETHODCALLTYPE SetOutputCompatibilityIndex(
7588         WINBOOL fOldIndex) = 0;
7589 
7590     virtual HRESULT STDMETHODCALLTYPE GetOutputCompatibilityIndex(
7591         WINBOOL *pfOldIndex) = 0;
7592 
7593 };
7594 #ifdef __CRT_UUID_DECL
7595 __CRT_UUID_DECL(IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6)
7596 #endif
7597 #else
7598 typedef struct IConfigAviMuxVtbl {
7599     BEGIN_INTERFACE
7600 
7601     /*** IUnknown methods ***/
7602     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7603         IConfigAviMux* This,
7604         REFIID riid,
7605         void **ppvObject);
7606 
7607     ULONG (STDMETHODCALLTYPE *AddRef)(
7608         IConfigAviMux* This);
7609 
7610     ULONG (STDMETHODCALLTYPE *Release)(
7611         IConfigAviMux* This);
7612 
7613     /*** IConfigAviMux methods ***/
7614     HRESULT (STDMETHODCALLTYPE *SetMasterStream)(
7615         IConfigAviMux* This,
7616         LONG iStream);
7617 
7618     HRESULT (STDMETHODCALLTYPE *GetMasterStream)(
7619         IConfigAviMux* This,
7620         LONG *pStream);
7621 
7622     HRESULT (STDMETHODCALLTYPE *SetOutputCompatibilityIndex)(
7623         IConfigAviMux* This,
7624         WINBOOL fOldIndex);
7625 
7626     HRESULT (STDMETHODCALLTYPE *GetOutputCompatibilityIndex)(
7627         IConfigAviMux* This,
7628         WINBOOL *pfOldIndex);
7629 
7630     END_INTERFACE
7631 } IConfigAviMuxVtbl;
7632 interface IConfigAviMux {
7633     CONST_VTBL IConfigAviMuxVtbl* lpVtbl;
7634 };
7635 
7636 #ifdef COBJMACROS
7637 #ifndef WIDL_C_INLINE_WRAPPERS
7638 /*** IUnknown methods ***/
7639 #define IConfigAviMux_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7640 #define IConfigAviMux_AddRef(This) (This)->lpVtbl->AddRef(This)
7641 #define IConfigAviMux_Release(This) (This)->lpVtbl->Release(This)
7642 /*** IConfigAviMux methods ***/
7643 #define IConfigAviMux_SetMasterStream(This,iStream) (This)->lpVtbl->SetMasterStream(This,iStream)
7644 #define IConfigAviMux_GetMasterStream(This,pStream) (This)->lpVtbl->GetMasterStream(This,pStream)
7645 #define IConfigAviMux_SetOutputCompatibilityIndex(This,fOldIndex) (This)->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex)
7646 #define IConfigAviMux_GetOutputCompatibilityIndex(This,pfOldIndex) (This)->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex)
7647 #else
7648 /*** IUnknown methods ***/
7649 static FORCEINLINE HRESULT IConfigAviMux_QueryInterface(IConfigAviMux* This,REFIID riid,void **ppvObject) {
7650     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7651 }
7652 static FORCEINLINE ULONG IConfigAviMux_AddRef(IConfigAviMux* This) {
7653     return This->lpVtbl->AddRef(This);
7654 }
7655 static FORCEINLINE ULONG IConfigAviMux_Release(IConfigAviMux* This) {
7656     return This->lpVtbl->Release(This);
7657 }
7658 /*** IConfigAviMux methods ***/
7659 static FORCEINLINE HRESULT IConfigAviMux_SetMasterStream(IConfigAviMux* This,LONG iStream) {
7660     return This->lpVtbl->SetMasterStream(This,iStream);
7661 }
7662 static FORCEINLINE HRESULT IConfigAviMux_GetMasterStream(IConfigAviMux* This,LONG *pStream) {
7663     return This->lpVtbl->GetMasterStream(This,pStream);
7664 }
7665 static FORCEINLINE HRESULT IConfigAviMux_SetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL fOldIndex) {
7666     return This->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex);
7667 }
7668 static FORCEINLINE HRESULT IConfigAviMux_GetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL *pfOldIndex) {
7669     return This->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex);
7670 }
7671 #endif
7672 #endif
7673 
7674 #endif
7675 
7676 HRESULT STDMETHODCALLTYPE IConfigAviMux_SetMasterStream_Proxy(
7677     IConfigAviMux* This,
7678     LONG iStream);
7679 void __RPC_STUB IConfigAviMux_SetMasterStream_Stub(
7680     IRpcStubBuffer* This,
7681     IRpcChannelBuffer* pRpcChannelBuffer,
7682     PRPC_MESSAGE pRpcMessage,
7683     DWORD* pdwStubPhase);
7684 HRESULT STDMETHODCALLTYPE IConfigAviMux_GetMasterStream_Proxy(
7685     IConfigAviMux* This,
7686     LONG *pStream);
7687 void __RPC_STUB IConfigAviMux_GetMasterStream_Stub(
7688     IRpcStubBuffer* This,
7689     IRpcChannelBuffer* pRpcChannelBuffer,
7690     PRPC_MESSAGE pRpcMessage,
7691     DWORD* pdwStubPhase);
7692 HRESULT STDMETHODCALLTYPE IConfigAviMux_SetOutputCompatibilityIndex_Proxy(
7693     IConfigAviMux* This,
7694     WINBOOL fOldIndex);
7695 void __RPC_STUB IConfigAviMux_SetOutputCompatibilityIndex_Stub(
7696     IRpcStubBuffer* This,
7697     IRpcChannelBuffer* pRpcChannelBuffer,
7698     PRPC_MESSAGE pRpcMessage,
7699     DWORD* pdwStubPhase);
7700 HRESULT STDMETHODCALLTYPE IConfigAviMux_GetOutputCompatibilityIndex_Proxy(
7701     IConfigAviMux* This,
7702     WINBOOL *pfOldIndex);
7703 void __RPC_STUB IConfigAviMux_GetOutputCompatibilityIndex_Stub(
7704     IRpcStubBuffer* This,
7705     IRpcChannelBuffer* pRpcChannelBuffer,
7706     PRPC_MESSAGE pRpcMessage,
7707     DWORD* pdwStubPhase);
7708 
7709 #endif  /* __IConfigAviMux_INTERFACE_DEFINED__ */
7710 
7711 /*****************************************************************************
7712  * IConfigInterleaving interface
7713  */
7714 #ifndef __IConfigInterleaving_INTERFACE_DEFINED__
7715 #define __IConfigInterleaving_INTERFACE_DEFINED__
7716 
7717 typedef enum InterleavingMode {
7718     INTERLEAVE_NONE = 0,
7719     INTERLEAVE_CAPTURE = 1,
7720     INTERLEAVE_FULL = 2,
7721     INTERLEAVE_NONE_BUFFERED = 3
7722 } InterleavingMode;
7723 DEFINE_GUID(IID_IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86);
7724 #if defined(__cplusplus) && !defined(CINTERFACE)
7725 MIDL_INTERFACE("bee3d220-157b-11d0-bd23-00a0c911ce86")
7726 IConfigInterleaving : public IUnknown
7727 {
7728     virtual HRESULT STDMETHODCALLTYPE put_Mode(
7729         InterleavingMode mode) = 0;
7730 
7731     virtual HRESULT STDMETHODCALLTYPE get_Mode(
7732         InterleavingMode *pMode) = 0;
7733 
7734     virtual HRESULT STDMETHODCALLTYPE put_Interleaving(
7735         const REFERENCE_TIME *prtInterleave,
7736         const REFERENCE_TIME *prtPreroll) = 0;
7737 
7738     virtual HRESULT STDMETHODCALLTYPE get_Interleaving(
7739         REFERENCE_TIME *prtInterleave,
7740         REFERENCE_TIME *prtPreroll) = 0;
7741 
7742 };
7743 #ifdef __CRT_UUID_DECL
7744 __CRT_UUID_DECL(IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86)
7745 #endif
7746 #else
7747 typedef struct IConfigInterleavingVtbl {
7748     BEGIN_INTERFACE
7749 
7750     /*** IUnknown methods ***/
7751     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7752         IConfigInterleaving* This,
7753         REFIID riid,
7754         void **ppvObject);
7755 
7756     ULONG (STDMETHODCALLTYPE *AddRef)(
7757         IConfigInterleaving* This);
7758 
7759     ULONG (STDMETHODCALLTYPE *Release)(
7760         IConfigInterleaving* This);
7761 
7762     /*** IConfigInterleaving methods ***/
7763     HRESULT (STDMETHODCALLTYPE *put_Mode)(
7764         IConfigInterleaving* This,
7765         InterleavingMode mode);
7766 
7767     HRESULT (STDMETHODCALLTYPE *get_Mode)(
7768         IConfigInterleaving* This,
7769         InterleavingMode *pMode);
7770 
7771     HRESULT (STDMETHODCALLTYPE *put_Interleaving)(
7772         IConfigInterleaving* This,
7773         const REFERENCE_TIME *prtInterleave,
7774         const REFERENCE_TIME *prtPreroll);
7775 
7776     HRESULT (STDMETHODCALLTYPE *get_Interleaving)(
7777         IConfigInterleaving* This,
7778         REFERENCE_TIME *prtInterleave,
7779         REFERENCE_TIME *prtPreroll);
7780 
7781     END_INTERFACE
7782 } IConfigInterleavingVtbl;
7783 interface IConfigInterleaving {
7784     CONST_VTBL IConfigInterleavingVtbl* lpVtbl;
7785 };
7786 
7787 #ifdef COBJMACROS
7788 #ifndef WIDL_C_INLINE_WRAPPERS
7789 /*** IUnknown methods ***/
7790 #define IConfigInterleaving_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7791 #define IConfigInterleaving_AddRef(This) (This)->lpVtbl->AddRef(This)
7792 #define IConfigInterleaving_Release(This) (This)->lpVtbl->Release(This)
7793 /*** IConfigInterleaving methods ***/
7794 #define IConfigInterleaving_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
7795 #define IConfigInterleaving_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
7796 #define IConfigInterleaving_put_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll)
7797 #define IConfigInterleaving_get_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll)
7798 #else
7799 /*** IUnknown methods ***/
7800 static FORCEINLINE HRESULT IConfigInterleaving_QueryInterface(IConfigInterleaving* This,REFIID riid,void **ppvObject) {
7801     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7802 }
7803 static FORCEINLINE ULONG IConfigInterleaving_AddRef(IConfigInterleaving* This) {
7804     return This->lpVtbl->AddRef(This);
7805 }
7806 static FORCEINLINE ULONG IConfigInterleaving_Release(IConfigInterleaving* This) {
7807     return This->lpVtbl->Release(This);
7808 }
7809 /*** IConfigInterleaving methods ***/
7810 static FORCEINLINE HRESULT IConfigInterleaving_put_Mode(IConfigInterleaving* This,InterleavingMode mode) {
7811     return This->lpVtbl->put_Mode(This,mode);
7812 }
7813 static FORCEINLINE HRESULT IConfigInterleaving_get_Mode(IConfigInterleaving* This,InterleavingMode *pMode) {
7814     return This->lpVtbl->get_Mode(This,pMode);
7815 }
7816 static FORCEINLINE HRESULT IConfigInterleaving_put_Interleaving(IConfigInterleaving* This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll) {
7817     return This->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll);
7818 }
7819 static FORCEINLINE HRESULT IConfigInterleaving_get_Interleaving(IConfigInterleaving* This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll) {
7820     return This->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll);
7821 }
7822 #endif
7823 #endif
7824 
7825 #endif
7826 
7827 HRESULT STDMETHODCALLTYPE IConfigInterleaving_put_Mode_Proxy(
7828     IConfigInterleaving* This,
7829     InterleavingMode mode);
7830 void __RPC_STUB IConfigInterleaving_put_Mode_Stub(
7831     IRpcStubBuffer* This,
7832     IRpcChannelBuffer* pRpcChannelBuffer,
7833     PRPC_MESSAGE pRpcMessage,
7834     DWORD* pdwStubPhase);
7835 HRESULT STDMETHODCALLTYPE IConfigInterleaving_get_Mode_Proxy(
7836     IConfigInterleaving* This,
7837     InterleavingMode *pMode);
7838 void __RPC_STUB IConfigInterleaving_get_Mode_Stub(
7839     IRpcStubBuffer* This,
7840     IRpcChannelBuffer* pRpcChannelBuffer,
7841     PRPC_MESSAGE pRpcMessage,
7842     DWORD* pdwStubPhase);
7843 HRESULT STDMETHODCALLTYPE IConfigInterleaving_put_Interleaving_Proxy(
7844     IConfigInterleaving* This,
7845     const REFERENCE_TIME *prtInterleave,
7846     const REFERENCE_TIME *prtPreroll);
7847 void __RPC_STUB IConfigInterleaving_put_Interleaving_Stub(
7848     IRpcStubBuffer* This,
7849     IRpcChannelBuffer* pRpcChannelBuffer,
7850     PRPC_MESSAGE pRpcMessage,
7851     DWORD* pdwStubPhase);
7852 HRESULT STDMETHODCALLTYPE IConfigInterleaving_get_Interleaving_Proxy(
7853     IConfigInterleaving* This,
7854     REFERENCE_TIME *prtInterleave,
7855     REFERENCE_TIME *prtPreroll);
7856 void __RPC_STUB IConfigInterleaving_get_Interleaving_Stub(
7857     IRpcStubBuffer* This,
7858     IRpcChannelBuffer* pRpcChannelBuffer,
7859     PRPC_MESSAGE pRpcMessage,
7860     DWORD* pdwStubPhase);
7861 
7862 #endif  /* __IConfigInterleaving_INTERFACE_DEFINED__ */
7863 
7864 /*****************************************************************************
7865  * IAMClockSlave interface
7866  */
7867 #ifndef __IAMClockSlave_INTERFACE_DEFINED__
7868 #define __IAMClockSlave_INTERFACE_DEFINED__
7869 
7870 DEFINE_GUID(IID_IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe);
7871 #if defined(__cplusplus) && !defined(CINTERFACE)
7872 MIDL_INTERFACE("9fd52741-176d-4b36-8f51-ca8f933223be")
7873 IAMClockSlave : public IUnknown
7874 {
7875     virtual HRESULT STDMETHODCALLTYPE SetErrorTolerance(
7876         DWORD dwTolerance) = 0;
7877 
7878     virtual HRESULT STDMETHODCALLTYPE GetErrorTolerance(
7879         DWORD *pdwTolerance) = 0;
7880 
7881 };
7882 #ifdef __CRT_UUID_DECL
7883 __CRT_UUID_DECL(IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe)
7884 #endif
7885 #else
7886 typedef struct IAMClockSlaveVtbl {
7887     BEGIN_INTERFACE
7888 
7889     /*** IUnknown methods ***/
7890     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7891         IAMClockSlave* This,
7892         REFIID riid,
7893         void **ppvObject);
7894 
7895     ULONG (STDMETHODCALLTYPE *AddRef)(
7896         IAMClockSlave* This);
7897 
7898     ULONG (STDMETHODCALLTYPE *Release)(
7899         IAMClockSlave* This);
7900 
7901     /*** IAMClockSlave methods ***/
7902     HRESULT (STDMETHODCALLTYPE *SetErrorTolerance)(
7903         IAMClockSlave* This,
7904         DWORD dwTolerance);
7905 
7906     HRESULT (STDMETHODCALLTYPE *GetErrorTolerance)(
7907         IAMClockSlave* This,
7908         DWORD *pdwTolerance);
7909 
7910     END_INTERFACE
7911 } IAMClockSlaveVtbl;
7912 interface IAMClockSlave {
7913     CONST_VTBL IAMClockSlaveVtbl* lpVtbl;
7914 };
7915 
7916 #ifdef COBJMACROS
7917 #ifndef WIDL_C_INLINE_WRAPPERS
7918 /*** IUnknown methods ***/
7919 #define IAMClockSlave_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7920 #define IAMClockSlave_AddRef(This) (This)->lpVtbl->AddRef(This)
7921 #define IAMClockSlave_Release(This) (This)->lpVtbl->Release(This)
7922 /*** IAMClockSlave methods ***/
7923 #define IAMClockSlave_SetErrorTolerance(This,dwTolerance) (This)->lpVtbl->SetErrorTolerance(This,dwTolerance)
7924 #define IAMClockSlave_GetErrorTolerance(This,pdwTolerance) (This)->lpVtbl->GetErrorTolerance(This,pdwTolerance)
7925 #else
7926 /*** IUnknown methods ***/
7927 static FORCEINLINE HRESULT IAMClockSlave_QueryInterface(IAMClockSlave* This,REFIID riid,void **ppvObject) {
7928     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7929 }
7930 static FORCEINLINE ULONG IAMClockSlave_AddRef(IAMClockSlave* This) {
7931     return This->lpVtbl->AddRef(This);
7932 }
7933 static FORCEINLINE ULONG IAMClockSlave_Release(IAMClockSlave* This) {
7934     return This->lpVtbl->Release(This);
7935 }
7936 /*** IAMClockSlave methods ***/
7937 static FORCEINLINE HRESULT IAMClockSlave_SetErrorTolerance(IAMClockSlave* This,DWORD dwTolerance) {
7938     return This->lpVtbl->SetErrorTolerance(This,dwTolerance);
7939 }
7940 static FORCEINLINE HRESULT IAMClockSlave_GetErrorTolerance(IAMClockSlave* This,DWORD *pdwTolerance) {
7941     return This->lpVtbl->GetErrorTolerance(This,pdwTolerance);
7942 }
7943 #endif
7944 #endif
7945 
7946 #endif
7947 
7948 HRESULT STDMETHODCALLTYPE IAMClockSlave_SetErrorTolerance_Proxy(
7949     IAMClockSlave* This,
7950     DWORD dwTolerance);
7951 void __RPC_STUB IAMClockSlave_SetErrorTolerance_Stub(
7952     IRpcStubBuffer* This,
7953     IRpcChannelBuffer* pRpcChannelBuffer,
7954     PRPC_MESSAGE pRpcMessage,
7955     DWORD* pdwStubPhase);
7956 HRESULT STDMETHODCALLTYPE IAMClockSlave_GetErrorTolerance_Proxy(
7957     IAMClockSlave* This,
7958     DWORD *pdwTolerance);
7959 void __RPC_STUB IAMClockSlave_GetErrorTolerance_Stub(
7960     IRpcStubBuffer* This,
7961     IRpcChannelBuffer* pRpcChannelBuffer,
7962     PRPC_MESSAGE pRpcMessage,
7963     DWORD* pdwStubPhase);
7964 
7965 #endif  /* __IAMClockSlave_INTERFACE_DEFINED__ */
7966 
7967 typedef struct _AMCOPPSignature {
7968     BYTE Signature[256];
7969 } AMCOPPSignature;
7970 typedef struct _AMCOPPCommand {
7971     GUID macKDI;
7972     GUID guidCommandID;
7973     DWORD dwSequence;
7974     DWORD bSizeData;
7975     BYTE CommandData[4056];
7976 } AMCOPPCommand;
7977 typedef struct _AMCOPPCommand *LPAMCOPPCommand;
7978 typedef struct _AMCOPPStatusInput {
7979     GUID rApp;
7980     GUID guidStatusRequestID;
7981     DWORD dwSequence;
7982     DWORD cbSizeData;
7983     BYTE StatusData[4056];
7984 } AMCOPPStatusInput;
7985 typedef struct _AMCOPPStatusInput *LPAMCOPPStatusInput;
7986 typedef struct _AMCOPPStatusOutput {
7987     GUID macKDI;
7988     DWORD cbSizeData;
7989     BYTE COPPStatus[4076];
7990 } AMCOPPStatusOutput;
7991 typedef struct _AMCOPPStatusOutput *LPAMCOPPStatusOutput;
7992 /*****************************************************************************
7993  * IAMCertifiedOutputProtection interface
7994  */
7995 #ifndef __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
7996 #define __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
7997 
7998 DEFINE_GUID(IID_IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15);
7999 #if defined(__cplusplus) && !defined(CINTERFACE)
8000 MIDL_INTERFACE("6feded3e-0ff1-4901-a2f1-43f7012c8515")
8001 IAMCertifiedOutputProtection : public IUnknown
8002 {
8003     virtual HRESULT STDMETHODCALLTYPE KeyExchange(
8004         GUID *pRandom,
8005         BYTE **VarLenCertGH,
8006         DWORD *pdwLengthCertGH) = 0;
8007 
8008     virtual HRESULT STDMETHODCALLTYPE SessionSequenceStart(
8009         AMCOPPSignature *pSig) = 0;
8010 
8011     virtual HRESULT STDMETHODCALLTYPE ProtectionCommand(
8012         const AMCOPPCommand *cmd) = 0;
8013 
8014     virtual HRESULT STDMETHODCALLTYPE ProtectionStatus(
8015         const AMCOPPStatusInput *pStatusInput,
8016         AMCOPPStatusOutput *pStatusOutput) = 0;
8017 
8018 };
8019 #ifdef __CRT_UUID_DECL
8020 __CRT_UUID_DECL(IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15)
8021 #endif
8022 #else
8023 typedef struct IAMCertifiedOutputProtectionVtbl {
8024     BEGIN_INTERFACE
8025 
8026     /*** IUnknown methods ***/
8027     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8028         IAMCertifiedOutputProtection* This,
8029         REFIID riid,
8030         void **ppvObject);
8031 
8032     ULONG (STDMETHODCALLTYPE *AddRef)(
8033         IAMCertifiedOutputProtection* This);
8034 
8035     ULONG (STDMETHODCALLTYPE *Release)(
8036         IAMCertifiedOutputProtection* This);
8037 
8038     /*** IAMCertifiedOutputProtection methods ***/
8039     HRESULT (STDMETHODCALLTYPE *KeyExchange)(
8040         IAMCertifiedOutputProtection* This,
8041         GUID *pRandom,
8042         BYTE **VarLenCertGH,
8043         DWORD *pdwLengthCertGH);
8044 
8045     HRESULT (STDMETHODCALLTYPE *SessionSequenceStart)(
8046         IAMCertifiedOutputProtection* This,
8047         AMCOPPSignature *pSig);
8048 
8049     HRESULT (STDMETHODCALLTYPE *ProtectionCommand)(
8050         IAMCertifiedOutputProtection* This,
8051         const AMCOPPCommand *cmd);
8052 
8053     HRESULT (STDMETHODCALLTYPE *ProtectionStatus)(
8054         IAMCertifiedOutputProtection* This,
8055         const AMCOPPStatusInput *pStatusInput,
8056         AMCOPPStatusOutput *pStatusOutput);
8057 
8058     END_INTERFACE
8059 } IAMCertifiedOutputProtectionVtbl;
8060 interface IAMCertifiedOutputProtection {
8061     CONST_VTBL IAMCertifiedOutputProtectionVtbl* lpVtbl;
8062 };
8063 
8064 #ifdef COBJMACROS
8065 #ifndef WIDL_C_INLINE_WRAPPERS
8066 /*** IUnknown methods ***/
8067 #define IAMCertifiedOutputProtection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8068 #define IAMCertifiedOutputProtection_AddRef(This) (This)->lpVtbl->AddRef(This)
8069 #define IAMCertifiedOutputProtection_Release(This) (This)->lpVtbl->Release(This)
8070 /*** IAMCertifiedOutputProtection methods ***/
8071 #define IAMCertifiedOutputProtection_KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH) (This)->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH)
8072 #define IAMCertifiedOutputProtection_SessionSequenceStart(This,pSig) (This)->lpVtbl->SessionSequenceStart(This,pSig)
8073 #define IAMCertifiedOutputProtection_ProtectionCommand(This,cmd) (This)->lpVtbl->ProtectionCommand(This,cmd)
8074 #define IAMCertifiedOutputProtection_ProtectionStatus(This,pStatusInput,pStatusOutput) (This)->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput)
8075 #else
8076 /*** IUnknown methods ***/
8077 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_QueryInterface(IAMCertifiedOutputProtection* This,REFIID riid,void **ppvObject) {
8078     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8079 }
8080 static FORCEINLINE ULONG IAMCertifiedOutputProtection_AddRef(IAMCertifiedOutputProtection* This) {
8081     return This->lpVtbl->AddRef(This);
8082 }
8083 static FORCEINLINE ULONG IAMCertifiedOutputProtection_Release(IAMCertifiedOutputProtection* This) {
8084     return This->lpVtbl->Release(This);
8085 }
8086 /*** IAMCertifiedOutputProtection methods ***/
8087 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_KeyExchange(IAMCertifiedOutputProtection* This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH) {
8088     return This->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH);
8089 }
8090 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_SessionSequenceStart(IAMCertifiedOutputProtection* This,AMCOPPSignature *pSig) {
8091     return This->lpVtbl->SessionSequenceStart(This,pSig);
8092 }
8093 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_ProtectionCommand(IAMCertifiedOutputProtection* This,const AMCOPPCommand *cmd) {
8094     return This->lpVtbl->ProtectionCommand(This,cmd);
8095 }
8096 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_ProtectionStatus(IAMCertifiedOutputProtection* This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput) {
8097     return This->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput);
8098 }
8099 #endif
8100 #endif
8101 
8102 #endif
8103 
8104 HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_KeyExchange_Proxy(
8105     IAMCertifiedOutputProtection* This,
8106     GUID *pRandom,
8107     BYTE **VarLenCertGH,
8108     DWORD *pdwLengthCertGH);
8109 void __RPC_STUB IAMCertifiedOutputProtection_KeyExchange_Stub(
8110     IRpcStubBuffer* This,
8111     IRpcChannelBuffer* pRpcChannelBuffer,
8112     PRPC_MESSAGE pRpcMessage,
8113     DWORD* pdwStubPhase);
8114 HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_SessionSequenceStart_Proxy(
8115     IAMCertifiedOutputProtection* This,
8116     AMCOPPSignature *pSig);
8117 void __RPC_STUB IAMCertifiedOutputProtection_SessionSequenceStart_Stub(
8118     IRpcStubBuffer* This,
8119     IRpcChannelBuffer* pRpcChannelBuffer,
8120     PRPC_MESSAGE pRpcMessage,
8121     DWORD* pdwStubPhase);
8122 HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_ProtectionCommand_Proxy(
8123     IAMCertifiedOutputProtection* This,
8124     const AMCOPPCommand *cmd);
8125 void __RPC_STUB IAMCertifiedOutputProtection_ProtectionCommand_Stub(
8126     IRpcStubBuffer* This,
8127     IRpcChannelBuffer* pRpcChannelBuffer,
8128     PRPC_MESSAGE pRpcMessage,
8129     DWORD* pdwStubPhase);
8130 HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_ProtectionStatus_Proxy(
8131     IAMCertifiedOutputProtection* This,
8132     const AMCOPPStatusInput *pStatusInput,
8133     AMCOPPStatusOutput *pStatusOutput);
8134 void __RPC_STUB IAMCertifiedOutputProtection_ProtectionStatus_Stub(
8135     IRpcStubBuffer* This,
8136     IRpcChannelBuffer* pRpcChannelBuffer,
8137     PRPC_MESSAGE pRpcMessage,
8138     DWORD* pdwStubPhase);
8139 
8140 #endif  /* __IAMCertifiedOutputProtection_INTERFACE_DEFINED__ */
8141 
8142 enum _AM_RENSDEREXFLAGS {
8143     AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1
8144 };
8145 
8146 /*****************************************************************************
8147  * IFilterGraph2 interface
8148  */
8149 #ifndef __IFilterGraph2_INTERFACE_DEFINED__
8150 #define __IFilterGraph2_INTERFACE_DEFINED__
8151 
8152 DEFINE_GUID(IID_IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
8153 #if defined(__cplusplus) && !defined(CINTERFACE)
8154 MIDL_INTERFACE("36b73882-c2c8-11cf-8b46-00805f6cef60")
8155 IFilterGraph2 : public IGraphBuilder
8156 {
8157     virtual HRESULT STDMETHODCALLTYPE AddSourceFilterForMoniker(
8158         IMoniker *pMoniker,
8159         IBindCtx *pCtx,
8160         LPCWSTR lpcwstrFilterName,
8161         IBaseFilter **ppFilter) = 0;
8162 
8163     virtual HRESULT STDMETHODCALLTYPE ReconnectEx(
8164         IPin *ppin,
8165         const AM_MEDIA_TYPE *pmt) = 0;
8166 
8167     virtual HRESULT STDMETHODCALLTYPE RenderEx(
8168         IPin *pPinOut,
8169         DWORD dwFlags,
8170         DWORD *pvContext) = 0;
8171 
8172 };
8173 #ifdef __CRT_UUID_DECL
8174 __CRT_UUID_DECL(IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
8175 #endif
8176 #else
8177 typedef struct IFilterGraph2Vtbl {
8178     BEGIN_INTERFACE
8179 
8180     /*** IUnknown methods ***/
8181     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8182         IFilterGraph2* This,
8183         REFIID riid,
8184         void **ppvObject);
8185 
8186     ULONG (STDMETHODCALLTYPE *AddRef)(
8187         IFilterGraph2* This);
8188 
8189     ULONG (STDMETHODCALLTYPE *Release)(
8190         IFilterGraph2* This);
8191 
8192     /*** IFilterGraph methods ***/
8193     HRESULT (STDMETHODCALLTYPE *AddFilter)(
8194         IFilterGraph2* This,
8195         IBaseFilter *pFilter,
8196         LPCWSTR pName);
8197 
8198     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
8199         IFilterGraph2* This,
8200         IBaseFilter *pFilter);
8201 
8202     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
8203         IFilterGraph2* This,
8204         IEnumFilters **ppEnum);
8205 
8206     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
8207         IFilterGraph2* This,
8208         LPCWSTR pName,
8209         IBaseFilter **ppFilter);
8210 
8211     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
8212         IFilterGraph2* This,
8213         IPin *ppinOut,
8214         IPin *ppinIn,
8215         const AM_MEDIA_TYPE *pmt);
8216 
8217     HRESULT (STDMETHODCALLTYPE *Reconnect)(
8218         IFilterGraph2* This,
8219         IPin *ppin);
8220 
8221     HRESULT (STDMETHODCALLTYPE *Disconnect)(
8222         IFilterGraph2* This,
8223         IPin *ppin);
8224 
8225     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
8226         IFilterGraph2* This);
8227 
8228     /*** IGraphBuilder methods ***/
8229     HRESULT (STDMETHODCALLTYPE *Connect)(
8230         IFilterGraph2* This,
8231         IPin *ppinOut,
8232         IPin *ppinIn);
8233 
8234     HRESULT (STDMETHODCALLTYPE *Render)(
8235         IFilterGraph2* This,
8236         IPin *ppinOut);
8237 
8238     HRESULT (STDMETHODCALLTYPE *RenderFile)(
8239         IFilterGraph2* This,
8240         LPCWSTR lpcwstrFile,
8241         LPCWSTR lpcwstrPlayList);
8242 
8243     HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
8244         IFilterGraph2* This,
8245         LPCWSTR lpcwstrFileName,
8246         LPCWSTR lpcwstrFilterName,
8247         IBaseFilter **ppFilter);
8248 
8249     HRESULT (STDMETHODCALLTYPE *SetLogFile)(
8250         IFilterGraph2* This,
8251         DWORD_PTR hFile);
8252 
8253     HRESULT (STDMETHODCALLTYPE *Abort)(
8254         IFilterGraph2* This);
8255 
8256     HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
8257         IFilterGraph2* This);
8258 
8259     /*** IFilterGraph2 methods ***/
8260     HRESULT (STDMETHODCALLTYPE *AddSourceFilterForMoniker)(
8261         IFilterGraph2* This,
8262         IMoniker *pMoniker,
8263         IBindCtx *pCtx,
8264         LPCWSTR lpcwstrFilterName,
8265         IBaseFilter **ppFilter);
8266 
8267     HRESULT (STDMETHODCALLTYPE *ReconnectEx)(
8268         IFilterGraph2* This,
8269         IPin *ppin,
8270         const AM_MEDIA_TYPE *pmt);
8271 
8272     HRESULT (STDMETHODCALLTYPE *RenderEx)(
8273         IFilterGraph2* This,
8274         IPin *pPinOut,
8275         DWORD dwFlags,
8276         DWORD *pvContext);
8277 
8278     END_INTERFACE
8279 } IFilterGraph2Vtbl;
8280 interface IFilterGraph2 {
8281     CONST_VTBL IFilterGraph2Vtbl* lpVtbl;
8282 };
8283 
8284 #ifdef COBJMACROS
8285 #ifndef WIDL_C_INLINE_WRAPPERS
8286 /*** IUnknown methods ***/
8287 #define IFilterGraph2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8288 #define IFilterGraph2_AddRef(This) (This)->lpVtbl->AddRef(This)
8289 #define IFilterGraph2_Release(This) (This)->lpVtbl->Release(This)
8290 /*** IFilterGraph methods ***/
8291 #define IFilterGraph2_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
8292 #define IFilterGraph2_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
8293 #define IFilterGraph2_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
8294 #define IFilterGraph2_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
8295 #define IFilterGraph2_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
8296 #define IFilterGraph2_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
8297 #define IFilterGraph2_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
8298 #define IFilterGraph2_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
8299 /*** IGraphBuilder methods ***/
8300 #define IFilterGraph2_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
8301 #define IFilterGraph2_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
8302 #define IFilterGraph2_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
8303 #define IFilterGraph2_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
8304 #define IFilterGraph2_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
8305 #define IFilterGraph2_Abort(This) (This)->lpVtbl->Abort(This)
8306 #define IFilterGraph2_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
8307 /*** IFilterGraph2 methods ***/
8308 #define IFilterGraph2_AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter)
8309 #define IFilterGraph2_ReconnectEx(This,ppin,pmt) (This)->lpVtbl->ReconnectEx(This,ppin,pmt)
8310 #define IFilterGraph2_RenderEx(This,pPinOut,dwFlags,pvContext) (This)->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext)
8311 #else
8312 /*** IUnknown methods ***/
8313 static FORCEINLINE HRESULT IFilterGraph2_QueryInterface(IFilterGraph2* This,REFIID riid,void **ppvObject) {
8314     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8315 }
8316 static FORCEINLINE ULONG IFilterGraph2_AddRef(IFilterGraph2* This) {
8317     return This->lpVtbl->AddRef(This);
8318 }
8319 static FORCEINLINE ULONG IFilterGraph2_Release(IFilterGraph2* This) {
8320     return This->lpVtbl->Release(This);
8321 }
8322 /*** IFilterGraph methods ***/
8323 static FORCEINLINE HRESULT IFilterGraph2_AddFilter(IFilterGraph2* This,IBaseFilter *pFilter,LPCWSTR pName) {
8324     return This->lpVtbl->AddFilter(This,pFilter,pName);
8325 }
8326 static FORCEINLINE HRESULT IFilterGraph2_RemoveFilter(IFilterGraph2* This,IBaseFilter *pFilter) {
8327     return This->lpVtbl->RemoveFilter(This,pFilter);
8328 }
8329 static FORCEINLINE HRESULT IFilterGraph2_EnumFilters(IFilterGraph2* This,IEnumFilters **ppEnum) {
8330     return This->lpVtbl->EnumFilters(This,ppEnum);
8331 }
8332 static FORCEINLINE HRESULT IFilterGraph2_FindFilterByName(IFilterGraph2* This,LPCWSTR pName,IBaseFilter **ppFilter) {
8333     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
8334 }
8335 static FORCEINLINE HRESULT IFilterGraph2_ConnectDirect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
8336     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
8337 }
8338 static FORCEINLINE HRESULT IFilterGraph2_Reconnect(IFilterGraph2* This,IPin *ppin) {
8339     return This->lpVtbl->Reconnect(This,ppin);
8340 }
8341 static FORCEINLINE HRESULT IFilterGraph2_Disconnect(IFilterGraph2* This,IPin *ppin) {
8342     return This->lpVtbl->Disconnect(This,ppin);
8343 }
8344 static FORCEINLINE HRESULT IFilterGraph2_SetDefaultSyncSource(IFilterGraph2* This) {
8345     return This->lpVtbl->SetDefaultSyncSource(This);
8346 }
8347 /*** IGraphBuilder methods ***/
8348 static FORCEINLINE HRESULT IFilterGraph2_Connect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn) {
8349     return This->lpVtbl->Connect(This,ppinOut,ppinIn);
8350 }
8351 static FORCEINLINE HRESULT IFilterGraph2_Render(IFilterGraph2* This,IPin *ppinOut) {
8352     return This->lpVtbl->Render(This,ppinOut);
8353 }
8354 static FORCEINLINE HRESULT IFilterGraph2_RenderFile(IFilterGraph2* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
8355     return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
8356 }
8357 static FORCEINLINE HRESULT IFilterGraph2_AddSourceFilter(IFilterGraph2* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
8358     return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
8359 }
8360 static FORCEINLINE HRESULT IFilterGraph2_SetLogFile(IFilterGraph2* This,DWORD_PTR hFile) {
8361     return This->lpVtbl->SetLogFile(This,hFile);
8362 }
8363 static FORCEINLINE HRESULT IFilterGraph2_Abort(IFilterGraph2* This) {
8364     return This->lpVtbl->Abort(This);
8365 }
8366 static FORCEINLINE HRESULT IFilterGraph2_ShouldOperationContinue(IFilterGraph2* This) {
8367     return This->lpVtbl->ShouldOperationContinue(This);
8368 }
8369 /*** IFilterGraph2 methods ***/
8370 static FORCEINLINE HRESULT IFilterGraph2_AddSourceFilterForMoniker(IFilterGraph2* This,IMoniker *pMoniker,IBindCtx *pCtx,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
8371     return This->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter);
8372 }
8373 static FORCEINLINE HRESULT IFilterGraph2_ReconnectEx(IFilterGraph2* This,IPin *ppin,const AM_MEDIA_TYPE *pmt) {
8374     return This->lpVtbl->ReconnectEx(This,ppin,pmt);
8375 }
8376 static FORCEINLINE HRESULT IFilterGraph2_RenderEx(IFilterGraph2* This,IPin *pPinOut,DWORD dwFlags,DWORD *pvContext) {
8377     return This->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext);
8378 }
8379 #endif
8380 #endif
8381 
8382 #endif
8383 
8384 HRESULT STDMETHODCALLTYPE IFilterGraph2_AddSourceFilterForMoniker_Proxy(
8385     IFilterGraph2* This,
8386     IMoniker *pMoniker,
8387     IBindCtx *pCtx,
8388     LPCWSTR lpcwstrFilterName,
8389     IBaseFilter **ppFilter);
8390 void __RPC_STUB IFilterGraph2_AddSourceFilterForMoniker_Stub(
8391     IRpcStubBuffer* This,
8392     IRpcChannelBuffer* pRpcChannelBuffer,
8393     PRPC_MESSAGE pRpcMessage,
8394     DWORD* pdwStubPhase);
8395 HRESULT STDMETHODCALLTYPE IFilterGraph2_ReconnectEx_Proxy(
8396     IFilterGraph2* This,
8397     IPin *ppin,
8398     const AM_MEDIA_TYPE *pmt);
8399 void __RPC_STUB IFilterGraph2_ReconnectEx_Stub(
8400     IRpcStubBuffer* This,
8401     IRpcChannelBuffer* pRpcChannelBuffer,
8402     PRPC_MESSAGE pRpcMessage,
8403     DWORD* pdwStubPhase);
8404 HRESULT STDMETHODCALLTYPE IFilterGraph2_RenderEx_Proxy(
8405     IFilterGraph2* This,
8406     IPin *pPinOut,
8407     DWORD dwFlags,
8408     DWORD *pvContext);
8409 void __RPC_STUB IFilterGraph2_RenderEx_Stub(
8410     IRpcStubBuffer* This,
8411     IRpcChannelBuffer* pRpcChannelBuffer,
8412     PRPC_MESSAGE pRpcMessage,
8413     DWORD* pdwStubPhase);
8414 
8415 #endif  /* __IFilterGraph2_INTERFACE_DEFINED__ */
8416 
8417 /*****************************************************************************
8418  * IStreamBuilder interface
8419  */
8420 #ifndef __IStreamBuilder_INTERFACE_DEFINED__
8421 #define __IStreamBuilder_INTERFACE_DEFINED__
8422 
8423 DEFINE_GUID(IID_IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
8424 #if defined(__cplusplus) && !defined(CINTERFACE)
8425 MIDL_INTERFACE("56a868bf-0ad4-11ce-b03a-0020af0ba770")
8426 IStreamBuilder : public IUnknown
8427 {
8428     virtual HRESULT STDMETHODCALLTYPE Render(
8429         IPin *ppinOut,
8430         IGraphBuilder *pGraph) = 0;
8431 
8432     virtual HRESULT STDMETHODCALLTYPE Backout(
8433         IPin *ppinOut,
8434         IGraphBuilder *pGraph) = 0;
8435 
8436 };
8437 #ifdef __CRT_UUID_DECL
8438 __CRT_UUID_DECL(IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
8439 #endif
8440 #else
8441 typedef struct IStreamBuilderVtbl {
8442     BEGIN_INTERFACE
8443 
8444     /*** IUnknown methods ***/
8445     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8446         IStreamBuilder* This,
8447         REFIID riid,
8448         void **ppvObject);
8449 
8450     ULONG (STDMETHODCALLTYPE *AddRef)(
8451         IStreamBuilder* This);
8452 
8453     ULONG (STDMETHODCALLTYPE *Release)(
8454         IStreamBuilder* This);
8455 
8456     /*** IStreamBuilder methods ***/
8457     HRESULT (STDMETHODCALLTYPE *Render)(
8458         IStreamBuilder* This,
8459         IPin *ppinOut,
8460         IGraphBuilder *pGraph);
8461 
8462     HRESULT (STDMETHODCALLTYPE *Backout)(
8463         IStreamBuilder* This,
8464         IPin *ppinOut,
8465         IGraphBuilder *pGraph);
8466 
8467     END_INTERFACE
8468 } IStreamBuilderVtbl;
8469 interface IStreamBuilder {
8470     CONST_VTBL IStreamBuilderVtbl* lpVtbl;
8471 };
8472 
8473 #ifdef COBJMACROS
8474 #ifndef WIDL_C_INLINE_WRAPPERS
8475 /*** IUnknown methods ***/
8476 #define IStreamBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8477 #define IStreamBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
8478 #define IStreamBuilder_Release(This) (This)->lpVtbl->Release(This)
8479 /*** IStreamBuilder methods ***/
8480 #define IStreamBuilder_Render(This,ppinOut,pGraph) (This)->lpVtbl->Render(This,ppinOut,pGraph)
8481 #define IStreamBuilder_Backout(This,ppinOut,pGraph) (This)->lpVtbl->Backout(This,ppinOut,pGraph)
8482 #else
8483 /*** IUnknown methods ***/
8484 static FORCEINLINE HRESULT IStreamBuilder_QueryInterface(IStreamBuilder* This,REFIID riid,void **ppvObject) {
8485     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8486 }
8487 static FORCEINLINE ULONG IStreamBuilder_AddRef(IStreamBuilder* This) {
8488     return This->lpVtbl->AddRef(This);
8489 }
8490 static FORCEINLINE ULONG IStreamBuilder_Release(IStreamBuilder* This) {
8491     return This->lpVtbl->Release(This);
8492 }
8493 /*** IStreamBuilder methods ***/
8494 static FORCEINLINE HRESULT IStreamBuilder_Render(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) {
8495     return This->lpVtbl->Render(This,ppinOut,pGraph);
8496 }
8497 static FORCEINLINE HRESULT IStreamBuilder_Backout(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) {
8498     return This->lpVtbl->Backout(This,ppinOut,pGraph);
8499 }
8500 #endif
8501 #endif
8502 
8503 #endif
8504 
8505 HRESULT STDMETHODCALLTYPE IStreamBuilder_Render_Proxy(
8506     IStreamBuilder* This,
8507     IPin *ppinOut,
8508     IGraphBuilder *pGraph);
8509 void __RPC_STUB IStreamBuilder_Render_Stub(
8510     IRpcStubBuffer* This,
8511     IRpcChannelBuffer* pRpcChannelBuffer,
8512     PRPC_MESSAGE pRpcMessage,
8513     DWORD* pdwStubPhase);
8514 HRESULT STDMETHODCALLTYPE IStreamBuilder_Backout_Proxy(
8515     IStreamBuilder* This,
8516     IPin *ppinOut,
8517     IGraphBuilder *pGraph);
8518 void __RPC_STUB IStreamBuilder_Backout_Stub(
8519     IRpcStubBuffer* This,
8520     IRpcChannelBuffer* pRpcChannelBuffer,
8521     PRPC_MESSAGE pRpcMessage,
8522     DWORD* pdwStubPhase);
8523 
8524 #endif  /* __IStreamBuilder_INTERFACE_DEFINED__ */
8525 
8526 /*****************************************************************************
8527  * IAMStreamConfig interface
8528  */
8529 #ifndef __IAMStreamConfig_INTERFACE_DEFINED__
8530 #define __IAMStreamConfig_INTERFACE_DEFINED__
8531 
8532 typedef struct _VIDEO_STREAM_CONFIG_CAPS {
8533     GUID guid;
8534     ULONG VideoStandard;
8535     SIZE InputSize;
8536     SIZE MinCroppingSize;
8537     SIZE MaxCroppingSize;
8538     int CropGranularityX;
8539     int CropGranularityY;
8540     int CropAlignX;
8541     int CropAlignY;
8542     SIZE MinOutputSize;
8543     SIZE MaxOutputSize;
8544     int OutputGranularityX;
8545     int OutputGranularityY;
8546     int StretchTapsX;
8547     int StretchTapsY;
8548     int ShrinkTapsX;
8549     int ShrinkTapsY;
8550     LONGLONG MinFrameInterval;
8551     LONGLONG MaxFrameInterval;
8552     LONG MinBitsPerSecond;
8553     LONG MaxBitsPerSecond;
8554 } VIDEO_STREAM_CONFIG_CAPS;
8555 typedef struct _AUDIO_STREAM_CONFIG_CAPS {
8556     GUID guid;
8557     ULONG MinimumChannels;
8558     ULONG MaximumChannels;
8559     ULONG ChannelsGranularity;
8560     ULONG MinimumBitsPerSample;
8561     ULONG MaximumBitsPerSample;
8562     ULONG BitsPerSampleGranularity;
8563     ULONG MinimumSampleFrequency;
8564     ULONG MaximumSampleFrequency;
8565     ULONG SampleFrequencyGranularity;
8566 } AUDIO_STREAM_CONFIG_CAPS;
8567 DEFINE_GUID(IID_IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
8568 #if defined(__cplusplus) && !defined(CINTERFACE)
8569 MIDL_INTERFACE("c6e13340-30ac-11d0-a18c-00a0c9118956")
8570 IAMStreamConfig : public IUnknown
8571 {
8572     virtual HRESULT STDMETHODCALLTYPE SetFormat(
8573         AM_MEDIA_TYPE *pmt) = 0;
8574 
8575     virtual HRESULT STDMETHODCALLTYPE GetFormat(
8576         AM_MEDIA_TYPE **pmt) = 0;
8577 
8578     virtual HRESULT STDMETHODCALLTYPE GetNumberOfCapabilities(
8579         int *piCount,
8580         int *piSize) = 0;
8581 
8582     virtual HRESULT STDMETHODCALLTYPE GetStreamCaps(
8583         int iIndex,
8584         AM_MEDIA_TYPE **pmt,
8585         BYTE *pSCC) = 0;
8586 
8587 };
8588 #ifdef __CRT_UUID_DECL
8589 __CRT_UUID_DECL(IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
8590 #endif
8591 #else
8592 typedef struct IAMStreamConfigVtbl {
8593     BEGIN_INTERFACE
8594 
8595     /*** IUnknown methods ***/
8596     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8597         IAMStreamConfig* This,
8598         REFIID riid,
8599         void **ppvObject);
8600 
8601     ULONG (STDMETHODCALLTYPE *AddRef)(
8602         IAMStreamConfig* This);
8603 
8604     ULONG (STDMETHODCALLTYPE *Release)(
8605         IAMStreamConfig* This);
8606 
8607     /*** IAMStreamConfig methods ***/
8608     HRESULT (STDMETHODCALLTYPE *SetFormat)(
8609         IAMStreamConfig* This,
8610         AM_MEDIA_TYPE *pmt);
8611 
8612     HRESULT (STDMETHODCALLTYPE *GetFormat)(
8613         IAMStreamConfig* This,
8614         AM_MEDIA_TYPE **pmt);
8615 
8616     HRESULT (STDMETHODCALLTYPE *GetNumberOfCapabilities)(
8617         IAMStreamConfig* This,
8618         int *piCount,
8619         int *piSize);
8620 
8621     HRESULT (STDMETHODCALLTYPE *GetStreamCaps)(
8622         IAMStreamConfig* This,
8623         int iIndex,
8624         AM_MEDIA_TYPE **pmt,
8625         BYTE *pSCC);
8626 
8627     END_INTERFACE
8628 } IAMStreamConfigVtbl;
8629 interface IAMStreamConfig {
8630     CONST_VTBL IAMStreamConfigVtbl* lpVtbl;
8631 };
8632 
8633 #ifdef COBJMACROS
8634 #ifndef WIDL_C_INLINE_WRAPPERS
8635 /*** IUnknown methods ***/
8636 #define IAMStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8637 #define IAMStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
8638 #define IAMStreamConfig_Release(This) (This)->lpVtbl->Release(This)
8639 /*** IAMStreamConfig methods ***/
8640 #define IAMStreamConfig_SetFormat(This,pmt) (This)->lpVtbl->SetFormat(This,pmt)
8641 #define IAMStreamConfig_GetFormat(This,pmt) (This)->lpVtbl->GetFormat(This,pmt)
8642 #define IAMStreamConfig_GetNumberOfCapabilities(This,piCount,piSize) (This)->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize)
8643 #define IAMStreamConfig_GetStreamCaps(This,iIndex,pmt,pSCC) (This)->lpVtbl->GetStreamCaps(This,iIndex,pmt,pSCC)
8644 #else
8645 /*** IUnknown methods ***/
8646 static FORCEINLINE HRESULT IAMStreamConfig_QueryInterface(IAMStreamConfig* This,REFIID riid,void **ppvObject) {
8647     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8648 }
8649 static FORCEINLINE ULONG IAMStreamConfig_AddRef(IAMStreamConfig* This) {
8650     return This->lpVtbl->AddRef(This);
8651 }
8652 static FORCEINLINE ULONG IAMStreamConfig_Release(IAMStreamConfig* This) {
8653     return This->lpVtbl->Release(This);
8654 }
8655 /*** IAMStreamConfig methods ***/
8656 static FORCEINLINE HRESULT IAMStreamConfig_SetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE *pmt) {
8657     return This->lpVtbl->SetFormat(This,pmt);
8658 }
8659 static FORCEINLINE HRESULT IAMStreamConfig_GetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE **pmt) {
8660     return This->lpVtbl->GetFormat(This,pmt);
8661 }
8662 static FORCEINLINE HRESULT IAMStreamConfig_GetNumberOfCapabilities(IAMStreamConfig* This,int *piCount,int *piSize) {
8663     return This->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize);
8664 }
8665 static FORCEINLINE HRESULT IAMStreamConfig_GetStreamCaps(IAMStreamConfig* This,int iIndex,AM_MEDIA_TYPE **pmt,BYTE *pSCC) {
8666     return This->lpVtbl->GetStreamCaps(This,iIndex,pmt,pSCC);
8667 }
8668 #endif
8669 #endif
8670 
8671 #endif
8672 
8673 HRESULT STDMETHODCALLTYPE IAMStreamConfig_SetFormat_Proxy(
8674     IAMStreamConfig* This,
8675     AM_MEDIA_TYPE *pmt);
8676 void __RPC_STUB IAMStreamConfig_SetFormat_Stub(
8677     IRpcStubBuffer* This,
8678     IRpcChannelBuffer* pRpcChannelBuffer,
8679     PRPC_MESSAGE pRpcMessage,
8680     DWORD* pdwStubPhase);
8681 HRESULT STDMETHODCALLTYPE IAMStreamConfig_GetFormat_Proxy(
8682     IAMStreamConfig* This,
8683     AM_MEDIA_TYPE **pmt);
8684 void __RPC_STUB IAMStreamConfig_GetFormat_Stub(
8685     IRpcStubBuffer* This,
8686     IRpcChannelBuffer* pRpcChannelBuffer,
8687     PRPC_MESSAGE pRpcMessage,
8688     DWORD* pdwStubPhase);
8689 HRESULT STDMETHODCALLTYPE IAMStreamConfig_GetNumberOfCapabilities_Proxy(
8690     IAMStreamConfig* This,
8691     int *piCount,
8692     int *piSize);
8693 void __RPC_STUB IAMStreamConfig_GetNumberOfCapabilities_Stub(
8694     IRpcStubBuffer* This,
8695     IRpcChannelBuffer* pRpcChannelBuffer,
8696     PRPC_MESSAGE pRpcMessage,
8697     DWORD* pdwStubPhase);
8698 HRESULT STDMETHODCALLTYPE IAMStreamConfig_GetStreamCaps_Proxy(
8699     IAMStreamConfig* This,
8700     int iIndex,
8701     AM_MEDIA_TYPE **pmt,
8702     BYTE *pSCC);
8703 void __RPC_STUB IAMStreamConfig_GetStreamCaps_Stub(
8704     IRpcStubBuffer* This,
8705     IRpcChannelBuffer* pRpcChannelBuffer,
8706     PRPC_MESSAGE pRpcMessage,
8707     DWORD* pdwStubPhase);
8708 
8709 #endif  /* __IAMStreamConfig_INTERFACE_DEFINED__ */
8710 
8711 typedef enum tagVideoProcAmpProperty {
8712     VideoProcAmp_Brightness = 0,
8713     VideoProcAmp_Contrast = 1,
8714     VideoProcAmp_Hue = 2,
8715     VideoProcAmp_Saturation = 3,
8716     VideoProcAmp_Sharpness = 4,
8717     VideoProcAmp_Gamma = 5,
8718     VideoProcAmp_ColorEnable = 6,
8719     VideoProcAmp_WhiteBalance = 7,
8720     VideoProcAmp_BacklightCompensation = 8,
8721     VideoProcAmp_Gain = 9
8722 } VideoProcAmpProperty;
8723 typedef enum tagVideoProcAmpFlags {
8724     VideoProcAmp_Flags_Auto = 0x1,
8725     VideoProcAmp_Flags_Manual = 0x2
8726 } VideoProcAmpFlags;
8727 /*****************************************************************************
8728  * IAMVideoProcAmp interface
8729  */
8730 #ifndef __IAMVideoProcAmp_INTERFACE_DEFINED__
8731 #define __IAMVideoProcAmp_INTERFACE_DEFINED__
8732 
8733 DEFINE_GUID(IID_IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
8734 #if defined(__cplusplus) && !defined(CINTERFACE)
8735 MIDL_INTERFACE("c6e13360-30ac-11d0-a18c-00a0c9118956")
8736 IAMVideoProcAmp : public IUnknown
8737 {
8738     virtual HRESULT STDMETHODCALLTYPE GetRange(
8739         LONG Property,
8740         LONG *pMin,
8741         LONG *pMax,
8742         LONG *pSteppingDelta,
8743         LONG *pDefault,
8744         LONG *pCapsFlags) = 0;
8745 
8746     virtual HRESULT STDMETHODCALLTYPE Set(
8747         LONG Property,
8748         LONG lValue,
8749         LONG Flags) = 0;
8750 
8751     virtual HRESULT STDMETHODCALLTYPE Get(
8752         LONG Property,
8753         LONG *lValue,
8754         LONG *Flags) = 0;
8755 
8756 };
8757 #ifdef __CRT_UUID_DECL
8758 __CRT_UUID_DECL(IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
8759 #endif
8760 #else
8761 typedef struct IAMVideoProcAmpVtbl {
8762     BEGIN_INTERFACE
8763 
8764     /*** IUnknown methods ***/
8765     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8766         IAMVideoProcAmp* This,
8767         REFIID riid,
8768         void **ppvObject);
8769 
8770     ULONG (STDMETHODCALLTYPE *AddRef)(
8771         IAMVideoProcAmp* This);
8772 
8773     ULONG (STDMETHODCALLTYPE *Release)(
8774         IAMVideoProcAmp* This);
8775 
8776     /*** IAMVideoProcAmp methods ***/
8777     HRESULT (STDMETHODCALLTYPE *GetRange)(
8778         IAMVideoProcAmp* This,
8779         LONG Property,
8780         LONG *pMin,
8781         LONG *pMax,
8782         LONG *pSteppingDelta,
8783         LONG *pDefault,
8784         LONG *pCapsFlags);
8785 
8786     HRESULT (STDMETHODCALLTYPE *Set)(
8787         IAMVideoProcAmp* This,
8788         LONG Property,
8789         LONG lValue,
8790         LONG Flags);
8791 
8792     HRESULT (STDMETHODCALLTYPE *Get)(
8793         IAMVideoProcAmp* This,
8794         LONG Property,
8795         LONG *lValue,
8796         LONG *Flags);
8797 
8798     END_INTERFACE
8799 } IAMVideoProcAmpVtbl;
8800 interface IAMVideoProcAmp {
8801     CONST_VTBL IAMVideoProcAmpVtbl* lpVtbl;
8802 };
8803 
8804 #ifdef COBJMACROS
8805 #ifndef WIDL_C_INLINE_WRAPPERS
8806 /*** IUnknown methods ***/
8807 #define IAMVideoProcAmp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8808 #define IAMVideoProcAmp_AddRef(This) (This)->lpVtbl->AddRef(This)
8809 #define IAMVideoProcAmp_Release(This) (This)->lpVtbl->Release(This)
8810 /*** IAMVideoProcAmp methods ***/
8811 #define IAMVideoProcAmp_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
8812 #define IAMVideoProcAmp_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
8813 #define IAMVideoProcAmp_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
8814 #else
8815 /*** IUnknown methods ***/
8816 static FORCEINLINE HRESULT IAMVideoProcAmp_QueryInterface(IAMVideoProcAmp* This,REFIID riid,void **ppvObject) {
8817     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8818 }
8819 static FORCEINLINE ULONG IAMVideoProcAmp_AddRef(IAMVideoProcAmp* This) {
8820     return This->lpVtbl->AddRef(This);
8821 }
8822 static FORCEINLINE ULONG IAMVideoProcAmp_Release(IAMVideoProcAmp* This) {
8823     return This->lpVtbl->Release(This);
8824 }
8825 /*** IAMVideoProcAmp methods ***/
8826 static FORCEINLINE HRESULT IAMVideoProcAmp_GetRange(IAMVideoProcAmp* This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags) {
8827     return This->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags);
8828 }
8829 static FORCEINLINE HRESULT IAMVideoProcAmp_Set(IAMVideoProcAmp* This,LONG Property,LONG lValue,LONG Flags) {
8830     return This->lpVtbl->Set(This,Property,lValue,Flags);
8831 }
8832 static FORCEINLINE HRESULT IAMVideoProcAmp_Get(IAMVideoProcAmp* This,LONG Property,LONG *lValue,LONG *Flags) {
8833     return This->lpVtbl->Get(This,Property,lValue,Flags);
8834 }
8835 #endif
8836 #endif
8837 
8838 #endif
8839 
8840 HRESULT STDMETHODCALLTYPE IAMVideoProcAmp_GetRange_Proxy(
8841     IAMVideoProcAmp* This,
8842     LONG Property,
8843     LONG *pMin,
8844     LONG *pMax,
8845     LONG *pSteppingDelta,
8846     LONG *pDefault,
8847     LONG *pCapsFlags);
8848 void __RPC_STUB IAMVideoProcAmp_GetRange_Stub(
8849     IRpcStubBuffer* This,
8850     IRpcChannelBuffer* pRpcChannelBuffer,
8851     PRPC_MESSAGE pRpcMessage,
8852     DWORD* pdwStubPhase);
8853 HRESULT STDMETHODCALLTYPE IAMVideoProcAmp_Set_Proxy(
8854     IAMVideoProcAmp* This,
8855     LONG Property,
8856     LONG lValue,
8857     LONG Flags);
8858 void __RPC_STUB IAMVideoProcAmp_Set_Stub(
8859     IRpcStubBuffer* This,
8860     IRpcChannelBuffer* pRpcChannelBuffer,
8861     PRPC_MESSAGE pRpcMessage,
8862     DWORD* pdwStubPhase);
8863 HRESULT STDMETHODCALLTYPE IAMVideoProcAmp_Get_Proxy(
8864     IAMVideoProcAmp* This,
8865     LONG Property,
8866     LONG *lValue,
8867     LONG *Flags);
8868 void __RPC_STUB IAMVideoProcAmp_Get_Stub(
8869     IRpcStubBuffer* This,
8870     IRpcChannelBuffer* pRpcChannelBuffer,
8871     PRPC_MESSAGE pRpcMessage,
8872     DWORD* pdwStubPhase);
8873 
8874 #endif  /* __IAMVideoProcAmp_INTERFACE_DEFINED__ */
8875 
8876 /*****************************************************************************
8877  * IAsyncReader interface
8878  */
8879 #ifndef __IAsyncReader_INTERFACE_DEFINED__
8880 #define __IAsyncReader_INTERFACE_DEFINED__
8881 
8882 DEFINE_GUID(IID_IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
8883 #if defined(__cplusplus) && !defined(CINTERFACE)
8884 MIDL_INTERFACE("56a868aa-0ad4-11ce-b03a-0020af0ba770")
8885 IAsyncReader : public IUnknown
8886 {
8887     virtual HRESULT STDMETHODCALLTYPE RequestAllocator(
8888         IMemAllocator *pPreferred,
8889         ALLOCATOR_PROPERTIES *pProps,
8890         IMemAllocator **ppActual) = 0;
8891 
8892     virtual HRESULT STDMETHODCALLTYPE Request(
8893         IMediaSample *pSample,
8894         DWORD_PTR dwUser) = 0;
8895 
8896     virtual HRESULT STDMETHODCALLTYPE WaitForNext(
8897         DWORD dwTimeout,
8898         IMediaSample **ppSample,
8899         DWORD_PTR *pdwUser) = 0;
8900 
8901     virtual HRESULT STDMETHODCALLTYPE SyncReadAligned(
8902         IMediaSample *pSample) = 0;
8903 
8904     virtual HRESULT STDMETHODCALLTYPE SyncRead(
8905         LONGLONG llPosition,
8906         LONG lLength,
8907         BYTE *pBuffer) = 0;
8908 
8909     virtual HRESULT STDMETHODCALLTYPE Length(
8910         LONGLONG *pTotal,
8911         LONGLONG *pAvailable) = 0;
8912 
8913     virtual HRESULT STDMETHODCALLTYPE BeginFlush(
8914         ) = 0;
8915 
8916     virtual HRESULT STDMETHODCALLTYPE EndFlush(
8917         ) = 0;
8918 
8919 };
8920 #ifdef __CRT_UUID_DECL
8921 __CRT_UUID_DECL(IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
8922 #endif
8923 #else
8924 typedef struct IAsyncReaderVtbl {
8925     BEGIN_INTERFACE
8926 
8927     /*** IUnknown methods ***/
8928     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8929         IAsyncReader* This,
8930         REFIID riid,
8931         void **ppvObject);
8932 
8933     ULONG (STDMETHODCALLTYPE *AddRef)(
8934         IAsyncReader* This);
8935 
8936     ULONG (STDMETHODCALLTYPE *Release)(
8937         IAsyncReader* This);
8938 
8939     /*** IAsyncReader methods ***/
8940     HRESULT (STDMETHODCALLTYPE *RequestAllocator)(
8941         IAsyncReader* This,
8942         IMemAllocator *pPreferred,
8943         ALLOCATOR_PROPERTIES *pProps,
8944         IMemAllocator **ppActual);
8945 
8946     HRESULT (STDMETHODCALLTYPE *Request)(
8947         IAsyncReader* This,
8948         IMediaSample *pSample,
8949         DWORD_PTR dwUser);
8950 
8951     HRESULT (STDMETHODCALLTYPE *WaitForNext)(
8952         IAsyncReader* This,
8953         DWORD dwTimeout,
8954         IMediaSample **ppSample,
8955         DWORD_PTR *pdwUser);
8956 
8957     HRESULT (STDMETHODCALLTYPE *SyncReadAligned)(
8958         IAsyncReader* This,
8959         IMediaSample *pSample);
8960 
8961     HRESULT (STDMETHODCALLTYPE *SyncRead)(
8962         IAsyncReader* This,
8963         LONGLONG llPosition,
8964         LONG lLength,
8965         BYTE *pBuffer);
8966 
8967     HRESULT (STDMETHODCALLTYPE *Length)(
8968         IAsyncReader* This,
8969         LONGLONG *pTotal,
8970         LONGLONG *pAvailable);
8971 
8972     HRESULT (STDMETHODCALLTYPE *BeginFlush)(
8973         IAsyncReader* This);
8974 
8975     HRESULT (STDMETHODCALLTYPE *EndFlush)(
8976         IAsyncReader* This);
8977 
8978     END_INTERFACE
8979 } IAsyncReaderVtbl;
8980 interface IAsyncReader {
8981     CONST_VTBL IAsyncReaderVtbl* lpVtbl;
8982 };
8983 
8984 #ifdef COBJMACROS
8985 #ifndef WIDL_C_INLINE_WRAPPERS
8986 /*** IUnknown methods ***/
8987 #define IAsyncReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8988 #define IAsyncReader_AddRef(This) (This)->lpVtbl->AddRef(This)
8989 #define IAsyncReader_Release(This) (This)->lpVtbl->Release(This)
8990 /*** IAsyncReader methods ***/
8991 #define IAsyncReader_RequestAllocator(This,pPreferred,pProps,ppActual) (This)->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual)
8992 #define IAsyncReader_Request(This,pSample,dwUser) (This)->lpVtbl->Request(This,pSample,dwUser)
8993 #define IAsyncReader_WaitForNext(This,dwTimeout,ppSample,pdwUser) (This)->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser)
8994 #define IAsyncReader_SyncReadAligned(This,pSample) (This)->lpVtbl->SyncReadAligned(This,pSample)
8995 #define IAsyncReader_SyncRead(This,llPosition,lLength,pBuffer) (This)->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer)
8996 #define IAsyncReader_Length(This,pTotal,pAvailable) (This)->lpVtbl->Length(This,pTotal,pAvailable)
8997 #define IAsyncReader_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
8998 #define IAsyncReader_EndFlush(This) (This)->lpVtbl->EndFlush(This)
8999 #else
9000 /*** IUnknown methods ***/
9001 static FORCEINLINE HRESULT IAsyncReader_QueryInterface(IAsyncReader* This,REFIID riid,void **ppvObject) {
9002     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9003 }
9004 static FORCEINLINE ULONG IAsyncReader_AddRef(IAsyncReader* This) {
9005     return This->lpVtbl->AddRef(This);
9006 }
9007 static FORCEINLINE ULONG IAsyncReader_Release(IAsyncReader* This) {
9008     return This->lpVtbl->Release(This);
9009 }
9010 /*** IAsyncReader methods ***/
9011 static FORCEINLINE HRESULT IAsyncReader_RequestAllocator(IAsyncReader* This,IMemAllocator *pPreferred,ALLOCATOR_PROPERTIES *pProps,IMemAllocator **ppActual) {
9012     return This->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual);
9013 }
9014 static FORCEINLINE HRESULT IAsyncReader_Request(IAsyncReader* This,IMediaSample *pSample,DWORD_PTR dwUser) {
9015     return This->lpVtbl->Request(This,pSample,dwUser);
9016 }
9017 static FORCEINLINE HRESULT IAsyncReader_WaitForNext(IAsyncReader* This,DWORD dwTimeout,IMediaSample **ppSample,DWORD_PTR *pdwUser) {
9018     return This->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser);
9019 }
9020 static FORCEINLINE HRESULT IAsyncReader_SyncReadAligned(IAsyncReader* This,IMediaSample *pSample) {
9021     return This->lpVtbl->SyncReadAligned(This,pSample);
9022 }
9023 static FORCEINLINE HRESULT IAsyncReader_SyncRead(IAsyncReader* This,LONGLONG llPosition,LONG lLength,BYTE *pBuffer) {
9024     return This->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer);
9025 }
9026 static FORCEINLINE HRESULT IAsyncReader_Length(IAsyncReader* This,LONGLONG *pTotal,LONGLONG *pAvailable) {
9027     return This->lpVtbl->Length(This,pTotal,pAvailable);
9028 }
9029 static FORCEINLINE HRESULT IAsyncReader_BeginFlush(IAsyncReader* This) {
9030     return This->lpVtbl->BeginFlush(This);
9031 }
9032 static FORCEINLINE HRESULT IAsyncReader_EndFlush(IAsyncReader* This) {
9033     return This->lpVtbl->EndFlush(This);
9034 }
9035 #endif
9036 #endif
9037 
9038 #endif
9039 
9040 HRESULT STDMETHODCALLTYPE IAsyncReader_RequestAllocator_Proxy(
9041     IAsyncReader* This,
9042     IMemAllocator *pPreferred,
9043     ALLOCATOR_PROPERTIES *pProps,
9044     IMemAllocator **ppActual);
9045 void __RPC_STUB IAsyncReader_RequestAllocator_Stub(
9046     IRpcStubBuffer* This,
9047     IRpcChannelBuffer* pRpcChannelBuffer,
9048     PRPC_MESSAGE pRpcMessage,
9049     DWORD* pdwStubPhase);
9050 HRESULT STDMETHODCALLTYPE IAsyncReader_Request_Proxy(
9051     IAsyncReader* This,
9052     IMediaSample *pSample,
9053     DWORD_PTR dwUser);
9054 void __RPC_STUB IAsyncReader_Request_Stub(
9055     IRpcStubBuffer* This,
9056     IRpcChannelBuffer* pRpcChannelBuffer,
9057     PRPC_MESSAGE pRpcMessage,
9058     DWORD* pdwStubPhase);
9059 HRESULT STDMETHODCALLTYPE IAsyncReader_WaitForNext_Proxy(
9060     IAsyncReader* This,
9061     DWORD dwTimeout,
9062     IMediaSample **ppSample,
9063     DWORD_PTR *pdwUser);
9064 void __RPC_STUB IAsyncReader_WaitForNext_Stub(
9065     IRpcStubBuffer* This,
9066     IRpcChannelBuffer* pRpcChannelBuffer,
9067     PRPC_MESSAGE pRpcMessage,
9068     DWORD* pdwStubPhase);
9069 HRESULT STDMETHODCALLTYPE IAsyncReader_SyncReadAligned_Proxy(
9070     IAsyncReader* This,
9071     IMediaSample *pSample);
9072 void __RPC_STUB IAsyncReader_SyncReadAligned_Stub(
9073     IRpcStubBuffer* This,
9074     IRpcChannelBuffer* pRpcChannelBuffer,
9075     PRPC_MESSAGE pRpcMessage,
9076     DWORD* pdwStubPhase);
9077 HRESULT STDMETHODCALLTYPE IAsyncReader_SyncRead_Proxy(
9078     IAsyncReader* This,
9079     LONGLONG llPosition,
9080     LONG lLength,
9081     BYTE *pBuffer);
9082 void __RPC_STUB IAsyncReader_SyncRead_Stub(
9083     IRpcStubBuffer* This,
9084     IRpcChannelBuffer* pRpcChannelBuffer,
9085     PRPC_MESSAGE pRpcMessage,
9086     DWORD* pdwStubPhase);
9087 HRESULT STDMETHODCALLTYPE IAsyncReader_Length_Proxy(
9088     IAsyncReader* This,
9089     LONGLONG *pTotal,
9090     LONGLONG *pAvailable);
9091 void __RPC_STUB IAsyncReader_Length_Stub(
9092     IRpcStubBuffer* This,
9093     IRpcChannelBuffer* pRpcChannelBuffer,
9094     PRPC_MESSAGE pRpcMessage,
9095     DWORD* pdwStubPhase);
9096 HRESULT STDMETHODCALLTYPE IAsyncReader_BeginFlush_Proxy(
9097     IAsyncReader* This);
9098 void __RPC_STUB IAsyncReader_BeginFlush_Stub(
9099     IRpcStubBuffer* This,
9100     IRpcChannelBuffer* pRpcChannelBuffer,
9101     PRPC_MESSAGE pRpcMessage,
9102     DWORD* pdwStubPhase);
9103 HRESULT STDMETHODCALLTYPE IAsyncReader_EndFlush_Proxy(
9104     IAsyncReader* This);
9105 void __RPC_STUB IAsyncReader_EndFlush_Stub(
9106     IRpcStubBuffer* This,
9107     IRpcChannelBuffer* pRpcChannelBuffer,
9108     PRPC_MESSAGE pRpcMessage,
9109     DWORD* pdwStubPhase);
9110 
9111 #endif  /* __IAsyncReader_INTERFACE_DEFINED__ */
9112 
9113 /*****************************************************************************
9114  * IGraphVersion interface
9115  */
9116 #ifndef __IGraphVersion_INTERFACE_DEFINED__
9117 #define __IGraphVersion_INTERFACE_DEFINED__
9118 
9119 DEFINE_GUID(IID_IGraphVersion, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
9120 #if defined(__cplusplus) && !defined(CINTERFACE)
9121 MIDL_INTERFACE("56a868ab-0ad4-11ce-b03a-0020af0ba770")
9122 IGraphVersion : public IUnknown
9123 {
9124     virtual HRESULT STDMETHODCALLTYPE QueryVersion(
9125         LONG *pVersion) = 0;
9126 
9127 };
9128 #ifdef __CRT_UUID_DECL
9129 __CRT_UUID_DECL(IGraphVersion, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
9130 #endif
9131 #else
9132 typedef struct IGraphVersionVtbl {
9133     BEGIN_INTERFACE
9134 
9135     /*** IUnknown methods ***/
9136     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9137         IGraphVersion* This,
9138         REFIID riid,
9139         void **ppvObject);
9140 
9141     ULONG (STDMETHODCALLTYPE *AddRef)(
9142         IGraphVersion* This);
9143 
9144     ULONG (STDMETHODCALLTYPE *Release)(
9145         IGraphVersion* This);
9146 
9147     /*** IGraphVersion methods ***/
9148     HRESULT (STDMETHODCALLTYPE *QueryVersion)(
9149         IGraphVersion* This,
9150         LONG *pVersion);
9151 
9152     END_INTERFACE
9153 } IGraphVersionVtbl;
9154 interface IGraphVersion {
9155     CONST_VTBL IGraphVersionVtbl* lpVtbl;
9156 };
9157 
9158 #ifdef COBJMACROS
9159 #ifndef WIDL_C_INLINE_WRAPPERS
9160 /*** IUnknown methods ***/
9161 #define IGraphVersion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9162 #define IGraphVersion_AddRef(This) (This)->lpVtbl->AddRef(This)
9163 #define IGraphVersion_Release(This) (This)->lpVtbl->Release(This)
9164 /*** IGraphVersion methods ***/
9165 #define IGraphVersion_QueryVersion(This,pVersion) (This)->lpVtbl->QueryVersion(This,pVersion)
9166 #else
9167 /*** IUnknown methods ***/
9168 static FORCEINLINE HRESULT IGraphVersion_QueryInterface(IGraphVersion* This,REFIID riid,void **ppvObject) {
9169     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9170 }
9171 static FORCEINLINE ULONG IGraphVersion_AddRef(IGraphVersion* This) {
9172     return This->lpVtbl->AddRef(This);
9173 }
9174 static FORCEINLINE ULONG IGraphVersion_Release(IGraphVersion* This) {
9175     return This->lpVtbl->Release(This);
9176 }
9177 /*** IGraphVersion methods ***/
9178 static FORCEINLINE HRESULT IGraphVersion_QueryVersion(IGraphVersion* This,LONG *pVersion) {
9179     return This->lpVtbl->QueryVersion(This,pVersion);
9180 }
9181 #endif
9182 #endif
9183 
9184 #endif
9185 
9186 HRESULT STDMETHODCALLTYPE IGraphVersion_QueryVersion_Proxy(
9187     IGraphVersion* This,
9188     LONG *pVersion);
9189 void __RPC_STUB IGraphVersion_QueryVersion_Stub(
9190     IRpcStubBuffer* This,
9191     IRpcChannelBuffer* pRpcChannelBuffer,
9192     PRPC_MESSAGE pRpcMessage,
9193     DWORD* pdwStubPhase);
9194 
9195 #endif  /* __IGraphVersion_INTERFACE_DEFINED__ */
9196 
9197 /*****************************************************************************
9198  * IResourceConsumer interface
9199  */
9200 #ifndef __IResourceConsumer_INTERFACE_DEFINED__
9201 #define __IResourceConsumer_INTERFACE_DEFINED__
9202 
9203 DEFINE_GUID(IID_IResourceConsumer, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
9204 #if defined(__cplusplus) && !defined(CINTERFACE)
9205 MIDL_INTERFACE("56a868ad-0ad4-11ce-b03a-0020af0ba770")
9206 IResourceConsumer : public IUnknown
9207 {
9208     virtual HRESULT STDMETHODCALLTYPE AcquireResource(
9209         LONG idResource) = 0;
9210 
9211     virtual HRESULT STDMETHODCALLTYPE ReleaseResource(
9212         LONG idResource) = 0;
9213 
9214 };
9215 #ifdef __CRT_UUID_DECL
9216 __CRT_UUID_DECL(IResourceConsumer, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
9217 #endif
9218 #else
9219 typedef struct IResourceConsumerVtbl {
9220     BEGIN_INTERFACE
9221 
9222     /*** IUnknown methods ***/
9223     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9224         IResourceConsumer* This,
9225         REFIID riid,
9226         void **ppvObject);
9227 
9228     ULONG (STDMETHODCALLTYPE *AddRef)(
9229         IResourceConsumer* This);
9230 
9231     ULONG (STDMETHODCALLTYPE *Release)(
9232         IResourceConsumer* This);
9233 
9234     /*** IResourceConsumer methods ***/
9235     HRESULT (STDMETHODCALLTYPE *AcquireResource)(
9236         IResourceConsumer* This,
9237         LONG idResource);
9238 
9239     HRESULT (STDMETHODCALLTYPE *ReleaseResource)(
9240         IResourceConsumer* This,
9241         LONG idResource);
9242 
9243     END_INTERFACE
9244 } IResourceConsumerVtbl;
9245 interface IResourceConsumer {
9246     CONST_VTBL IResourceConsumerVtbl* lpVtbl;
9247 };
9248 
9249 #ifdef COBJMACROS
9250 #ifndef WIDL_C_INLINE_WRAPPERS
9251 /*** IUnknown methods ***/
9252 #define IResourceConsumer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9253 #define IResourceConsumer_AddRef(This) (This)->lpVtbl->AddRef(This)
9254 #define IResourceConsumer_Release(This) (This)->lpVtbl->Release(This)
9255 /*** IResourceConsumer methods ***/
9256 #define IResourceConsumer_AcquireResource(This,idResource) (This)->lpVtbl->AcquireResource(This,idResource)
9257 #define IResourceConsumer_ReleaseResource(This,idResource) (This)->lpVtbl->ReleaseResource(This,idResource)
9258 #else
9259 /*** IUnknown methods ***/
9260 static FORCEINLINE HRESULT IResourceConsumer_QueryInterface(IResourceConsumer* This,REFIID riid,void **ppvObject) {
9261     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9262 }
9263 static FORCEINLINE ULONG IResourceConsumer_AddRef(IResourceConsumer* This) {
9264     return This->lpVtbl->AddRef(This);
9265 }
9266 static FORCEINLINE ULONG IResourceConsumer_Release(IResourceConsumer* This) {
9267     return This->lpVtbl->Release(This);
9268 }
9269 /*** IResourceConsumer methods ***/
9270 static FORCEINLINE HRESULT IResourceConsumer_AcquireResource(IResourceConsumer* This,LONG idResource) {
9271     return This->lpVtbl->AcquireResource(This,idResource);
9272 }
9273 static FORCEINLINE HRESULT IResourceConsumer_ReleaseResource(IResourceConsumer* This,LONG idResource) {
9274     return This->lpVtbl->ReleaseResource(This,idResource);
9275 }
9276 #endif
9277 #endif
9278 
9279 #endif
9280 
9281 HRESULT STDMETHODCALLTYPE IResourceConsumer_AcquireResource_Proxy(
9282     IResourceConsumer* This,
9283     LONG idResource);
9284 void __RPC_STUB IResourceConsumer_AcquireResource_Stub(
9285     IRpcStubBuffer* This,
9286     IRpcChannelBuffer* pRpcChannelBuffer,
9287     PRPC_MESSAGE pRpcMessage,
9288     DWORD* pdwStubPhase);
9289 HRESULT STDMETHODCALLTYPE IResourceConsumer_ReleaseResource_Proxy(
9290     IResourceConsumer* This,
9291     LONG idResource);
9292 void __RPC_STUB IResourceConsumer_ReleaseResource_Stub(
9293     IRpcStubBuffer* This,
9294     IRpcChannelBuffer* pRpcChannelBuffer,
9295     PRPC_MESSAGE pRpcMessage,
9296     DWORD* pdwStubPhase);
9297 
9298 #endif  /* __IResourceConsumer_INTERFACE_DEFINED__ */
9299 
9300 /*****************************************************************************
9301  * IResourceManager interface
9302  */
9303 #ifndef __IResourceManager_INTERFACE_DEFINED__
9304 #define __IResourceManager_INTERFACE_DEFINED__
9305 
9306 DEFINE_GUID(IID_IResourceManager, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
9307 #if defined(__cplusplus) && !defined(CINTERFACE)
9308 MIDL_INTERFACE("56a868ac-0ad4-11ce-b03a-0020af0ba770")
9309 IResourceManager : public IUnknown
9310 {
9311     virtual HRESULT STDMETHODCALLTYPE Register(
9312         LPCWSTR pName,
9313         LONG cResource,
9314         LONG *plToken) = 0;
9315 
9316     virtual HRESULT STDMETHODCALLTYPE RegisterGroup(
9317         LPCWSTR pName,
9318         LONG cResource,
9319         LONG *palTokens,
9320         LONG *plToken) = 0;
9321 
9322     virtual HRESULT STDMETHODCALLTYPE RequestResource(
9323         LONG idResource,
9324         IUnknown *pFocusObject,
9325         IResourceConsumer *pConsumer) = 0;
9326 
9327     virtual HRESULT STDMETHODCALLTYPE NotifyAcquire(
9328         LONG idResource,
9329         IResourceConsumer *pConsumer,
9330         HRESULT hr) = 0;
9331 
9332     virtual HRESULT STDMETHODCALLTYPE NotifyRelease(
9333         LONG idResource,
9334         IResourceConsumer *pConsumer,
9335         WINBOOL bStillWant) = 0;
9336 
9337     virtual HRESULT STDMETHODCALLTYPE CancelRequest(
9338         LONG idResource,
9339         IResourceConsumer *pConsumer) = 0;
9340 
9341     virtual HRESULT STDMETHODCALLTYPE SetFocus(
9342         IUnknown *pFocusObject) = 0;
9343 
9344     virtual HRESULT STDMETHODCALLTYPE ReleaseFocus(
9345         IUnknown *pFocusObject) = 0;
9346 
9347 };
9348 #ifdef __CRT_UUID_DECL
9349 __CRT_UUID_DECL(IResourceManager, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
9350 #endif
9351 #else
9352 typedef struct IResourceManagerVtbl {
9353     BEGIN_INTERFACE
9354 
9355     /*** IUnknown methods ***/
9356     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9357         IResourceManager* This,
9358         REFIID riid,
9359         void **ppvObject);
9360 
9361     ULONG (STDMETHODCALLTYPE *AddRef)(
9362         IResourceManager* This);
9363 
9364     ULONG (STDMETHODCALLTYPE *Release)(
9365         IResourceManager* This);
9366 
9367     /*** IResourceManager methods ***/
9368     HRESULT (STDMETHODCALLTYPE *Register)(
9369         IResourceManager* This,
9370         LPCWSTR pName,
9371         LONG cResource,
9372         LONG *plToken);
9373 
9374     HRESULT (STDMETHODCALLTYPE *RegisterGroup)(
9375         IResourceManager* This,
9376         LPCWSTR pName,
9377         LONG cResource,
9378         LONG *palTokens,
9379         LONG *plToken);
9380 
9381     HRESULT (STDMETHODCALLTYPE *RequestResource)(
9382         IResourceManager* This,
9383         LONG idResource,
9384         IUnknown *pFocusObject,
9385         IResourceConsumer *pConsumer);
9386 
9387     HRESULT (STDMETHODCALLTYPE *NotifyAcquire)(
9388         IResourceManager* This,
9389         LONG idResource,
9390         IResourceConsumer *pConsumer,
9391         HRESULT hr);
9392 
9393     HRESULT (STDMETHODCALLTYPE *NotifyRelease)(
9394         IResourceManager* This,
9395         LONG idResource,
9396         IResourceConsumer *pConsumer,
9397         WINBOOL bStillWant);
9398 
9399     HRESULT (STDMETHODCALLTYPE *CancelRequest)(
9400         IResourceManager* This,
9401         LONG idResource,
9402         IResourceConsumer *pConsumer);
9403 
9404     HRESULT (STDMETHODCALLTYPE *SetFocus)(
9405         IResourceManager* This,
9406         IUnknown *pFocusObject);
9407 
9408     HRESULT (STDMETHODCALLTYPE *ReleaseFocus)(
9409         IResourceManager* This,
9410         IUnknown *pFocusObject);
9411 
9412     END_INTERFACE
9413 } IResourceManagerVtbl;
9414 interface IResourceManager {
9415     CONST_VTBL IResourceManagerVtbl* lpVtbl;
9416 };
9417 
9418 #ifdef COBJMACROS
9419 #ifndef WIDL_C_INLINE_WRAPPERS
9420 /*** IUnknown methods ***/
9421 #define IResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9422 #define IResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
9423 #define IResourceManager_Release(This) (This)->lpVtbl->Release(This)
9424 /*** IResourceManager methods ***/
9425 #define IResourceManager_Register(This,pName,cResource,plToken) (This)->lpVtbl->Register(This,pName,cResource,plToken)
9426 #define IResourceManager_RegisterGroup(This,pName,cResource,palTokens,plToken) (This)->lpVtbl->RegisterGroup(This,pName,cResource,palTokens,plToken)
9427 #define IResourceManager_RequestResource(This,idResource,pFocusObject,pConsumer) (This)->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer)
9428 #define IResourceManager_NotifyAcquire(This,idResource,pConsumer,hr) (This)->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr)
9429 #define IResourceManager_NotifyRelease(This,idResource,pConsumer,bStillWant) (This)->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant)
9430 #define IResourceManager_CancelRequest(This,idResource,pConsumer) (This)->lpVtbl->CancelRequest(This,idResource,pConsumer)
9431 #define IResourceManager_SetFocus(This,pFocusObject) (This)->lpVtbl->SetFocus(This,pFocusObject)
9432 #define IResourceManager_ReleaseFocus(This,pFocusObject) (This)->lpVtbl->ReleaseFocus(This,pFocusObject)
9433 #else
9434 /*** IUnknown methods ***/
9435 static FORCEINLINE HRESULT IResourceManager_QueryInterface(IResourceManager* This,REFIID riid,void **ppvObject) {
9436     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9437 }
9438 static FORCEINLINE ULONG IResourceManager_AddRef(IResourceManager* This) {
9439     return This->lpVtbl->AddRef(This);
9440 }
9441 static FORCEINLINE ULONG IResourceManager_Release(IResourceManager* This) {
9442     return This->lpVtbl->Release(This);
9443 }
9444 /*** IResourceManager methods ***/
9445 static FORCEINLINE HRESULT IResourceManager_Register(IResourceManager* This,LPCWSTR pName,LONG cResource,LONG *plToken) {
9446     return This->lpVtbl->Register(This,pName,cResource,plToken);
9447 }
9448 static FORCEINLINE HRESULT IResourceManager_RegisterGroup(IResourceManager* This,LPCWSTR pName,LONG cResource,LONG *palTokens,LONG *plToken) {
9449     return This->lpVtbl->RegisterGroup(This,pName,cResource,palTokens,plToken);
9450 }
9451 static FORCEINLINE HRESULT IResourceManager_RequestResource(IResourceManager* This,LONG idResource,IUnknown *pFocusObject,IResourceConsumer *pConsumer) {
9452     return This->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer);
9453 }
9454 static FORCEINLINE HRESULT IResourceManager_NotifyAcquire(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer,HRESULT hr) {
9455     return This->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr);
9456 }
9457 static FORCEINLINE HRESULT IResourceManager_NotifyRelease(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer,WINBOOL bStillWant) {
9458     return This->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant);
9459 }
9460 static FORCEINLINE HRESULT IResourceManager_CancelRequest(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer) {
9461     return This->lpVtbl->CancelRequest(This,idResource,pConsumer);
9462 }
9463 static FORCEINLINE HRESULT IResourceManager_SetFocus(IResourceManager* This,IUnknown *pFocusObject) {
9464     return This->lpVtbl->SetFocus(This,pFocusObject);
9465 }
9466 static FORCEINLINE HRESULT IResourceManager_ReleaseFocus(IResourceManager* This,IUnknown *pFocusObject) {
9467     return This->lpVtbl->ReleaseFocus(This,pFocusObject);
9468 }
9469 #endif
9470 #endif
9471 
9472 #endif
9473 
9474 HRESULT STDMETHODCALLTYPE IResourceManager_Register_Proxy(
9475     IResourceManager* This,
9476     LPCWSTR pName,
9477     LONG cResource,
9478     LONG *plToken);
9479 void __RPC_STUB IResourceManager_Register_Stub(
9480     IRpcStubBuffer* This,
9481     IRpcChannelBuffer* pRpcChannelBuffer,
9482     PRPC_MESSAGE pRpcMessage,
9483     DWORD* pdwStubPhase);
9484 HRESULT STDMETHODCALLTYPE IResourceManager_RegisterGroup_Proxy(
9485     IResourceManager* This,
9486     LPCWSTR pName,
9487     LONG cResource,
9488     LONG *palTokens,
9489     LONG *plToken);
9490 void __RPC_STUB IResourceManager_RegisterGroup_Stub(
9491     IRpcStubBuffer* This,
9492     IRpcChannelBuffer* pRpcChannelBuffer,
9493     PRPC_MESSAGE pRpcMessage,
9494     DWORD* pdwStubPhase);
9495 HRESULT STDMETHODCALLTYPE IResourceManager_RequestResource_Proxy(
9496     IResourceManager* This,
9497     LONG idResource,
9498     IUnknown *pFocusObject,
9499     IResourceConsumer *pConsumer);
9500 void __RPC_STUB IResourceManager_RequestResource_Stub(
9501     IRpcStubBuffer* This,
9502     IRpcChannelBuffer* pRpcChannelBuffer,
9503     PRPC_MESSAGE pRpcMessage,
9504     DWORD* pdwStubPhase);
9505 HRESULT STDMETHODCALLTYPE IResourceManager_NotifyAcquire_Proxy(
9506     IResourceManager* This,
9507     LONG idResource,
9508     IResourceConsumer *pConsumer,
9509     HRESULT hr);
9510 void __RPC_STUB IResourceManager_NotifyAcquire_Stub(
9511     IRpcStubBuffer* This,
9512     IRpcChannelBuffer* pRpcChannelBuffer,
9513     PRPC_MESSAGE pRpcMessage,
9514     DWORD* pdwStubPhase);
9515 HRESULT STDMETHODCALLTYPE IResourceManager_NotifyRelease_Proxy(
9516     IResourceManager* This,
9517     LONG idResource,
9518     IResourceConsumer *pConsumer,
9519     WINBOOL bStillWant);
9520 void __RPC_STUB IResourceManager_NotifyRelease_Stub(
9521     IRpcStubBuffer* This,
9522     IRpcChannelBuffer* pRpcChannelBuffer,
9523     PRPC_MESSAGE pRpcMessage,
9524     DWORD* pdwStubPhase);
9525 HRESULT STDMETHODCALLTYPE IResourceManager_CancelRequest_Proxy(
9526     IResourceManager* This,
9527     LONG idResource,
9528     IResourceConsumer *pConsumer);
9529 void __RPC_STUB IResourceManager_CancelRequest_Stub(
9530     IRpcStubBuffer* This,
9531     IRpcChannelBuffer* pRpcChannelBuffer,
9532     PRPC_MESSAGE pRpcMessage,
9533     DWORD* pdwStubPhase);
9534 HRESULT STDMETHODCALLTYPE IResourceManager_SetFocus_Proxy(
9535     IResourceManager* This,
9536     IUnknown *pFocusObject);
9537 void __RPC_STUB IResourceManager_SetFocus_Stub(
9538     IRpcStubBuffer* This,
9539     IRpcChannelBuffer* pRpcChannelBuffer,
9540     PRPC_MESSAGE pRpcMessage,
9541     DWORD* pdwStubPhase);
9542 HRESULT STDMETHODCALLTYPE IResourceManager_ReleaseFocus_Proxy(
9543     IResourceManager* This,
9544     IUnknown *pFocusObject);
9545 void __RPC_STUB IResourceManager_ReleaseFocus_Stub(
9546     IRpcStubBuffer* This,
9547     IRpcChannelBuffer* pRpcChannelBuffer,
9548     PRPC_MESSAGE pRpcMessage,
9549     DWORD* pdwStubPhase);
9550 
9551 #endif  /* __IResourceManager_INTERFACE_DEFINED__ */
9552 
9553 typedef enum AM_STREAM_INFO_FLAGS {
9554     AM_STREAM_INFO_START_DEFINED = 0x1,
9555     AM_STREAM_INFO_STOP_DEFINED = 0x2,
9556     AM_STREAM_INFO_DISCARDING = 0x4,
9557     AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10
9558 } AM_STREAM_INFO_FLAGS;
9559 typedef struct AM_STREAM_INFO {
9560     REFERENCE_TIME tStart;
9561     REFERENCE_TIME tStop;
9562     DWORD dwStartCookie;
9563     DWORD dwStopCookie;
9564     DWORD dwFlags;
9565 } AM_STREAM_INFO;
9566 /*****************************************************************************
9567  * IAMStreamControl interface
9568  */
9569 #ifndef __IAMStreamControl_INTERFACE_DEFINED__
9570 #define __IAMStreamControl_INTERFACE_DEFINED__
9571 
9572 DEFINE_GUID(IID_IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
9573 #if defined(__cplusplus) && !defined(CINTERFACE)
9574 MIDL_INTERFACE("36b73881-c2c8-11cf-8b46-00805f6cef60")
9575 IAMStreamControl : public IUnknown
9576 {
9577     virtual HRESULT STDMETHODCALLTYPE StartAt(
9578         const REFERENCE_TIME *ptStart,
9579         DWORD dwCookie) = 0;
9580 
9581     virtual HRESULT STDMETHODCALLTYPE StopAt(
9582         const REFERENCE_TIME *ptStop,
9583         WINBOOL bSendExtra,
9584         DWORD dwCookie) = 0;
9585 
9586     virtual HRESULT STDMETHODCALLTYPE GetInfo(
9587         AM_STREAM_INFO *pInfo) = 0;
9588 
9589 };
9590 #ifdef __CRT_UUID_DECL
9591 __CRT_UUID_DECL(IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
9592 #endif
9593 #else
9594 typedef struct IAMStreamControlVtbl {
9595     BEGIN_INTERFACE
9596 
9597     /*** IUnknown methods ***/
9598     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9599         IAMStreamControl* This,
9600         REFIID riid,
9601         void **ppvObject);
9602 
9603     ULONG (STDMETHODCALLTYPE *AddRef)(
9604         IAMStreamControl* This);
9605 
9606     ULONG (STDMETHODCALLTYPE *Release)(
9607         IAMStreamControl* This);
9608 
9609     /*** IAMStreamControl methods ***/
9610     HRESULT (STDMETHODCALLTYPE *StartAt)(
9611         IAMStreamControl* This,
9612         const REFERENCE_TIME *ptStart,
9613         DWORD dwCookie);
9614 
9615     HRESULT (STDMETHODCALLTYPE *StopAt)(
9616         IAMStreamControl* This,
9617         const REFERENCE_TIME *ptStop,
9618         WINBOOL bSendExtra,
9619         DWORD dwCookie);
9620 
9621     HRESULT (STDMETHODCALLTYPE *GetInfo)(
9622         IAMStreamControl* This,
9623         AM_STREAM_INFO *pInfo);
9624 
9625     END_INTERFACE
9626 } IAMStreamControlVtbl;
9627 interface IAMStreamControl {
9628     CONST_VTBL IAMStreamControlVtbl* lpVtbl;
9629 };
9630 
9631 #ifdef COBJMACROS
9632 #ifndef WIDL_C_INLINE_WRAPPERS
9633 /*** IUnknown methods ***/
9634 #define IAMStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9635 #define IAMStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
9636 #define IAMStreamControl_Release(This) (This)->lpVtbl->Release(This)
9637 /*** IAMStreamControl methods ***/
9638 #define IAMStreamControl_StartAt(This,ptStart,dwCookie) (This)->lpVtbl->StartAt(This,ptStart,dwCookie)
9639 #define IAMStreamControl_StopAt(This,ptStop,bSendExtra,dwCookie) (This)->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie)
9640 #define IAMStreamControl_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
9641 #else
9642 /*** IUnknown methods ***/
9643 static FORCEINLINE HRESULT IAMStreamControl_QueryInterface(IAMStreamControl* This,REFIID riid,void **ppvObject) {
9644     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9645 }
9646 static FORCEINLINE ULONG IAMStreamControl_AddRef(IAMStreamControl* This) {
9647     return This->lpVtbl->AddRef(This);
9648 }
9649 static FORCEINLINE ULONG IAMStreamControl_Release(IAMStreamControl* This) {
9650     return This->lpVtbl->Release(This);
9651 }
9652 /*** IAMStreamControl methods ***/
9653 static FORCEINLINE HRESULT IAMStreamControl_StartAt(IAMStreamControl* This,const REFERENCE_TIME *ptStart,DWORD dwCookie) {
9654     return This->lpVtbl->StartAt(This,ptStart,dwCookie);
9655 }
9656 static FORCEINLINE HRESULT IAMStreamControl_StopAt(IAMStreamControl* This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie) {
9657     return This->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie);
9658 }
9659 static FORCEINLINE HRESULT IAMStreamControl_GetInfo(IAMStreamControl* This,AM_STREAM_INFO *pInfo) {
9660     return This->lpVtbl->GetInfo(This,pInfo);
9661 }
9662 #endif
9663 #endif
9664 
9665 #endif
9666 
9667 HRESULT STDMETHODCALLTYPE IAMStreamControl_StartAt_Proxy(
9668     IAMStreamControl* This,
9669     const REFERENCE_TIME *ptStart,
9670     DWORD dwCookie);
9671 void __RPC_STUB IAMStreamControl_StartAt_Stub(
9672     IRpcStubBuffer* This,
9673     IRpcChannelBuffer* pRpcChannelBuffer,
9674     PRPC_MESSAGE pRpcMessage,
9675     DWORD* pdwStubPhase);
9676 HRESULT STDMETHODCALLTYPE IAMStreamControl_StopAt_Proxy(
9677     IAMStreamControl* This,
9678     const REFERENCE_TIME *ptStop,
9679     WINBOOL bSendExtra,
9680     DWORD dwCookie);
9681 void __RPC_STUB IAMStreamControl_StopAt_Stub(
9682     IRpcStubBuffer* This,
9683     IRpcChannelBuffer* pRpcChannelBuffer,
9684     PRPC_MESSAGE pRpcMessage,
9685     DWORD* pdwStubPhase);
9686 HRESULT STDMETHODCALLTYPE IAMStreamControl_GetInfo_Proxy(
9687     IAMStreamControl* This,
9688     AM_STREAM_INFO *pInfo);
9689 void __RPC_STUB IAMStreamControl_GetInfo_Stub(
9690     IRpcStubBuffer* This,
9691     IRpcChannelBuffer* pRpcChannelBuffer,
9692     PRPC_MESSAGE pRpcMessage,
9693     DWORD* pdwStubPhase);
9694 
9695 #endif  /* __IAMStreamControl_INTERFACE_DEFINED__ */
9696 
9697 #ifndef _IKsPropertySet_
9698 #define _IKsPropertySet_
9699 #define KSPROPERTY_SUPPORT_GET  1
9700 #define KSPROPERTY_SUPPORT_SET  2
9701 /*****************************************************************************
9702  * IKsPropertySet interface
9703  */
9704 #ifndef __IKsPropertySet_INTERFACE_DEFINED__
9705 #define __IKsPropertySet_INTERFACE_DEFINED__
9706 
9707 DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93);
9708 #if defined(__cplusplus) && !defined(CINTERFACE)
9709 MIDL_INTERFACE("31efac30-515c-11d0-a9aa-00aa0061be93")
9710 IKsPropertySet : public IUnknown
9711 {
9712     virtual HRESULT STDMETHODCALLTYPE Set(
9713         REFGUID guidPropSet,
9714         DWORD dwPropID,
9715         LPVOID pInstanceData,
9716         DWORD cbInstanceData,
9717         LPVOID pPropData,
9718         DWORD cbPropData) = 0;
9719 
9720     virtual HRESULT STDMETHODCALLTYPE Get(
9721         REFGUID guidPropSet,
9722         DWORD dwPropID,
9723         LPVOID pInstanceData,
9724         DWORD cbInstanceData,
9725         LPVOID pPropData,
9726         DWORD cbPropData,
9727         DWORD *pcbReturned) = 0;
9728 
9729     virtual HRESULT STDMETHODCALLTYPE QuerySupported(
9730         REFGUID guidPropSet,
9731         DWORD dwPropID,
9732         DWORD *pTypeSupport) = 0;
9733 
9734 };
9735 #ifdef __CRT_UUID_DECL
9736 __CRT_UUID_DECL(IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93)
9737 #endif
9738 #else
9739 typedef struct IKsPropertySetVtbl {
9740     BEGIN_INTERFACE
9741 
9742     /*** IUnknown methods ***/
9743     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9744         IKsPropertySet* This,
9745         REFIID riid,
9746         void **ppvObject);
9747 
9748     ULONG (STDMETHODCALLTYPE *AddRef)(
9749         IKsPropertySet* This);
9750 
9751     ULONG (STDMETHODCALLTYPE *Release)(
9752         IKsPropertySet* This);
9753 
9754     /*** IKsPropertySet methods ***/
9755     HRESULT (STDMETHODCALLTYPE *Set)(
9756         IKsPropertySet* This,
9757         REFGUID guidPropSet,
9758         DWORD dwPropID,
9759         LPVOID pInstanceData,
9760         DWORD cbInstanceData,
9761         LPVOID pPropData,
9762         DWORD cbPropData);
9763 
9764     HRESULT (STDMETHODCALLTYPE *Get)(
9765         IKsPropertySet* This,
9766         REFGUID guidPropSet,
9767         DWORD dwPropID,
9768         LPVOID pInstanceData,
9769         DWORD cbInstanceData,
9770         LPVOID pPropData,
9771         DWORD cbPropData,
9772         DWORD *pcbReturned);
9773 
9774     HRESULT (STDMETHODCALLTYPE *QuerySupported)(
9775         IKsPropertySet* This,
9776         REFGUID guidPropSet,
9777         DWORD dwPropID,
9778         DWORD *pTypeSupport);
9779 
9780     END_INTERFACE
9781 } IKsPropertySetVtbl;
9782 interface IKsPropertySet {
9783     CONST_VTBL IKsPropertySetVtbl* lpVtbl;
9784 };
9785 
9786 #ifdef COBJMACROS
9787 #ifndef WIDL_C_INLINE_WRAPPERS
9788 /*** IUnknown methods ***/
9789 #define IKsPropertySet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9790 #define IKsPropertySet_AddRef(This) (This)->lpVtbl->AddRef(This)
9791 #define IKsPropertySet_Release(This) (This)->lpVtbl->Release(This)
9792 /*** IKsPropertySet methods ***/
9793 #define IKsPropertySet_Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData) (This)->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData)
9794 #define IKsPropertySet_Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned) (This)->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned)
9795 #define IKsPropertySet_QuerySupported(This,guidPropSet,dwPropID,pTypeSupport) (This)->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport)
9796 #else
9797 /*** IUnknown methods ***/
9798 static FORCEINLINE HRESULT IKsPropertySet_QueryInterface(IKsPropertySet* This,REFIID riid,void **ppvObject) {
9799     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9800 }
9801 static FORCEINLINE ULONG IKsPropertySet_AddRef(IKsPropertySet* This) {
9802     return This->lpVtbl->AddRef(This);
9803 }
9804 static FORCEINLINE ULONG IKsPropertySet_Release(IKsPropertySet* This) {
9805     return This->lpVtbl->Release(This);
9806 }
9807 /*** IKsPropertySet methods ***/
9808 static FORCEINLINE HRESULT IKsPropertySet_Set(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData) {
9809     return This->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData);
9810 }
9811 static FORCEINLINE HRESULT IKsPropertySet_Get(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData,DWORD *pcbReturned) {
9812     return This->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned);
9813 }
9814 static FORCEINLINE HRESULT IKsPropertySet_QuerySupported(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport) {
9815     return This->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport);
9816 }
9817 #endif
9818 #endif
9819 
9820 #endif
9821 
9822 HRESULT STDMETHODCALLTYPE IKsPropertySet_Set_Proxy(
9823     IKsPropertySet* This,
9824     REFGUID guidPropSet,
9825     DWORD dwPropID,
9826     LPVOID pInstanceData,
9827     DWORD cbInstanceData,
9828     LPVOID pPropData,
9829     DWORD cbPropData);
9830 void __RPC_STUB IKsPropertySet_Set_Stub(
9831     IRpcStubBuffer* This,
9832     IRpcChannelBuffer* pRpcChannelBuffer,
9833     PRPC_MESSAGE pRpcMessage,
9834     DWORD* pdwStubPhase);
9835 HRESULT STDMETHODCALLTYPE IKsPropertySet_Get_Proxy(
9836     IKsPropertySet* This,
9837     REFGUID guidPropSet,
9838     DWORD dwPropID,
9839     LPVOID pInstanceData,
9840     DWORD cbInstanceData,
9841     LPVOID pPropData,
9842     DWORD cbPropData,
9843     DWORD *pcbReturned);
9844 void __RPC_STUB IKsPropertySet_Get_Stub(
9845     IRpcStubBuffer* This,
9846     IRpcChannelBuffer* pRpcChannelBuffer,
9847     PRPC_MESSAGE pRpcMessage,
9848     DWORD* pdwStubPhase);
9849 HRESULT STDMETHODCALLTYPE IKsPropertySet_QuerySupported_Proxy(
9850     IKsPropertySet* This,
9851     REFGUID guidPropSet,
9852     DWORD dwPropID,
9853     DWORD *pTypeSupport);
9854 void __RPC_STUB IKsPropertySet_QuerySupported_Stub(
9855     IRpcStubBuffer* This,
9856     IRpcChannelBuffer* pRpcChannelBuffer,
9857     PRPC_MESSAGE pRpcMessage,
9858     DWORD* pdwStubPhase);
9859 
9860 #endif  /* __IKsPropertySet_INTERFACE_DEFINED__ */
9861 
9862 #endif /* _IKsPropertySet_ */
9863 /*****************************************************************************
9864  * IMediaPropertyBag interface
9865  */
9866 #ifndef __IMediaPropertyBag_INTERFACE_DEFINED__
9867 #define __IMediaPropertyBag_INTERFACE_DEFINED__
9868 
9869 typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
9870 DEFINE_GUID(IID_IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86);
9871 #if defined(__cplusplus) && !defined(CINTERFACE)
9872 MIDL_INTERFACE("6025a880-c0d5-11d0-bd4e-00a0c911ce86")
9873 IMediaPropertyBag : public IPropertyBag
9874 {
9875     virtual HRESULT STDMETHODCALLTYPE EnumProperty(
9876         ULONG iProperty,
9877         VARIANT *pvarPropertyName,
9878         VARIANT *pvarPropertyValue) = 0;
9879 
9880 };
9881 #ifdef __CRT_UUID_DECL
9882 __CRT_UUID_DECL(IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86)
9883 #endif
9884 #else
9885 typedef struct IMediaPropertyBagVtbl {
9886     BEGIN_INTERFACE
9887 
9888     /*** IUnknown methods ***/
9889     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9890         IMediaPropertyBag* This,
9891         REFIID riid,
9892         void **ppvObject);
9893 
9894     ULONG (STDMETHODCALLTYPE *AddRef)(
9895         IMediaPropertyBag* This);
9896 
9897     ULONG (STDMETHODCALLTYPE *Release)(
9898         IMediaPropertyBag* This);
9899 
9900     /*** IPropertyBag methods ***/
9901     HRESULT (STDMETHODCALLTYPE *Read)(
9902         IMediaPropertyBag* This,
9903         LPCOLESTR pszPropName,
9904         VARIANT *pVar,
9905         IErrorLog *pErrorLog);
9906 
9907     HRESULT (STDMETHODCALLTYPE *Write)(
9908         IMediaPropertyBag* This,
9909         LPCOLESTR pszPropName,
9910         VARIANT *pVar);
9911 
9912     /*** IMediaPropertyBag methods ***/
9913     HRESULT (STDMETHODCALLTYPE *EnumProperty)(
9914         IMediaPropertyBag* This,
9915         ULONG iProperty,
9916         VARIANT *pvarPropertyName,
9917         VARIANT *pvarPropertyValue);
9918 
9919     END_INTERFACE
9920 } IMediaPropertyBagVtbl;
9921 interface IMediaPropertyBag {
9922     CONST_VTBL IMediaPropertyBagVtbl* lpVtbl;
9923 };
9924 
9925 #ifdef COBJMACROS
9926 #ifndef WIDL_C_INLINE_WRAPPERS
9927 /*** IUnknown methods ***/
9928 #define IMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9929 #define IMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
9930 #define IMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
9931 /*** IPropertyBag methods ***/
9932 #define IMediaPropertyBag_Read(This,pszPropName,pVar,pErrorLog) (This)->lpVtbl->Read(This,pszPropName,pVar,pErrorLog)
9933 #define IMediaPropertyBag_Write(This,pszPropName,pVar) (This)->lpVtbl->Write(This,pszPropName,pVar)
9934 /*** IMediaPropertyBag methods ***/
9935 #define IMediaPropertyBag_EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue) (This)->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue)
9936 #else
9937 /*** IUnknown methods ***/
9938 static FORCEINLINE HRESULT IMediaPropertyBag_QueryInterface(IMediaPropertyBag* This,REFIID riid,void **ppvObject) {
9939     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9940 }
9941 static FORCEINLINE ULONG IMediaPropertyBag_AddRef(IMediaPropertyBag* This) {
9942     return This->lpVtbl->AddRef(This);
9943 }
9944 static FORCEINLINE ULONG IMediaPropertyBag_Release(IMediaPropertyBag* This) {
9945     return This->lpVtbl->Release(This);
9946 }
9947 /*** IPropertyBag methods ***/
9948 static FORCEINLINE HRESULT IMediaPropertyBag_Read(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog) {
9949     return This->lpVtbl->Read(This,pszPropName,pVar,pErrorLog);
9950 }
9951 static FORCEINLINE HRESULT IMediaPropertyBag_Write(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar) {
9952     return This->lpVtbl->Write(This,pszPropName,pVar);
9953 }
9954 /*** IMediaPropertyBag methods ***/
9955 static FORCEINLINE HRESULT IMediaPropertyBag_EnumProperty(IMediaPropertyBag* This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue) {
9956     return This->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue);
9957 }
9958 #endif
9959 #endif
9960 
9961 #endif
9962 
9963 HRESULT STDMETHODCALLTYPE IMediaPropertyBag_EnumProperty_Proxy(
9964     IMediaPropertyBag* This,
9965     ULONG iProperty,
9966     VARIANT *pvarPropertyName,
9967     VARIANT *pvarPropertyValue);
9968 void __RPC_STUB IMediaPropertyBag_EnumProperty_Stub(
9969     IRpcStubBuffer* This,
9970     IRpcChannelBuffer* pRpcChannelBuffer,
9971     PRPC_MESSAGE pRpcMessage,
9972     DWORD* pdwStubPhase);
9973 
9974 #endif  /* __IMediaPropertyBag_INTERFACE_DEFINED__ */
9975 
9976 /*****************************************************************************
9977  * IPersistMediaPropertyBag interface
9978  */
9979 #ifndef __IPersistMediaPropertyBag_INTERFACE_DEFINED__
9980 #define __IPersistMediaPropertyBag_INTERFACE_DEFINED__
9981 
9982 typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
9983 DEFINE_GUID(IID_IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86);
9984 #if defined(__cplusplus) && !defined(CINTERFACE)
9985 MIDL_INTERFACE("5738e040-b67f-11d0-bd4d-00a0c911ce86")
9986 IPersistMediaPropertyBag : public IPersist
9987 {
9988     virtual HRESULT STDMETHODCALLTYPE InitNew(
9989         ) = 0;
9990 
9991     virtual HRESULT STDMETHODCALLTYPE Load(
9992         IMediaPropertyBag *pPropBag,
9993         IErrorLog *pErrorLog) = 0;
9994 
9995     virtual HRESULT STDMETHODCALLTYPE Save(
9996         IMediaPropertyBag *pPropBag,
9997         WINBOOL fClearDirty,
9998         WINBOOL fSaveAllProperties) = 0;
9999 
10000 };
10001 #ifdef __CRT_UUID_DECL
10002 __CRT_UUID_DECL(IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86)
10003 #endif
10004 #else
10005 typedef struct IPersistMediaPropertyBagVtbl {
10006     BEGIN_INTERFACE
10007 
10008     /*** IUnknown methods ***/
10009     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10010         IPersistMediaPropertyBag* This,
10011         REFIID riid,
10012         void **ppvObject);
10013 
10014     ULONG (STDMETHODCALLTYPE *AddRef)(
10015         IPersistMediaPropertyBag* This);
10016 
10017     ULONG (STDMETHODCALLTYPE *Release)(
10018         IPersistMediaPropertyBag* This);
10019 
10020     /*** IPersist methods ***/
10021     HRESULT (STDMETHODCALLTYPE *GetClassID)(
10022         IPersistMediaPropertyBag* This,
10023         CLSID *pClassID);
10024 
10025     /*** IPersistMediaPropertyBag methods ***/
10026     HRESULT (STDMETHODCALLTYPE *InitNew)(
10027         IPersistMediaPropertyBag* This);
10028 
10029     HRESULT (STDMETHODCALLTYPE *Load)(
10030         IPersistMediaPropertyBag* This,
10031         IMediaPropertyBag *pPropBag,
10032         IErrorLog *pErrorLog);
10033 
10034     HRESULT (STDMETHODCALLTYPE *Save)(
10035         IPersistMediaPropertyBag* This,
10036         IMediaPropertyBag *pPropBag,
10037         WINBOOL fClearDirty,
10038         WINBOOL fSaveAllProperties);
10039 
10040     END_INTERFACE
10041 } IPersistMediaPropertyBagVtbl;
10042 interface IPersistMediaPropertyBag {
10043     CONST_VTBL IPersistMediaPropertyBagVtbl* lpVtbl;
10044 };
10045 
10046 #ifdef COBJMACROS
10047 #ifndef WIDL_C_INLINE_WRAPPERS
10048 /*** IUnknown methods ***/
10049 #define IPersistMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10050 #define IPersistMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
10051 #define IPersistMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
10052 /*** IPersist methods ***/
10053 #define IPersistMediaPropertyBag_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
10054 /*** IPersistMediaPropertyBag methods ***/
10055 #define IPersistMediaPropertyBag_InitNew(This) (This)->lpVtbl->InitNew(This)
10056 #define IPersistMediaPropertyBag_Load(This,pPropBag,pErrorLog) (This)->lpVtbl->Load(This,pPropBag,pErrorLog)
10057 #define IPersistMediaPropertyBag_Save(This,pPropBag,fClearDirty,fSaveAllProperties) (This)->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties)
10058 #else
10059 /*** IUnknown methods ***/
10060 static FORCEINLINE HRESULT IPersistMediaPropertyBag_QueryInterface(IPersistMediaPropertyBag* This,REFIID riid,void **ppvObject) {
10061     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10062 }
10063 static FORCEINLINE ULONG IPersistMediaPropertyBag_AddRef(IPersistMediaPropertyBag* This) {
10064     return This->lpVtbl->AddRef(This);
10065 }
10066 static FORCEINLINE ULONG IPersistMediaPropertyBag_Release(IPersistMediaPropertyBag* This) {
10067     return This->lpVtbl->Release(This);
10068 }
10069 /*** IPersist methods ***/
10070 static FORCEINLINE HRESULT IPersistMediaPropertyBag_GetClassID(IPersistMediaPropertyBag* This,CLSID *pClassID) {
10071     return This->lpVtbl->GetClassID(This,pClassID);
10072 }
10073 /*** IPersistMediaPropertyBag methods ***/
10074 static FORCEINLINE HRESULT IPersistMediaPropertyBag_InitNew(IPersistMediaPropertyBag* This) {
10075     return This->lpVtbl->InitNew(This);
10076 }
10077 static FORCEINLINE HRESULT IPersistMediaPropertyBag_Load(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog) {
10078     return This->lpVtbl->Load(This,pPropBag,pErrorLog);
10079 }
10080 static FORCEINLINE HRESULT IPersistMediaPropertyBag_Save(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties) {
10081     return This->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties);
10082 }
10083 #endif
10084 #endif
10085 
10086 #endif
10087 
10088 HRESULT STDMETHODCALLTYPE IPersistMediaPropertyBag_InitNew_Proxy(
10089     IPersistMediaPropertyBag* This);
10090 void __RPC_STUB IPersistMediaPropertyBag_InitNew_Stub(
10091     IRpcStubBuffer* This,
10092     IRpcChannelBuffer* pRpcChannelBuffer,
10093     PRPC_MESSAGE pRpcMessage,
10094     DWORD* pdwStubPhase);
10095 HRESULT STDMETHODCALLTYPE IPersistMediaPropertyBag_Load_Proxy(
10096     IPersistMediaPropertyBag* This,
10097     IMediaPropertyBag *pPropBag,
10098     IErrorLog *pErrorLog);
10099 void __RPC_STUB IPersistMediaPropertyBag_Load_Stub(
10100     IRpcStubBuffer* This,
10101     IRpcChannelBuffer* pRpcChannelBuffer,
10102     PRPC_MESSAGE pRpcMessage,
10103     DWORD* pdwStubPhase);
10104 HRESULT STDMETHODCALLTYPE IPersistMediaPropertyBag_Save_Proxy(
10105     IPersistMediaPropertyBag* This,
10106     IMediaPropertyBag *pPropBag,
10107     WINBOOL fClearDirty,
10108     WINBOOL fSaveAllProperties);
10109 void __RPC_STUB IPersistMediaPropertyBag_Save_Stub(
10110     IRpcStubBuffer* This,
10111     IRpcChannelBuffer* pRpcChannelBuffer,
10112     PRPC_MESSAGE pRpcMessage,
10113     DWORD* pdwStubPhase);
10114 
10115 #endif  /* __IPersistMediaPropertyBag_INTERFACE_DEFINED__ */
10116 
10117 /*****************************************************************************
10118  * ISeekingPassThru interface
10119  */
10120 #ifndef __ISeekingPassThru_INTERFACE_DEFINED__
10121 #define __ISeekingPassThru_INTERFACE_DEFINED__
10122 
10123 DEFINE_GUID(IID_ISeekingPassThru, 0x36b73883, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
10124 #if defined(__cplusplus) && !defined(CINTERFACE)
10125 MIDL_INTERFACE("36b73883-c2c8-11cf-8b46-00805f6cef60")
10126 ISeekingPassThru : public IUnknown
10127 {
10128     virtual HRESULT STDMETHODCALLTYPE Init(
10129         WINBOOL bSupportRendering,
10130         IPin *pPin) = 0;
10131 
10132 };
10133 #ifdef __CRT_UUID_DECL
10134 __CRT_UUID_DECL(ISeekingPassThru, 0x36b73883, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
10135 #endif
10136 #else
10137 typedef struct ISeekingPassThruVtbl {
10138     BEGIN_INTERFACE
10139 
10140     /*** IUnknown methods ***/
10141     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10142         ISeekingPassThru* This,
10143         REFIID riid,
10144         void **ppvObject);
10145 
10146     ULONG (STDMETHODCALLTYPE *AddRef)(
10147         ISeekingPassThru* This);
10148 
10149     ULONG (STDMETHODCALLTYPE *Release)(
10150         ISeekingPassThru* This);
10151 
10152     /*** ISeekingPassThru methods ***/
10153     HRESULT (STDMETHODCALLTYPE *Init)(
10154         ISeekingPassThru* This,
10155         WINBOOL bSupportRendering,
10156         IPin *pPin);
10157 
10158     END_INTERFACE
10159 } ISeekingPassThruVtbl;
10160 interface ISeekingPassThru {
10161     CONST_VTBL ISeekingPassThruVtbl* lpVtbl;
10162 };
10163 
10164 #ifdef COBJMACROS
10165 #ifndef WIDL_C_INLINE_WRAPPERS
10166 /*** IUnknown methods ***/
10167 #define ISeekingPassThru_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10168 #define ISeekingPassThru_AddRef(This) (This)->lpVtbl->AddRef(This)
10169 #define ISeekingPassThru_Release(This) (This)->lpVtbl->Release(This)
10170 /*** ISeekingPassThru methods ***/
10171 #define ISeekingPassThru_Init(This,bSupportRendering,pPin) (This)->lpVtbl->Init(This,bSupportRendering,pPin)
10172 #else
10173 /*** IUnknown methods ***/
10174 static FORCEINLINE HRESULT ISeekingPassThru_QueryInterface(ISeekingPassThru* This,REFIID riid,void **ppvObject) {
10175     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10176 }
10177 static FORCEINLINE ULONG ISeekingPassThru_AddRef(ISeekingPassThru* This) {
10178     return This->lpVtbl->AddRef(This);
10179 }
10180 static FORCEINLINE ULONG ISeekingPassThru_Release(ISeekingPassThru* This) {
10181     return This->lpVtbl->Release(This);
10182 }
10183 /*** ISeekingPassThru methods ***/
10184 static FORCEINLINE HRESULT ISeekingPassThru_Init(ISeekingPassThru* This,WINBOOL bSupportRendering,IPin *pPin) {
10185     return This->lpVtbl->Init(This,bSupportRendering,pPin);
10186 }
10187 #endif
10188 #endif
10189 
10190 #endif
10191 
10192 HRESULT STDMETHODCALLTYPE ISeekingPassThru_Init_Proxy(
10193     ISeekingPassThru* This,
10194     WINBOOL bSupportRendering,
10195     IPin *pPin);
10196 void __RPC_STUB ISeekingPassThru_Init_Stub(
10197     IRpcStubBuffer* This,
10198     IRpcChannelBuffer* pRpcChannelBuffer,
10199     PRPC_MESSAGE pRpcMessage,
10200     DWORD* pdwStubPhase);
10201 
10202 #endif  /* __ISeekingPassThru_INTERFACE_DEFINED__ */
10203 
10204 enum _AM_FILTER_MISC_FLAGS {
10205     AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1,
10206     AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2
10207 };
10208 
10209 /*****************************************************************************
10210  * IAMFilterMiscFlags interface
10211  */
10212 #ifndef __IAMFilterMiscFlags_INTERFACE_DEFINED__
10213 #define __IAMFilterMiscFlags_INTERFACE_DEFINED__
10214 
10215 DEFINE_GUID(IID_IAMFilterMiscFlags, 0x2dd74950, 0xa890, 0x11d1, 0xab,0xe8, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
10216 #if defined(__cplusplus) && !defined(CINTERFACE)
10217 MIDL_INTERFACE("2dd74950-a890-11d1-abe8-00a0c905f375")
10218 IAMFilterMiscFlags : public IUnknown
10219 {
10220     virtual ULONG STDMETHODCALLTYPE GetMiscFlags(
10221         ) = 0;
10222 
10223 };
10224 #ifdef __CRT_UUID_DECL
10225 __CRT_UUID_DECL(IAMFilterMiscFlags, 0x2dd74950, 0xa890, 0x11d1, 0xab,0xe8, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
10226 #endif
10227 #else
10228 typedef struct IAMFilterMiscFlagsVtbl {
10229     BEGIN_INTERFACE
10230 
10231     /*** IUnknown methods ***/
10232     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10233         IAMFilterMiscFlags* This,
10234         REFIID riid,
10235         void **ppvObject);
10236 
10237     ULONG (STDMETHODCALLTYPE *AddRef)(
10238         IAMFilterMiscFlags* This);
10239 
10240     ULONG (STDMETHODCALLTYPE *Release)(
10241         IAMFilterMiscFlags* This);
10242 
10243     /*** IAMFilterMiscFlags methods ***/
10244     ULONG (STDMETHODCALLTYPE *GetMiscFlags)(
10245         IAMFilterMiscFlags* This);
10246 
10247     END_INTERFACE
10248 } IAMFilterMiscFlagsVtbl;
10249 interface IAMFilterMiscFlags {
10250     CONST_VTBL IAMFilterMiscFlagsVtbl* lpVtbl;
10251 };
10252 
10253 #ifdef COBJMACROS
10254 #ifndef WIDL_C_INLINE_WRAPPERS
10255 /*** IUnknown methods ***/
10256 #define IAMFilterMiscFlags_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10257 #define IAMFilterMiscFlags_AddRef(This) (This)->lpVtbl->AddRef(This)
10258 #define IAMFilterMiscFlags_Release(This) (This)->lpVtbl->Release(This)
10259 /*** IAMFilterMiscFlags methods ***/
10260 #define IAMFilterMiscFlags_GetMiscFlags(This) (This)->lpVtbl->GetMiscFlags(This)
10261 #else
10262 /*** IUnknown methods ***/
10263 static FORCEINLINE HRESULT IAMFilterMiscFlags_QueryInterface(IAMFilterMiscFlags* This,REFIID riid,void **ppvObject) {
10264     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10265 }
10266 static FORCEINLINE ULONG IAMFilterMiscFlags_AddRef(IAMFilterMiscFlags* This) {
10267     return This->lpVtbl->AddRef(This);
10268 }
10269 static FORCEINLINE ULONG IAMFilterMiscFlags_Release(IAMFilterMiscFlags* This) {
10270     return This->lpVtbl->Release(This);
10271 }
10272 /*** IAMFilterMiscFlags methods ***/
10273 static FORCEINLINE ULONG IAMFilterMiscFlags_GetMiscFlags(IAMFilterMiscFlags* This) {
10274     return This->lpVtbl->GetMiscFlags(This);
10275 }
10276 #endif
10277 #endif
10278 
10279 #endif
10280 
10281 ULONG STDMETHODCALLTYPE IAMFilterMiscFlags_GetMiscFlags_Proxy(
10282     IAMFilterMiscFlags* This);
10283 void __RPC_STUB IAMFilterMiscFlags_GetMiscFlags_Stub(
10284     IRpcStubBuffer* This,
10285     IRpcChannelBuffer* pRpcChannelBuffer,
10286     PRPC_MESSAGE pRpcMessage,
10287     DWORD* pdwStubPhase);
10288 
10289 #endif  /* __IAMFilterMiscFlags_INTERFACE_DEFINED__ */
10290 
10291 /*****************************************************************************
10292  * IAMGraphBuilderCallback interface
10293  */
10294 #ifndef __IAMGraphBuilderCallback_INTERFACE_DEFINED__
10295 #define __IAMGraphBuilderCallback_INTERFACE_DEFINED__
10296 
10297 DEFINE_GUID(IID_IAMGraphBuilderCallback, 0x4995f511, 0x9ddb, 0x4f12, 0xbd,0x3b, 0xf0,0x46,0x11,0x80,0x7b,0x79);
10298 #if defined(__cplusplus) && !defined(CINTERFACE)
10299 MIDL_INTERFACE("4995f511-9ddb-4f12-bd3b-f04611807b79")
10300 IAMGraphBuilderCallback : public IUnknown
10301 {
10302     virtual HRESULT STDMETHODCALLTYPE SelectedFilter(
10303         IMoniker *pMon) = 0;
10304 
10305     virtual HRESULT STDMETHODCALLTYPE CreatedFilter(
10306         IBaseFilter *pFil) = 0;
10307 
10308 };
10309 #ifdef __CRT_UUID_DECL
10310 __CRT_UUID_DECL(IAMGraphBuilderCallback, 0x4995f511, 0x9ddb, 0x4f12, 0xbd,0x3b, 0xf0,0x46,0x11,0x80,0x7b,0x79)
10311 #endif
10312 #else
10313 typedef struct IAMGraphBuilderCallbackVtbl {
10314     BEGIN_INTERFACE
10315 
10316     /*** IUnknown methods ***/
10317     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10318         IAMGraphBuilderCallback* This,
10319         REFIID riid,
10320         void **ppvObject);
10321 
10322     ULONG (STDMETHODCALLTYPE *AddRef)(
10323         IAMGraphBuilderCallback* This);
10324 
10325     ULONG (STDMETHODCALLTYPE *Release)(
10326         IAMGraphBuilderCallback* This);
10327 
10328     /*** IAMGraphBuilderCallback methods ***/
10329     HRESULT (STDMETHODCALLTYPE *SelectedFilter)(
10330         IAMGraphBuilderCallback* This,
10331         IMoniker *pMon);
10332 
10333     HRESULT (STDMETHODCALLTYPE *CreatedFilter)(
10334         IAMGraphBuilderCallback* This,
10335         IBaseFilter *pFil);
10336 
10337     END_INTERFACE
10338 } IAMGraphBuilderCallbackVtbl;
10339 interface IAMGraphBuilderCallback {
10340     CONST_VTBL IAMGraphBuilderCallbackVtbl* lpVtbl;
10341 };
10342 
10343 #ifdef COBJMACROS
10344 #ifndef WIDL_C_INLINE_WRAPPERS
10345 /*** IUnknown methods ***/
10346 #define IAMGraphBuilderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10347 #define IAMGraphBuilderCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
10348 #define IAMGraphBuilderCallback_Release(This) (This)->lpVtbl->Release(This)
10349 /*** IAMGraphBuilderCallback methods ***/
10350 #define IAMGraphBuilderCallback_SelectedFilter(This,pMon) (This)->lpVtbl->SelectedFilter(This,pMon)
10351 #define IAMGraphBuilderCallback_CreatedFilter(This,pFil) (This)->lpVtbl->CreatedFilter(This,pFil)
10352 #else
10353 /*** IUnknown methods ***/
10354 static FORCEINLINE HRESULT IAMGraphBuilderCallback_QueryInterface(IAMGraphBuilderCallback* This,REFIID riid,void **ppvObject) {
10355     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10356 }
10357 static FORCEINLINE ULONG IAMGraphBuilderCallback_AddRef(IAMGraphBuilderCallback* This) {
10358     return This->lpVtbl->AddRef(This);
10359 }
10360 static FORCEINLINE ULONG IAMGraphBuilderCallback_Release(IAMGraphBuilderCallback* This) {
10361     return This->lpVtbl->Release(This);
10362 }
10363 /*** IAMGraphBuilderCallback methods ***/
10364 static FORCEINLINE HRESULT IAMGraphBuilderCallback_SelectedFilter(IAMGraphBuilderCallback* This,IMoniker *pMon) {
10365     return This->lpVtbl->SelectedFilter(This,pMon);
10366 }
10367 static FORCEINLINE HRESULT IAMGraphBuilderCallback_CreatedFilter(IAMGraphBuilderCallback* This,IBaseFilter *pFil) {
10368     return This->lpVtbl->CreatedFilter(This,pFil);
10369 }
10370 #endif
10371 #endif
10372 
10373 #endif
10374 
10375 HRESULT STDMETHODCALLTYPE IAMGraphBuilderCallback_SelectedFilter_Proxy(
10376     IAMGraphBuilderCallback* This,
10377     IMoniker *pMon);
10378 void __RPC_STUB IAMGraphBuilderCallback_SelectedFilter_Stub(
10379     IRpcStubBuffer* This,
10380     IRpcChannelBuffer* pRpcChannelBuffer,
10381     PRPC_MESSAGE pRpcMessage,
10382     DWORD* pdwStubPhase);
10383 HRESULT STDMETHODCALLTYPE IAMGraphBuilderCallback_CreatedFilter_Proxy(
10384     IAMGraphBuilderCallback* This,
10385     IBaseFilter *pFil);
10386 void __RPC_STUB IAMGraphBuilderCallback_CreatedFilter_Stub(
10387     IRpcStubBuffer* This,
10388     IRpcChannelBuffer* pRpcChannelBuffer,
10389     PRPC_MESSAGE pRpcMessage,
10390     DWORD* pdwStubPhase);
10391 
10392 #endif  /* __IAMGraphBuilderCallback_INTERFACE_DEFINED__ */
10393 
10394 /*****************************************************************************
10395  * IAMVfwCaptureDialogs interface
10396  */
10397 #ifndef __IAMVfwCaptureDialogs_INTERFACE_DEFINED__
10398 #define __IAMVfwCaptureDialogs_INTERFACE_DEFINED__
10399 
10400 DEFINE_GUID(IID_IAMVfwCaptureDialogs, 0xd8d715a0, 0x6e5e, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
10401 #if defined(__cplusplus) && !defined(CINTERFACE)
10402 MIDL_INTERFACE("d8d715a0-6e5e-11d0-b3f0-00aa003761c5")
10403 IAMVfwCaptureDialogs : public IUnknown
10404 {
10405     virtual HRESULT STDMETHODCALLTYPE HasDialog(
10406         int dialog) = 0;
10407 
10408     virtual HRESULT STDMETHODCALLTYPE ShowDialog(
10409         int dialog,
10410         HWND hwnd) = 0;
10411 
10412     virtual HRESULT STDMETHODCALLTYPE SendDriverMessage(
10413         int dialog,
10414         int msg,
10415         LONG data1,
10416         LONG data2) = 0;
10417 
10418 };
10419 #ifdef __CRT_UUID_DECL
10420 __CRT_UUID_DECL(IAMVfwCaptureDialogs, 0xd8d715a0, 0x6e5e, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
10421 #endif
10422 #else
10423 typedef struct IAMVfwCaptureDialogsVtbl {
10424     BEGIN_INTERFACE
10425 
10426     /*** IUnknown methods ***/
10427     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10428         IAMVfwCaptureDialogs* This,
10429         REFIID riid,
10430         void **ppvObject);
10431 
10432     ULONG (STDMETHODCALLTYPE *AddRef)(
10433         IAMVfwCaptureDialogs* This);
10434 
10435     ULONG (STDMETHODCALLTYPE *Release)(
10436         IAMVfwCaptureDialogs* This);
10437 
10438     /*** IAMVfwCaptureDialogs methods ***/
10439     HRESULT (STDMETHODCALLTYPE *HasDialog)(
10440         IAMVfwCaptureDialogs* This,
10441         int dialog);
10442 
10443     HRESULT (STDMETHODCALLTYPE *ShowDialog)(
10444         IAMVfwCaptureDialogs* This,
10445         int dialog,
10446         HWND hwnd);
10447 
10448     HRESULT (STDMETHODCALLTYPE *SendDriverMessage)(
10449         IAMVfwCaptureDialogs* This,
10450         int dialog,
10451         int msg,
10452         LONG data1,
10453         LONG data2);
10454 
10455     END_INTERFACE
10456 } IAMVfwCaptureDialogsVtbl;
10457 interface IAMVfwCaptureDialogs {
10458     CONST_VTBL IAMVfwCaptureDialogsVtbl* lpVtbl;
10459 };
10460 
10461 #ifdef COBJMACROS
10462 #ifndef WIDL_C_INLINE_WRAPPERS
10463 /*** IUnknown methods ***/
10464 #define IAMVfwCaptureDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10465 #define IAMVfwCaptureDialogs_AddRef(This) (This)->lpVtbl->AddRef(This)
10466 #define IAMVfwCaptureDialogs_Release(This) (This)->lpVtbl->Release(This)
10467 /*** IAMVfwCaptureDialogs methods ***/
10468 #define IAMVfwCaptureDialogs_HasDialog(This,dialog) (This)->lpVtbl->HasDialog(This,dialog)
10469 #define IAMVfwCaptureDialogs_ShowDialog(This,dialog,hwnd) (This)->lpVtbl->ShowDialog(This,dialog,hwnd)
10470 #define IAMVfwCaptureDialogs_SendDriverMessage(This,dialog,msg,data1,data2) (This)->lpVtbl->SendDriverMessage(This,dialog,msg,data1,data2)
10471 #else
10472 /*** IUnknown methods ***/
10473 static FORCEINLINE HRESULT IAMVfwCaptureDialogs_QueryInterface(IAMVfwCaptureDialogs* This,REFIID riid,void **ppvObject) {
10474     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10475 }
10476 static FORCEINLINE ULONG IAMVfwCaptureDialogs_AddRef(IAMVfwCaptureDialogs* This) {
10477     return This->lpVtbl->AddRef(This);
10478 }
10479 static FORCEINLINE ULONG IAMVfwCaptureDialogs_Release(IAMVfwCaptureDialogs* This) {
10480     return This->lpVtbl->Release(This);
10481 }
10482 /*** IAMVfwCaptureDialogs methods ***/
10483 static FORCEINLINE HRESULT IAMVfwCaptureDialogs_HasDialog(IAMVfwCaptureDialogs* This,int dialog) {
10484     return This->lpVtbl->HasDialog(This,dialog);
10485 }
10486 static FORCEINLINE HRESULT IAMVfwCaptureDialogs_ShowDialog(IAMVfwCaptureDialogs* This,int dialog,HWND hwnd) {
10487     return This->lpVtbl->ShowDialog(This,dialog,hwnd);
10488 }
10489 static FORCEINLINE HRESULT IAMVfwCaptureDialogs_SendDriverMessage(IAMVfwCaptureDialogs* This,int dialog,int msg,LONG data1,LONG data2) {
10490     return This->lpVtbl->SendDriverMessage(This,dialog,msg,data1,data2);
10491 }
10492 #endif
10493 #endif
10494 
10495 #endif
10496 
10497 HRESULT STDMETHODCALLTYPE IAMVfwCaptureDialogs_HasDialog_Proxy(
10498     IAMVfwCaptureDialogs* This,
10499     int dialog);
10500 void __RPC_STUB IAMVfwCaptureDialogs_HasDialog_Stub(
10501     IRpcStubBuffer* This,
10502     IRpcChannelBuffer* pRpcChannelBuffer,
10503     PRPC_MESSAGE pRpcMessage,
10504     DWORD* pdwStubPhase);
10505 HRESULT STDMETHODCALLTYPE IAMVfwCaptureDialogs_ShowDialog_Proxy(
10506     IAMVfwCaptureDialogs* This,
10507     int dialog,
10508     HWND hwnd);
10509 void __RPC_STUB IAMVfwCaptureDialogs_ShowDialog_Stub(
10510     IRpcStubBuffer* This,
10511     IRpcChannelBuffer* pRpcChannelBuffer,
10512     PRPC_MESSAGE pRpcMessage,
10513     DWORD* pdwStubPhase);
10514 HRESULT STDMETHODCALLTYPE IAMVfwCaptureDialogs_SendDriverMessage_Proxy(
10515     IAMVfwCaptureDialogs* This,
10516     int dialog,
10517     int msg,
10518     LONG data1,
10519     LONG data2);
10520 void __RPC_STUB IAMVfwCaptureDialogs_SendDriverMessage_Stub(
10521     IRpcStubBuffer* This,
10522     IRpcChannelBuffer* pRpcChannelBuffer,
10523     PRPC_MESSAGE pRpcMessage,
10524     DWORD* pdwStubPhase);
10525 
10526 #endif  /* __IAMVfwCaptureDialogs_INTERFACE_DEFINED__ */
10527 
10528 #if (_WIN32_WINNT >= 0x0601)
10529 /*****************************************************************************
10530  * IAMAsyncReaderTimestampScaling interface
10531  */
10532 #ifndef __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__
10533 #define __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__
10534 
10535 DEFINE_GUID(IID_IAMAsyncReaderTimestampScaling, 0xcf7b26fc, 0x9a00, 0x485b, 0x81,0x47, 0x3e,0x78,0x9d,0x5e,0x8f,0x67);
10536 #if defined(__cplusplus) && !defined(CINTERFACE)
10537 MIDL_INTERFACE("cf7b26fc-9a00-485b-8147-3e789d5e8f67")
10538 IAMAsyncReaderTimestampScaling : public IUnknown
10539 {
10540     virtual HRESULT STDMETHODCALLTYPE GetTimestampMode(
10541         WINBOOL *pfRaw) = 0;
10542 
10543     virtual HRESULT STDMETHODCALLTYPE SetTimestampMode(
10544         WINBOOL fRaw) = 0;
10545 
10546 };
10547 #ifdef __CRT_UUID_DECL
10548 __CRT_UUID_DECL(IAMAsyncReaderTimestampScaling, 0xcf7b26fc, 0x9a00, 0x485b, 0x81,0x47, 0x3e,0x78,0x9d,0x5e,0x8f,0x67)
10549 #endif
10550 #else
10551 typedef struct IAMAsyncReaderTimestampScalingVtbl {
10552     BEGIN_INTERFACE
10553 
10554     /*** IUnknown methods ***/
10555     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10556         IAMAsyncReaderTimestampScaling* This,
10557         REFIID riid,
10558         void **ppvObject);
10559 
10560     ULONG (STDMETHODCALLTYPE *AddRef)(
10561         IAMAsyncReaderTimestampScaling* This);
10562 
10563     ULONG (STDMETHODCALLTYPE *Release)(
10564         IAMAsyncReaderTimestampScaling* This);
10565 
10566     /*** IAMAsyncReaderTimestampScaling methods ***/
10567     HRESULT (STDMETHODCALLTYPE *GetTimestampMode)(
10568         IAMAsyncReaderTimestampScaling* This,
10569         WINBOOL *pfRaw);
10570 
10571     HRESULT (STDMETHODCALLTYPE *SetTimestampMode)(
10572         IAMAsyncReaderTimestampScaling* This,
10573         WINBOOL fRaw);
10574 
10575     END_INTERFACE
10576 } IAMAsyncReaderTimestampScalingVtbl;
10577 interface IAMAsyncReaderTimestampScaling {
10578     CONST_VTBL IAMAsyncReaderTimestampScalingVtbl* lpVtbl;
10579 };
10580 
10581 #ifdef COBJMACROS
10582 #ifndef WIDL_C_INLINE_WRAPPERS
10583 /*** IUnknown methods ***/
10584 #define IAMAsyncReaderTimestampScaling_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10585 #define IAMAsyncReaderTimestampScaling_AddRef(This) (This)->lpVtbl->AddRef(This)
10586 #define IAMAsyncReaderTimestampScaling_Release(This) (This)->lpVtbl->Release(This)
10587 /*** IAMAsyncReaderTimestampScaling methods ***/
10588 #define IAMAsyncReaderTimestampScaling_GetTimestampMode(This,pfRaw) (This)->lpVtbl->GetTimestampMode(This,pfRaw)
10589 #define IAMAsyncReaderTimestampScaling_SetTimestampMode(This,fRaw) (This)->lpVtbl->SetTimestampMode(This,fRaw)
10590 #else
10591 /*** IUnknown methods ***/
10592 static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_QueryInterface(IAMAsyncReaderTimestampScaling* This,REFIID riid,void **ppvObject) {
10593     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10594 }
10595 static FORCEINLINE ULONG IAMAsyncReaderTimestampScaling_AddRef(IAMAsyncReaderTimestampScaling* This) {
10596     return This->lpVtbl->AddRef(This);
10597 }
10598 static FORCEINLINE ULONG IAMAsyncReaderTimestampScaling_Release(IAMAsyncReaderTimestampScaling* This) {
10599     return This->lpVtbl->Release(This);
10600 }
10601 /*** IAMAsyncReaderTimestampScaling methods ***/
10602 static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_GetTimestampMode(IAMAsyncReaderTimestampScaling* This,WINBOOL *pfRaw) {
10603     return This->lpVtbl->GetTimestampMode(This,pfRaw);
10604 }
10605 static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_SetTimestampMode(IAMAsyncReaderTimestampScaling* This,WINBOOL fRaw) {
10606     return This->lpVtbl->SetTimestampMode(This,fRaw);
10607 }
10608 #endif
10609 #endif
10610 
10611 #endif
10612 
10613 HRESULT STDMETHODCALLTYPE IAMAsyncReaderTimestampScaling_GetTimestampMode_Proxy(
10614     IAMAsyncReaderTimestampScaling* This,
10615     WINBOOL *pfRaw);
10616 void __RPC_STUB IAMAsyncReaderTimestampScaling_GetTimestampMode_Stub(
10617     IRpcStubBuffer* This,
10618     IRpcChannelBuffer* pRpcChannelBuffer,
10619     PRPC_MESSAGE pRpcMessage,
10620     DWORD* pdwStubPhase);
10621 HRESULT STDMETHODCALLTYPE IAMAsyncReaderTimestampScaling_SetTimestampMode_Proxy(
10622     IAMAsyncReaderTimestampScaling* This,
10623     WINBOOL fRaw);
10624 void __RPC_STUB IAMAsyncReaderTimestampScaling_SetTimestampMode_Stub(
10625     IRpcStubBuffer* This,
10626     IRpcChannelBuffer* pRpcChannelBuffer,
10627     PRPC_MESSAGE pRpcMessage,
10628     DWORD* pdwStubPhase);
10629 
10630 #endif  /* __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__ */
10631 
10632 /*****************************************************************************
10633  * IAMPluginControl interface
10634  */
10635 #ifndef __IAMPluginControl_INTERFACE_DEFINED__
10636 #define __IAMPluginControl_INTERFACE_DEFINED__
10637 
10638 DEFINE_GUID(IID_IAMPluginControl, 0x0e26a181, 0xf40c, 0x4635, 0x87,0x86, 0x97,0x62,0x84,0xb5,0x29,0x81);
10639 #if defined(__cplusplus) && !defined(CINTERFACE)
10640 MIDL_INTERFACE("0e26a181-f40c-4635-8786-976284b52981")
10641 IAMPluginControl : public IUnknown
10642 {
10643     virtual HRESULT STDMETHODCALLTYPE GetPreferredClsid(
10644         REFGUID subType,
10645         CLSID *clsid) = 0;
10646 
10647     virtual HRESULT STDMETHODCALLTYPE GetPreferredClsidByIndex(
10648         DWORD index,
10649         GUID *subType,
10650         CLSID *clsid) = 0;
10651 
10652     virtual HRESULT STDMETHODCALLTYPE SetPreferredClsid(
10653         REFGUID subType,
10654         const CLSID *clsid) = 0;
10655 
10656     virtual HRESULT STDMETHODCALLTYPE IsDisabled(
10657         REFCLSID clsid) = 0;
10658 
10659     virtual HRESULT STDMETHODCALLTYPE GetDisabledByIndex(
10660         DWORD index,
10661         CLSID *clsid) = 0;
10662 
10663     virtual HRESULT STDMETHODCALLTYPE SetDisabled(
10664         REFCLSID clsid,
10665         WINBOOL disabled) = 0;
10666 
10667     virtual HRESULT STDMETHODCALLTYPE IsLegacyDisabled(
10668         LPCWSTR dllName) = 0;
10669 
10670 };
10671 #ifdef __CRT_UUID_DECL
10672 __CRT_UUID_DECL(IAMPluginControl, 0x0e26a181, 0xf40c, 0x4635, 0x87,0x86, 0x97,0x62,0x84,0xb5,0x29,0x81)
10673 #endif
10674 #else
10675 typedef struct IAMPluginControlVtbl {
10676     BEGIN_INTERFACE
10677 
10678     /*** IUnknown methods ***/
10679     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10680         IAMPluginControl* This,
10681         REFIID riid,
10682         void **ppvObject);
10683 
10684     ULONG (STDMETHODCALLTYPE *AddRef)(
10685         IAMPluginControl* This);
10686 
10687     ULONG (STDMETHODCALLTYPE *Release)(
10688         IAMPluginControl* This);
10689 
10690     /*** IAMPluginControl methods ***/
10691     HRESULT (STDMETHODCALLTYPE *GetPreferredClsid)(
10692         IAMPluginControl* This,
10693         REFGUID subType,
10694         CLSID *clsid);
10695 
10696     HRESULT (STDMETHODCALLTYPE *GetPreferredClsidByIndex)(
10697         IAMPluginControl* This,
10698         DWORD index,
10699         GUID *subType,
10700         CLSID *clsid);
10701 
10702     HRESULT (STDMETHODCALLTYPE *SetPreferredClsid)(
10703         IAMPluginControl* This,
10704         REFGUID subType,
10705         const CLSID *clsid);
10706 
10707     HRESULT (STDMETHODCALLTYPE *IsDisabled)(
10708         IAMPluginControl* This,
10709         REFCLSID clsid);
10710 
10711     HRESULT (STDMETHODCALLTYPE *GetDisabledByIndex)(
10712         IAMPluginControl* This,
10713         DWORD index,
10714         CLSID *clsid);
10715 
10716     HRESULT (STDMETHODCALLTYPE *SetDisabled)(
10717         IAMPluginControl* This,
10718         REFCLSID clsid,
10719         WINBOOL disabled);
10720 
10721     HRESULT (STDMETHODCALLTYPE *IsLegacyDisabled)(
10722         IAMPluginControl* This,
10723         LPCWSTR dllName);
10724 
10725     END_INTERFACE
10726 } IAMPluginControlVtbl;
10727 interface IAMPluginControl {
10728     CONST_VTBL IAMPluginControlVtbl* lpVtbl;
10729 };
10730 
10731 #ifdef COBJMACROS
10732 #ifndef WIDL_C_INLINE_WRAPPERS
10733 /*** IUnknown methods ***/
10734 #define IAMPluginControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10735 #define IAMPluginControl_AddRef(This) (This)->lpVtbl->AddRef(This)
10736 #define IAMPluginControl_Release(This) (This)->lpVtbl->Release(This)
10737 /*** IAMPluginControl methods ***/
10738 #define IAMPluginControl_GetPreferredClsid(This,subType,clsid) (This)->lpVtbl->GetPreferredClsid(This,subType,clsid)
10739 #define IAMPluginControl_GetPreferredClsidByIndex(This,index,subType,clsid) (This)->lpVtbl->GetPreferredClsidByIndex(This,index,subType,clsid)
10740 #define IAMPluginControl_SetPreferredClsid(This,subType,clsid) (This)->lpVtbl->SetPreferredClsid(This,subType,clsid)
10741 #define IAMPluginControl_IsDisabled(This,clsid) (This)->lpVtbl->IsDisabled(This,clsid)
10742 #define IAMPluginControl_GetDisabledByIndex(This,index,clsid) (This)->lpVtbl->GetDisabledByIndex(This,index,clsid)
10743 #define IAMPluginControl_SetDisabled(This,clsid,disabled) (This)->lpVtbl->SetDisabled(This,clsid,disabled)
10744 #define IAMPluginControl_IsLegacyDisabled(This,dllName) (This)->lpVtbl->IsLegacyDisabled(This,dllName)
10745 #else
10746 /*** IUnknown methods ***/
10747 static FORCEINLINE HRESULT IAMPluginControl_QueryInterface(IAMPluginControl* This,REFIID riid,void **ppvObject) {
10748     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10749 }
10750 static FORCEINLINE ULONG IAMPluginControl_AddRef(IAMPluginControl* This) {
10751     return This->lpVtbl->AddRef(This);
10752 }
10753 static FORCEINLINE ULONG IAMPluginControl_Release(IAMPluginControl* This) {
10754     return This->lpVtbl->Release(This);
10755 }
10756 /*** IAMPluginControl methods ***/
10757 static FORCEINLINE HRESULT IAMPluginControl_GetPreferredClsid(IAMPluginControl* This,REFGUID subType,CLSID *clsid) {
10758     return This->lpVtbl->GetPreferredClsid(This,subType,clsid);
10759 }
10760 static FORCEINLINE HRESULT IAMPluginControl_GetPreferredClsidByIndex(IAMPluginControl* This,DWORD index,GUID *subType,CLSID *clsid) {
10761     return This->lpVtbl->GetPreferredClsidByIndex(This,index,subType,clsid);
10762 }
10763 static FORCEINLINE HRESULT IAMPluginControl_SetPreferredClsid(IAMPluginControl* This,REFGUID subType,const CLSID *clsid) {
10764     return This->lpVtbl->SetPreferredClsid(This,subType,clsid);
10765 }
10766 static FORCEINLINE HRESULT IAMPluginControl_IsDisabled(IAMPluginControl* This,REFCLSID clsid) {
10767     return This->lpVtbl->IsDisabled(This,clsid);
10768 }
10769 static FORCEINLINE HRESULT IAMPluginControl_GetDisabledByIndex(IAMPluginControl* This,DWORD index,CLSID *clsid) {
10770     return This->lpVtbl->GetDisabledByIndex(This,index,clsid);
10771 }
10772 static FORCEINLINE HRESULT IAMPluginControl_SetDisabled(IAMPluginControl* This,REFCLSID clsid,WINBOOL disabled) {
10773     return This->lpVtbl->SetDisabled(This,clsid,disabled);
10774 }
10775 static FORCEINLINE HRESULT IAMPluginControl_IsLegacyDisabled(IAMPluginControl* This,LPCWSTR dllName) {
10776     return This->lpVtbl->IsLegacyDisabled(This,dllName);
10777 }
10778 #endif
10779 #endif
10780 
10781 #endif
10782 
10783 HRESULT STDMETHODCALLTYPE IAMPluginControl_GetPreferredClsid_Proxy(
10784     IAMPluginControl* This,
10785     REFGUID subType,
10786     CLSID *clsid);
10787 void __RPC_STUB IAMPluginControl_GetPreferredClsid_Stub(
10788     IRpcStubBuffer* This,
10789     IRpcChannelBuffer* pRpcChannelBuffer,
10790     PRPC_MESSAGE pRpcMessage,
10791     DWORD* pdwStubPhase);
10792 HRESULT STDMETHODCALLTYPE IAMPluginControl_GetPreferredClsidByIndex_Proxy(
10793     IAMPluginControl* This,
10794     DWORD index,
10795     GUID *subType,
10796     CLSID *clsid);
10797 void __RPC_STUB IAMPluginControl_GetPreferredClsidByIndex_Stub(
10798     IRpcStubBuffer* This,
10799     IRpcChannelBuffer* pRpcChannelBuffer,
10800     PRPC_MESSAGE pRpcMessage,
10801     DWORD* pdwStubPhase);
10802 HRESULT STDMETHODCALLTYPE IAMPluginControl_SetPreferredClsid_Proxy(
10803     IAMPluginControl* This,
10804     REFGUID subType,
10805     const CLSID *clsid);
10806 void __RPC_STUB IAMPluginControl_SetPreferredClsid_Stub(
10807     IRpcStubBuffer* This,
10808     IRpcChannelBuffer* pRpcChannelBuffer,
10809     PRPC_MESSAGE pRpcMessage,
10810     DWORD* pdwStubPhase);
10811 HRESULT STDMETHODCALLTYPE IAMPluginControl_IsDisabled_Proxy(
10812     IAMPluginControl* This,
10813     REFCLSID clsid);
10814 void __RPC_STUB IAMPluginControl_IsDisabled_Stub(
10815     IRpcStubBuffer* This,
10816     IRpcChannelBuffer* pRpcChannelBuffer,
10817     PRPC_MESSAGE pRpcMessage,
10818     DWORD* pdwStubPhase);
10819 HRESULT STDMETHODCALLTYPE IAMPluginControl_GetDisabledByIndex_Proxy(
10820     IAMPluginControl* This,
10821     DWORD index,
10822     CLSID *clsid);
10823 void __RPC_STUB IAMPluginControl_GetDisabledByIndex_Stub(
10824     IRpcStubBuffer* This,
10825     IRpcChannelBuffer* pRpcChannelBuffer,
10826     PRPC_MESSAGE pRpcMessage,
10827     DWORD* pdwStubPhase);
10828 HRESULT STDMETHODCALLTYPE IAMPluginControl_SetDisabled_Proxy(
10829     IAMPluginControl* This,
10830     REFCLSID clsid,
10831     WINBOOL disabled);
10832 void __RPC_STUB IAMPluginControl_SetDisabled_Stub(
10833     IRpcStubBuffer* This,
10834     IRpcChannelBuffer* pRpcChannelBuffer,
10835     PRPC_MESSAGE pRpcMessage,
10836     DWORD* pdwStubPhase);
10837 HRESULT STDMETHODCALLTYPE IAMPluginControl_IsLegacyDisabled_Proxy(
10838     IAMPluginControl* This,
10839     LPCWSTR dllName);
10840 void __RPC_STUB IAMPluginControl_IsLegacyDisabled_Stub(
10841     IRpcStubBuffer* This,
10842     IRpcChannelBuffer* pRpcChannelBuffer,
10843     PRPC_MESSAGE pRpcMessage,
10844     DWORD* pdwStubPhase);
10845 
10846 #endif  /* __IAMPluginControl_INTERFACE_DEFINED__ */
10847 
10848 #endif /*(_WIN32_WINNT >= 0x0601)*/
10849 #ifndef __IReferenceClock2_FWD_DEFINED__
10850 #define __IReferenceClock2_FWD_DEFINED__
10851 typedef struct IReferenceClock2 IReferenceClock2;
10852 #endif
10853 #ifndef __IDistributorNotify_FWD_DEFINED__
10854 #define __IDistributorNotify_FWD_DEFINED__
10855 typedef struct IDistributorNotify IDistributorNotify;
10856 #endif
10857 
10858 #ifndef __IAMVideoCompression_FWD_DEFINED__
10859 #define __IAMVideoCompression_FWD_DEFINED__
10860 typedef struct IAMVideoCompression IAMVideoCompression;
10861 #endif
10862 
10863 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
10864 #define __IAMVfwCompressDialogs_FWD_DEFINED__
10865 typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs;
10866 #endif
10867 
10868 #ifndef __IAMDroppedFrames_FWD_DEFINED__
10869 #define __IAMDroppedFrames_FWD_DEFINED__
10870 typedef struct IAMDroppedFrames IAMDroppedFrames;
10871 #endif
10872 
10873 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
10874 #define __IAMAudioInputMixer_FWD_DEFINED__
10875 typedef struct IAMAudioInputMixer IAMAudioInputMixer;
10876 #endif
10877 
10878 #ifndef __IAMBufferNegotiation_FWD_DEFINED__
10879 #define __IAMBufferNegotiation_FWD_DEFINED__
10880 typedef struct IAMBufferNegotiation IAMBufferNegotiation;
10881 #endif
10882 
10883 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
10884 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
10885 typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
10886 #endif
10887 
10888 #ifndef __IAMCameraControl_FWD_DEFINED__
10889 #define __IAMCameraControl_FWD_DEFINED__
10890 typedef struct IAMCameraControl IAMCameraControl;
10891 #endif
10892 
10893 #ifndef __IAMVideoControl_FWD_DEFINED__
10894 #define __IAMVideoControl_FWD_DEFINED__
10895 typedef struct IAMVideoControl IAMVideoControl;
10896 #endif
10897 
10898 #ifndef __IAMCrossbar_FWD_DEFINED__
10899 #define __IAMCrossbar_FWD_DEFINED__
10900 typedef struct IAMCrossbar IAMCrossbar;
10901 #endif
10902 
10903 #ifndef __IAMTuner_FWD_DEFINED__
10904 #define __IAMTuner_FWD_DEFINED__
10905 typedef struct IAMTuner IAMTuner;
10906 #endif
10907 
10908 #ifndef __IAMTunerNotification_FWD_DEFINED__
10909 #define __IAMTunerNotification_FWD_DEFINED__
10910 typedef struct IAMTunerNotification IAMTunerNotification;
10911 #endif
10912 
10913 #ifndef __IAMTVTuner_FWD_DEFINED__
10914 #define __IAMTVTuner_FWD_DEFINED__
10915 typedef struct IAMTVTuner IAMTVTuner;
10916 #endif
10917 
10918 #ifndef __IBPCSatelliteTuner_FWD_DEFINED__
10919 #define __IBPCSatelliteTuner_FWD_DEFINED__
10920 typedef struct IBPCSatelliteTuner IBPCSatelliteTuner;
10921 #endif
10922 
10923 #ifndef __IAMTVAudio_FWD_DEFINED__
10924 #define __IAMTVAudio_FWD_DEFINED__
10925 typedef struct IAMTVAudio IAMTVAudio;
10926 #endif
10927 
10928 #ifndef __IAMTVAudioNotification_FWD_DEFINED__
10929 #define __IAMTVAudioNotification_FWD_DEFINED__
10930 typedef struct IAMTVAudioNotification IAMTVAudioNotification;
10931 #endif
10932 
10933 #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
10934 #define __IAMAnalogVideoEncoder_FWD_DEFINED__
10935 typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
10936 #endif
10937 
10938 #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
10939 #define __IAMPhysicalPinInfo_FWD_DEFINED__
10940 typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo;
10941 #endif
10942 
10943 #ifndef __IAMExtDevice_FWD_DEFINED__
10944 #define __IAMExtDevice_FWD_DEFINED__
10945 typedef struct IAMExtDevice IAMExtDevice;
10946 #endif
10947 
10948 #ifndef __IAMExtTransport_FWD_DEFINED__
10949 #define __IAMExtTransport_FWD_DEFINED__
10950 typedef struct IAMExtTransport IAMExtTransport;
10951 #endif
10952 
10953 #ifndef __IAMTimecodeReader_FWD_DEFINED__
10954 #define __IAMTimecodeReader_FWD_DEFINED__
10955 typedef struct IAMTimecodeReader IAMTimecodeReader;
10956 #endif
10957 
10958 #ifndef __IAMTimecodeGenerator_FWD_DEFINED__
10959 #define __IAMTimecodeGenerator_FWD_DEFINED__
10960 typedef struct IAMTimecodeGenerator IAMTimecodeGenerator;
10961 #endif
10962 
10963 #ifndef __IAMTimecodeDisplay_FWD_DEFINED__
10964 #define __IAMTimecodeDisplay_FWD_DEFINED__
10965 typedef struct IAMTimecodeDisplay IAMTimecodeDisplay;
10966 #endif
10967 
10968 #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
10969 #define __IAMDevMemoryAllocator_FWD_DEFINED__
10970 typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator;
10971 #endif
10972 
10973 #ifndef __IAMDevMemoryControl_FWD_DEFINED__
10974 #define __IAMDevMemoryControl_FWD_DEFINED__
10975 typedef struct IAMDevMemoryControl IAMDevMemoryControl;
10976 #endif
10977 
10978 #ifndef __IAMStreamSelect_FWD_DEFINED__
10979 #define __IAMStreamSelect_FWD_DEFINED__
10980 typedef struct IAMStreamSelect IAMStreamSelect;
10981 #endif
10982 
10983 #ifndef __IAMResourceControl_FWD_DEFINED__
10984 #define __IAMResourceControl_FWD_DEFINED__
10985 typedef struct IAMResourceControl IAMResourceControl;
10986 #endif
10987 
10988 #ifndef __IAMClockAdjust_FWD_DEFINED__
10989 #define __IAMClockAdjust_FWD_DEFINED__
10990 typedef struct IAMClockAdjust IAMClockAdjust;
10991 #endif
10992 
10993 #ifndef __IDrawVideoImage_FWD_DEFINED__
10994 #define __IDrawVideoImage_FWD_DEFINED__
10995 typedef struct IDrawVideoImage IDrawVideoImage;
10996 #endif
10997 
10998 #ifndef __IDecimateVideoImage_FWD_DEFINED__
10999 #define __IDecimateVideoImage_FWD_DEFINED__
11000 typedef struct IDecimateVideoImage IDecimateVideoImage;
11001 #endif
11002 
11003 #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
11004 #define __IAMVideoDecimationProperties_FWD_DEFINED__
11005 typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties;
11006 #endif
11007 
11008 #ifndef __IVideoFrameStep_FWD_DEFINED__
11009 #define __IVideoFrameStep_FWD_DEFINED__
11010 typedef struct IVideoFrameStep IVideoFrameStep;
11011 #endif
11012 
11013 #ifndef __IAMLatency_FWD_DEFINED__
11014 #define __IAMLatency_FWD_DEFINED__
11015 typedef struct IAMLatency IAMLatency;
11016 #endif
11017 
11018 #ifndef __IAMPushSource_FWD_DEFINED__
11019 #define __IAMPushSource_FWD_DEFINED__
11020 typedef struct IAMPushSource IAMPushSource;
11021 #endif
11022 
11023 #ifndef __IAMDeviceRemoval_FWD_DEFINED__
11024 #define __IAMDeviceRemoval_FWD_DEFINED__
11025 typedef struct IAMDeviceRemoval IAMDeviceRemoval;
11026 #endif
11027 
11028 #ifndef __IDVEnc_FWD_DEFINED__
11029 #define __IDVEnc_FWD_DEFINED__
11030 typedef struct IDVEnc IDVEnc;
11031 #endif
11032 
11033 #ifndef __IIPDVDec_FWD_DEFINED__
11034 #define __IIPDVDec_FWD_DEFINED__
11035 typedef struct IIPDVDec IIPDVDec;
11036 #endif
11037 
11038 #ifndef __IDVRGB219_FWD_DEFINED__
11039 #define __IDVRGB219_FWD_DEFINED__
11040 typedef struct IDVRGB219 IDVRGB219;
11041 #endif
11042 
11043 #ifndef __IDVSplitter_FWD_DEFINED__
11044 #define __IDVSplitter_FWD_DEFINED__
11045 typedef struct IDVSplitter IDVSplitter;
11046 #endif
11047 
11048 #ifndef __IAMAudioRendererStats_FWD_DEFINED__
11049 #define __IAMAudioRendererStats_FWD_DEFINED__
11050 typedef struct IAMAudioRendererStats IAMAudioRendererStats;
11051 #endif
11052 
11053 #ifndef __IAMGraphStreams_FWD_DEFINED__
11054 #define __IAMGraphStreams_FWD_DEFINED__
11055 typedef struct IAMGraphStreams IAMGraphStreams;
11056 #endif
11057 
11058 #ifndef __IAMOverlayFX_FWD_DEFINED__
11059 #define __IAMOverlayFX_FWD_DEFINED__
11060 typedef struct IAMOverlayFX IAMOverlayFX;
11061 #endif
11062 
11063 #ifndef __IAMOpenProgress_FWD_DEFINED__
11064 #define __IAMOpenProgress_FWD_DEFINED__
11065 typedef struct IAMOpenProgress IAMOpenProgress;
11066 #endif
11067 
11068 #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
11069 #define __IMpeg2Demultiplexer_FWD_DEFINED__
11070 typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer;
11071 #endif
11072 
11073 #ifndef __IEnumStreamIdMap_FWD_DEFINED__
11074 #define __IEnumStreamIdMap_FWD_DEFINED__
11075 typedef struct IEnumStreamIdMap IEnumStreamIdMap;
11076 #endif
11077 
11078 #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
11079 #define __IMPEG2StreamIdMap_FWD_DEFINED__
11080 typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap;
11081 #endif
11082 
11083 #ifndef __IRegisterServiceProvider_FWD_DEFINED__
11084 #define __IRegisterServiceProvider_FWD_DEFINED__
11085 typedef struct IRegisterServiceProvider IRegisterServiceProvider;
11086 #endif
11087 
11088 #ifndef __ICodecAPI_FWD_DEFINED__
11089 #define __ICodecAPI_FWD_DEFINED__
11090 typedef struct ICodecAPI ICodecAPI;
11091 #endif
11092 
11093 #ifndef __IGetCapabilitiesKey_FWD_DEFINED__
11094 #define __IGetCapabilitiesKey_FWD_DEFINED__
11095 typedef struct IGetCapabilitiesKey IGetCapabilitiesKey;
11096 #endif
11097 
11098 #ifndef __IEncoderAPI_FWD_DEFINED__
11099 #define __IEncoderAPI_FWD_DEFINED__
11100 typedef struct IEncoderAPI IEncoderAPI;
11101 #endif
11102 
11103 #ifndef __IVideoEncoder_FWD_DEFINED__
11104 #define __IVideoEncoder_FWD_DEFINED__
11105 typedef struct IVideoEncoder IVideoEncoder;
11106 #endif
11107 
11108 #ifndef __IAMDecoderCaps_FWD_DEFINED__
11109 #define __IAMDecoderCaps_FWD_DEFINED__
11110 typedef struct IAMDecoderCaps IAMDecoderCaps;
11111 #endif
11112 
11113 #ifndef __IDvdControl_FWD_DEFINED__
11114 #define __IDvdControl_FWD_DEFINED__
11115 typedef struct IDvdControl IDvdControl;
11116 #endif
11117 
11118 #ifndef __IDvdInfo_FWD_DEFINED__
11119 #define __IDvdInfo_FWD_DEFINED__
11120 typedef struct IDvdInfo IDvdInfo;
11121 #endif
11122 
11123 #ifndef __IDvdCmd_FWD_DEFINED__
11124 #define __IDvdCmd_FWD_DEFINED__
11125 typedef struct IDvdCmd IDvdCmd;
11126 #endif
11127 
11128 #ifndef __IDvdState_FWD_DEFINED__
11129 #define __IDvdState_FWD_DEFINED__
11130 typedef struct IDvdState IDvdState;
11131 #endif
11132 
11133 #ifndef __IDvdControl2_FWD_DEFINED__
11134 #define __IDvdControl2_FWD_DEFINED__
11135 typedef struct IDvdControl2 IDvdControl2;
11136 #endif
11137 
11138 #ifndef __IDvdInfo2_FWD_DEFINED__
11139 #define __IDvdInfo2_FWD_DEFINED__
11140 typedef struct IDvdInfo2 IDvdInfo2;
11141 #endif
11142 
11143 #ifndef __IDvdGraphBuilder_FWD_DEFINED__
11144 #define __IDvdGraphBuilder_FWD_DEFINED__
11145 typedef struct IDvdGraphBuilder IDvdGraphBuilder;
11146 #endif
11147 
11148 #ifndef __IDDrawExclModeVideo_FWD_DEFINED__
11149 #define __IDDrawExclModeVideo_FWD_DEFINED__
11150 typedef struct IDDrawExclModeVideo IDDrawExclModeVideo;
11151 #endif
11152 
11153 #ifndef __IDDrawExclModeVideoCallback_FWD_DEFINED__
11154 #define __IDDrawExclModeVideoCallback_FWD_DEFINED__
11155 typedef struct IDDrawExclModeVideoCallback IDDrawExclModeVideoCallback;
11156 #endif
11157 
11158 #ifndef __IPinConnection_FWD_DEFINED__
11159 #define __IPinConnection_FWD_DEFINED__
11160 typedef struct IPinConnection IPinConnection;
11161 #endif
11162 
11163 #ifndef __IPinFlowControl_FWD_DEFINED__
11164 #define __IPinFlowControl_FWD_DEFINED__
11165 typedef struct IPinFlowControl IPinFlowControl;
11166 #endif
11167 
11168 #ifndef __IGraphConfig_FWD_DEFINED__
11169 #define __IGraphConfig_FWD_DEFINED__
11170 typedef struct IGraphConfig IGraphConfig;
11171 #endif
11172 
11173 #ifndef __IGraphConfigCallback_FWD_DEFINED__
11174 #define __IGraphConfigCallback_FWD_DEFINED__
11175 typedef struct IGraphConfigCallback IGraphConfigCallback;
11176 #endif
11177 
11178 #ifndef __IFilterChain_FWD_DEFINED__
11179 #define __IFilterChain_FWD_DEFINED__
11180 typedef struct IFilterChain IFilterChain;
11181 #endif
11182 
11183 #ifndef __IVMRImagePresenter_FWD_DEFINED__
11184 #define __IVMRImagePresenter_FWD_DEFINED__
11185 typedef struct IVMRImagePresenter IVMRImagePresenter;
11186 #endif
11187 
11188 #ifndef __IVMRSurfaceAllocator_FWD_DEFINED__
11189 #define __IVMRSurfaceAllocator_FWD_DEFINED__
11190 typedef struct IVMRSurfaceAllocator IVMRSurfaceAllocator;
11191 #endif
11192 
11193 #ifndef __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
11194 #define __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
11195 typedef struct IVMRSurfaceAllocatorNotify IVMRSurfaceAllocatorNotify;
11196 #endif
11197 
11198 #ifndef __IVMRWindowlessControl_FWD_DEFINED__
11199 #define __IVMRWindowlessControl_FWD_DEFINED__
11200 typedef struct IVMRWindowlessControl IVMRWindowlessControl;
11201 #endif
11202 
11203 #ifndef __IVMRMixerControl_FWD_DEFINED__
11204 #define __IVMRMixerControl_FWD_DEFINED__
11205 typedef struct IVMRMixerControl IVMRMixerControl;
11206 #endif
11207 
11208 #ifndef __IVMRMonitorConfig_FWD_DEFINED__
11209 #define __IVMRMonitorConfig_FWD_DEFINED__
11210 typedef struct IVMRMonitorConfig IVMRMonitorConfig;
11211 #endif
11212 
11213 #ifndef __IVMRFilterConfig_FWD_DEFINED__
11214 #define __IVMRFilterConfig_FWD_DEFINED__
11215 typedef struct IVMRFilterConfig IVMRFilterConfig;
11216 #endif
11217 
11218 #ifndef __IVMRAspectRatioControl_FWD_DEFINED__
11219 #define __IVMRAspectRatioControl_FWD_DEFINED__
11220 typedef struct IVMRAspectRatioControl IVMRAspectRatioControl;
11221 #endif
11222 
11223 #ifndef __IVMRDeinterlaceControl_FWD_DEFINED__
11224 #define __IVMRDeinterlaceControl_FWD_DEFINED__
11225 typedef struct IVMRDeinterlaceControl IVMRDeinterlaceControl;
11226 #endif
11227 
11228 #ifndef __IVMRMixerBitmap_FWD_DEFINED__
11229 #define __IVMRMixerBitmap_FWD_DEFINED__
11230 typedef struct IVMRMixerBitmap IVMRMixerBitmap;
11231 #endif
11232 
11233 #ifndef __IVMRImageCompositor_FWD_DEFINED__
11234 #define __IVMRImageCompositor_FWD_DEFINED__
11235 typedef struct IVMRImageCompositor IVMRImageCompositor;
11236 #endif
11237 
11238 #ifndef __IVMRVideoStreamControl_FWD_DEFINED__
11239 #define __IVMRVideoStreamControl_FWD_DEFINED__
11240 typedef struct IVMRVideoStreamControl IVMRVideoStreamControl;
11241 #endif
11242 
11243 #ifndef __IVMRSurface_FWD_DEFINED__
11244 #define __IVMRSurface_FWD_DEFINED__
11245 typedef struct IVMRSurface IVMRSurface;
11246 #endif
11247 
11248 #ifndef __IVMRImagePresenterConfig_FWD_DEFINED__
11249 #define __IVMRImagePresenterConfig_FWD_DEFINED__
11250 typedef struct IVMRImagePresenterConfig IVMRImagePresenterConfig;
11251 #endif
11252 
11253 #ifndef __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
11254 #define __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
11255 typedef struct IVMRImagePresenterExclModeConfig IVMRImagePresenterExclModeConfig;
11256 #endif
11257 
11258 #ifndef __IVPManager_FWD_DEFINED__
11259 #define __IVPManager_FWD_DEFINED__
11260 typedef struct IVPManager IVPManager;
11261 #endif
11262 
11263 #ifndef __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
11264 #define __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
11265 typedef struct IAMAsyncReaderTimestampScaling IAMAsyncReaderTimestampScaling;
11266 #endif
11267 
11268 #ifndef __IAMPluginControl_FWD_DEFINED__
11269 #define __IAMPluginControl_FWD_DEFINED__
11270 typedef struct IAMPluginControl IAMPluginControl;
11271 #endif
11272 
11273 #include "ocidl.h"
11274 
11275   extern RPC_IF_HANDLE __MIDL_itf_strmif_0125_v0_0_c_ifspec;
11276   extern RPC_IF_HANDLE __MIDL_itf_strmif_0125_v0_0_s_ifspec;
11277 #ifndef __IReferenceClock2_INTERFACE_DEFINED__
11278 #define __IReferenceClock2_INTERFACE_DEFINED__
11279   EXTERN_C const IID IID_IReferenceClock2;
11280 #if defined(__cplusplus) && !defined(CINTERFACE)
11281   struct IReferenceClock2 : public IReferenceClock {
11282   };
11283 #else
11284   typedef struct IReferenceClock2Vtbl {
11285     BEGIN_INTERFACE
11286       HRESULT (WINAPI *QueryInterface)(IReferenceClock2 *This,REFIID riid,void **ppvObject);
11287       ULONG (WINAPI *AddRef)(IReferenceClock2 *This);
11288       ULONG (WINAPI *Release)(IReferenceClock2 *This);
11289       HRESULT (WINAPI *GetTime)(IReferenceClock2 *This,REFERENCE_TIME *pTime);
11290       HRESULT (WINAPI *AdviseTime)(IReferenceClock2 *This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie);
11291       HRESULT (WINAPI *AdvisePeriodic)(IReferenceClock2 *This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie);
11292       HRESULT (WINAPI *Unadvise)(IReferenceClock2 *This,DWORD_PTR dwAdviseCookie);
11293     END_INTERFACE
11294   } IReferenceClock2Vtbl;
11295   struct IReferenceClock2 {
11296     CONST_VTBL struct IReferenceClock2Vtbl *lpVtbl;
11297   };
11298 #ifdef COBJMACROS
11299 #define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11300 #define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
11301 #define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
11302 #define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
11303 #define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
11304 #define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
11305 #define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
11306 #endif
11307 #endif
11308 #endif
11309 
11310   typedef IReferenceClock2 *PREFERENCECLOCK2;
11311 
11312 #ifndef __IDistributorNotify_INTERFACE_DEFINED__
11313 #define __IDistributorNotify_INTERFACE_DEFINED__
11314   EXTERN_C const IID IID_IDistributorNotify;
11315 #if defined(__cplusplus) && !defined(CINTERFACE)
11316   struct IDistributorNotify : public IUnknown {
11317   public:
11318     virtual HRESULT WINAPI Stop(void) = 0;
11319     virtual HRESULT WINAPI Pause(void) = 0;
11320     virtual HRESULT WINAPI Run(REFERENCE_TIME tStart) = 0;
11321     virtual HRESULT WINAPI SetSyncSource(IReferenceClock *pClock) = 0;
11322     virtual HRESULT WINAPI NotifyGraphChange(void) = 0;
11323   };
11324 #else
11325   typedef struct IDistributorNotifyVtbl {
11326     BEGIN_INTERFACE
11327       HRESULT (WINAPI *QueryInterface)(IDistributorNotify *This,REFIID riid,void **ppvObject);
11328       ULONG (WINAPI *AddRef)(IDistributorNotify *This);
11329       ULONG (WINAPI *Release)(IDistributorNotify *This);
11330       HRESULT (WINAPI *Stop)(IDistributorNotify *This);
11331       HRESULT (WINAPI *Pause)(IDistributorNotify *This);
11332       HRESULT (WINAPI *Run)(IDistributorNotify *This,REFERENCE_TIME tStart);
11333       HRESULT (WINAPI *SetSyncSource)(IDistributorNotify *This,IReferenceClock *pClock);
11334       HRESULT (WINAPI *NotifyGraphChange)(IDistributorNotify *This);
11335     END_INTERFACE
11336   } IDistributorNotifyVtbl;
11337   struct IDistributorNotify {
11338     CONST_VTBL struct IDistributorNotifyVtbl *lpVtbl;
11339   };
11340 #ifdef COBJMACROS
11341 #define IDistributorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11342 #define IDistributorNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
11343 #define IDistributorNotify_Release(This) (This)->lpVtbl->Release(This)
11344 #define IDistributorNotify_Stop(This) (This)->lpVtbl->Stop(This)
11345 #define IDistributorNotify_Pause(This) (This)->lpVtbl->Pause(This)
11346 #define IDistributorNotify_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
11347 #define IDistributorNotify_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
11348 #define IDistributorNotify_NotifyGraphChange(This) (This)->lpVtbl->NotifyGraphChange(This)
11349 #endif
11350 #endif
11351   HRESULT WINAPI IDistributorNotify_Stop_Proxy(IDistributorNotify *This);
11352   void __RPC_STUB IDistributorNotify_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11353   HRESULT WINAPI IDistributorNotify_Pause_Proxy(IDistributorNotify *This);
11354   void __RPC_STUB IDistributorNotify_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11355   HRESULT WINAPI IDistributorNotify_Run_Proxy(IDistributorNotify *This,REFERENCE_TIME tStart);
11356   void __RPC_STUB IDistributorNotify_Run_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11357   HRESULT WINAPI IDistributorNotify_SetSyncSource_Proxy(IDistributorNotify *This,IReferenceClock *pClock);
11358   void __RPC_STUB IDistributorNotify_SetSyncSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11359   HRESULT WINAPI IDistributorNotify_NotifyGraphChange_Proxy(IDistributorNotify *This);
11360   void __RPC_STUB IDistributorNotify_NotifyGraphChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11361 #endif
11362 
11363   typedef enum __MIDL___MIDL_itf_strmif_0167_0001 {
11364     CompressionCaps_CanQuality = 0x1,CompressionCaps_CanCrunch = 0x2,CompressionCaps_CanKeyFrame = 0x4,CompressionCaps_CanBFrame = 0x8,
11365     CompressionCaps_CanWindow = 0x10
11366   } CompressionCaps;
11367 
11368   extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_c_ifspec;
11369   extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_s_ifspec;
11370 #ifndef __IAMVideoCompression_INTERFACE_DEFINED__
11371 #define __IAMVideoCompression_INTERFACE_DEFINED__
11372   EXTERN_C const IID IID_IAMVideoCompression;
11373 #if defined(__cplusplus) && !defined(CINTERFACE)
11374   struct IAMVideoCompression : public IUnknown {
11375   public:
11376     virtual HRESULT WINAPI put_KeyFrameRate(LONG KeyFrameRate) = 0;
11377     virtual HRESULT WINAPI get_KeyFrameRate(LONG *pKeyFrameRate) = 0;
11378     virtual HRESULT WINAPI put_PFramesPerKeyFrame(LONG PFramesPerKeyFrame) = 0;
11379     virtual HRESULT WINAPI get_PFramesPerKeyFrame(LONG *pPFramesPerKeyFrame) = 0;
11380     virtual HRESULT WINAPI put_Quality(double Quality) = 0;
11381     virtual HRESULT WINAPI get_Quality(double *pQuality) = 0;
11382     virtual HRESULT WINAPI put_WindowSize(DWORDLONG WindowSize) = 0;
11383     virtual HRESULT WINAPI get_WindowSize(DWORDLONG *pWindowSize) = 0;
11384     virtual HRESULT WINAPI GetInfo(WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities) = 0;
11385     virtual HRESULT WINAPI OverrideKeyFrame(LONG FrameNumber) = 0;
11386     virtual HRESULT WINAPI OverrideFrameSize(LONG FrameNumber,LONG Size) = 0;
11387   };
11388 #else
11389   typedef struct IAMVideoCompressionVtbl {
11390     BEGIN_INTERFACE
11391       HRESULT (WINAPI *QueryInterface)(IAMVideoCompression *This,REFIID riid,void **ppvObject);
11392       ULONG (WINAPI *AddRef)(IAMVideoCompression *This);
11393       ULONG (WINAPI *Release)(IAMVideoCompression *This);
11394       HRESULT (WINAPI *put_KeyFrameRate)(IAMVideoCompression *This,LONG KeyFrameRate);
11395       HRESULT (WINAPI *get_KeyFrameRate)(IAMVideoCompression *This,LONG *pKeyFrameRate);
11396       HRESULT (WINAPI *put_PFramesPerKeyFrame)(IAMVideoCompression *This,LONG PFramesPerKeyFrame);
11397       HRESULT (WINAPI *get_PFramesPerKeyFrame)(IAMVideoCompression *This,LONG *pPFramesPerKeyFrame);
11398       HRESULT (WINAPI *put_Quality)(IAMVideoCompression *This,double Quality);
11399       HRESULT (WINAPI *get_Quality)(IAMVideoCompression *This,double *pQuality);
11400       HRESULT (WINAPI *put_WindowSize)(IAMVideoCompression *This,DWORDLONG WindowSize);
11401       HRESULT (WINAPI *get_WindowSize)(IAMVideoCompression *This,DWORDLONG *pWindowSize);
11402       HRESULT (WINAPI *GetInfo)(IAMVideoCompression *This,WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities);
11403       HRESULT (WINAPI *OverrideKeyFrame)(IAMVideoCompression *This,LONG FrameNumber);
11404       HRESULT (WINAPI *OverrideFrameSize)(IAMVideoCompression *This,LONG FrameNumber,LONG Size);
11405     END_INTERFACE
11406   } IAMVideoCompressionVtbl;
11407   struct IAMVideoCompression {
11408     CONST_VTBL struct IAMVideoCompressionVtbl *lpVtbl;
11409   };
11410 #ifdef COBJMACROS
11411 #define IAMVideoCompression_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11412 #define IAMVideoCompression_AddRef(This) (This)->lpVtbl->AddRef(This)
11413 #define IAMVideoCompression_Release(This) (This)->lpVtbl->Release(This)
11414 #define IAMVideoCompression_put_KeyFrameRate(This,KeyFrameRate) (This)->lpVtbl->put_KeyFrameRate(This,KeyFrameRate)
11415 #define IAMVideoCompression_get_KeyFrameRate(This,pKeyFrameRate) (This)->lpVtbl->get_KeyFrameRate(This,pKeyFrameRate)
11416 #define IAMVideoCompression_put_PFramesPerKeyFrame(This,PFramesPerKeyFrame) (This)->lpVtbl->put_PFramesPerKeyFrame(This,PFramesPerKeyFrame)
11417 #define IAMVideoCompression_get_PFramesPerKeyFrame(This,pPFramesPerKeyFrame) (This)->lpVtbl->get_PFramesPerKeyFrame(This,pPFramesPerKeyFrame)
11418 #define IAMVideoCompression_put_Quality(This,Quality) (This)->lpVtbl->put_Quality(This,Quality)
11419 #define IAMVideoCompression_get_Quality(This,pQuality) (This)->lpVtbl->get_Quality(This,pQuality)
11420 #define IAMVideoCompression_put_WindowSize(This,WindowSize) (This)->lpVtbl->put_WindowSize(This,WindowSize)
11421 #define IAMVideoCompression_get_WindowSize(This,pWindowSize) (This)->lpVtbl->get_WindowSize(This,pWindowSize)
11422 #define IAMVideoCompression_GetInfo(This,pszVersion,pcbVersion,pszDescription,pcbDescription,pDefaultKeyFrameRate,pDefaultPFramesPerKey,pDefaultQuality,pCapabilities) (This)->lpVtbl->GetInfo(This,pszVersion,pcbVersion,pszDescription,pcbDescription,pDefaultKeyFrameRate,pDefaultPFramesPerKey,pDefaultQuality,pCapabilities)
11423 #define IAMVideoCompression_OverrideKeyFrame(This,FrameNumber) (This)->lpVtbl->OverrideKeyFrame(This,FrameNumber)
11424 #define IAMVideoCompression_OverrideFrameSize(This,FrameNumber,Size) (This)->lpVtbl->OverrideFrameSize(This,FrameNumber,Size)
11425 #endif
11426 #endif
11427   HRESULT WINAPI IAMVideoCompression_put_KeyFrameRate_Proxy(IAMVideoCompression *This,LONG KeyFrameRate);
11428   void __RPC_STUB IAMVideoCompression_put_KeyFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11429   HRESULT WINAPI IAMVideoCompression_get_KeyFrameRate_Proxy(IAMVideoCompression *This,LONG *pKeyFrameRate);
11430   void __RPC_STUB IAMVideoCompression_get_KeyFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11431   HRESULT WINAPI IAMVideoCompression_put_PFramesPerKeyFrame_Proxy(IAMVideoCompression *This,LONG PFramesPerKeyFrame);
11432   void __RPC_STUB IAMVideoCompression_put_PFramesPerKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11433   HRESULT WINAPI IAMVideoCompression_get_PFramesPerKeyFrame_Proxy(IAMVideoCompression *This,LONG *pPFramesPerKeyFrame);
11434   void __RPC_STUB IAMVideoCompression_get_PFramesPerKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11435   HRESULT WINAPI IAMVideoCompression_put_Quality_Proxy(IAMVideoCompression *This,double Quality);
11436   void __RPC_STUB IAMVideoCompression_put_Quality_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11437   HRESULT WINAPI IAMVideoCompression_get_Quality_Proxy(IAMVideoCompression *This,double *pQuality);
11438   void __RPC_STUB IAMVideoCompression_get_Quality_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11439   HRESULT WINAPI IAMVideoCompression_put_WindowSize_Proxy(IAMVideoCompression *This,DWORDLONG WindowSize);
11440   void __RPC_STUB IAMVideoCompression_put_WindowSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11441   HRESULT WINAPI IAMVideoCompression_get_WindowSize_Proxy(IAMVideoCompression *This,DWORDLONG *pWindowSize);
11442   void __RPC_STUB IAMVideoCompression_get_WindowSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11443   HRESULT WINAPI IAMVideoCompression_GetInfo_Proxy(IAMVideoCompression *This,WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities);
11444   void __RPC_STUB IAMVideoCompression_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11445   HRESULT WINAPI IAMVideoCompression_OverrideKeyFrame_Proxy(IAMVideoCompression *This,LONG FrameNumber);
11446   void __RPC_STUB IAMVideoCompression_OverrideKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11447   HRESULT WINAPI IAMVideoCompression_OverrideFrameSize_Proxy(IAMVideoCompression *This,LONG FrameNumber,LONG Size);
11448   void __RPC_STUB IAMVideoCompression_OverrideFrameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11449 #endif
11450 
11451   typedef enum __MIDL___MIDL_itf_strmif_0168_0001 {
11452     VfwCaptureDialog_Source = 0x1,VfwCaptureDialog_Format = 0x2,VfwCaptureDialog_Display = 0x4
11453   } VfwCaptureDialogs;
11454 
11455   typedef enum __MIDL___MIDL_itf_strmif_0168_0002 {
11456     VfwCompressDialog_Config = 0x1,VfwCompressDialog_About = 0x2,VfwCompressDialog_QueryConfig = 0x4,VfwCompressDialog_QueryAbout = 0x8
11457   } VfwCompressDialogs;
11458 
11459 #ifndef __IAMVfwCompressDialogs_INTERFACE_DEFINED__
11460 #define __IAMVfwCompressDialogs_INTERFACE_DEFINED__
11461   EXTERN_C const IID IID_IAMVfwCompressDialogs;
11462 #if defined(__cplusplus) && !defined(CINTERFACE)
11463   struct IAMVfwCompressDialogs : public IUnknown {
11464   public:
11465     virtual HRESULT WINAPI ShowDialog(int iDialog,HWND hwnd) = 0;
11466     virtual HRESULT WINAPI GetState(LPVOID pState,int *pcbState) = 0;
11467     virtual HRESULT WINAPI SetState(LPVOID pState,int cbState) = 0;
11468     virtual HRESULT WINAPI SendDriverMessage(int uMsg,LONG dw1,LONG dw2) = 0;
11469   };
11470 #else
11471   typedef struct IAMVfwCompressDialogsVtbl {
11472     BEGIN_INTERFACE
11473       HRESULT (WINAPI *QueryInterface)(IAMVfwCompressDialogs *This,REFIID riid,void **ppvObject);
11474       ULONG (WINAPI *AddRef)(IAMVfwCompressDialogs *This);
11475       ULONG (WINAPI *Release)(IAMVfwCompressDialogs *This);
11476       HRESULT (WINAPI *ShowDialog)(IAMVfwCompressDialogs *This,int iDialog,HWND hwnd);
11477       HRESULT (WINAPI *GetState)(IAMVfwCompressDialogs *This,LPVOID pState,int *pcbState);
11478       HRESULT (WINAPI *SetState)(IAMVfwCompressDialogs *This,LPVOID pState,int cbState);
11479       HRESULT (WINAPI *SendDriverMessage)(IAMVfwCompressDialogs *This,int uMsg,LONG dw1,LONG dw2);
11480     END_INTERFACE
11481   } IAMVfwCompressDialogsVtbl;
11482   struct IAMVfwCompressDialogs {
11483     CONST_VTBL struct IAMVfwCompressDialogsVtbl *lpVtbl;
11484   };
11485 #ifdef COBJMACROS
11486 #define IAMVfwCompressDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11487 #define IAMVfwCompressDialogs_AddRef(This) (This)->lpVtbl->AddRef(This)
11488 #define IAMVfwCompressDialogs_Release(This) (This)->lpVtbl->Release(This)
11489 #define IAMVfwCompressDialogs_ShowDialog(This,iDialog,hwnd) (This)->lpVtbl->ShowDialog(This,iDialog,hwnd)
11490 #define IAMVfwCompressDialogs_GetState(This,pState,pcbState) (This)->lpVtbl->GetState(This,pState,pcbState)
11491 #define IAMVfwCompressDialogs_SetState(This,pState,cbState) (This)->lpVtbl->SetState(This,pState,cbState)
11492 #define IAMVfwCompressDialogs_SendDriverMessage(This,uMsg,dw1,dw2) (This)->lpVtbl->SendDriverMessage(This,uMsg,dw1,dw2)
11493 #endif
11494 #endif
11495   HRESULT WINAPI IAMVfwCompressDialogs_ShowDialog_Proxy(IAMVfwCompressDialogs *This,int iDialog,HWND hwnd);
11496   void __RPC_STUB IAMVfwCompressDialogs_ShowDialog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11497   HRESULT WINAPI IAMVfwCompressDialogs_GetState_Proxy(IAMVfwCompressDialogs *This,LPVOID pState,int *pcbState);
11498   void __RPC_STUB IAMVfwCompressDialogs_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11499   HRESULT WINAPI IAMVfwCompressDialogs_SetState_Proxy(IAMVfwCompressDialogs *This,LPVOID pState,int cbState);
11500   void __RPC_STUB IAMVfwCompressDialogs_SetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11501   HRESULT WINAPI IAMVfwCompressDialogs_SendDriverMessage_Proxy(IAMVfwCompressDialogs *This,int uMsg,LONG dw1,LONG dw2);
11502   void __RPC_STUB IAMVfwCompressDialogs_SendDriverMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11503 #endif
11504 
11505 #ifndef __IAMDroppedFrames_INTERFACE_DEFINED__
11506 #define __IAMDroppedFrames_INTERFACE_DEFINED__
11507   EXTERN_C const IID IID_IAMDroppedFrames;
11508 #if defined(__cplusplus) && !defined(CINTERFACE)
11509   struct IAMDroppedFrames : public IUnknown {
11510   public:
11511     virtual HRESULT WINAPI GetNumDropped(LONG *plDropped) = 0;
11512     virtual HRESULT WINAPI GetNumNotDropped(LONG *plNotDropped) = 0;
11513     virtual HRESULT WINAPI GetDroppedInfo(LONG lSize,LONG *plArray,LONG *plNumCopied) = 0;
11514     virtual HRESULT WINAPI GetAverageFrameSize(LONG *plAverageSize) = 0;
11515   };
11516 #else
11517   typedef struct IAMDroppedFramesVtbl {
11518     BEGIN_INTERFACE
11519       HRESULT (WINAPI *QueryInterface)(IAMDroppedFrames *This,REFIID riid,void **ppvObject);
11520       ULONG (WINAPI *AddRef)(IAMDroppedFrames *This);
11521       ULONG (WINAPI *Release)(IAMDroppedFrames *This);
11522       HRESULT (WINAPI *GetNumDropped)(IAMDroppedFrames *This,LONG *plDropped);
11523       HRESULT (WINAPI *GetNumNotDropped)(IAMDroppedFrames *This,LONG *plNotDropped);
11524       HRESULT (WINAPI *GetDroppedInfo)(IAMDroppedFrames *This,LONG lSize,LONG *plArray,LONG *plNumCopied);
11525       HRESULT (WINAPI *GetAverageFrameSize)(IAMDroppedFrames *This,LONG *plAverageSize);
11526     END_INTERFACE
11527   } IAMDroppedFramesVtbl;
11528   struct IAMDroppedFrames {
11529     CONST_VTBL struct IAMDroppedFramesVtbl *lpVtbl;
11530   };
11531 #ifdef COBJMACROS
11532 #define IAMDroppedFrames_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11533 #define IAMDroppedFrames_AddRef(This) (This)->lpVtbl->AddRef(This)
11534 #define IAMDroppedFrames_Release(This) (This)->lpVtbl->Release(This)
11535 #define IAMDroppedFrames_GetNumDropped(This,plDropped) (This)->lpVtbl->GetNumDropped(This,plDropped)
11536 #define IAMDroppedFrames_GetNumNotDropped(This,plNotDropped) (This)->lpVtbl->GetNumNotDropped(This,plNotDropped)
11537 #define IAMDroppedFrames_GetDroppedInfo(This,lSize,plArray,plNumCopied) (This)->lpVtbl->GetDroppedInfo(This,lSize,plArray,plNumCopied)
11538 #define IAMDroppedFrames_GetAverageFrameSize(This,plAverageSize) (This)->lpVtbl->GetAverageFrameSize(This,plAverageSize)
11539 #endif
11540 #endif
11541   HRESULT WINAPI IAMDroppedFrames_GetNumDropped_Proxy(IAMDroppedFrames *This,LONG *plDropped);
11542   void __RPC_STUB IAMDroppedFrames_GetNumDropped_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11543   HRESULT WINAPI IAMDroppedFrames_GetNumNotDropped_Proxy(IAMDroppedFrames *This,LONG *plNotDropped);
11544   void __RPC_STUB IAMDroppedFrames_GetNumNotDropped_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11545   HRESULT WINAPI IAMDroppedFrames_GetDroppedInfo_Proxy(IAMDroppedFrames *This,LONG lSize,LONG *plArray,LONG *plNumCopied);
11546   void __RPC_STUB IAMDroppedFrames_GetDroppedInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11547   HRESULT WINAPI IAMDroppedFrames_GetAverageFrameSize_Proxy(IAMDroppedFrames *This,LONG *plAverageSize);
11548   void __RPC_STUB IAMDroppedFrames_GetAverageFrameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11549 #endif
11550 
11551 #define AMF_AUTOMATICGAIN -1.0
11552 
11553   extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_c_ifspec;
11554   extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_s_ifspec;
11555 #ifndef __IAMAudioInputMixer_INTERFACE_DEFINED__
11556 #define __IAMAudioInputMixer_INTERFACE_DEFINED__
11557   EXTERN_C const IID IID_IAMAudioInputMixer;
11558 #if defined(__cplusplus) && !defined(CINTERFACE)
11559   struct IAMAudioInputMixer : public IUnknown {
11560   public:
11561     virtual HRESULT WINAPI put_Enable(WINBOOL fEnable) = 0;
11562     virtual HRESULT WINAPI get_Enable(WINBOOL *pfEnable) = 0;
11563     virtual HRESULT WINAPI put_Mono(WINBOOL fMono) = 0;
11564     virtual HRESULT WINAPI get_Mono(WINBOOL *pfMono) = 0;
11565     virtual HRESULT WINAPI put_MixLevel(double Level) = 0;
11566     virtual HRESULT WINAPI get_MixLevel(double *pLevel) = 0;
11567     virtual HRESULT WINAPI put_Pan(double Pan) = 0;
11568     virtual HRESULT WINAPI get_Pan(double *pPan) = 0;
11569     virtual HRESULT WINAPI put_Loudness(WINBOOL fLoudness) = 0;
11570     virtual HRESULT WINAPI get_Loudness(WINBOOL *pfLoudness) = 0;
11571     virtual HRESULT WINAPI put_Treble(double Treble) = 0;
11572     virtual HRESULT WINAPI get_Treble(double *pTreble) = 0;
11573     virtual HRESULT WINAPI get_TrebleRange(double *pRange) = 0;
11574     virtual HRESULT WINAPI put_Bass(double Bass) = 0;
11575     virtual HRESULT WINAPI get_Bass(double *pBass) = 0;
11576     virtual HRESULT WINAPI get_BassRange(double *pRange) = 0;
11577   };
11578 #else
11579   typedef struct IAMAudioInputMixerVtbl {
11580     BEGIN_INTERFACE
11581       HRESULT (WINAPI *QueryInterface)(IAMAudioInputMixer *This,REFIID riid,void **ppvObject);
11582       ULONG (WINAPI *AddRef)(IAMAudioInputMixer *This);
11583       ULONG (WINAPI *Release)(IAMAudioInputMixer *This);
11584       HRESULT (WINAPI *put_Enable)(IAMAudioInputMixer *This,WINBOOL fEnable);
11585       HRESULT (WINAPI *get_Enable)(IAMAudioInputMixer *This,WINBOOL *pfEnable);
11586       HRESULT (WINAPI *put_Mono)(IAMAudioInputMixer *This,WINBOOL fMono);
11587       HRESULT (WINAPI *get_Mono)(IAMAudioInputMixer *This,WINBOOL *pfMono);
11588       HRESULT (WINAPI *put_MixLevel)(IAMAudioInputMixer *This,double Level);
11589       HRESULT (WINAPI *get_MixLevel)(IAMAudioInputMixer *This,double *pLevel);
11590       HRESULT (WINAPI *put_Pan)(IAMAudioInputMixer *This,double Pan);
11591       HRESULT (WINAPI *get_Pan)(IAMAudioInputMixer *This,double *pPan);
11592       HRESULT (WINAPI *put_Loudness)(IAMAudioInputMixer *This,WINBOOL fLoudness);
11593       HRESULT (WINAPI *get_Loudness)(IAMAudioInputMixer *This,WINBOOL *pfLoudness);
11594       HRESULT (WINAPI *put_Treble)(IAMAudioInputMixer *This,double Treble);
11595       HRESULT (WINAPI *get_Treble)(IAMAudioInputMixer *This,double *pTreble);
11596       HRESULT (WINAPI *get_TrebleRange)(IAMAudioInputMixer *This,double *pRange);
11597       HRESULT (WINAPI *put_Bass)(IAMAudioInputMixer *This,double Bass);
11598       HRESULT (WINAPI *get_Bass)(IAMAudioInputMixer *This,double *pBass);
11599       HRESULT (WINAPI *get_BassRange)(IAMAudioInputMixer *This,double *pRange);
11600     END_INTERFACE
11601   } IAMAudioInputMixerVtbl;
11602   struct IAMAudioInputMixer {
11603     CONST_VTBL struct IAMAudioInputMixerVtbl *lpVtbl;
11604   };
11605 #ifdef COBJMACROS
11606 #define IAMAudioInputMixer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11607 #define IAMAudioInputMixer_AddRef(This) (This)->lpVtbl->AddRef(This)
11608 #define IAMAudioInputMixer_Release(This) (This)->lpVtbl->Release(This)
11609 #define IAMAudioInputMixer_put_Enable(This,fEnable) (This)->lpVtbl->put_Enable(This,fEnable)
11610 #define IAMAudioInputMixer_get_Enable(This,pfEnable) (This)->lpVtbl->get_Enable(This,pfEnable)
11611 #define IAMAudioInputMixer_put_Mono(This,fMono) (This)->lpVtbl->put_Mono(This,fMono)
11612 #define IAMAudioInputMixer_get_Mono(This,pfMono) (This)->lpVtbl->get_Mono(This,pfMono)
11613 #define IAMAudioInputMixer_put_MixLevel(This,Level) (This)->lpVtbl->put_MixLevel(This,Level)
11614 #define IAMAudioInputMixer_get_MixLevel(This,pLevel) (This)->lpVtbl->get_MixLevel(This,pLevel)
11615 #define IAMAudioInputMixer_put_Pan(This,Pan) (This)->lpVtbl->put_Pan(This,Pan)
11616 #define IAMAudioInputMixer_get_Pan(This,pPan) (This)->lpVtbl->get_Pan(This,pPan)
11617 #define IAMAudioInputMixer_put_Loudness(This,fLoudness) (This)->lpVtbl->put_Loudness(This,fLoudness)
11618 #define IAMAudioInputMixer_get_Loudness(This,pfLoudness) (This)->lpVtbl->get_Loudness(This,pfLoudness)
11619 #define IAMAudioInputMixer_put_Treble(This,Treble) (This)->lpVtbl->put_Treble(This,Treble)
11620 #define IAMAudioInputMixer_get_Treble(This,pTreble) (This)->lpVtbl->get_Treble(This,pTreble)
11621 #define IAMAudioInputMixer_get_TrebleRange(This,pRange) (This)->lpVtbl->get_TrebleRange(This,pRange)
11622 #define IAMAudioInputMixer_put_Bass(This,Bass) (This)->lpVtbl->put_Bass(This,Bass)
11623 #define IAMAudioInputMixer_get_Bass(This,pBass) (This)->lpVtbl->get_Bass(This,pBass)
11624 #define IAMAudioInputMixer_get_BassRange(This,pRange) (This)->lpVtbl->get_BassRange(This,pRange)
11625 #endif
11626 #endif
11627   HRESULT WINAPI IAMAudioInputMixer_put_Enable_Proxy(IAMAudioInputMixer *This,WINBOOL fEnable);
11628   void __RPC_STUB IAMAudioInputMixer_put_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11629   HRESULT WINAPI IAMAudioInputMixer_get_Enable_Proxy(IAMAudioInputMixer *This,WINBOOL *pfEnable);
11630   void __RPC_STUB IAMAudioInputMixer_get_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11631   HRESULT WINAPI IAMAudioInputMixer_put_Mono_Proxy(IAMAudioInputMixer *This,WINBOOL fMono);
11632   void __RPC_STUB IAMAudioInputMixer_put_Mono_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11633   HRESULT WINAPI IAMAudioInputMixer_get_Mono_Proxy(IAMAudioInputMixer *This,WINBOOL *pfMono);
11634   void __RPC_STUB IAMAudioInputMixer_get_Mono_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11635   HRESULT WINAPI IAMAudioInputMixer_put_MixLevel_Proxy(IAMAudioInputMixer *This,double Level);
11636   void __RPC_STUB IAMAudioInputMixer_put_MixLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11637   HRESULT WINAPI IAMAudioInputMixer_get_MixLevel_Proxy(IAMAudioInputMixer *This,double *pLevel);
11638   void __RPC_STUB IAMAudioInputMixer_get_MixLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11639   HRESULT WINAPI IAMAudioInputMixer_put_Pan_Proxy(IAMAudioInputMixer *This,double Pan);
11640   void __RPC_STUB IAMAudioInputMixer_put_Pan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11641   HRESULT WINAPI IAMAudioInputMixer_get_Pan_Proxy(IAMAudioInputMixer *This,double *pPan);
11642   void __RPC_STUB IAMAudioInputMixer_get_Pan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11643   HRESULT WINAPI IAMAudioInputMixer_put_Loudness_Proxy(IAMAudioInputMixer *This,WINBOOL fLoudness);
11644   void __RPC_STUB IAMAudioInputMixer_put_Loudness_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11645   HRESULT WINAPI IAMAudioInputMixer_get_Loudness_Proxy(IAMAudioInputMixer *This,WINBOOL *pfLoudness);
11646   void __RPC_STUB IAMAudioInputMixer_get_Loudness_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11647   HRESULT WINAPI IAMAudioInputMixer_put_Treble_Proxy(IAMAudioInputMixer *This,double Treble);
11648   void __RPC_STUB IAMAudioInputMixer_put_Treble_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11649   HRESULT WINAPI IAMAudioInputMixer_get_Treble_Proxy(IAMAudioInputMixer *This,double *pTreble);
11650   void __RPC_STUB IAMAudioInputMixer_get_Treble_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11651   HRESULT WINAPI IAMAudioInputMixer_get_TrebleRange_Proxy(IAMAudioInputMixer *This,double *pRange);
11652   void __RPC_STUB IAMAudioInputMixer_get_TrebleRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11653   HRESULT WINAPI IAMAudioInputMixer_put_Bass_Proxy(IAMAudioInputMixer *This,double Bass);
11654   void __RPC_STUB IAMAudioInputMixer_put_Bass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11655   HRESULT WINAPI IAMAudioInputMixer_get_Bass_Proxy(IAMAudioInputMixer *This,double *pBass);
11656   void __RPC_STUB IAMAudioInputMixer_get_Bass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11657   HRESULT WINAPI IAMAudioInputMixer_get_BassRange_Proxy(IAMAudioInputMixer *This,double *pRange);
11658   void __RPC_STUB IAMAudioInputMixer_get_BassRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11659 #endif
11660 
11661 #ifndef __IAMBufferNegotiation_INTERFACE_DEFINED__
11662 #define __IAMBufferNegotiation_INTERFACE_DEFINED__
11663   EXTERN_C const IID IID_IAMBufferNegotiation;
11664 #if defined(__cplusplus) && !defined(CINTERFACE)
11665   struct IAMBufferNegotiation : public IUnknown {
11666   public:
11667     virtual HRESULT WINAPI SuggestAllocatorProperties(const ALLOCATOR_PROPERTIES *pprop) = 0;
11668     virtual HRESULT WINAPI GetAllocatorProperties(ALLOCATOR_PROPERTIES *pprop) = 0;
11669   };
11670 #else
11671   typedef struct IAMBufferNegotiationVtbl {
11672     BEGIN_INTERFACE
11673       HRESULT (WINAPI *QueryInterface)(IAMBufferNegotiation *This,REFIID riid,void **ppvObject);
11674       ULONG (WINAPI *AddRef)(IAMBufferNegotiation *This);
11675       ULONG (WINAPI *Release)(IAMBufferNegotiation *This);
11676       HRESULT (WINAPI *SuggestAllocatorProperties)(IAMBufferNegotiation *This,const ALLOCATOR_PROPERTIES *pprop);
11677       HRESULT (WINAPI *GetAllocatorProperties)(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
11678     END_INTERFACE
11679   } IAMBufferNegotiationVtbl;
11680   struct IAMBufferNegotiation {
11681     CONST_VTBL struct IAMBufferNegotiationVtbl *lpVtbl;
11682   };
11683 #ifdef COBJMACROS
11684 #define IAMBufferNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11685 #define IAMBufferNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This)
11686 #define IAMBufferNegotiation_Release(This) (This)->lpVtbl->Release(This)
11687 #define IAMBufferNegotiation_SuggestAllocatorProperties(This,pprop) (This)->lpVtbl->SuggestAllocatorProperties(This,pprop)
11688 #define IAMBufferNegotiation_GetAllocatorProperties(This,pprop) (This)->lpVtbl->GetAllocatorProperties(This,pprop)
11689 #endif
11690 #endif
11691   HRESULT WINAPI IAMBufferNegotiation_SuggestAllocatorProperties_Proxy(IAMBufferNegotiation *This,const ALLOCATOR_PROPERTIES *pprop);
11692   void __RPC_STUB IAMBufferNegotiation_SuggestAllocatorProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11693   HRESULT WINAPI IAMBufferNegotiation_GetAllocatorProperties_Proxy(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
11694   void __RPC_STUB IAMBufferNegotiation_GetAllocatorProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11695 #endif
11696 
11697 #define AnalogVideo_NTSC_Mask 0x00000007
11698 #define AnalogVideo_PAL_Mask 0x00100FF0
11699 #define AnalogVideo_SECAM_Mask 0x000FF000
11700 
11701   typedef enum __MIDL___MIDL_itf_strmif_0173_0001 {
11702     VideoCopyProtectionMacrovisionBasic = 0,VideoCopyProtectionMacrovisionCBI = VideoCopyProtectionMacrovisionBasic + 1
11703   } VideoCopyProtectionType;
11704 
11705   typedef enum tagPhysicalConnectorType {
11706     PhysConn_Video_Tuner = 1,
11707     PhysConn_Video_Composite,PhysConn_Video_SVideo,PhysConn_Video_RGB,
11708     PhysConn_Video_YRYBY,PhysConn_Video_SerialDigital,PhysConn_Video_ParallelDigital,
11709     PhysConn_Video_SCSI,PhysConn_Video_AUX,PhysConn_Video_1394,PhysConn_Video_USB,
11710     PhysConn_Video_VideoDecoder,PhysConn_Video_VideoEncoder,PhysConn_Video_SCART,PhysConn_Video_Black,
11711     PhysConn_Audio_Tuner = 0x1000,PhysConn_Audio_Line = 0x1001,PhysConn_Audio_Mic = 0x1002,
11712     PhysConn_Audio_AESDigital = 0x1003,PhysConn_Audio_SPDIFDigital = 0x1004,
11713     PhysConn_Audio_SCSI = 0x1005,PhysConn_Audio_AUX = 0x1006,PhysConn_Audio_1394 = 0x1007,
11714     PhysConn_Audio_USB = 0x1008,PhysConn_Audio_AudioDecoder = 0x1009
11715   } PhysicalConnectorType;
11716 
11717   extern RPC_IF_HANDLE __MIDL_itf_strmif_0173_v0_0_c_ifspec;
11718   extern RPC_IF_HANDLE __MIDL_itf_strmif_0173_v0_0_s_ifspec;
11719 #ifndef __IAMAnalogVideoDecoder_INTERFACE_DEFINED__
11720 #define __IAMAnalogVideoDecoder_INTERFACE_DEFINED__
11721   EXTERN_C const IID IID_IAMAnalogVideoDecoder;
11722 #if defined(__cplusplus) && !defined(CINTERFACE)
11723   struct IAMAnalogVideoDecoder : public IUnknown {
11724   public:
11725     virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
11726     virtual HRESULT WINAPI put_TVFormat(LONG lAnalogVideoStandard) = 0;
11727     virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
11728     virtual HRESULT WINAPI get_HorizontalLocked(LONG *plLocked) = 0;
11729     virtual HRESULT WINAPI put_VCRHorizontalLocking(LONG lVCRHorizontalLocking) = 0;
11730     virtual HRESULT WINAPI get_VCRHorizontalLocking(LONG *plVCRHorizontalLocking) = 0;
11731     virtual HRESULT WINAPI get_NumberOfLines(LONG *plNumberOfLines) = 0;
11732     virtual HRESULT WINAPI put_OutputEnable(LONG lOutputEnable) = 0;
11733     virtual HRESULT WINAPI get_OutputEnable(LONG *plOutputEnable) = 0;
11734   };
11735 #else
11736   typedef struct IAMAnalogVideoDecoderVtbl {
11737     BEGIN_INTERFACE
11738       HRESULT (WINAPI *QueryInterface)(IAMAnalogVideoDecoder *This,REFIID riid,void **ppvObject);
11739       ULONG (WINAPI *AddRef)(IAMAnalogVideoDecoder *This);
11740       ULONG (WINAPI *Release)(IAMAnalogVideoDecoder *This);
11741       HRESULT (WINAPI *get_AvailableTVFormats)(IAMAnalogVideoDecoder *This,LONG *lAnalogVideoStandard);
11742       HRESULT (WINAPI *put_TVFormat)(IAMAnalogVideoDecoder *This,LONG lAnalogVideoStandard);
11743       HRESULT (WINAPI *get_TVFormat)(IAMAnalogVideoDecoder *This,LONG *plAnalogVideoStandard);
11744       HRESULT (WINAPI *get_HorizontalLocked)(IAMAnalogVideoDecoder *This,LONG *plLocked);
11745       HRESULT (WINAPI *put_VCRHorizontalLocking)(IAMAnalogVideoDecoder *This,LONG lVCRHorizontalLocking);
11746       HRESULT (WINAPI *get_VCRHorizontalLocking)(IAMAnalogVideoDecoder *This,LONG *plVCRHorizontalLocking);
11747       HRESULT (WINAPI *get_NumberOfLines)(IAMAnalogVideoDecoder *This,LONG *plNumberOfLines);
11748       HRESULT (WINAPI *put_OutputEnable)(IAMAnalogVideoDecoder *This,LONG lOutputEnable);
11749       HRESULT (WINAPI *get_OutputEnable)(IAMAnalogVideoDecoder *This,LONG *plOutputEnable);
11750     END_INTERFACE
11751   } IAMAnalogVideoDecoderVtbl;
11752   struct IAMAnalogVideoDecoder {
11753     CONST_VTBL struct IAMAnalogVideoDecoderVtbl *lpVtbl;
11754   };
11755 #ifdef COBJMACROS
11756 #define IAMAnalogVideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11757 #define IAMAnalogVideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
11758 #define IAMAnalogVideoDecoder_Release(This) (This)->lpVtbl->Release(This)
11759 #define IAMAnalogVideoDecoder_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
11760 #define IAMAnalogVideoDecoder_put_TVFormat(This,lAnalogVideoStandard) (This)->lpVtbl->put_TVFormat(This,lAnalogVideoStandard)
11761 #define IAMAnalogVideoDecoder_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
11762 #define IAMAnalogVideoDecoder_get_HorizontalLocked(This,plLocked) (This)->lpVtbl->get_HorizontalLocked(This,plLocked)
11763 #define IAMAnalogVideoDecoder_put_VCRHorizontalLocking(This,lVCRHorizontalLocking) (This)->lpVtbl->put_VCRHorizontalLocking(This,lVCRHorizontalLocking)
11764 #define IAMAnalogVideoDecoder_get_VCRHorizontalLocking(This,plVCRHorizontalLocking) (This)->lpVtbl->get_VCRHorizontalLocking(This,plVCRHorizontalLocking)
11765 #define IAMAnalogVideoDecoder_get_NumberOfLines(This,plNumberOfLines) (This)->lpVtbl->get_NumberOfLines(This,plNumberOfLines)
11766 #define IAMAnalogVideoDecoder_put_OutputEnable(This,lOutputEnable) (This)->lpVtbl->put_OutputEnable(This,lOutputEnable)
11767 #define IAMAnalogVideoDecoder_get_OutputEnable(This,plOutputEnable) (This)->lpVtbl->get_OutputEnable(This,plOutputEnable)
11768 #endif
11769 #endif
11770   HRESULT WINAPI IAMAnalogVideoDecoder_get_AvailableTVFormats_Proxy(IAMAnalogVideoDecoder *This,LONG *lAnalogVideoStandard);
11771   void __RPC_STUB IAMAnalogVideoDecoder_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11772   HRESULT WINAPI IAMAnalogVideoDecoder_put_TVFormat_Proxy(IAMAnalogVideoDecoder *This,LONG lAnalogVideoStandard);
11773   void __RPC_STUB IAMAnalogVideoDecoder_put_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11774   HRESULT WINAPI IAMAnalogVideoDecoder_get_TVFormat_Proxy(IAMAnalogVideoDecoder *This,LONG *plAnalogVideoStandard);
11775   void __RPC_STUB IAMAnalogVideoDecoder_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11776   HRESULT WINAPI IAMAnalogVideoDecoder_get_HorizontalLocked_Proxy(IAMAnalogVideoDecoder *This,LONG *plLocked);
11777   void __RPC_STUB IAMAnalogVideoDecoder_get_HorizontalLocked_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11778   HRESULT WINAPI IAMAnalogVideoDecoder_put_VCRHorizontalLocking_Proxy(IAMAnalogVideoDecoder *This,LONG lVCRHorizontalLocking);
11779   void __RPC_STUB IAMAnalogVideoDecoder_put_VCRHorizontalLocking_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11780   HRESULT WINAPI IAMAnalogVideoDecoder_get_VCRHorizontalLocking_Proxy(IAMAnalogVideoDecoder *This,LONG *plVCRHorizontalLocking);
11781   void __RPC_STUB IAMAnalogVideoDecoder_get_VCRHorizontalLocking_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11782   HRESULT WINAPI IAMAnalogVideoDecoder_get_NumberOfLines_Proxy(IAMAnalogVideoDecoder *This,LONG *plNumberOfLines);
11783   void __RPC_STUB IAMAnalogVideoDecoder_get_NumberOfLines_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11784   HRESULT WINAPI IAMAnalogVideoDecoder_put_OutputEnable_Proxy(IAMAnalogVideoDecoder *This,LONG lOutputEnable);
11785   void __RPC_STUB IAMAnalogVideoDecoder_put_OutputEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11786   HRESULT WINAPI IAMAnalogVideoDecoder_get_OutputEnable_Proxy(IAMAnalogVideoDecoder *This,LONG *plOutputEnable);
11787   void __RPC_STUB IAMAnalogVideoDecoder_get_OutputEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11788 #endif
11789 
11790   typedef enum tagCameraControlProperty {
11791     CameraControl_Pan = 0,
11792     CameraControl_Tilt,CameraControl_Roll,CameraControl_Zoom,CameraControl_Exposure,
11793     CameraControl_Iris,CameraControl_Focus
11794   } CameraControlProperty;
11795 
11796   typedef enum tagCameraControlFlags {
11797     CameraControl_Flags_Auto = 0x1,CameraControl_Flags_Manual = 0x2
11798   } CameraControlFlags;
11799 
11800   extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_c_ifspec;
11801   extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_s_ifspec;
11802 #ifndef __IAMCameraControl_INTERFACE_DEFINED__
11803 #define __IAMCameraControl_INTERFACE_DEFINED__
11804   EXTERN_C const IID IID_IAMCameraControl;
11805 #if defined(__cplusplus) && !defined(CINTERFACE)
11806   struct IAMCameraControl : public IUnknown {
11807   public:
11808     virtual HRESULT WINAPI GetRange(LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags) = 0;
11809     virtual HRESULT WINAPI Set(LONG Property,LONG lValue,LONG Flags) = 0;
11810     virtual HRESULT WINAPI Get(LONG Property,LONG *lValue,LONG *Flags) = 0;
11811   };
11812 #else
11813   typedef struct IAMCameraControlVtbl {
11814     BEGIN_INTERFACE
11815       HRESULT (WINAPI *QueryInterface)(IAMCameraControl *This,REFIID riid,void **ppvObject);
11816       ULONG (WINAPI *AddRef)(IAMCameraControl *This);
11817       ULONG (WINAPI *Release)(IAMCameraControl *This);
11818       HRESULT (WINAPI *GetRange)(IAMCameraControl *This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags);
11819       HRESULT (WINAPI *Set)(IAMCameraControl *This,LONG Property,LONG lValue,LONG Flags);
11820       HRESULT (WINAPI *Get)(IAMCameraControl *This,LONG Property,LONG *lValue,LONG *Flags);
11821     END_INTERFACE
11822   } IAMCameraControlVtbl;
11823   struct IAMCameraControl {
11824     CONST_VTBL struct IAMCameraControlVtbl *lpVtbl;
11825   };
11826 #ifdef COBJMACROS
11827 #define IAMCameraControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11828 #define IAMCameraControl_AddRef(This) (This)->lpVtbl->AddRef(This)
11829 #define IAMCameraControl_Release(This) (This)->lpVtbl->Release(This)
11830 #define IAMCameraControl_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
11831 #define IAMCameraControl_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
11832 #define IAMCameraControl_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
11833 #endif
11834 #endif
11835   HRESULT WINAPI IAMCameraControl_GetRange_Proxy(IAMCameraControl *This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags);
11836   void __RPC_STUB IAMCameraControl_GetRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11837   HRESULT WINAPI IAMCameraControl_Set_Proxy(IAMCameraControl *This,LONG Property,LONG lValue,LONG Flags);
11838   void __RPC_STUB IAMCameraControl_Set_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11839   HRESULT WINAPI IAMCameraControl_Get_Proxy(IAMCameraControl *This,LONG Property,LONG *lValue,LONG *Flags);
11840   void __RPC_STUB IAMCameraControl_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11841 #endif
11842 
11843   typedef enum tagVideoControlFlags {
11844     VideoControlFlag_FlipHorizontal = 0x1,VideoControlFlag_FlipVertical = 0x2,VideoControlFlag_ExternalTriggerEnable = 0x4,VideoControlFlag_Trigger = 0x8
11845   } VideoControlFlags;
11846 
11847   extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_c_ifspec;
11848   extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_s_ifspec;
11849 #ifndef __IAMVideoControl_INTERFACE_DEFINED__
11850 #define __IAMVideoControl_INTERFACE_DEFINED__
11851   EXTERN_C const IID IID_IAMVideoControl;
11852 #if defined(__cplusplus) && !defined(CINTERFACE)
11853   struct IAMVideoControl : public IUnknown {
11854   public:
11855     virtual HRESULT WINAPI GetCaps(IPin *pPin,LONG *pCapsFlags) = 0;
11856     virtual HRESULT WINAPI SetMode(IPin *pPin,LONG Mode) = 0;
11857     virtual HRESULT WINAPI GetMode(IPin *pPin,LONG *Mode) = 0;
11858     virtual HRESULT WINAPI GetCurrentActualFrameRate(IPin *pPin,LONGLONG *ActualFrameRate) = 0;
11859     virtual HRESULT WINAPI GetMaxAvailableFrameRate(IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate) = 0;
11860     virtual HRESULT WINAPI GetFrameRateList(IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates) = 0;
11861   };
11862 #else
11863   typedef struct IAMVideoControlVtbl {
11864     BEGIN_INTERFACE
11865       HRESULT (WINAPI *QueryInterface)(IAMVideoControl *This,REFIID riid,void **ppvObject);
11866       ULONG (WINAPI *AddRef)(IAMVideoControl *This);
11867       ULONG (WINAPI *Release)(IAMVideoControl *This);
11868       HRESULT (WINAPI *GetCaps)(IAMVideoControl *This,IPin *pPin,LONG *pCapsFlags);
11869       HRESULT (WINAPI *SetMode)(IAMVideoControl *This,IPin *pPin,LONG Mode);
11870       HRESULT (WINAPI *GetMode)(IAMVideoControl *This,IPin *pPin,LONG *Mode);
11871       HRESULT (WINAPI *GetCurrentActualFrameRate)(IAMVideoControl *This,IPin *pPin,LONGLONG *ActualFrameRate);
11872       HRESULT (WINAPI *GetMaxAvailableFrameRate)(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate);
11873       HRESULT (WINAPI *GetFrameRateList)(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates);
11874     END_INTERFACE
11875   } IAMVideoControlVtbl;
11876   struct IAMVideoControl {
11877     CONST_VTBL struct IAMVideoControlVtbl *lpVtbl;
11878   };
11879 #ifdef COBJMACROS
11880 #define IAMVideoControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11881 #define IAMVideoControl_AddRef(This) (This)->lpVtbl->AddRef(This)
11882 #define IAMVideoControl_Release(This) (This)->lpVtbl->Release(This)
11883 #define IAMVideoControl_GetCaps(This,pPin,pCapsFlags) (This)->lpVtbl->GetCaps(This,pPin,pCapsFlags)
11884 #define IAMVideoControl_SetMode(This,pPin,Mode) (This)->lpVtbl->SetMode(This,pPin,Mode)
11885 #define IAMVideoControl_GetMode(This,pPin,Mode) (This)->lpVtbl->GetMode(This,pPin,Mode)
11886 #define IAMVideoControl_GetCurrentActualFrameRate(This,pPin,ActualFrameRate) (This)->lpVtbl->GetCurrentActualFrameRate(This,pPin,ActualFrameRate)
11887 #define IAMVideoControl_GetMaxAvailableFrameRate(This,pPin,iIndex,Dimensions,MaxAvailableFrameRate) (This)->lpVtbl->GetMaxAvailableFrameRate(This,pPin,iIndex,Dimensions,MaxAvailableFrameRate)
11888 #define IAMVideoControl_GetFrameRateList(This,pPin,iIndex,Dimensions,ListSize,FrameRates) (This)->lpVtbl->GetFrameRateList(This,pPin,iIndex,Dimensions,ListSize,FrameRates)
11889 #endif
11890 #endif
11891   HRESULT WINAPI IAMVideoControl_GetCaps_Proxy(IAMVideoControl *This,IPin *pPin,LONG *pCapsFlags);
11892   void __RPC_STUB IAMVideoControl_GetCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11893   HRESULT WINAPI IAMVideoControl_SetMode_Proxy(IAMVideoControl *This,IPin *pPin,LONG Mode);
11894   void __RPC_STUB IAMVideoControl_SetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11895   HRESULT WINAPI IAMVideoControl_GetMode_Proxy(IAMVideoControl *This,IPin *pPin,LONG *Mode);
11896   void __RPC_STUB IAMVideoControl_GetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11897   HRESULT WINAPI IAMVideoControl_GetCurrentActualFrameRate_Proxy(IAMVideoControl *This,IPin *pPin,LONGLONG *ActualFrameRate);
11898   void __RPC_STUB IAMVideoControl_GetCurrentActualFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11899   HRESULT WINAPI IAMVideoControl_GetMaxAvailableFrameRate_Proxy(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate);
11900   void __RPC_STUB IAMVideoControl_GetMaxAvailableFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11901   HRESULT WINAPI IAMVideoControl_GetFrameRateList_Proxy(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates);
11902   void __RPC_STUB IAMVideoControl_GetFrameRateList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11903 #endif
11904 
11905 #ifdef __CRT_UUID_DECL
11906 __CRT_UUID_DECL(IAMCrossbar,0xc6e13380,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56);
11907 #endif
11908 
11909 #ifndef __IAMCrossbar_INTERFACE_DEFINED__
11910 #define __IAMCrossbar_INTERFACE_DEFINED__
11911   EXTERN_C const IID IID_IAMCrossbar;
11912 #if defined(__cplusplus) && !defined(CINTERFACE)
11913   struct IAMCrossbar : public IUnknown {
11914   public:
11915     virtual HRESULT WINAPI get_PinCounts(LONG *OutputPinCount,LONG *InputPinCount) = 0;
11916     virtual HRESULT WINAPI CanRoute(LONG OutputPinIndex,LONG InputPinIndex) = 0;
11917     virtual HRESULT WINAPI Route(LONG OutputPinIndex,LONG InputPinIndex) = 0;
11918     virtual HRESULT WINAPI get_IsRoutedTo(LONG OutputPinIndex,LONG *InputPinIndex) = 0;
11919     virtual HRESULT WINAPI get_CrossbarPinInfo(WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType) = 0;
11920   };
11921 #else
11922   typedef struct IAMCrossbarVtbl {
11923     BEGIN_INTERFACE
11924       HRESULT (WINAPI *QueryInterface)(IAMCrossbar *This,REFIID riid,void **ppvObject);
11925       ULONG (WINAPI *AddRef)(IAMCrossbar *This);
11926       ULONG (WINAPI *Release)(IAMCrossbar *This);
11927       HRESULT (WINAPI *get_PinCounts)(IAMCrossbar *This,LONG *OutputPinCount,LONG *InputPinCount);
11928       HRESULT (WINAPI *CanRoute)(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
11929       HRESULT (WINAPI *Route)(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
11930       HRESULT (WINAPI *get_IsRoutedTo)(IAMCrossbar *This,LONG OutputPinIndex,LONG *InputPinIndex);
11931       HRESULT (WINAPI *get_CrossbarPinInfo)(IAMCrossbar *This,WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType);
11932     END_INTERFACE
11933   } IAMCrossbarVtbl;
11934   struct IAMCrossbar {
11935     CONST_VTBL struct IAMCrossbarVtbl *lpVtbl;
11936   };
11937 #ifdef COBJMACROS
11938 #define IAMCrossbar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11939 #define IAMCrossbar_AddRef(This) (This)->lpVtbl->AddRef(This)
11940 #define IAMCrossbar_Release(This) (This)->lpVtbl->Release(This)
11941 #define IAMCrossbar_get_PinCounts(This,OutputPinCount,InputPinCount) (This)->lpVtbl->get_PinCounts(This,OutputPinCount,InputPinCount)
11942 #define IAMCrossbar_CanRoute(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->CanRoute(This,OutputPinIndex,InputPinIndex)
11943 #define IAMCrossbar_Route(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->Route(This,OutputPinIndex,InputPinIndex)
11944 #define IAMCrossbar_get_IsRoutedTo(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->get_IsRoutedTo(This,OutputPinIndex,InputPinIndex)
11945 #define IAMCrossbar_get_CrossbarPinInfo(This,IsInputPin,PinIndex,PinIndexRelated,PhysicalType) (This)->lpVtbl->get_CrossbarPinInfo(This,IsInputPin,PinIndex,PinIndexRelated,PhysicalType)
11946 #endif
11947 #endif
11948   HRESULT WINAPI IAMCrossbar_get_PinCounts_Proxy(IAMCrossbar *This,LONG *OutputPinCount,LONG *InputPinCount);
11949   void __RPC_STUB IAMCrossbar_get_PinCounts_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11950   HRESULT WINAPI IAMCrossbar_CanRoute_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
11951   void __RPC_STUB IAMCrossbar_CanRoute_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11952   HRESULT WINAPI IAMCrossbar_Route_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
11953   void __RPC_STUB IAMCrossbar_Route_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11954   HRESULT WINAPI IAMCrossbar_get_IsRoutedTo_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG *InputPinIndex);
11955   void __RPC_STUB IAMCrossbar_get_IsRoutedTo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11956   HRESULT WINAPI IAMCrossbar_get_CrossbarPinInfo_Proxy(IAMCrossbar *This,WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType);
11957   void __RPC_STUB IAMCrossbar_get_CrossbarPinInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11958 #endif
11959 
11960   typedef enum tagAMTunerSubChannel {
11961     AMTUNER_SUBCHAN_NO_TUNE = -2,AMTUNER_SUBCHAN_DEFAULT = -1
11962   } AMTunerSubChannel;
11963 
11964   typedef enum tagAMTunerSignalStrength {
11965     AMTUNER_HASNOSIGNALSTRENGTH = -1,AMTUNER_NOSIGNAL = 0,AMTUNER_SIGNALPRESENT = 1
11966   } AMTunerSignalStrength;
11967 
11968   typedef enum tagAMTunerModeType {
11969     AMTUNER_MODE_DEFAULT = 0,AMTUNER_MODE_TV = 0x1,AMTUNER_MODE_FM_RADIO = 0x2,AMTUNER_MODE_AM_RADIO = 0x4,AMTUNER_MODE_DSS = 0x8
11970   } AMTunerModeType;
11971 
11972   typedef enum tagAMTunerEventType {
11973     AMTUNER_EVENT_CHANGED = 0x1
11974   } AMTunerEventType;
11975 
11976   extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_c_ifspec;
11977   extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_s_ifspec;
11978 #ifndef __IAMTuner_INTERFACE_DEFINED__
11979 #define __IAMTuner_INTERFACE_DEFINED__
11980   EXTERN_C const IID IID_IAMTuner;
11981 #if defined(__cplusplus) && !defined(CINTERFACE)
11982   struct IAMTuner : public IUnknown {
11983   public:
11984     virtual HRESULT WINAPI put_Channel(LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel) = 0;
11985     virtual HRESULT WINAPI get_Channel(LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel) = 0;
11986     virtual HRESULT WINAPI ChannelMinMax(LONG *lChannelMin,LONG *lChannelMax) = 0;
11987     virtual HRESULT WINAPI put_CountryCode(LONG lCountryCode) = 0;
11988     virtual HRESULT WINAPI get_CountryCode(LONG *plCountryCode) = 0;
11989     virtual HRESULT WINAPI put_TuningSpace(LONG lTuningSpace) = 0;
11990     virtual HRESULT WINAPI get_TuningSpace(LONG *plTuningSpace) = 0;
11991     virtual HRESULT WINAPI Logon(HANDLE hCurrentUser) = 0;
11992     virtual HRESULT WINAPI Logout(void) = 0;
11993     virtual HRESULT WINAPI SignalPresent(LONG *plSignalStrength) = 0;
11994     virtual HRESULT WINAPI put_Mode(AMTunerModeType lMode) = 0;
11995     virtual HRESULT WINAPI get_Mode(AMTunerModeType *plMode) = 0;
11996     virtual HRESULT WINAPI GetAvailableModes(LONG *plModes) = 0;
11997     virtual HRESULT WINAPI RegisterNotificationCallBack(IAMTunerNotification *pNotify,LONG lEvents) = 0;
11998     virtual HRESULT WINAPI UnRegisterNotificationCallBack(IAMTunerNotification *pNotify) = 0;
11999   };
12000 #else
12001   typedef struct IAMTunerVtbl {
12002     BEGIN_INTERFACE
12003       HRESULT (WINAPI *QueryInterface)(IAMTuner *This,REFIID riid,void **ppvObject);
12004       ULONG (WINAPI *AddRef)(IAMTuner *This);
12005       ULONG (WINAPI *Release)(IAMTuner *This);
12006       HRESULT (WINAPI *put_Channel)(IAMTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
12007       HRESULT (WINAPI *get_Channel)(IAMTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
12008       HRESULT (WINAPI *ChannelMinMax)(IAMTuner *This,LONG *lChannelMin,LONG *lChannelMax);
12009       HRESULT (WINAPI *put_CountryCode)(IAMTuner *This,LONG lCountryCode);
12010       HRESULT (WINAPI *get_CountryCode)(IAMTuner *This,LONG *plCountryCode);
12011       HRESULT (WINAPI *put_TuningSpace)(IAMTuner *This,LONG lTuningSpace);
12012       HRESULT (WINAPI *get_TuningSpace)(IAMTuner *This,LONG *plTuningSpace);
12013       HRESULT (WINAPI *Logon)(IAMTuner *This,HANDLE hCurrentUser);
12014       HRESULT (WINAPI *Logout)(IAMTuner *This);
12015       HRESULT (WINAPI *SignalPresent)(IAMTuner *This,LONG *plSignalStrength);
12016       HRESULT (WINAPI *put_Mode)(IAMTuner *This,AMTunerModeType lMode);
12017       HRESULT (WINAPI *get_Mode)(IAMTuner *This,AMTunerModeType *plMode);
12018       HRESULT (WINAPI *GetAvailableModes)(IAMTuner *This,LONG *plModes);
12019       HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
12020       HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify);
12021     END_INTERFACE
12022   } IAMTunerVtbl;
12023   struct IAMTuner {
12024     CONST_VTBL struct IAMTunerVtbl *lpVtbl;
12025   };
12026 #ifdef COBJMACROS
12027 #define IAMTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12028 #define IAMTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
12029 #define IAMTuner_Release(This) (This)->lpVtbl->Release(This)
12030 #define IAMTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
12031 #define IAMTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
12032 #define IAMTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
12033 #define IAMTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
12034 #define IAMTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
12035 #define IAMTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
12036 #define IAMTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
12037 #define IAMTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
12038 #define IAMTuner_Logout(This) (This)->lpVtbl->Logout(This)
12039 #define IAMTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
12040 #define IAMTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
12041 #define IAMTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
12042 #define IAMTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
12043 #define IAMTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
12044 #define IAMTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
12045 #endif
12046 #endif
12047   HRESULT WINAPI IAMTuner_put_Channel_Proxy(IAMTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
12048   void __RPC_STUB IAMTuner_put_Channel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12049   HRESULT WINAPI IAMTuner_get_Channel_Proxy(IAMTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
12050   void __RPC_STUB IAMTuner_get_Channel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12051   HRESULT WINAPI IAMTuner_ChannelMinMax_Proxy(IAMTuner *This,LONG *lChannelMin,LONG *lChannelMax);
12052   void __RPC_STUB IAMTuner_ChannelMinMax_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12053   HRESULT WINAPI IAMTuner_put_CountryCode_Proxy(IAMTuner *This,LONG lCountryCode);
12054   void __RPC_STUB IAMTuner_put_CountryCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12055   HRESULT WINAPI IAMTuner_get_CountryCode_Proxy(IAMTuner *This,LONG *plCountryCode);
12056   void __RPC_STUB IAMTuner_get_CountryCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12057   HRESULT WINAPI IAMTuner_put_TuningSpace_Proxy(IAMTuner *This,LONG lTuningSpace);
12058   void __RPC_STUB IAMTuner_put_TuningSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12059   HRESULT WINAPI IAMTuner_get_TuningSpace_Proxy(IAMTuner *This,LONG *plTuningSpace);
12060   void __RPC_STUB IAMTuner_get_TuningSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12061   HRESULT WINAPI IAMTuner_Logon_Proxy(IAMTuner *This,HANDLE hCurrentUser);
12062   void __RPC_STUB IAMTuner_Logon_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12063   HRESULT WINAPI IAMTuner_Logout_Proxy(IAMTuner *This);
12064   void __RPC_STUB IAMTuner_Logout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12065   HRESULT WINAPI IAMTuner_SignalPresent_Proxy(IAMTuner *This,LONG *plSignalStrength);
12066   void __RPC_STUB IAMTuner_SignalPresent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12067   HRESULT WINAPI IAMTuner_put_Mode_Proxy(IAMTuner *This,AMTunerModeType lMode);
12068   void __RPC_STUB IAMTuner_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12069   HRESULT WINAPI IAMTuner_get_Mode_Proxy(IAMTuner *This,AMTunerModeType *plMode);
12070   void __RPC_STUB IAMTuner_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12071   HRESULT WINAPI IAMTuner_GetAvailableModes_Proxy(IAMTuner *This,LONG *plModes);
12072   void __RPC_STUB IAMTuner_GetAvailableModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12073   HRESULT WINAPI IAMTuner_RegisterNotificationCallBack_Proxy(IAMTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
12074   void __RPC_STUB IAMTuner_RegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12075   HRESULT WINAPI IAMTuner_UnRegisterNotificationCallBack_Proxy(IAMTuner *This,IAMTunerNotification *pNotify);
12076   void __RPC_STUB IAMTuner_UnRegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12077 #endif
12078 
12079 #ifndef __IAMTunerNotification_INTERFACE_DEFINED__
12080 #define __IAMTunerNotification_INTERFACE_DEFINED__
12081   EXTERN_C const IID IID_IAMTunerNotification;
12082 #if defined(__cplusplus) && !defined(CINTERFACE)
12083   struct IAMTunerNotification : public IUnknown {
12084   public:
12085     virtual HRESULT WINAPI OnEvent(AMTunerEventType Event) = 0;
12086   };
12087 #else
12088   typedef struct IAMTunerNotificationVtbl {
12089     BEGIN_INTERFACE
12090       HRESULT (WINAPI *QueryInterface)(IAMTunerNotification *This,REFIID riid,void **ppvObject);
12091       ULONG (WINAPI *AddRef)(IAMTunerNotification *This);
12092       ULONG (WINAPI *Release)(IAMTunerNotification *This);
12093       HRESULT (WINAPI *OnEvent)(IAMTunerNotification *This,AMTunerEventType Event);
12094     END_INTERFACE
12095   } IAMTunerNotificationVtbl;
12096   struct IAMTunerNotification {
12097     CONST_VTBL struct IAMTunerNotificationVtbl *lpVtbl;
12098   };
12099 #ifdef COBJMACROS
12100 #define IAMTunerNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12101 #define IAMTunerNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
12102 #define IAMTunerNotification_Release(This) (This)->lpVtbl->Release(This)
12103 #define IAMTunerNotification_OnEvent(This,Event) (This)->lpVtbl->OnEvent(This,Event)
12104 #endif
12105 #endif
12106   HRESULT WINAPI IAMTunerNotification_OnEvent_Proxy(IAMTunerNotification *This,AMTunerEventType Event);
12107   void __RPC_STUB IAMTunerNotification_OnEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12108 #endif
12109 
12110 #ifndef __IAMTVTuner_INTERFACE_DEFINED__
12111 #define __IAMTVTuner_INTERFACE_DEFINED__
12112   EXTERN_C const IID IID_IAMTVTuner;
12113 #if defined(__cplusplus) && !defined(CINTERFACE)
12114   struct IAMTVTuner : public IAMTuner {
12115   public:
12116     virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
12117     virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
12118     virtual HRESULT WINAPI AutoTune(LONG lChannel,LONG *plFoundSignal) = 0;
12119     virtual HRESULT WINAPI StoreAutoTune(void) = 0;
12120     virtual HRESULT WINAPI get_NumInputConnections(LONG *plNumInputConnections) = 0;
12121     virtual HRESULT WINAPI put_InputType(LONG lIndex,TunerInputType InputType) = 0;
12122     virtual HRESULT WINAPI get_InputType(LONG lIndex,TunerInputType *pInputType) = 0;
12123     virtual HRESULT WINAPI put_ConnectInput(LONG lIndex) = 0;
12124     virtual HRESULT WINAPI get_ConnectInput(LONG *plIndex) = 0;
12125     virtual HRESULT WINAPI get_VideoFrequency(LONG *lFreq) = 0;
12126     virtual HRESULT WINAPI get_AudioFrequency(LONG *lFreq) = 0;
12127   };
12128 #else
12129   typedef struct IAMTVTunerVtbl {
12130     BEGIN_INTERFACE
12131       HRESULT (WINAPI *QueryInterface)(IAMTVTuner *This,REFIID riid,void **ppvObject);
12132       ULONG (WINAPI *AddRef)(IAMTVTuner *This);
12133       ULONG (WINAPI *Release)(IAMTVTuner *This);
12134       HRESULT (WINAPI *put_Channel)(IAMTVTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
12135       HRESULT (WINAPI *get_Channel)(IAMTVTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
12136       HRESULT (WINAPI *ChannelMinMax)(IAMTVTuner *This,LONG *lChannelMin,LONG *lChannelMax);
12137       HRESULT (WINAPI *put_CountryCode)(IAMTVTuner *This,LONG lCountryCode);
12138       HRESULT (WINAPI *get_CountryCode)(IAMTVTuner *This,LONG *plCountryCode);
12139       HRESULT (WINAPI *put_TuningSpace)(IAMTVTuner *This,LONG lTuningSpace);
12140       HRESULT (WINAPI *get_TuningSpace)(IAMTVTuner *This,LONG *plTuningSpace);
12141       HRESULT (WINAPI *Logon)(IAMTVTuner *This,HANDLE hCurrentUser);
12142       HRESULT (WINAPI *Logout)(IAMTVTuner *This);
12143       HRESULT (WINAPI *SignalPresent)(IAMTVTuner *This,LONG *plSignalStrength);
12144       HRESULT (WINAPI *put_Mode)(IAMTVTuner *This,AMTunerModeType lMode);
12145       HRESULT (WINAPI *get_Mode)(IAMTVTuner *This,AMTunerModeType *plMode);
12146       HRESULT (WINAPI *GetAvailableModes)(IAMTVTuner *This,LONG *plModes);
12147       HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTVTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
12148       HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVTuner *This,IAMTunerNotification *pNotify);
12149       HRESULT (WINAPI *get_AvailableTVFormats)(IAMTVTuner *This,LONG *lAnalogVideoStandard);
12150       HRESULT (WINAPI *get_TVFormat)(IAMTVTuner *This,LONG *plAnalogVideoStandard);
12151       HRESULT (WINAPI *AutoTune)(IAMTVTuner *This,LONG lChannel,LONG *plFoundSignal);
12152       HRESULT (WINAPI *StoreAutoTune)(IAMTVTuner *This);
12153       HRESULT (WINAPI *get_NumInputConnections)(IAMTVTuner *This,LONG *plNumInputConnections);
12154       HRESULT (WINAPI *put_InputType)(IAMTVTuner *This,LONG lIndex,TunerInputType InputType);
12155       HRESULT (WINAPI *get_InputType)(IAMTVTuner *This,LONG lIndex,TunerInputType *pInputType);
12156       HRESULT (WINAPI *put_ConnectInput)(IAMTVTuner *This,LONG lIndex);
12157       HRESULT (WINAPI *get_ConnectInput)(IAMTVTuner *This,LONG *plIndex);
12158       HRESULT (WINAPI *get_VideoFrequency)(IAMTVTuner *This,LONG *lFreq);
12159       HRESULT (WINAPI *get_AudioFrequency)(IAMTVTuner *This,LONG *lFreq);
12160     END_INTERFACE
12161   } IAMTVTunerVtbl;
12162   struct IAMTVTuner {
12163     CONST_VTBL struct IAMTVTunerVtbl *lpVtbl;
12164   };
12165 #ifdef COBJMACROS
12166 #define IAMTVTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12167 #define IAMTVTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
12168 #define IAMTVTuner_Release(This) (This)->lpVtbl->Release(This)
12169 #define IAMTVTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
12170 #define IAMTVTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
12171 #define IAMTVTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
12172 #define IAMTVTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
12173 #define IAMTVTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
12174 #define IAMTVTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
12175 #define IAMTVTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
12176 #define IAMTVTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
12177 #define IAMTVTuner_Logout(This) (This)->lpVtbl->Logout(This)
12178 #define IAMTVTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
12179 #define IAMTVTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
12180 #define IAMTVTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
12181 #define IAMTVTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
12182 #define IAMTVTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
12183 #define IAMTVTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
12184 #define IAMTVTuner_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
12185 #define IAMTVTuner_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
12186 #define IAMTVTuner_AutoTune(This,lChannel,plFoundSignal) (This)->lpVtbl->AutoTune(This,lChannel,plFoundSignal)
12187 #define IAMTVTuner_StoreAutoTune(This) (This)->lpVtbl->StoreAutoTune(This)
12188 #define IAMTVTuner_get_NumInputConnections(This,plNumInputConnections) (This)->lpVtbl->get_NumInputConnections(This,plNumInputConnections)
12189 #define IAMTVTuner_put_InputType(This,lIndex,InputType) (This)->lpVtbl->put_InputType(This,lIndex,InputType)
12190 #define IAMTVTuner_get_InputType(This,lIndex,pInputType) (This)->lpVtbl->get_InputType(This,lIndex,pInputType)
12191 #define IAMTVTuner_put_ConnectInput(This,lIndex) (This)->lpVtbl->put_ConnectInput(This,lIndex)
12192 #define IAMTVTuner_get_ConnectInput(This,plIndex) (This)->lpVtbl->get_ConnectInput(This,plIndex)
12193 #define IAMTVTuner_get_VideoFrequency(This,lFreq) (This)->lpVtbl->get_VideoFrequency(This,lFreq)
12194 #define IAMTVTuner_get_AudioFrequency(This,lFreq) (This)->lpVtbl->get_AudioFrequency(This,lFreq)
12195 #endif
12196 #endif
12197   HRESULT WINAPI IAMTVTuner_get_AvailableTVFormats_Proxy(IAMTVTuner *This,LONG *lAnalogVideoStandard);
12198   void __RPC_STUB IAMTVTuner_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12199   HRESULT WINAPI IAMTVTuner_get_TVFormat_Proxy(IAMTVTuner *This,LONG *plAnalogVideoStandard);
12200   void __RPC_STUB IAMTVTuner_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12201   HRESULT WINAPI IAMTVTuner_AutoTune_Proxy(IAMTVTuner *This,LONG lChannel,LONG *plFoundSignal);
12202   void __RPC_STUB IAMTVTuner_AutoTune_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12203   HRESULT WINAPI IAMTVTuner_StoreAutoTune_Proxy(IAMTVTuner *This);
12204   void __RPC_STUB IAMTVTuner_StoreAutoTune_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12205   HRESULT WINAPI IAMTVTuner_get_NumInputConnections_Proxy(IAMTVTuner *This,LONG *plNumInputConnections);
12206   void __RPC_STUB IAMTVTuner_get_NumInputConnections_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12207   HRESULT WINAPI IAMTVTuner_put_InputType_Proxy(IAMTVTuner *This,LONG lIndex,TunerInputType InputType);
12208   void __RPC_STUB IAMTVTuner_put_InputType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12209   HRESULT WINAPI IAMTVTuner_get_InputType_Proxy(IAMTVTuner *This,LONG lIndex,TunerInputType *pInputType);
12210   void __RPC_STUB IAMTVTuner_get_InputType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12211   HRESULT WINAPI IAMTVTuner_put_ConnectInput_Proxy(IAMTVTuner *This,LONG lIndex);
12212   void __RPC_STUB IAMTVTuner_put_ConnectInput_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12213   HRESULT WINAPI IAMTVTuner_get_ConnectInput_Proxy(IAMTVTuner *This,LONG *plIndex);
12214   void __RPC_STUB IAMTVTuner_get_ConnectInput_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12215   HRESULT WINAPI IAMTVTuner_get_VideoFrequency_Proxy(IAMTVTuner *This,LONG *lFreq);
12216   void __RPC_STUB IAMTVTuner_get_VideoFrequency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12217   HRESULT WINAPI IAMTVTuner_get_AudioFrequency_Proxy(IAMTVTuner *This,LONG *lFreq);
12218   void __RPC_STUB IAMTVTuner_get_AudioFrequency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12219 #endif
12220 
12221 #ifndef __IBPCSatelliteTuner_INTERFACE_DEFINED__
12222 #define __IBPCSatelliteTuner_INTERFACE_DEFINED__
12223   EXTERN_C const IID IID_IBPCSatelliteTuner;
12224 #if defined(__cplusplus) && !defined(CINTERFACE)
12225   struct IBPCSatelliteTuner : public IAMTuner {
12226   public:
12227     virtual HRESULT WINAPI get_DefaultSubChannelTypes(LONG *plDefaultVideoType,LONG *plDefaultAudioType) = 0;
12228     virtual HRESULT WINAPI put_DefaultSubChannelTypes(LONG lDefaultVideoType,LONG lDefaultAudioType) = 0;
12229     virtual HRESULT WINAPI IsTapingPermitted(void) = 0;
12230   };
12231 #else
12232   typedef struct IBPCSatelliteTunerVtbl {
12233     BEGIN_INTERFACE
12234       HRESULT (WINAPI *QueryInterface)(IBPCSatelliteTuner *This,REFIID riid,void **ppvObject);
12235       ULONG (WINAPI *AddRef)(IBPCSatelliteTuner *This);
12236       ULONG (WINAPI *Release)(IBPCSatelliteTuner *This);
12237       HRESULT (WINAPI *put_Channel)(IBPCSatelliteTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
12238       HRESULT (WINAPI *get_Channel)(IBPCSatelliteTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
12239       HRESULT (WINAPI *ChannelMinMax)(IBPCSatelliteTuner *This,LONG *lChannelMin,LONG *lChannelMax);
12240       HRESULT (WINAPI *put_CountryCode)(IBPCSatelliteTuner *This,LONG lCountryCode);
12241       HRESULT (WINAPI *get_CountryCode)(IBPCSatelliteTuner *This,LONG *plCountryCode);
12242       HRESULT (WINAPI *put_TuningSpace)(IBPCSatelliteTuner *This,LONG lTuningSpace);
12243       HRESULT (WINAPI *get_TuningSpace)(IBPCSatelliteTuner *This,LONG *plTuningSpace);
12244       HRESULT (WINAPI *Logon)(IBPCSatelliteTuner *This,HANDLE hCurrentUser);
12245       HRESULT (WINAPI *Logout)(IBPCSatelliteTuner *This);
12246       HRESULT (WINAPI *SignalPresent)(IBPCSatelliteTuner *This,LONG *plSignalStrength);
12247       HRESULT (WINAPI *put_Mode)(IBPCSatelliteTuner *This,AMTunerModeType lMode);
12248       HRESULT (WINAPI *get_Mode)(IBPCSatelliteTuner *This,AMTunerModeType *plMode);
12249       HRESULT (WINAPI *GetAvailableModes)(IBPCSatelliteTuner *This,LONG *plModes);
12250       HRESULT (WINAPI *RegisterNotificationCallBack)(IBPCSatelliteTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
12251       HRESULT (WINAPI *UnRegisterNotificationCallBack)(IBPCSatelliteTuner *This,IAMTunerNotification *pNotify);
12252       HRESULT (WINAPI *get_DefaultSubChannelTypes)(IBPCSatelliteTuner *This,LONG *plDefaultVideoType,LONG *plDefaultAudioType);
12253       HRESULT (WINAPI *put_DefaultSubChannelTypes)(IBPCSatelliteTuner *This,LONG lDefaultVideoType,LONG lDefaultAudioType);
12254       HRESULT (WINAPI *IsTapingPermitted)(IBPCSatelliteTuner *This);
12255     END_INTERFACE
12256   } IBPCSatelliteTunerVtbl;
12257   struct IBPCSatelliteTuner {
12258     CONST_VTBL struct IBPCSatelliteTunerVtbl *lpVtbl;
12259   };
12260 #ifdef COBJMACROS
12261 #define IBPCSatelliteTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12262 #define IBPCSatelliteTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
12263 #define IBPCSatelliteTuner_Release(This) (This)->lpVtbl->Release(This)
12264 #define IBPCSatelliteTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
12265 #define IBPCSatelliteTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
12266 #define IBPCSatelliteTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
12267 #define IBPCSatelliteTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
12268 #define IBPCSatelliteTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
12269 #define IBPCSatelliteTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
12270 #define IBPCSatelliteTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
12271 #define IBPCSatelliteTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
12272 #define IBPCSatelliteTuner_Logout(This) (This)->lpVtbl->Logout(This)
12273 #define IBPCSatelliteTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
12274 #define IBPCSatelliteTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
12275 #define IBPCSatelliteTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
12276 #define IBPCSatelliteTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
12277 #define IBPCSatelliteTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
12278 #define IBPCSatelliteTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
12279 #define IBPCSatelliteTuner_get_DefaultSubChannelTypes(This,plDefaultVideoType,plDefaultAudioType) (This)->lpVtbl->get_DefaultSubChannelTypes(This,plDefaultVideoType,plDefaultAudioType)
12280 #define IBPCSatelliteTuner_put_DefaultSubChannelTypes(This,lDefaultVideoType,lDefaultAudioType) (This)->lpVtbl->put_DefaultSubChannelTypes(This,lDefaultVideoType,lDefaultAudioType)
12281 #define IBPCSatelliteTuner_IsTapingPermitted(This) (This)->lpVtbl->IsTapingPermitted(This)
12282 #endif
12283 #endif
12284   HRESULT WINAPI IBPCSatelliteTuner_get_DefaultSubChannelTypes_Proxy(IBPCSatelliteTuner *This,LONG *plDefaultVideoType,LONG *plDefaultAudioType);
12285   void __RPC_STUB IBPCSatelliteTuner_get_DefaultSubChannelTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12286   HRESULT WINAPI IBPCSatelliteTuner_put_DefaultSubChannelTypes_Proxy(IBPCSatelliteTuner *This,LONG lDefaultVideoType,LONG lDefaultAudioType);
12287   void __RPC_STUB IBPCSatelliteTuner_put_DefaultSubChannelTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12288   HRESULT WINAPI IBPCSatelliteTuner_IsTapingPermitted_Proxy(IBPCSatelliteTuner *This);
12289   void __RPC_STUB IBPCSatelliteTuner_IsTapingPermitted_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12290 #endif
12291 
12292   typedef enum tagAMTVAudioEventType {
12293     AMTVAUDIO_EVENT_CHANGED = 0x1
12294   } AMTVAudioEventType;
12295 
12296   extern RPC_IF_HANDLE __MIDL_itf_strmif_0182_v0_0_c_ifspec;
12297   extern RPC_IF_HANDLE __MIDL_itf_strmif_0182_v0_0_s_ifspec;
12298 #ifndef __IAMTVAudio_INTERFACE_DEFINED__
12299 #define __IAMTVAudio_INTERFACE_DEFINED__
12300   EXTERN_C const IID IID_IAMTVAudio;
12301 #if defined(__cplusplus) && !defined(CINTERFACE)
12302   struct IAMTVAudio : public IUnknown {
12303   public:
12304     virtual HRESULT WINAPI GetHardwareSupportedTVAudioModes(LONG *plModes) = 0;
12305     virtual HRESULT WINAPI GetAvailableTVAudioModes(LONG *plModes) = 0;
12306     virtual HRESULT WINAPI get_TVAudioMode(LONG *plMode) = 0;
12307     virtual HRESULT WINAPI put_TVAudioMode(LONG lMode) = 0;
12308     virtual HRESULT WINAPI RegisterNotificationCallBack(IAMTunerNotification *pNotify,LONG lEvents) = 0;
12309     virtual HRESULT WINAPI UnRegisterNotificationCallBack(IAMTunerNotification *pNotify) = 0;
12310   };
12311 #else
12312   typedef struct IAMTVAudioVtbl {
12313     BEGIN_INTERFACE
12314       HRESULT (WINAPI *QueryInterface)(IAMTVAudio *This,REFIID riid,void **ppvObject);
12315       ULONG (WINAPI *AddRef)(IAMTVAudio *This);
12316       ULONG (WINAPI *Release)(IAMTVAudio *This);
12317       HRESULT (WINAPI *GetHardwareSupportedTVAudioModes)(IAMTVAudio *This,LONG *plModes);
12318       HRESULT (WINAPI *GetAvailableTVAudioModes)(IAMTVAudio *This,LONG *plModes);
12319       HRESULT (WINAPI *get_TVAudioMode)(IAMTVAudio *This,LONG *plMode);
12320       HRESULT (WINAPI *put_TVAudioMode)(IAMTVAudio *This,LONG lMode);
12321       HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify,LONG lEvents);
12322       HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify);
12323     END_INTERFACE
12324   } IAMTVAudioVtbl;
12325   struct IAMTVAudio {
12326     CONST_VTBL struct IAMTVAudioVtbl *lpVtbl;
12327   };
12328 #ifdef COBJMACROS
12329 #define IAMTVAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12330 #define IAMTVAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
12331 #define IAMTVAudio_Release(This) (This)->lpVtbl->Release(This)
12332 #define IAMTVAudio_GetHardwareSupportedTVAudioModes(This,plModes) (This)->lpVtbl->GetHardwareSupportedTVAudioModes(This,plModes)
12333 #define IAMTVAudio_GetAvailableTVAudioModes(This,plModes) (This)->lpVtbl->GetAvailableTVAudioModes(This,plModes)
12334 #define IAMTVAudio_get_TVAudioMode(This,plMode) (This)->lpVtbl->get_TVAudioMode(This,plMode)
12335 #define IAMTVAudio_put_TVAudioMode(This,lMode) (This)->lpVtbl->put_TVAudioMode(This,lMode)
12336 #define IAMTVAudio_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
12337 #define IAMTVAudio_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
12338 #endif
12339 #endif
12340   HRESULT WINAPI IAMTVAudio_GetHardwareSupportedTVAudioModes_Proxy(IAMTVAudio *This,LONG *plModes);
12341   void __RPC_STUB IAMTVAudio_GetHardwareSupportedTVAudioModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12342   HRESULT WINAPI IAMTVAudio_GetAvailableTVAudioModes_Proxy(IAMTVAudio *This,LONG *plModes);
12343   void __RPC_STUB IAMTVAudio_GetAvailableTVAudioModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12344   HRESULT WINAPI IAMTVAudio_get_TVAudioMode_Proxy(IAMTVAudio *This,LONG *plMode);
12345   void __RPC_STUB IAMTVAudio_get_TVAudioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12346   HRESULT WINAPI IAMTVAudio_put_TVAudioMode_Proxy(IAMTVAudio *This,LONG lMode);
12347   void __RPC_STUB IAMTVAudio_put_TVAudioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12348   HRESULT WINAPI IAMTVAudio_RegisterNotificationCallBack_Proxy(IAMTVAudio *This,IAMTunerNotification *pNotify,LONG lEvents);
12349   void __RPC_STUB IAMTVAudio_RegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12350   HRESULT WINAPI IAMTVAudio_UnRegisterNotificationCallBack_Proxy(IAMTVAudio *This,IAMTunerNotification *pNotify);
12351   void __RPC_STUB IAMTVAudio_UnRegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12352 #endif
12353 
12354 #ifndef __IAMTVAudioNotification_INTERFACE_DEFINED__
12355 #define __IAMTVAudioNotification_INTERFACE_DEFINED__
12356   EXTERN_C const IID IID_IAMTVAudioNotification;
12357 #if defined(__cplusplus) && !defined(CINTERFACE)
12358   struct IAMTVAudioNotification : public IUnknown {
12359   public:
12360     virtual HRESULT WINAPI OnEvent(AMTVAudioEventType Event) = 0;
12361   };
12362 #else
12363   typedef struct IAMTVAudioNotificationVtbl {
12364     BEGIN_INTERFACE
12365       HRESULT (WINAPI *QueryInterface)(IAMTVAudioNotification *This,REFIID riid,void **ppvObject);
12366       ULONG (WINAPI *AddRef)(IAMTVAudioNotification *This);
12367       ULONG (WINAPI *Release)(IAMTVAudioNotification *This);
12368       HRESULT (WINAPI *OnEvent)(IAMTVAudioNotification *This,AMTVAudioEventType Event);
12369     END_INTERFACE
12370   } IAMTVAudioNotificationVtbl;
12371   struct IAMTVAudioNotification {
12372     CONST_VTBL struct IAMTVAudioNotificationVtbl *lpVtbl;
12373   };
12374 #ifdef COBJMACROS
12375 #define IAMTVAudioNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12376 #define IAMTVAudioNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
12377 #define IAMTVAudioNotification_Release(This) (This)->lpVtbl->Release(This)
12378 #define IAMTVAudioNotification_OnEvent(This,Event) (This)->lpVtbl->OnEvent(This,Event)
12379 #endif
12380 #endif
12381   HRESULT WINAPI IAMTVAudioNotification_OnEvent_Proxy(IAMTVAudioNotification *This,AMTVAudioEventType Event);
12382   void __RPC_STUB IAMTVAudioNotification_OnEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12383 #endif
12384 
12385 #ifndef __IAMAnalogVideoEncoder_INTERFACE_DEFINED__
12386 #define __IAMAnalogVideoEncoder_INTERFACE_DEFINED__
12387   EXTERN_C const IID IID_IAMAnalogVideoEncoder;
12388 #if defined(__cplusplus) && !defined(CINTERFACE)
12389   struct IAMAnalogVideoEncoder : public IUnknown {
12390   public:
12391     virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
12392     virtual HRESULT WINAPI put_TVFormat(LONG lAnalogVideoStandard) = 0;
12393     virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
12394     virtual HRESULT WINAPI put_CopyProtection(LONG lVideoCopyProtection) = 0;
12395     virtual HRESULT WINAPI get_CopyProtection(LONG *lVideoCopyProtection) = 0;
12396     virtual HRESULT WINAPI put_CCEnable(LONG lCCEnable) = 0;
12397     virtual HRESULT WINAPI get_CCEnable(LONG *lCCEnable) = 0;
12398   };
12399 #else
12400   typedef struct IAMAnalogVideoEncoderVtbl {
12401     BEGIN_INTERFACE
12402       HRESULT (WINAPI *QueryInterface)(IAMAnalogVideoEncoder *This,REFIID riid,void **ppvObject);
12403       ULONG (WINAPI *AddRef)(IAMAnalogVideoEncoder *This);
12404       ULONG (WINAPI *Release)(IAMAnalogVideoEncoder *This);
12405       HRESULT (WINAPI *get_AvailableTVFormats)(IAMAnalogVideoEncoder *This,LONG *lAnalogVideoStandard);
12406       HRESULT (WINAPI *put_TVFormat)(IAMAnalogVideoEncoder *This,LONG lAnalogVideoStandard);
12407       HRESULT (WINAPI *get_TVFormat)(IAMAnalogVideoEncoder *This,LONG *plAnalogVideoStandard);
12408       HRESULT (WINAPI *put_CopyProtection)(IAMAnalogVideoEncoder *This,LONG lVideoCopyProtection);
12409       HRESULT (WINAPI *get_CopyProtection)(IAMAnalogVideoEncoder *This,LONG *lVideoCopyProtection);
12410       HRESULT (WINAPI *put_CCEnable)(IAMAnalogVideoEncoder *This,LONG lCCEnable);
12411       HRESULT (WINAPI *get_CCEnable)(IAMAnalogVideoEncoder *This,LONG *lCCEnable);
12412     END_INTERFACE
12413   } IAMAnalogVideoEncoderVtbl;
12414   struct IAMAnalogVideoEncoder {
12415     CONST_VTBL struct IAMAnalogVideoEncoderVtbl *lpVtbl;
12416   };
12417 #ifdef COBJMACROS
12418 #define IAMAnalogVideoEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12419 #define IAMAnalogVideoEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
12420 #define IAMAnalogVideoEncoder_Release(This) (This)->lpVtbl->Release(This)
12421 #define IAMAnalogVideoEncoder_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
12422 #define IAMAnalogVideoEncoder_put_TVFormat(This,lAnalogVideoStandard) (This)->lpVtbl->put_TVFormat(This,lAnalogVideoStandard)
12423 #define IAMAnalogVideoEncoder_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
12424 #define IAMAnalogVideoEncoder_put_CopyProtection(This,lVideoCopyProtection) (This)->lpVtbl->put_CopyProtection(This,lVideoCopyProtection)
12425 #define IAMAnalogVideoEncoder_get_CopyProtection(This,lVideoCopyProtection) (This)->lpVtbl->get_CopyProtection(This,lVideoCopyProtection)
12426 #define IAMAnalogVideoEncoder_put_CCEnable(This,lCCEnable) (This)->lpVtbl->put_CCEnable(This,lCCEnable)
12427 #define IAMAnalogVideoEncoder_get_CCEnable(This,lCCEnable) (This)->lpVtbl->get_CCEnable(This,lCCEnable)
12428 #endif
12429 #endif
12430   HRESULT WINAPI IAMAnalogVideoEncoder_get_AvailableTVFormats_Proxy(IAMAnalogVideoEncoder *This,LONG *lAnalogVideoStandard);
12431   void __RPC_STUB IAMAnalogVideoEncoder_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12432   HRESULT WINAPI IAMAnalogVideoEncoder_put_TVFormat_Proxy(IAMAnalogVideoEncoder *This,LONG lAnalogVideoStandard);
12433   void __RPC_STUB IAMAnalogVideoEncoder_put_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12434   HRESULT WINAPI IAMAnalogVideoEncoder_get_TVFormat_Proxy(IAMAnalogVideoEncoder *This,LONG *plAnalogVideoStandard);
12435   void __RPC_STUB IAMAnalogVideoEncoder_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12436   HRESULT WINAPI IAMAnalogVideoEncoder_put_CopyProtection_Proxy(IAMAnalogVideoEncoder *This,LONG lVideoCopyProtection);
12437   void __RPC_STUB IAMAnalogVideoEncoder_put_CopyProtection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12438   HRESULT WINAPI IAMAnalogVideoEncoder_get_CopyProtection_Proxy(IAMAnalogVideoEncoder *This,LONG *lVideoCopyProtection);
12439   void __RPC_STUB IAMAnalogVideoEncoder_get_CopyProtection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12440   HRESULT WINAPI IAMAnalogVideoEncoder_put_CCEnable_Proxy(IAMAnalogVideoEncoder *This,LONG lCCEnable);
12441   void __RPC_STUB IAMAnalogVideoEncoder_put_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12442   HRESULT WINAPI IAMAnalogVideoEncoder_get_CCEnable_Proxy(IAMAnalogVideoEncoder *This,LONG *lCCEnable);
12443   void __RPC_STUB IAMAnalogVideoEncoder_get_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12444 #endif
12445 
12446   typedef enum __MIDL___MIDL_itf_strmif_0185_0001 {
12447     AMPROPERTY_PIN_CATEGORY = 0,AMPROPERTY_PIN_MEDIUM = AMPROPERTY_PIN_CATEGORY + 1
12448   } AMPROPERTY_PIN;
12449 
12450 #ifndef __IAMPhysicalPinInfo_INTERFACE_DEFINED__
12451 #define __IAMPhysicalPinInfo_INTERFACE_DEFINED__
12452   EXTERN_C const IID IID_IAMPhysicalPinInfo;
12453 #if defined(__cplusplus) && !defined(CINTERFACE)
12454   struct IAMPhysicalPinInfo : public IUnknown {
12455   public:
12456     virtual HRESULT WINAPI GetPhysicalType(LONG *pType,LPOLESTR *ppszType) = 0;
12457   };
12458 #else
12459   typedef struct IAMPhysicalPinInfoVtbl {
12460     BEGIN_INTERFACE
12461       HRESULT (WINAPI *QueryInterface)(IAMPhysicalPinInfo *This,REFIID riid,void **ppvObject);
12462       ULONG (WINAPI *AddRef)(IAMPhysicalPinInfo *This);
12463       ULONG (WINAPI *Release)(IAMPhysicalPinInfo *This);
12464       HRESULT (WINAPI *GetPhysicalType)(IAMPhysicalPinInfo *This,LONG *pType,LPOLESTR *ppszType);
12465     END_INTERFACE
12466   } IAMPhysicalPinInfoVtbl;
12467   struct IAMPhysicalPinInfo {
12468     CONST_VTBL struct IAMPhysicalPinInfoVtbl *lpVtbl;
12469   };
12470 #ifdef COBJMACROS
12471 #define IAMPhysicalPinInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12472 #define IAMPhysicalPinInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
12473 #define IAMPhysicalPinInfo_Release(This) (This)->lpVtbl->Release(This)
12474 #define IAMPhysicalPinInfo_GetPhysicalType(This,pType,ppszType) (This)->lpVtbl->GetPhysicalType(This,pType,ppszType)
12475 #endif
12476 #endif
12477   HRESULT WINAPI IAMPhysicalPinInfo_GetPhysicalType_Proxy(IAMPhysicalPinInfo *This,LONG *pType,LPOLESTR *ppszType);
12478   void __RPC_STUB IAMPhysicalPinInfo_GetPhysicalType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12479 #endif
12480 
12481   typedef IAMPhysicalPinInfo *PAMPHYSICALPININFO;
12482 
12483   extern RPC_IF_HANDLE __MIDL_itf_strmif_0338_v0_0_c_ifspec;
12484   extern RPC_IF_HANDLE __MIDL_itf_strmif_0338_v0_0_s_ifspec;
12485 #ifndef __IAMExtDevice_INTERFACE_DEFINED__
12486 #define __IAMExtDevice_INTERFACE_DEFINED__
12487   EXTERN_C const IID IID_IAMExtDevice;
12488 #if defined(__cplusplus) && !defined(CINTERFACE)
12489   struct IAMExtDevice : public IUnknown {
12490   public:
12491     virtual HRESULT WINAPI GetCapability(LONG Capability,LONG *pValue,double *pdblValue) = 0;
12492     virtual HRESULT WINAPI get_ExternalDeviceID(LPOLESTR *ppszData) = 0;
12493     virtual HRESULT WINAPI get_ExternalDeviceVersion(LPOLESTR *ppszData) = 0;
12494     virtual HRESULT WINAPI put_DevicePower(LONG PowerMode) = 0;
12495     virtual HRESULT WINAPI get_DevicePower(LONG *pPowerMode) = 0;
12496     virtual HRESULT WINAPI Calibrate(HEVENT hEvent,LONG Mode,LONG *pStatus) = 0;
12497     virtual HRESULT WINAPI put_DevicePort(LONG DevicePort) = 0;
12498     virtual HRESULT WINAPI get_DevicePort(LONG *pDevicePort) = 0;
12499   };
12500 #else
12501   typedef struct IAMExtDeviceVtbl {
12502     BEGIN_INTERFACE
12503       HRESULT (WINAPI *QueryInterface)(IAMExtDevice *This,REFIID riid,void **ppvObject);
12504       ULONG (WINAPI *AddRef)(IAMExtDevice *This);
12505       ULONG (WINAPI *Release)(IAMExtDevice *This);
12506       HRESULT (WINAPI *GetCapability)(IAMExtDevice *This,LONG Capability,LONG *pValue,double *pdblValue);
12507       HRESULT (WINAPI *get_ExternalDeviceID)(IAMExtDevice *This,LPOLESTR *ppszData);
12508       HRESULT (WINAPI *get_ExternalDeviceVersion)(IAMExtDevice *This,LPOLESTR *ppszData);
12509       HRESULT (WINAPI *put_DevicePower)(IAMExtDevice *This,LONG PowerMode);
12510       HRESULT (WINAPI *get_DevicePower)(IAMExtDevice *This,LONG *pPowerMode);
12511       HRESULT (WINAPI *Calibrate)(IAMExtDevice *This,HEVENT hEvent,LONG Mode,LONG *pStatus);
12512       HRESULT (WINAPI *put_DevicePort)(IAMExtDevice *This,LONG DevicePort);
12513       HRESULT (WINAPI *get_DevicePort)(IAMExtDevice *This,LONG *pDevicePort);
12514     END_INTERFACE
12515   } IAMExtDeviceVtbl;
12516   struct IAMExtDevice {
12517     CONST_VTBL struct IAMExtDeviceVtbl *lpVtbl;
12518   };
12519 #ifdef COBJMACROS
12520 #define IAMExtDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12521 #define IAMExtDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
12522 #define IAMExtDevice_Release(This) (This)->lpVtbl->Release(This)
12523 #define IAMExtDevice_GetCapability(This,Capability,pValue,pdblValue) (This)->lpVtbl->GetCapability(This,Capability,pValue,pdblValue)
12524 #define IAMExtDevice_get_ExternalDeviceID(This,ppszData) (This)->lpVtbl->get_ExternalDeviceID(This,ppszData)
12525 #define IAMExtDevice_get_ExternalDeviceVersion(This,ppszData) (This)->lpVtbl->get_ExternalDeviceVersion(This,ppszData)
12526 #define IAMExtDevice_put_DevicePower(This,PowerMode) (This)->lpVtbl->put_DevicePower(This,PowerMode)
12527 #define IAMExtDevice_get_DevicePower(This,pPowerMode) (This)->lpVtbl->get_DevicePower(This,pPowerMode)
12528 #define IAMExtDevice_Calibrate(This,hEvent,Mode,pStatus) (This)->lpVtbl->Calibrate(This,hEvent,Mode,pStatus)
12529 #define IAMExtDevice_put_DevicePort(This,DevicePort) (This)->lpVtbl->put_DevicePort(This,DevicePort)
12530 #define IAMExtDevice_get_DevicePort(This,pDevicePort) (This)->lpVtbl->get_DevicePort(This,pDevicePort)
12531 #endif
12532 #endif
12533   HRESULT WINAPI IAMExtDevice_GetCapability_Proxy(IAMExtDevice *This,LONG Capability,LONG *pValue,double *pdblValue);
12534   void __RPC_STUB IAMExtDevice_GetCapability_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12535   HRESULT WINAPI IAMExtDevice_get_ExternalDeviceID_Proxy(IAMExtDevice *This,LPOLESTR *ppszData);
12536   void __RPC_STUB IAMExtDevice_get_ExternalDeviceID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12537   HRESULT WINAPI IAMExtDevice_get_ExternalDeviceVersion_Proxy(IAMExtDevice *This,LPOLESTR *ppszData);
12538   void __RPC_STUB IAMExtDevice_get_ExternalDeviceVersion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12539   HRESULT WINAPI IAMExtDevice_put_DevicePower_Proxy(IAMExtDevice *This,LONG PowerMode);
12540   void __RPC_STUB IAMExtDevice_put_DevicePower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12541   HRESULT WINAPI IAMExtDevice_get_DevicePower_Proxy(IAMExtDevice *This,LONG *pPowerMode);
12542   void __RPC_STUB IAMExtDevice_get_DevicePower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12543   HRESULT WINAPI IAMExtDevice_Calibrate_Proxy(IAMExtDevice *This,HEVENT hEvent,LONG Mode,LONG *pStatus);
12544   void __RPC_STUB IAMExtDevice_Calibrate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12545   HRESULT WINAPI IAMExtDevice_put_DevicePort_Proxy(IAMExtDevice *This,LONG DevicePort);
12546   void __RPC_STUB IAMExtDevice_put_DevicePort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12547   HRESULT WINAPI IAMExtDevice_get_DevicePort_Proxy(IAMExtDevice *This,LONG *pDevicePort);
12548   void __RPC_STUB IAMExtDevice_get_DevicePort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12549 #endif
12550 
12551   typedef IAMExtDevice *PEXTDEVICE;
12552 
12553   extern RPC_IF_HANDLE __MIDL_itf_strmif_0339_v0_0_c_ifspec;
12554   extern RPC_IF_HANDLE __MIDL_itf_strmif_0339_v0_0_s_ifspec;
12555 #ifndef __IAMExtTransport_INTERFACE_DEFINED__
12556 #define __IAMExtTransport_INTERFACE_DEFINED__
12557   EXTERN_C const IID IID_IAMExtTransport;
12558 #if defined(__cplusplus) && !defined(CINTERFACE)
12559   struct IAMExtTransport : public IUnknown {
12560   public:
12561     virtual HRESULT WINAPI GetCapability(LONG Capability,LONG *pValue,double *pdblValue) = 0;
12562     virtual HRESULT WINAPI put_MediaState(LONG State) = 0;
12563     virtual HRESULT WINAPI get_MediaState(LONG *pState) = 0;
12564     virtual HRESULT WINAPI put_LocalControl(LONG State) = 0;
12565     virtual HRESULT WINAPI get_LocalControl(LONG *pState) = 0;
12566     virtual HRESULT WINAPI GetStatus(LONG StatusItem,LONG *pValue) = 0;
12567     virtual HRESULT WINAPI GetTransportBasicParameters(LONG Param,LONG *pValue,LPOLESTR *ppszData) = 0;
12568     virtual HRESULT WINAPI SetTransportBasicParameters(LONG Param,LONG Value,LPCOLESTR pszData) = 0;
12569     virtual HRESULT WINAPI GetTransportVideoParameters(LONG Param,LONG *pValue) = 0;
12570     virtual HRESULT WINAPI SetTransportVideoParameters(LONG Param,LONG Value) = 0;
12571     virtual HRESULT WINAPI GetTransportAudioParameters(LONG Param,LONG *pValue) = 0;
12572     virtual HRESULT WINAPI SetTransportAudioParameters(LONG Param,LONG Value) = 0;
12573     virtual HRESULT WINAPI put_Mode(LONG Mode) = 0;
12574     virtual HRESULT WINAPI get_Mode(LONG *pMode) = 0;
12575     virtual HRESULT WINAPI put_Rate(double dblRate) = 0;
12576     virtual HRESULT WINAPI get_Rate(double *pdblRate) = 0;
12577     virtual HRESULT WINAPI GetChase(LONG *pEnabled,LONG *pOffset,HEVENT *phEvent) = 0;
12578     virtual HRESULT WINAPI SetChase(LONG Enable,LONG Offset,HEVENT hEvent) = 0;
12579     virtual HRESULT WINAPI GetBump(LONG *pSpeed,LONG *pDuration) = 0;
12580     virtual HRESULT WINAPI SetBump(LONG Speed,LONG Duration) = 0;
12581     virtual HRESULT WINAPI get_AntiClogControl(LONG *pEnabled) = 0;
12582     virtual HRESULT WINAPI put_AntiClogControl(LONG Enable) = 0;
12583     virtual HRESULT WINAPI GetEditPropertySet(LONG EditID,LONG *pState) = 0;
12584     virtual HRESULT WINAPI SetEditPropertySet(LONG *pEditID,LONG State) = 0;
12585     virtual HRESULT WINAPI GetEditProperty(LONG EditID,LONG Param,LONG *pValue) = 0;
12586     virtual HRESULT WINAPI SetEditProperty(LONG EditID,LONG Param,LONG Value) = 0;
12587     virtual HRESULT WINAPI get_EditStart(LONG *pValue) = 0;
12588     virtual HRESULT WINAPI put_EditStart(LONG Value) = 0;
12589   };
12590 #else
12591   typedef struct IAMExtTransportVtbl {
12592     BEGIN_INTERFACE
12593       HRESULT (WINAPI *QueryInterface)(IAMExtTransport *This,REFIID riid,void **ppvObject);
12594       ULONG (WINAPI *AddRef)(IAMExtTransport *This);
12595       ULONG (WINAPI *Release)(IAMExtTransport *This);
12596       HRESULT (WINAPI *GetCapability)(IAMExtTransport *This,LONG Capability,LONG *pValue,double *pdblValue);
12597       HRESULT (WINAPI *put_MediaState)(IAMExtTransport *This,LONG State);
12598       HRESULT (WINAPI *get_MediaState)(IAMExtTransport *This,LONG *pState);
12599       HRESULT (WINAPI *put_LocalControl)(IAMExtTransport *This,LONG State);
12600       HRESULT (WINAPI *get_LocalControl)(IAMExtTransport *This,LONG *pState);
12601       HRESULT (WINAPI *GetStatus)(IAMExtTransport *This,LONG StatusItem,LONG *pValue);
12602       HRESULT (WINAPI *GetTransportBasicParameters)(IAMExtTransport *This,LONG Param,LONG *pValue,LPOLESTR *ppszData);
12603       HRESULT (WINAPI *SetTransportBasicParameters)(IAMExtTransport *This,LONG Param,LONG Value,LPCOLESTR pszData);
12604       HRESULT (WINAPI *GetTransportVideoParameters)(IAMExtTransport *This,LONG Param,LONG *pValue);
12605       HRESULT (WINAPI *SetTransportVideoParameters)(IAMExtTransport *This,LONG Param,LONG Value);
12606       HRESULT (WINAPI *GetTransportAudioParameters)(IAMExtTransport *This,LONG Param,LONG *pValue);
12607       HRESULT (WINAPI *SetTransportAudioParameters)(IAMExtTransport *This,LONG Param,LONG Value);
12608       HRESULT (WINAPI *put_Mode)(IAMExtTransport *This,LONG Mode);
12609       HRESULT (WINAPI *get_Mode)(IAMExtTransport *This,LONG *pMode);
12610       HRESULT (WINAPI *put_Rate)(IAMExtTransport *This,double dblRate);
12611       HRESULT (WINAPI *get_Rate)(IAMExtTransport *This,double *pdblRate);
12612       HRESULT (WINAPI *GetChase)(IAMExtTransport *This,LONG *pEnabled,LONG *pOffset,HEVENT *phEvent);
12613       HRESULT (WINAPI *SetChase)(IAMExtTransport *This,LONG Enable,LONG Offset,HEVENT hEvent);
12614       HRESULT (WINAPI *GetBump)(IAMExtTransport *This,LONG *pSpeed,LONG *pDuration);
12615       HRESULT (WINAPI *SetBump)(IAMExtTransport *This,LONG Speed,LONG Duration);
12616       HRESULT (WINAPI *get_AntiClogControl)(IAMExtTransport *This,LONG *pEnabled);
12617       HRESULT (WINAPI *put_AntiClogControl)(IAMExtTransport *This,LONG Enable);
12618       HRESULT (WINAPI *GetEditPropertySet)(IAMExtTransport *This,LONG EditID,LONG *pState);
12619       HRESULT (WINAPI *SetEditPropertySet)(IAMExtTransport *This,LONG *pEditID,LONG State);
12620       HRESULT (WINAPI *GetEditProperty)(IAMExtTransport *This,LONG EditID,LONG Param,LONG *pValue);
12621       HRESULT (WINAPI *SetEditProperty)(IAMExtTransport *This,LONG EditID,LONG Param,LONG Value);
12622       HRESULT (WINAPI *get_EditStart)(IAMExtTransport *This,LONG *pValue);
12623       HRESULT (WINAPI *put_EditStart)(IAMExtTransport *This,LONG Value);
12624     END_INTERFACE
12625   } IAMExtTransportVtbl;
12626   struct IAMExtTransport {
12627     CONST_VTBL struct IAMExtTransportVtbl *lpVtbl;
12628   };
12629 #ifdef COBJMACROS
12630 #define IAMExtTransport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12631 #define IAMExtTransport_AddRef(This) (This)->lpVtbl->AddRef(This)
12632 #define IAMExtTransport_Release(This) (This)->lpVtbl->Release(This)
12633 #define IAMExtTransport_GetCapability(This,Capability,pValue,pdblValue) (This)->lpVtbl->GetCapability(This,Capability,pValue,pdblValue)
12634 #define IAMExtTransport_put_MediaState(This,State) (This)->lpVtbl->put_MediaState(This,State)
12635 #define IAMExtTransport_get_MediaState(This,pState) (This)->lpVtbl->get_MediaState(This,pState)
12636 #define IAMExtTransport_put_LocalControl(This,State) (This)->lpVtbl->put_LocalControl(This,State)
12637 #define IAMExtTransport_get_LocalControl(This,pState) (This)->lpVtbl->get_LocalControl(This,pState)
12638 #define IAMExtTransport_GetStatus(This,StatusItem,pValue) (This)->lpVtbl->GetStatus(This,StatusItem,pValue)
12639 #define IAMExtTransport_GetTransportBasicParameters(This,Param,pValue,ppszData) (This)->lpVtbl->GetTransportBasicParameters(This,Param,pValue,ppszData)
12640 #define IAMExtTransport_SetTransportBasicParameters(This,Param,Value,pszData) (This)->lpVtbl->SetTransportBasicParameters(This,Param,Value,pszData)
12641 #define IAMExtTransport_GetTransportVideoParameters(This,Param,pValue) (This)->lpVtbl->GetTransportVideoParameters(This,Param,pValue)
12642 #define IAMExtTransport_SetTransportVideoParameters(This,Param,Value) (This)->lpVtbl->SetTransportVideoParameters(This,Param,Value)
12643 #define IAMExtTransport_GetTransportAudioParameters(This,Param,pValue) (This)->lpVtbl->GetTransportAudioParameters(This,Param,pValue)
12644 #define IAMExtTransport_SetTransportAudioParameters(This,Param,Value) (This)->lpVtbl->SetTransportAudioParameters(This,Param,Value)
12645 #define IAMExtTransport_put_Mode(This,Mode) (This)->lpVtbl->put_Mode(This,Mode)
12646 #define IAMExtTransport_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
12647 #define IAMExtTransport_put_Rate(This,dblRate) (This)->lpVtbl->put_Rate(This,dblRate)
12648 #define IAMExtTransport_get_Rate(This,pdblRate) (This)->lpVtbl->get_Rate(This,pdblRate)
12649 #define IAMExtTransport_GetChase(This,pEnabled,pOffset,phEvent) (This)->lpVtbl->GetChase(This,pEnabled,pOffset,phEvent)
12650 #define IAMExtTransport_SetChase(This,Enable,Offset,hEvent) (This)->lpVtbl->SetChase(This,Enable,Offset,hEvent)
12651 #define IAMExtTransport_GetBump(This,pSpeed,pDuration) (This)->lpVtbl->GetBump(This,pSpeed,pDuration)
12652 #define IAMExtTransport_SetBump(This,Speed,Duration) (This)->lpVtbl->SetBump(This,Speed,Duration)
12653 #define IAMExtTransport_get_AntiClogControl(This,pEnabled) (This)->lpVtbl->get_AntiClogControl(This,pEnabled)
12654 #define IAMExtTransport_put_AntiClogControl(This,Enable) (This)->lpVtbl->put_AntiClogControl(This,Enable)
12655 #define IAMExtTransport_GetEditPropertySet(This,EditID,pState) (This)->lpVtbl->GetEditPropertySet(This,EditID,pState)
12656 #define IAMExtTransport_SetEditPropertySet(This,pEditID,State) (This)->lpVtbl->SetEditPropertySet(This,pEditID,State)
12657 #define IAMExtTransport_GetEditProperty(This,EditID,Param,pValue) (This)->lpVtbl->GetEditProperty(This,EditID,Param,pValue)
12658 #define IAMExtTransport_SetEditProperty(This,EditID,Param,Value) (This)->lpVtbl->SetEditProperty(This,EditID,Param,Value)
12659 #define IAMExtTransport_get_EditStart(This,pValue) (This)->lpVtbl->get_EditStart(This,pValue)
12660 #define IAMExtTransport_put_EditStart(This,Value) (This)->lpVtbl->put_EditStart(This,Value)
12661 #endif
12662 #endif
12663   HRESULT WINAPI IAMExtTransport_GetCapability_Proxy(IAMExtTransport *This,LONG Capability,LONG *pValue,double *pdblValue);
12664   void __RPC_STUB IAMExtTransport_GetCapability_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12665   HRESULT WINAPI IAMExtTransport_put_MediaState_Proxy(IAMExtTransport *This,LONG State);
12666   void __RPC_STUB IAMExtTransport_put_MediaState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12667   HRESULT WINAPI IAMExtTransport_get_MediaState_Proxy(IAMExtTransport *This,LONG *pState);
12668   void __RPC_STUB IAMExtTransport_get_MediaState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12669   HRESULT WINAPI IAMExtTransport_put_LocalControl_Proxy(IAMExtTransport *This,LONG State);
12670   void __RPC_STUB IAMExtTransport_put_LocalControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12671   HRESULT WINAPI IAMExtTransport_get_LocalControl_Proxy(IAMExtTransport *This,LONG *pState);
12672   void __RPC_STUB IAMExtTransport_get_LocalControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12673   HRESULT WINAPI IAMExtTransport_GetStatus_Proxy(IAMExtTransport *This,LONG StatusItem,LONG *pValue);
12674   void __RPC_STUB IAMExtTransport_GetStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12675   HRESULT WINAPI IAMExtTransport_GetTransportBasicParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue,LPOLESTR *ppszData);
12676   void __RPC_STUB IAMExtTransport_GetTransportBasicParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12677   HRESULT WINAPI IAMExtTransport_SetTransportBasicParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value,LPCOLESTR pszData);
12678   void __RPC_STUB IAMExtTransport_SetTransportBasicParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12679   HRESULT WINAPI IAMExtTransport_GetTransportVideoParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue);
12680   void __RPC_STUB IAMExtTransport_GetTransportVideoParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12681   HRESULT WINAPI IAMExtTransport_SetTransportVideoParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value);
12682   void __RPC_STUB IAMExtTransport_SetTransportVideoParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12683   HRESULT WINAPI IAMExtTransport_GetTransportAudioParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue);
12684   void __RPC_STUB IAMExtTransport_GetTransportAudioParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12685   HRESULT WINAPI IAMExtTransport_SetTransportAudioParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value);
12686   void __RPC_STUB IAMExtTransport_SetTransportAudioParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12687   HRESULT WINAPI IAMExtTransport_put_Mode_Proxy(IAMExtTransport *This,LONG Mode);
12688   void __RPC_STUB IAMExtTransport_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12689   HRESULT WINAPI IAMExtTransport_get_Mode_Proxy(IAMExtTransport *This,LONG *pMode);
12690   void __RPC_STUB IAMExtTransport_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12691   HRESULT WINAPI IAMExtTransport_put_Rate_Proxy(IAMExtTransport *This,double dblRate);
12692   void __RPC_STUB IAMExtTransport_put_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12693   HRESULT WINAPI IAMExtTransport_get_Rate_Proxy(IAMExtTransport *This,double *pdblRate);
12694   void __RPC_STUB IAMExtTransport_get_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12695   HRESULT WINAPI IAMExtTransport_GetChase_Proxy(IAMExtTransport *This,LONG *pEnabled,LONG *pOffset,HEVENT *phEvent);
12696   void __RPC_STUB IAMExtTransport_GetChase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12697   HRESULT WINAPI IAMExtTransport_SetChase_Proxy(IAMExtTransport *This,LONG Enable,LONG Offset,HEVENT hEvent);
12698   void __RPC_STUB IAMExtTransport_SetChase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12699   HRESULT WINAPI IAMExtTransport_GetBump_Proxy(IAMExtTransport *This,LONG *pSpeed,LONG *pDuration);
12700   void __RPC_STUB IAMExtTransport_GetBump_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12701   HRESULT WINAPI IAMExtTransport_SetBump_Proxy(IAMExtTransport *This,LONG Speed,LONG Duration);
12702   void __RPC_STUB IAMExtTransport_SetBump_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12703   HRESULT WINAPI IAMExtTransport_get_AntiClogControl_Proxy(IAMExtTransport *This,LONG *pEnabled);
12704   void __RPC_STUB IAMExtTransport_get_AntiClogControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12705   HRESULT WINAPI IAMExtTransport_put_AntiClogControl_Proxy(IAMExtTransport *This,LONG Enable);
12706   void __RPC_STUB IAMExtTransport_put_AntiClogControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12707   HRESULT WINAPI IAMExtTransport_GetEditPropertySet_Proxy(IAMExtTransport *This,LONG EditID,LONG *pState);
12708   void __RPC_STUB IAMExtTransport_GetEditPropertySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12709   HRESULT WINAPI IAMExtTransport_SetEditPropertySet_Proxy(IAMExtTransport *This,LONG *pEditID,LONG State);
12710   void __RPC_STUB IAMExtTransport_SetEditPropertySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12711   HRESULT WINAPI IAMExtTransport_GetEditProperty_Proxy(IAMExtTransport *This,LONG EditID,LONG Param,LONG *pValue);
12712   void __RPC_STUB IAMExtTransport_GetEditProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12713   HRESULT WINAPI IAMExtTransport_SetEditProperty_Proxy(IAMExtTransport *This,LONG EditID,LONG Param,LONG Value);
12714   void __RPC_STUB IAMExtTransport_SetEditProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12715   HRESULT WINAPI IAMExtTransport_get_EditStart_Proxy(IAMExtTransport *This,LONG *pValue);
12716   void __RPC_STUB IAMExtTransport_get_EditStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12717   HRESULT WINAPI IAMExtTransport_put_EditStart_Proxy(IAMExtTransport *This,LONG Value);
12718   void __RPC_STUB IAMExtTransport_put_EditStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12719 #endif
12720 
12721   typedef IAMExtTransport *PIAMEXTTRANSPORT;
12722 
12723 #ifndef TIMECODE_DEFINED
12724 #define TIMECODE_DEFINED
12725   typedef union _timecode {
12726     __C89_NAMELESS struct {
12727       WORD wFrameRate;
12728       WORD wFrameFract;
12729       DWORD dwFrames;
12730     };
12731     DWORDLONG qw;
12732   } TIMECODE;
12733 #endif
12734 
12735   typedef TIMECODE *PTIMECODE;
12736 
12737   typedef struct tagTIMECODE_SAMPLE {
12738     LONGLONG qwTick;
12739     TIMECODE timecode;
12740     DWORD dwUser;
12741     DWORD dwFlags;
12742   } TIMECODE_SAMPLE;
12743 
12744   typedef TIMECODE_SAMPLE *PTIMECODE_SAMPLE;
12745 
12746   extern RPC_IF_HANDLE __MIDL_itf_strmif_0340_v0_0_c_ifspec;
12747   extern RPC_IF_HANDLE __MIDL_itf_strmif_0340_v0_0_s_ifspec;
12748 #ifndef __IAMTimecodeReader_INTERFACE_DEFINED__
12749 #define __IAMTimecodeReader_INTERFACE_DEFINED__
12750   EXTERN_C const IID IID_IAMTimecodeReader;
12751 #if defined(__cplusplus) && !defined(CINTERFACE)
12752   struct IAMTimecodeReader : public IUnknown {
12753   public:
12754     virtual HRESULT WINAPI GetTCRMode(LONG Param,LONG *pValue) = 0;
12755     virtual HRESULT WINAPI SetTCRMode(LONG Param,LONG Value) = 0;
12756     virtual HRESULT WINAPI put_VITCLine(LONG Line) = 0;
12757     virtual HRESULT WINAPI get_VITCLine(LONG *pLine) = 0;
12758     virtual HRESULT WINAPI GetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
12759   };
12760 #else
12761   typedef struct IAMTimecodeReaderVtbl {
12762     BEGIN_INTERFACE
12763       HRESULT (WINAPI *QueryInterface)(IAMTimecodeReader *This,REFIID riid,void **ppvObject);
12764       ULONG (WINAPI *AddRef)(IAMTimecodeReader *This);
12765       ULONG (WINAPI *Release)(IAMTimecodeReader *This);
12766       HRESULT (WINAPI *GetTCRMode)(IAMTimecodeReader *This,LONG Param,LONG *pValue);
12767       HRESULT (WINAPI *SetTCRMode)(IAMTimecodeReader *This,LONG Param,LONG Value);
12768       HRESULT (WINAPI *put_VITCLine)(IAMTimecodeReader *This,LONG Line);
12769       HRESULT (WINAPI *get_VITCLine)(IAMTimecodeReader *This,LONG *pLine);
12770       HRESULT (WINAPI *GetTimecode)(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
12771     END_INTERFACE
12772   } IAMTimecodeReaderVtbl;
12773   struct IAMTimecodeReader {
12774     CONST_VTBL struct IAMTimecodeReaderVtbl *lpVtbl;
12775   };
12776 #ifdef COBJMACROS
12777 #define IAMTimecodeReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12778 #define IAMTimecodeReader_AddRef(This) (This)->lpVtbl->AddRef(This)
12779 #define IAMTimecodeReader_Release(This) (This)->lpVtbl->Release(This)
12780 #define IAMTimecodeReader_GetTCRMode(This,Param,pValue) (This)->lpVtbl->GetTCRMode(This,Param,pValue)
12781 #define IAMTimecodeReader_SetTCRMode(This,Param,Value) (This)->lpVtbl->SetTCRMode(This,Param,Value)
12782 #define IAMTimecodeReader_put_VITCLine(This,Line) (This)->lpVtbl->put_VITCLine(This,Line)
12783 #define IAMTimecodeReader_get_VITCLine(This,pLine) (This)->lpVtbl->get_VITCLine(This,pLine)
12784 #define IAMTimecodeReader_GetTimecode(This,pTimecodeSample) (This)->lpVtbl->GetTimecode(This,pTimecodeSample)
12785 #endif
12786 #endif
12787   HRESULT WINAPI IAMTimecodeReader_GetTCRMode_Proxy(IAMTimecodeReader *This,LONG Param,LONG *pValue);
12788   void __RPC_STUB IAMTimecodeReader_GetTCRMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12789   HRESULT WINAPI IAMTimecodeReader_SetTCRMode_Proxy(IAMTimecodeReader *This,LONG Param,LONG Value);
12790   void __RPC_STUB IAMTimecodeReader_SetTCRMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12791   HRESULT WINAPI IAMTimecodeReader_put_VITCLine_Proxy(IAMTimecodeReader *This,LONG Line);
12792   void __RPC_STUB IAMTimecodeReader_put_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12793   HRESULT WINAPI IAMTimecodeReader_get_VITCLine_Proxy(IAMTimecodeReader *This,LONG *pLine);
12794   void __RPC_STUB IAMTimecodeReader_get_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12795   HRESULT WINAPI IAMTimecodeReader_GetTimecode_Proxy(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
12796   void __RPC_STUB IAMTimecodeReader_GetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12797 #endif
12798 
12799   typedef IAMTimecodeReader *PIAMTIMECODEREADER;
12800 
12801   extern RPC_IF_HANDLE __MIDL_itf_strmif_0341_v0_0_c_ifspec;
12802   extern RPC_IF_HANDLE __MIDL_itf_strmif_0341_v0_0_s_ifspec;
12803 #ifndef __IAMTimecodeGenerator_INTERFACE_DEFINED__
12804 #define __IAMTimecodeGenerator_INTERFACE_DEFINED__
12805   EXTERN_C const IID IID_IAMTimecodeGenerator;
12806 #if defined(__cplusplus) && !defined(CINTERFACE)
12807   struct IAMTimecodeGenerator : public IUnknown {
12808   public:
12809     virtual HRESULT WINAPI GetTCGMode(LONG Param,LONG *pValue) = 0;
12810     virtual HRESULT WINAPI SetTCGMode(LONG Param,LONG Value) = 0;
12811     virtual HRESULT WINAPI put_VITCLine(LONG Line) = 0;
12812     virtual HRESULT WINAPI get_VITCLine(LONG *pLine) = 0;
12813     virtual HRESULT WINAPI SetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
12814     virtual HRESULT WINAPI GetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
12815   };
12816 #else
12817   typedef struct IAMTimecodeGeneratorVtbl {
12818     BEGIN_INTERFACE
12819       HRESULT (WINAPI *QueryInterface)(IAMTimecodeGenerator *This,REFIID riid,void **ppvObject);
12820       ULONG (WINAPI *AddRef)(IAMTimecodeGenerator *This);
12821       ULONG (WINAPI *Release)(IAMTimecodeGenerator *This);
12822       HRESULT (WINAPI *GetTCGMode)(IAMTimecodeGenerator *This,LONG Param,LONG *pValue);
12823       HRESULT (WINAPI *SetTCGMode)(IAMTimecodeGenerator *This,LONG Param,LONG Value);
12824       HRESULT (WINAPI *put_VITCLine)(IAMTimecodeGenerator *This,LONG Line);
12825       HRESULT (WINAPI *get_VITCLine)(IAMTimecodeGenerator *This,LONG *pLine);
12826       HRESULT (WINAPI *SetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
12827       HRESULT (WINAPI *GetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
12828     END_INTERFACE
12829   } IAMTimecodeGeneratorVtbl;
12830   struct IAMTimecodeGenerator {
12831     CONST_VTBL struct IAMTimecodeGeneratorVtbl *lpVtbl;
12832   };
12833 #ifdef COBJMACROS
12834 #define IAMTimecodeGenerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12835 #define IAMTimecodeGenerator_AddRef(This) (This)->lpVtbl->AddRef(This)
12836 #define IAMTimecodeGenerator_Release(This) (This)->lpVtbl->Release(This)
12837 #define IAMTimecodeGenerator_GetTCGMode(This,Param,pValue) (This)->lpVtbl->GetTCGMode(This,Param,pValue)
12838 #define IAMTimecodeGenerator_SetTCGMode(This,Param,Value) (This)->lpVtbl->SetTCGMode(This,Param,Value)
12839 #define IAMTimecodeGenerator_put_VITCLine(This,Line) (This)->lpVtbl->put_VITCLine(This,Line)
12840 #define IAMTimecodeGenerator_get_VITCLine(This,pLine) (This)->lpVtbl->get_VITCLine(This,pLine)
12841 #define IAMTimecodeGenerator_SetTimecode(This,pTimecodeSample) (This)->lpVtbl->SetTimecode(This,pTimecodeSample)
12842 #define IAMTimecodeGenerator_GetTimecode(This,pTimecodeSample) (This)->lpVtbl->GetTimecode(This,pTimecodeSample)
12843 #endif
12844 #endif
12845   HRESULT WINAPI IAMTimecodeGenerator_GetTCGMode_Proxy(IAMTimecodeGenerator *This,LONG Param,LONG *pValue);
12846   void __RPC_STUB IAMTimecodeGenerator_GetTCGMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12847   HRESULT WINAPI IAMTimecodeGenerator_SetTCGMode_Proxy(IAMTimecodeGenerator *This,LONG Param,LONG Value);
12848   void __RPC_STUB IAMTimecodeGenerator_SetTCGMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12849   HRESULT WINAPI IAMTimecodeGenerator_put_VITCLine_Proxy(IAMTimecodeGenerator *This,LONG Line);
12850   void __RPC_STUB IAMTimecodeGenerator_put_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12851   HRESULT WINAPI IAMTimecodeGenerator_get_VITCLine_Proxy(IAMTimecodeGenerator *This,LONG *pLine);
12852   void __RPC_STUB IAMTimecodeGenerator_get_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12853   HRESULT WINAPI IAMTimecodeGenerator_SetTimecode_Proxy(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
12854   void __RPC_STUB IAMTimecodeGenerator_SetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12855   HRESULT WINAPI IAMTimecodeGenerator_GetTimecode_Proxy(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
12856   void __RPC_STUB IAMTimecodeGenerator_GetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12857 #endif
12858 
12859   typedef IAMTimecodeGenerator *PIAMTIMECODEGENERATOR;
12860 
12861   extern RPC_IF_HANDLE __MIDL_itf_strmif_0342_v0_0_c_ifspec;
12862   extern RPC_IF_HANDLE __MIDL_itf_strmif_0342_v0_0_s_ifspec;
12863 #ifndef __IAMTimecodeDisplay_INTERFACE_DEFINED__
12864 #define __IAMTimecodeDisplay_INTERFACE_DEFINED__
12865   EXTERN_C const IID IID_IAMTimecodeDisplay;
12866 #if defined(__cplusplus) && !defined(CINTERFACE)
12867   struct IAMTimecodeDisplay : public IUnknown {
12868   public:
12869     virtual HRESULT WINAPI GetTCDisplayEnable(LONG *pState) = 0;
12870     virtual HRESULT WINAPI SetTCDisplayEnable(LONG State) = 0;
12871     virtual HRESULT WINAPI GetTCDisplay(LONG Param,LONG *pValue) = 0;
12872     virtual HRESULT WINAPI SetTCDisplay(LONG Param,LONG Value) = 0;
12873   };
12874 #else
12875   typedef struct IAMTimecodeDisplayVtbl {
12876     BEGIN_INTERFACE
12877       HRESULT (WINAPI *QueryInterface)(IAMTimecodeDisplay *This,REFIID riid,void **ppvObject);
12878       ULONG (WINAPI *AddRef)(IAMTimecodeDisplay *This);
12879       ULONG (WINAPI *Release)(IAMTimecodeDisplay *This);
12880       HRESULT (WINAPI *GetTCDisplayEnable)(IAMTimecodeDisplay *This,LONG *pState);
12881       HRESULT (WINAPI *SetTCDisplayEnable)(IAMTimecodeDisplay *This,LONG State);
12882       HRESULT (WINAPI *GetTCDisplay)(IAMTimecodeDisplay *This,LONG Param,LONG *pValue);
12883       HRESULT (WINAPI *SetTCDisplay)(IAMTimecodeDisplay *This,LONG Param,LONG Value);
12884     END_INTERFACE
12885   } IAMTimecodeDisplayVtbl;
12886   struct IAMTimecodeDisplay {
12887     CONST_VTBL struct IAMTimecodeDisplayVtbl *lpVtbl;
12888   };
12889 #ifdef COBJMACROS
12890 #define IAMTimecodeDisplay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12891 #define IAMTimecodeDisplay_AddRef(This) (This)->lpVtbl->AddRef(This)
12892 #define IAMTimecodeDisplay_Release(This) (This)->lpVtbl->Release(This)
12893 #define IAMTimecodeDisplay_GetTCDisplayEnable(This,pState) (This)->lpVtbl->GetTCDisplayEnable(This,pState)
12894 #define IAMTimecodeDisplay_SetTCDisplayEnable(This,State) (This)->lpVtbl->SetTCDisplayEnable(This,State)
12895 #define IAMTimecodeDisplay_GetTCDisplay(This,Param,pValue) (This)->lpVtbl->GetTCDisplay(This,Param,pValue)
12896 #define IAMTimecodeDisplay_SetTCDisplay(This,Param,Value) (This)->lpVtbl->SetTCDisplay(This,Param,Value)
12897 #endif
12898 #endif
12899   HRESULT WINAPI IAMTimecodeDisplay_GetTCDisplayEnable_Proxy(IAMTimecodeDisplay *This,LONG *pState);
12900   void __RPC_STUB IAMTimecodeDisplay_GetTCDisplayEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12901   HRESULT WINAPI IAMTimecodeDisplay_SetTCDisplayEnable_Proxy(IAMTimecodeDisplay *This,LONG State);
12902   void __RPC_STUB IAMTimecodeDisplay_SetTCDisplayEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12903   HRESULT WINAPI IAMTimecodeDisplay_GetTCDisplay_Proxy(IAMTimecodeDisplay *This,LONG Param,LONG *pValue);
12904   void __RPC_STUB IAMTimecodeDisplay_GetTCDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12905   HRESULT WINAPI IAMTimecodeDisplay_SetTCDisplay_Proxy(IAMTimecodeDisplay *This,LONG Param,LONG Value);
12906   void __RPC_STUB IAMTimecodeDisplay_SetTCDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12907 #endif
12908 
12909   typedef IAMTimecodeDisplay *PIAMTIMECODEDISPLAY;
12910 
12911   extern RPC_IF_HANDLE __MIDL_itf_strmif_0343_v0_0_c_ifspec;
12912   extern RPC_IF_HANDLE __MIDL_itf_strmif_0343_v0_0_s_ifspec;
12913 #ifndef __IAMDevMemoryAllocator_INTERFACE_DEFINED__
12914 #define __IAMDevMemoryAllocator_INTERFACE_DEFINED__
12915   EXTERN_C const IID IID_IAMDevMemoryAllocator;
12916 #if defined(__cplusplus) && !defined(CINTERFACE)
12917   struct IAMDevMemoryAllocator : public IUnknown {
12918   public:
12919     virtual HRESULT WINAPI GetInfo(DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk) = 0;
12920     virtual HRESULT WINAPI CheckMemory(const BYTE *pBuffer) = 0;
12921     virtual HRESULT WINAPI Alloc(BYTE **ppBuffer,DWORD *pdwcbBuffer) = 0;
12922     virtual HRESULT WINAPI Free(BYTE *pBuffer) = 0;
12923     virtual HRESULT WINAPI GetDevMemoryObject(IUnknown **ppUnkInnner,IUnknown *pUnkOuter) = 0;
12924   };
12925 #else
12926   typedef struct IAMDevMemoryAllocatorVtbl {
12927     BEGIN_INTERFACE
12928       HRESULT (WINAPI *QueryInterface)(IAMDevMemoryAllocator *This,REFIID riid,void **ppvObject);
12929       ULONG (WINAPI *AddRef)(IAMDevMemoryAllocator *This);
12930       ULONG (WINAPI *Release)(IAMDevMemoryAllocator *This);
12931       HRESULT (WINAPI *GetInfo)(IAMDevMemoryAllocator *This,DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk);
12932       HRESULT (WINAPI *CheckMemory)(IAMDevMemoryAllocator *This,const BYTE *pBuffer);
12933       HRESULT (WINAPI *Alloc)(IAMDevMemoryAllocator *This,BYTE **ppBuffer,DWORD *pdwcbBuffer);
12934       HRESULT (WINAPI *Free)(IAMDevMemoryAllocator *This,BYTE *pBuffer);
12935       HRESULT (WINAPI *GetDevMemoryObject)(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
12936     END_INTERFACE
12937   } IAMDevMemoryAllocatorVtbl;
12938   struct IAMDevMemoryAllocator {
12939     CONST_VTBL struct IAMDevMemoryAllocatorVtbl *lpVtbl;
12940   };
12941 #ifdef COBJMACROS
12942 #define IAMDevMemoryAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12943 #define IAMDevMemoryAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
12944 #define IAMDevMemoryAllocator_Release(This) (This)->lpVtbl->Release(This)
12945 #define IAMDevMemoryAllocator_GetInfo(This,pdwcbTotalFree,pdwcbLargestFree,pdwcbTotalMemory,pdwcbMinimumChunk) (This)->lpVtbl->GetInfo(This,pdwcbTotalFree,pdwcbLargestFree,pdwcbTotalMemory,pdwcbMinimumChunk)
12946 #define IAMDevMemoryAllocator_CheckMemory(This,pBuffer) (This)->lpVtbl->CheckMemory(This,pBuffer)
12947 #define IAMDevMemoryAllocator_Alloc(This,ppBuffer,pdwcbBuffer) (This)->lpVtbl->Alloc(This,ppBuffer,pdwcbBuffer)
12948 #define IAMDevMemoryAllocator_Free(This,pBuffer) (This)->lpVtbl->Free(This,pBuffer)
12949 #define IAMDevMemoryAllocator_GetDevMemoryObject(This,ppUnkInnner,pUnkOuter) (This)->lpVtbl->GetDevMemoryObject(This,ppUnkInnner,pUnkOuter)
12950 #endif
12951 #endif
12952   HRESULT WINAPI IAMDevMemoryAllocator_GetInfo_Proxy(IAMDevMemoryAllocator *This,DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk);
12953   void __RPC_STUB IAMDevMemoryAllocator_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12954   HRESULT WINAPI IAMDevMemoryAllocator_CheckMemory_Proxy(IAMDevMemoryAllocator *This,const BYTE *pBuffer);
12955   void __RPC_STUB IAMDevMemoryAllocator_CheckMemory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12956   HRESULT WINAPI IAMDevMemoryAllocator_Alloc_Proxy(IAMDevMemoryAllocator *This,BYTE **ppBuffer,DWORD *pdwcbBuffer);
12957   void __RPC_STUB IAMDevMemoryAllocator_Alloc_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12958   HRESULT WINAPI IAMDevMemoryAllocator_Free_Proxy(IAMDevMemoryAllocator *This,BYTE *pBuffer);
12959   void __RPC_STUB IAMDevMemoryAllocator_Free_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12960   HRESULT WINAPI IAMDevMemoryAllocator_GetDevMemoryObject_Proxy(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
12961   void __RPC_STUB IAMDevMemoryAllocator_GetDevMemoryObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12962 #endif
12963 
12964   typedef IAMDevMemoryAllocator *PAMDEVMEMORYALLOCATOR;
12965 
12966   extern RPC_IF_HANDLE __MIDL_itf_strmif_0344_v0_0_c_ifspec;
12967   extern RPC_IF_HANDLE __MIDL_itf_strmif_0344_v0_0_s_ifspec;
12968 #ifndef __IAMDevMemoryControl_INTERFACE_DEFINED__
12969 #define __IAMDevMemoryControl_INTERFACE_DEFINED__
12970   EXTERN_C const IID IID_IAMDevMemoryControl;
12971 #if defined(__cplusplus) && !defined(CINTERFACE)
12972   struct IAMDevMemoryControl : public IUnknown {
12973   public:
12974     virtual HRESULT WINAPI QueryWriteSync(void) = 0;
12975     virtual HRESULT WINAPI WriteSync(void) = 0;
12976     virtual HRESULT WINAPI GetDevId(DWORD *pdwDevId) = 0;
12977   };
12978 #else
12979   typedef struct IAMDevMemoryControlVtbl {
12980     BEGIN_INTERFACE
12981       HRESULT (WINAPI *QueryInterface)(IAMDevMemoryControl *This,REFIID riid,void **ppvObject);
12982       ULONG (WINAPI *AddRef)(IAMDevMemoryControl *This);
12983       ULONG (WINAPI *Release)(IAMDevMemoryControl *This);
12984       HRESULT (WINAPI *QueryWriteSync)(IAMDevMemoryControl *This);
12985       HRESULT (WINAPI *WriteSync)(IAMDevMemoryControl *This);
12986       HRESULT (WINAPI *GetDevId)(IAMDevMemoryControl *This,DWORD *pdwDevId);
12987     END_INTERFACE
12988   } IAMDevMemoryControlVtbl;
12989   struct IAMDevMemoryControl {
12990     CONST_VTBL struct IAMDevMemoryControlVtbl *lpVtbl;
12991   };
12992 #ifdef COBJMACROS
12993 #define IAMDevMemoryControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12994 #define IAMDevMemoryControl_AddRef(This) (This)->lpVtbl->AddRef(This)
12995 #define IAMDevMemoryControl_Release(This) (This)->lpVtbl->Release(This)
12996 #define IAMDevMemoryControl_QueryWriteSync(This) (This)->lpVtbl->QueryWriteSync(This)
12997 #define IAMDevMemoryControl_WriteSync(This) (This)->lpVtbl->WriteSync(This)
12998 #define IAMDevMemoryControl_GetDevId(This,pdwDevId) (This)->lpVtbl->GetDevId(This,pdwDevId)
12999 #endif
13000 #endif
13001   HRESULT WINAPI IAMDevMemoryControl_QueryWriteSync_Proxy(IAMDevMemoryControl *This);
13002   void __RPC_STUB IAMDevMemoryControl_QueryWriteSync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13003   HRESULT WINAPI IAMDevMemoryControl_WriteSync_Proxy(IAMDevMemoryControl *This);
13004   void __RPC_STUB IAMDevMemoryControl_WriteSync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13005   HRESULT WINAPI IAMDevMemoryControl_GetDevId_Proxy(IAMDevMemoryControl *This,DWORD *pdwDevId);
13006   void __RPC_STUB IAMDevMemoryControl_GetDevId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13007 #endif
13008 
13009   typedef IAMDevMemoryControl *PAMDEVMEMORYCONTROL;
13010 
13011   enum _AMSTREAMSELECTINFOFLAGS {
13012     AMSTREAMSELECTINFO_ENABLED = 0x1,AMSTREAMSELECTINFO_EXCLUSIVE = 0x2
13013   };
13014 
13015   enum _AMSTREAMSELECTENABLEFLAGS {
13016     AMSTREAMSELECTENABLE_ENABLE = 0x1,AMSTREAMSELECTENABLE_ENABLEALL = 0x2
13017   };
13018 
13019   extern RPC_IF_HANDLE __MIDL_itf_strmif_0345_v0_0_c_ifspec;
13020   extern RPC_IF_HANDLE __MIDL_itf_strmif_0345_v0_0_s_ifspec;
13021 #ifndef __IAMStreamSelect_INTERFACE_DEFINED__
13022 #define __IAMStreamSelect_INTERFACE_DEFINED__
13023   EXTERN_C const IID IID_IAMStreamSelect;
13024 #if defined(__cplusplus) && !defined(CINTERFACE)
13025   struct IAMStreamSelect : public IUnknown {
13026   public:
13027     virtual HRESULT WINAPI Count(DWORD *pcStreams) = 0;
13028     virtual HRESULT WINAPI Info(LONG lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk) = 0;
13029     virtual HRESULT WINAPI Enable(LONG lIndex,DWORD dwFlags) = 0;
13030   };
13031 #else
13032   typedef struct IAMStreamSelectVtbl {
13033     BEGIN_INTERFACE
13034       HRESULT (WINAPI *QueryInterface)(IAMStreamSelect *This,REFIID riid,void **ppvObject);
13035       ULONG (WINAPI *AddRef)(IAMStreamSelect *This);
13036       ULONG (WINAPI *Release)(IAMStreamSelect *This);
13037       HRESULT (WINAPI *Count)(IAMStreamSelect *This,DWORD *pcStreams);
13038       HRESULT (WINAPI *Info)(IAMStreamSelect *This,LONG lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk);
13039       HRESULT (WINAPI *Enable)(IAMStreamSelect *This,LONG lIndex,DWORD dwFlags);
13040     END_INTERFACE
13041   } IAMStreamSelectVtbl;
13042   struct IAMStreamSelect {
13043     CONST_VTBL struct IAMStreamSelectVtbl *lpVtbl;
13044   };
13045 #ifdef COBJMACROS
13046 #define IAMStreamSelect_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13047 #define IAMStreamSelect_AddRef(This) (This)->lpVtbl->AddRef(This)
13048 #define IAMStreamSelect_Release(This) (This)->lpVtbl->Release(This)
13049 #define IAMStreamSelect_Count(This,pcStreams) (This)->lpVtbl->Count(This,pcStreams)
13050 #define IAMStreamSelect_Info(This,lIndex,ppmt,pdwFlags,plcid,pdwGroup,ppszName,ppObject,ppUnk) (This)->lpVtbl->Info(This,lIndex,ppmt,pdwFlags,plcid,pdwGroup,ppszName,ppObject,ppUnk)
13051 #define IAMStreamSelect_Enable(This,lIndex,dwFlags) (This)->lpVtbl->Enable(This,lIndex,dwFlags)
13052 #endif
13053 #endif
13054   HRESULT WINAPI IAMStreamSelect_Count_Proxy(IAMStreamSelect *This,DWORD *pcStreams);
13055   void __RPC_STUB IAMStreamSelect_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13056   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);
13057   void __RPC_STUB IAMStreamSelect_Info_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13058   HRESULT WINAPI IAMStreamSelect_Enable_Proxy(IAMStreamSelect *This,LONG lIndex,DWORD dwFlags);
13059   void __RPC_STUB IAMStreamSelect_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13060 #endif
13061 
13062   typedef IAMStreamSelect *PAMSTREAMSELECT;
13063 
13064   enum _AMRESCTL_RESERVEFLAGS {
13065     AMRESCTL_RESERVEFLAGS_RESERVE = 0,AMRESCTL_RESERVEFLAGS_UNRESERVE = 0x1
13066   };
13067 
13068   extern RPC_IF_HANDLE __MIDL_itf_strmif_0346_v0_0_c_ifspec;
13069   extern RPC_IF_HANDLE __MIDL_itf_strmif_0346_v0_0_s_ifspec;
13070 #ifndef __IAMResourceControl_INTERFACE_DEFINED__
13071 #define __IAMResourceControl_INTERFACE_DEFINED__
13072   EXTERN_C const IID IID_IAMResourceControl;
13073 #if defined(__cplusplus) && !defined(CINTERFACE)
13074   struct IAMResourceControl : public IUnknown {
13075   public:
13076     virtual HRESULT WINAPI Reserve(DWORD dwFlags,PVOID pvReserved) = 0;
13077   };
13078 #else
13079   typedef struct IAMResourceControlVtbl {
13080     BEGIN_INTERFACE
13081       HRESULT (WINAPI *QueryInterface)(IAMResourceControl *This,REFIID riid,void **ppvObject);
13082       ULONG (WINAPI *AddRef)(IAMResourceControl *This);
13083       ULONG (WINAPI *Release)(IAMResourceControl *This);
13084       HRESULT (WINAPI *Reserve)(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
13085     END_INTERFACE
13086   } IAMResourceControlVtbl;
13087   struct IAMResourceControl {
13088     CONST_VTBL struct IAMResourceControlVtbl *lpVtbl;
13089   };
13090 #ifdef COBJMACROS
13091 #define IAMResourceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13092 #define IAMResourceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
13093 #define IAMResourceControl_Release(This) (This)->lpVtbl->Release(This)
13094 #define IAMResourceControl_Reserve(This,dwFlags,pvReserved) (This)->lpVtbl->Reserve(This,dwFlags,pvReserved)
13095 #endif
13096 #endif
13097   HRESULT WINAPI IAMResourceControl_Reserve_Proxy(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
13098   void __RPC_STUB IAMResourceControl_Reserve_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13099 #endif
13100 
13101 #ifndef __IAMClockAdjust_INTERFACE_DEFINED__
13102 #define __IAMClockAdjust_INTERFACE_DEFINED__
13103   EXTERN_C const IID IID_IAMClockAdjust;
13104 #if defined(__cplusplus) && !defined(CINTERFACE)
13105   struct IAMClockAdjust : public IUnknown {
13106   public:
13107     virtual HRESULT WINAPI SetClockDelta(REFERENCE_TIME rtDelta) = 0;
13108   };
13109 #else
13110   typedef struct IAMClockAdjustVtbl {
13111     BEGIN_INTERFACE
13112       HRESULT (WINAPI *QueryInterface)(IAMClockAdjust *This,REFIID riid,void **ppvObject);
13113       ULONG (WINAPI *AddRef)(IAMClockAdjust *This);
13114       ULONG (WINAPI *Release)(IAMClockAdjust *This);
13115       HRESULT (WINAPI *SetClockDelta)(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
13116     END_INTERFACE
13117   } IAMClockAdjustVtbl;
13118   struct IAMClockAdjust {
13119     CONST_VTBL struct IAMClockAdjustVtbl *lpVtbl;
13120   };
13121 #ifdef COBJMACROS
13122 #define IAMClockAdjust_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13123 #define IAMClockAdjust_AddRef(This) (This)->lpVtbl->AddRef(This)
13124 #define IAMClockAdjust_Release(This) (This)->lpVtbl->Release(This)
13125 #define IAMClockAdjust_SetClockDelta(This,rtDelta) (This)->lpVtbl->SetClockDelta(This,rtDelta)
13126 #endif
13127 #endif
13128   HRESULT WINAPI IAMClockAdjust_SetClockDelta_Proxy(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
13129   void __RPC_STUB IAMClockAdjust_SetClockDelta_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13130 #endif
13131 
13132 #ifndef __IDrawVideoImage_INTERFACE_DEFINED__
13133 #define __IDrawVideoImage_INTERFACE_DEFINED__
13134   EXTERN_C const IID IID_IDrawVideoImage;
13135 #if defined(__cplusplus) && !defined(CINTERFACE)
13136   struct IDrawVideoImage : public IUnknown {
13137   public:
13138     virtual HRESULT WINAPI DrawVideoImageBegin(void) = 0;
13139     virtual HRESULT WINAPI DrawVideoImageEnd(void) = 0;
13140     virtual HRESULT WINAPI DrawVideoImageDraw(HDC hdc,LPRECT lprcSrc,LPRECT lprcDst) = 0;
13141   };
13142 #else
13143   typedef struct IDrawVideoImageVtbl {
13144     BEGIN_INTERFACE
13145       HRESULT (WINAPI *QueryInterface)(IDrawVideoImage *This,REFIID riid,void **ppvObject);
13146       ULONG (WINAPI *AddRef)(IDrawVideoImage *This);
13147       ULONG (WINAPI *Release)(IDrawVideoImage *This);
13148       HRESULT (WINAPI *DrawVideoImageBegin)(IDrawVideoImage *This);
13149       HRESULT (WINAPI *DrawVideoImageEnd)(IDrawVideoImage *This);
13150       HRESULT (WINAPI *DrawVideoImageDraw)(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
13151     END_INTERFACE
13152   } IDrawVideoImageVtbl;
13153   struct IDrawVideoImage {
13154     CONST_VTBL struct IDrawVideoImageVtbl *lpVtbl;
13155   };
13156 #ifdef COBJMACROS
13157 #define IDrawVideoImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13158 #define IDrawVideoImage_AddRef(This) (This)->lpVtbl->AddRef(This)
13159 #define IDrawVideoImage_Release(This) (This)->lpVtbl->Release(This)
13160 #define IDrawVideoImage_DrawVideoImageBegin(This) (This)->lpVtbl->DrawVideoImageBegin(This)
13161 #define IDrawVideoImage_DrawVideoImageEnd(This) (This)->lpVtbl->DrawVideoImageEnd(This)
13162 #define IDrawVideoImage_DrawVideoImageDraw(This,hdc,lprcSrc,lprcDst) (This)->lpVtbl->DrawVideoImageDraw(This,hdc,lprcSrc,lprcDst)
13163 #endif
13164 #endif
13165   HRESULT WINAPI IDrawVideoImage_DrawVideoImageBegin_Proxy(IDrawVideoImage *This);
13166   void __RPC_STUB IDrawVideoImage_DrawVideoImageBegin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13167   HRESULT WINAPI IDrawVideoImage_DrawVideoImageEnd_Proxy(IDrawVideoImage *This);
13168   void __RPC_STUB IDrawVideoImage_DrawVideoImageEnd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13169   HRESULT WINAPI IDrawVideoImage_DrawVideoImageDraw_Proxy(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
13170   void __RPC_STUB IDrawVideoImage_DrawVideoImageDraw_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13171 #endif
13172 
13173 #ifndef __IDecimateVideoImage_INTERFACE_DEFINED__
13174 #define __IDecimateVideoImage_INTERFACE_DEFINED__
13175   EXTERN_C const IID IID_IDecimateVideoImage;
13176 #if defined(__cplusplus) && !defined(CINTERFACE)
13177   struct IDecimateVideoImage : public IUnknown {
13178   public:
13179     virtual HRESULT WINAPI SetDecimationImageSize(LONG lWidth,LONG lHeight) = 0;
13180     virtual HRESULT WINAPI ResetDecimationImageSize(void) = 0;
13181   };
13182 #else
13183   typedef struct IDecimateVideoImageVtbl {
13184     BEGIN_INTERFACE
13185       HRESULT (WINAPI *QueryInterface)(IDecimateVideoImage *This,REFIID riid,void **ppvObject);
13186       ULONG (WINAPI *AddRef)(IDecimateVideoImage *This);
13187       ULONG (WINAPI *Release)(IDecimateVideoImage *This);
13188       HRESULT (WINAPI *SetDecimationImageSize)(IDecimateVideoImage *This,LONG lWidth,LONG lHeight);
13189       HRESULT (WINAPI *ResetDecimationImageSize)(IDecimateVideoImage *This);
13190     END_INTERFACE
13191   } IDecimateVideoImageVtbl;
13192   struct IDecimateVideoImage {
13193     CONST_VTBL struct IDecimateVideoImageVtbl *lpVtbl;
13194   };
13195 #ifdef COBJMACROS
13196 #define IDecimateVideoImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13197 #define IDecimateVideoImage_AddRef(This) (This)->lpVtbl->AddRef(This)
13198 #define IDecimateVideoImage_Release(This) (This)->lpVtbl->Release(This)
13199 #define IDecimateVideoImage_SetDecimationImageSize(This,lWidth,lHeight) (This)->lpVtbl->SetDecimationImageSize(This,lWidth,lHeight)
13200 #define IDecimateVideoImage_ResetDecimationImageSize(This) (This)->lpVtbl->ResetDecimationImageSize(This)
13201 #endif
13202 #endif
13203   HRESULT WINAPI IDecimateVideoImage_SetDecimationImageSize_Proxy(IDecimateVideoImage *This,LONG lWidth,LONG lHeight);
13204   void __RPC_STUB IDecimateVideoImage_SetDecimationImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13205   HRESULT WINAPI IDecimateVideoImage_ResetDecimationImageSize_Proxy(IDecimateVideoImage *This);
13206   void __RPC_STUB IDecimateVideoImage_ResetDecimationImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13207 #endif
13208 
13209   typedef enum _DECIMATION_USAGE {
13210     DECIMATION_LEGACY = 0,
13211     DECIMATION_USE_DECODER_ONLY,DECIMATION_USE_VIDEOPORT_ONLY,DECIMATION_USE_OVERLAY_ONLY,
13212     DECIMATION_DEFAULT
13213   } DECIMATION_USAGE;
13214 
13215   extern RPC_IF_HANDLE __MIDL_itf_strmif_0351_v0_0_c_ifspec;
13216   extern RPC_IF_HANDLE __MIDL_itf_strmif_0351_v0_0_s_ifspec;
13217 #ifndef __IAMVideoDecimationProperties_INTERFACE_DEFINED__
13218 #define __IAMVideoDecimationProperties_INTERFACE_DEFINED__
13219   EXTERN_C const IID IID_IAMVideoDecimationProperties;
13220 #if defined(__cplusplus) && !defined(CINTERFACE)
13221   struct IAMVideoDecimationProperties : public IUnknown {
13222   public:
13223     virtual HRESULT WINAPI QueryDecimationUsage(DECIMATION_USAGE *lpUsage) = 0;
13224     virtual HRESULT WINAPI SetDecimationUsage(DECIMATION_USAGE Usage) = 0;
13225   };
13226 #else
13227   typedef struct IAMVideoDecimationPropertiesVtbl {
13228     BEGIN_INTERFACE
13229       HRESULT (WINAPI *QueryInterface)(IAMVideoDecimationProperties *This,REFIID riid,void **ppvObject);
13230       ULONG (WINAPI *AddRef)(IAMVideoDecimationProperties *This);
13231       ULONG (WINAPI *Release)(IAMVideoDecimationProperties *This);
13232       HRESULT (WINAPI *QueryDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE *lpUsage);
13233       HRESULT (WINAPI *SetDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
13234     END_INTERFACE
13235   } IAMVideoDecimationPropertiesVtbl;
13236   struct IAMVideoDecimationProperties {
13237     CONST_VTBL struct IAMVideoDecimationPropertiesVtbl *lpVtbl;
13238   };
13239 #ifdef COBJMACROS
13240 #define IAMVideoDecimationProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13241 #define IAMVideoDecimationProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
13242 #define IAMVideoDecimationProperties_Release(This) (This)->lpVtbl->Release(This)
13243 #define IAMVideoDecimationProperties_QueryDecimationUsage(This,lpUsage) (This)->lpVtbl->QueryDecimationUsage(This,lpUsage)
13244 #define IAMVideoDecimationProperties_SetDecimationUsage(This,Usage) (This)->lpVtbl->SetDecimationUsage(This,Usage)
13245 #endif
13246 #endif
13247   HRESULT WINAPI IAMVideoDecimationProperties_QueryDecimationUsage_Proxy(IAMVideoDecimationProperties *This,DECIMATION_USAGE *lpUsage);
13248   void __RPC_STUB IAMVideoDecimationProperties_QueryDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13249   HRESULT WINAPI IAMVideoDecimationProperties_SetDecimationUsage_Proxy(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
13250   void __RPC_STUB IAMVideoDecimationProperties_SetDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13251 #endif
13252 
13253 #ifndef __IVideoFrameStep_INTERFACE_DEFINED__
13254 #define __IVideoFrameStep_INTERFACE_DEFINED__
13255   EXTERN_C const IID IID_IVideoFrameStep;
13256 #if defined(__cplusplus) && !defined(CINTERFACE)
13257   struct IVideoFrameStep : public IUnknown {
13258   public:
13259     virtual HRESULT WINAPI Step(DWORD dwFrames,IUnknown *pStepObject) = 0;
13260     virtual HRESULT WINAPI CanStep(LONG bMultiple,IUnknown *pStepObject) = 0;
13261     virtual HRESULT WINAPI CancelStep(void) = 0;
13262   };
13263 #else
13264   typedef struct IVideoFrameStepVtbl {
13265     BEGIN_INTERFACE
13266       HRESULT (WINAPI *QueryInterface)(IVideoFrameStep *This,REFIID riid,void **ppvObject);
13267       ULONG (WINAPI *AddRef)(IVideoFrameStep *This);
13268       ULONG (WINAPI *Release)(IVideoFrameStep *This);
13269       HRESULT (WINAPI *Step)(IVideoFrameStep *This,DWORD dwFrames,IUnknown *pStepObject);
13270       HRESULT (WINAPI *CanStep)(IVideoFrameStep *This,LONG bMultiple,IUnknown *pStepObject);
13271       HRESULT (WINAPI *CancelStep)(IVideoFrameStep *This);
13272     END_INTERFACE
13273   } IVideoFrameStepVtbl;
13274   struct IVideoFrameStep {
13275     CONST_VTBL struct IVideoFrameStepVtbl *lpVtbl;
13276   };
13277 #ifdef COBJMACROS
13278 #define IVideoFrameStep_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13279 #define IVideoFrameStep_AddRef(This) (This)->lpVtbl->AddRef(This)
13280 #define IVideoFrameStep_Release(This) (This)->lpVtbl->Release(This)
13281 #define IVideoFrameStep_Step(This,dwFrames,pStepObject) (This)->lpVtbl->Step(This,dwFrames,pStepObject)
13282 #define IVideoFrameStep_CanStep(This,bMultiple,pStepObject) (This)->lpVtbl->CanStep(This,bMultiple,pStepObject)
13283 #define IVideoFrameStep_CancelStep(This) (This)->lpVtbl->CancelStep(This)
13284 #endif
13285 #endif
13286   HRESULT WINAPI IVideoFrameStep_Step_Proxy(IVideoFrameStep *This,DWORD dwFrames,IUnknown *pStepObject);
13287   void __RPC_STUB IVideoFrameStep_Step_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13288   HRESULT WINAPI IVideoFrameStep_CanStep_Proxy(IVideoFrameStep *This,LONG bMultiple,IUnknown *pStepObject);
13289   void __RPC_STUB IVideoFrameStep_CanStep_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13290   HRESULT WINAPI IVideoFrameStep_CancelStep_Proxy(IVideoFrameStep *This);
13291   void __RPC_STUB IVideoFrameStep_CancelStep_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13292 #endif
13293 
13294   enum _AM_PUSHSOURCE_FLAGS {
13295     AM_PUSHSOURCECAPS_INTERNAL_RM = 0x1,AM_PUSHSOURCECAPS_NOT_LIVE = 0x2,AM_PUSHSOURCECAPS_PRIVATE_CLOCK = 0x4,
13296     AM_PUSHSOURCEREQS_USE_STREAM_CLOCK = 0x10000,AM_PUSHSOURCEREQS_USE_CLOCK_CHAIN = 0x20000
13297   };
13298 
13299   extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_c_ifspec;
13300   extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_s_ifspec;
13301 #ifndef __IAMLatency_INTERFACE_DEFINED__
13302 #define __IAMLatency_INTERFACE_DEFINED__
13303   EXTERN_C const IID IID_IAMLatency;
13304 #if defined(__cplusplus) && !defined(CINTERFACE)
13305   struct IAMLatency : public IUnknown {
13306   public:
13307     virtual HRESULT WINAPI GetLatency(REFERENCE_TIME *prtLatency) = 0;
13308   };
13309 #else
13310   typedef struct IAMLatencyVtbl {
13311     BEGIN_INTERFACE
13312       HRESULT (WINAPI *QueryInterface)(IAMLatency *This,REFIID riid,void **ppvObject);
13313       ULONG (WINAPI *AddRef)(IAMLatency *This);
13314       ULONG (WINAPI *Release)(IAMLatency *This);
13315       HRESULT (WINAPI *GetLatency)(IAMLatency *This,REFERENCE_TIME *prtLatency);
13316     END_INTERFACE
13317   } IAMLatencyVtbl;
13318   struct IAMLatency {
13319     CONST_VTBL struct IAMLatencyVtbl *lpVtbl;
13320   };
13321 #ifdef COBJMACROS
13322 #define IAMLatency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13323 #define IAMLatency_AddRef(This) (This)->lpVtbl->AddRef(This)
13324 #define IAMLatency_Release(This) (This)->lpVtbl->Release(This)
13325 #define IAMLatency_GetLatency(This,prtLatency) (This)->lpVtbl->GetLatency(This,prtLatency)
13326 #endif
13327 #endif
13328   HRESULT WINAPI IAMLatency_GetLatency_Proxy(IAMLatency *This,REFERENCE_TIME *prtLatency);
13329   void __RPC_STUB IAMLatency_GetLatency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13330 #endif
13331 
13332 #ifndef __IAMPushSource_INTERFACE_DEFINED__
13333 #define __IAMPushSource_INTERFACE_DEFINED__
13334   EXTERN_C const IID IID_IAMPushSource;
13335 #if defined(__cplusplus) && !defined(CINTERFACE)
13336   struct IAMPushSource : public IAMLatency {
13337   public:
13338     virtual HRESULT WINAPI GetPushSourceFlags(ULONG *pFlags) = 0;
13339     virtual HRESULT WINAPI SetPushSourceFlags(ULONG Flags) = 0;
13340     virtual HRESULT WINAPI SetStreamOffset(REFERENCE_TIME rtOffset) = 0;
13341     virtual HRESULT WINAPI GetStreamOffset(REFERENCE_TIME *prtOffset) = 0;
13342     virtual HRESULT WINAPI GetMaxStreamOffset(REFERENCE_TIME *prtMaxOffset) = 0;
13343     virtual HRESULT WINAPI SetMaxStreamOffset(REFERENCE_TIME rtMaxOffset) = 0;
13344   };
13345 #else
13346   typedef struct IAMPushSourceVtbl {
13347     BEGIN_INTERFACE
13348       HRESULT (WINAPI *QueryInterface)(IAMPushSource *This,REFIID riid,void **ppvObject);
13349       ULONG (WINAPI *AddRef)(IAMPushSource *This);
13350       ULONG (WINAPI *Release)(IAMPushSource *This);
13351       HRESULT (WINAPI *GetLatency)(IAMPushSource *This,REFERENCE_TIME *prtLatency);
13352       HRESULT (WINAPI *GetPushSourceFlags)(IAMPushSource *This,ULONG *pFlags);
13353       HRESULT (WINAPI *SetPushSourceFlags)(IAMPushSource *This,ULONG Flags);
13354       HRESULT (WINAPI *SetStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtOffset);
13355       HRESULT (WINAPI *GetStreamOffset)(IAMPushSource *This,REFERENCE_TIME *prtOffset);
13356       HRESULT (WINAPI *GetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME *prtMaxOffset);
13357       HRESULT (WINAPI *SetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
13358     END_INTERFACE
13359   } IAMPushSourceVtbl;
13360   struct IAMPushSource {
13361     CONST_VTBL struct IAMPushSourceVtbl *lpVtbl;
13362   };
13363 #ifdef COBJMACROS
13364 #define IAMPushSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13365 #define IAMPushSource_AddRef(This) (This)->lpVtbl->AddRef(This)
13366 #define IAMPushSource_Release(This) (This)->lpVtbl->Release(This)
13367 #define IAMPushSource_GetLatency(This,prtLatency) (This)->lpVtbl->GetLatency(This,prtLatency)
13368 #define IAMPushSource_GetPushSourceFlags(This,pFlags) (This)->lpVtbl->GetPushSourceFlags(This,pFlags)
13369 #define IAMPushSource_SetPushSourceFlags(This,Flags) (This)->lpVtbl->SetPushSourceFlags(This,Flags)
13370 #define IAMPushSource_SetStreamOffset(This,rtOffset) (This)->lpVtbl->SetStreamOffset(This,rtOffset)
13371 #define IAMPushSource_GetStreamOffset(This,prtOffset) (This)->lpVtbl->GetStreamOffset(This,prtOffset)
13372 #define IAMPushSource_GetMaxStreamOffset(This,prtMaxOffset) (This)->lpVtbl->GetMaxStreamOffset(This,prtMaxOffset)
13373 #define IAMPushSource_SetMaxStreamOffset(This,rtMaxOffset) (This)->lpVtbl->SetMaxStreamOffset(This,rtMaxOffset)
13374 #endif
13375 #endif
13376   HRESULT WINAPI IAMPushSource_GetPushSourceFlags_Proxy(IAMPushSource *This,ULONG *pFlags);
13377   void __RPC_STUB IAMPushSource_GetPushSourceFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13378   HRESULT WINAPI IAMPushSource_SetPushSourceFlags_Proxy(IAMPushSource *This,ULONG Flags);
13379   void __RPC_STUB IAMPushSource_SetPushSourceFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13380   HRESULT WINAPI IAMPushSource_SetStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME rtOffset);
13381   void __RPC_STUB IAMPushSource_SetStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13382   HRESULT WINAPI IAMPushSource_GetStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME *prtOffset);
13383   void __RPC_STUB IAMPushSource_GetStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13384   HRESULT WINAPI IAMPushSource_GetMaxStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME *prtMaxOffset);
13385   void __RPC_STUB IAMPushSource_GetMaxStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13386   HRESULT WINAPI IAMPushSource_SetMaxStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
13387   void __RPC_STUB IAMPushSource_SetMaxStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13388 #endif
13389 
13390 #ifndef __IAMDeviceRemoval_INTERFACE_DEFINED__
13391 #define __IAMDeviceRemoval_INTERFACE_DEFINED__
13392   EXTERN_C const IID IID_IAMDeviceRemoval;
13393 #if defined(__cplusplus) && !defined(CINTERFACE)
13394   struct IAMDeviceRemoval : public IUnknown {
13395   public:
13396     virtual HRESULT WINAPI DeviceInfo(CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink) = 0;
13397     virtual HRESULT WINAPI Reassociate(void) = 0;
13398     virtual HRESULT WINAPI Disassociate(void) = 0;
13399   };
13400 #else
13401   typedef struct IAMDeviceRemovalVtbl {
13402     BEGIN_INTERFACE
13403       HRESULT (WINAPI *QueryInterface)(IAMDeviceRemoval *This,REFIID riid,void **ppvObject);
13404       ULONG (WINAPI *AddRef)(IAMDeviceRemoval *This);
13405       ULONG (WINAPI *Release)(IAMDeviceRemoval *This);
13406       HRESULT (WINAPI *DeviceInfo)(IAMDeviceRemoval *This,CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink);
13407       HRESULT (WINAPI *Reassociate)(IAMDeviceRemoval *This);
13408       HRESULT (WINAPI *Disassociate)(IAMDeviceRemoval *This);
13409     END_INTERFACE
13410   } IAMDeviceRemovalVtbl;
13411   struct IAMDeviceRemoval {
13412     CONST_VTBL struct IAMDeviceRemovalVtbl *lpVtbl;
13413   };
13414 #ifdef COBJMACROS
13415 #define IAMDeviceRemoval_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13416 #define IAMDeviceRemoval_AddRef(This) (This)->lpVtbl->AddRef(This)
13417 #define IAMDeviceRemoval_Release(This) (This)->lpVtbl->Release(This)
13418 #define IAMDeviceRemoval_DeviceInfo(This,pclsidInterfaceClass,pwszSymbolicLink) (This)->lpVtbl->DeviceInfo(This,pclsidInterfaceClass,pwszSymbolicLink)
13419 #define IAMDeviceRemoval_Reassociate(This) (This)->lpVtbl->Reassociate(This)
13420 #define IAMDeviceRemoval_Disassociate(This) (This)->lpVtbl->Disassociate(This)
13421 #endif
13422 #endif
13423   HRESULT WINAPI IAMDeviceRemoval_DeviceInfo_Proxy(IAMDeviceRemoval *This,CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink);
13424   void __RPC_STUB IAMDeviceRemoval_DeviceInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13425   HRESULT WINAPI IAMDeviceRemoval_Reassociate_Proxy(IAMDeviceRemoval *This);
13426   void __RPC_STUB IAMDeviceRemoval_Reassociate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13427   HRESULT WINAPI IAMDeviceRemoval_Disassociate_Proxy(IAMDeviceRemoval *This);
13428   void __RPC_STUB IAMDeviceRemoval_Disassociate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13429 #endif
13430 
13431   typedef struct __MIDL___MIDL_itf_strmif_0355_0001 {
13432     DWORD dwDVAAuxSrc;
13433     DWORD dwDVAAuxCtl;
13434     DWORD dwDVAAuxSrc1;
13435     DWORD dwDVAAuxCtl1;
13436     DWORD dwDVVAuxSrc;
13437     DWORD dwDVVAuxCtl;
13438     DWORD dwDVReserved[2];
13439   } DVINFO;
13440 
13441   typedef struct __MIDL___MIDL_itf_strmif_0355_0001 *PDVINFO;
13442 
13443   enum _DVENCODERRESOLUTION {
13444     DVENCODERRESOLUTION_720x480 = 2012,DVENCODERRESOLUTION_360x240 = 2013,DVENCODERRESOLUTION_180x120 = 2014,DVENCODERRESOLUTION_88x60 = 2015
13445   };
13446 
13447   enum _DVENCODERVIDEOFORMAT {
13448     DVENCODERVIDEOFORMAT_NTSC = 2000,DVENCODERVIDEOFORMAT_PAL = 2001
13449   };
13450 
13451   enum _DVENCODERFORMAT {
13452     DVENCODERFORMAT_DVSD = 2007,DVENCODERFORMAT_DVHD = 2008,DVENCODERFORMAT_DVSL = 2009
13453   };
13454 
13455   extern RPC_IF_HANDLE __MIDL_itf_strmif_0355_v0_0_c_ifspec;
13456   extern RPC_IF_HANDLE __MIDL_itf_strmif_0355_v0_0_s_ifspec;
13457 #ifndef __IDVEnc_INTERFACE_DEFINED__
13458 #define __IDVEnc_INTERFACE_DEFINED__
13459   EXTERN_C const IID IID_IDVEnc;
13460 #if defined(__cplusplus) && !defined(CINTERFACE)
13461   struct IDVEnc : public IUnknown {
13462   public:
13463     virtual HRESULT WINAPI get_IFormatResolution(int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo) = 0;
13464     virtual HRESULT WINAPI put_IFormatResolution(int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo) = 0;
13465   };
13466 #else
13467   typedef struct IDVEncVtbl {
13468     BEGIN_INTERFACE
13469       HRESULT (WINAPI *QueryInterface)(IDVEnc *This,REFIID riid,void **ppvObject);
13470       ULONG (WINAPI *AddRef)(IDVEnc *This);
13471       ULONG (WINAPI *Release)(IDVEnc *This);
13472       HRESULT (WINAPI *get_IFormatResolution)(IDVEnc *This,int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
13473       HRESULT (WINAPI *put_IFormatResolution)(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
13474     END_INTERFACE
13475   } IDVEncVtbl;
13476   struct IDVEnc {
13477     CONST_VTBL struct IDVEncVtbl *lpVtbl;
13478   };
13479 #ifdef COBJMACROS
13480 #define IDVEnc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13481 #define IDVEnc_AddRef(This) (This)->lpVtbl->AddRef(This)
13482 #define IDVEnc_Release(This) (This)->lpVtbl->Release(This)
13483 #define IDVEnc_get_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo) (This)->lpVtbl->get_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo)
13484 #define IDVEnc_put_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo) (This)->lpVtbl->put_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo)
13485 #endif
13486 #endif
13487   HRESULT WINAPI IDVEnc_get_IFormatResolution_Proxy(IDVEnc *This,int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
13488   void __RPC_STUB IDVEnc_get_IFormatResolution_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13489   HRESULT WINAPI IDVEnc_put_IFormatResolution_Proxy(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
13490   void __RPC_STUB IDVEnc_put_IFormatResolution_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13491 #endif
13492 
13493   enum _DVDECODERRESOLUTION {
13494     DVDECODERRESOLUTION_720x480 = 1000,DVDECODERRESOLUTION_360x240 = 1001,DVDECODERRESOLUTION_180x120 = 1002,DVDECODERRESOLUTION_88x60 = 1003
13495   };
13496 
13497   enum _DVRESOLUTION {
13498     DVRESOLUTION_FULL = 1000,DVRESOLUTION_HALF = 1001,DVRESOLUTION_QUARTER = 1002,DVRESOLUTION_DC = 1003
13499   };
13500 
13501   extern RPC_IF_HANDLE __MIDL_itf_strmif_0356_v0_0_c_ifspec;
13502   extern RPC_IF_HANDLE __MIDL_itf_strmif_0356_v0_0_s_ifspec;
13503 #ifndef __IIPDVDec_INTERFACE_DEFINED__
13504 #define __IIPDVDec_INTERFACE_DEFINED__
13505   EXTERN_C const IID IID_IIPDVDec;
13506 #if defined(__cplusplus) && !defined(CINTERFACE)
13507   struct IIPDVDec : public IUnknown {
13508   public:
13509     virtual HRESULT WINAPI get_IPDisplay(int *displayPix) = 0;
13510     virtual HRESULT WINAPI put_IPDisplay(int displayPix) = 0;
13511   };
13512 #else
13513   typedef struct IIPDVDecVtbl {
13514     BEGIN_INTERFACE
13515       HRESULT (WINAPI *QueryInterface)(IIPDVDec *This,REFIID riid,void **ppvObject);
13516       ULONG (WINAPI *AddRef)(IIPDVDec *This);
13517       ULONG (WINAPI *Release)(IIPDVDec *This);
13518       HRESULT (WINAPI *get_IPDisplay)(IIPDVDec *This,int *displayPix);
13519       HRESULT (WINAPI *put_IPDisplay)(IIPDVDec *This,int displayPix);
13520     END_INTERFACE
13521   } IIPDVDecVtbl;
13522   struct IIPDVDec {
13523     CONST_VTBL struct IIPDVDecVtbl *lpVtbl;
13524   };
13525 #ifdef COBJMACROS
13526 #define IIPDVDec_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13527 #define IIPDVDec_AddRef(This) (This)->lpVtbl->AddRef(This)
13528 #define IIPDVDec_Release(This) (This)->lpVtbl->Release(This)
13529 #define IIPDVDec_get_IPDisplay(This,displayPix) (This)->lpVtbl->get_IPDisplay(This,displayPix)
13530 #define IIPDVDec_put_IPDisplay(This,displayPix) (This)->lpVtbl->put_IPDisplay(This,displayPix)
13531 #endif
13532 #endif
13533   HRESULT WINAPI IIPDVDec_get_IPDisplay_Proxy(IIPDVDec *This,int *displayPix);
13534   void __RPC_STUB IIPDVDec_get_IPDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13535   HRESULT WINAPI IIPDVDec_put_IPDisplay_Proxy(IIPDVDec *This,int displayPix);
13536   void __RPC_STUB IIPDVDec_put_IPDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13537 #endif
13538 
13539 #ifndef __IDVRGB219_INTERFACE_DEFINED__
13540 #define __IDVRGB219_INTERFACE_DEFINED__
13541   EXTERN_C const IID IID_IDVRGB219;
13542 #if defined(__cplusplus) && !defined(CINTERFACE)
13543   struct IDVRGB219 : public IUnknown {
13544   public:
13545     virtual HRESULT WINAPI SetRGB219(WINBOOL bState) = 0;
13546   };
13547 #else
13548   typedef struct IDVRGB219Vtbl {
13549     BEGIN_INTERFACE
13550       HRESULT (WINAPI *QueryInterface)(IDVRGB219 *This,REFIID riid,void **ppvObject);
13551       ULONG (WINAPI *AddRef)(IDVRGB219 *This);
13552       ULONG (WINAPI *Release)(IDVRGB219 *This);
13553       HRESULT (WINAPI *SetRGB219)(IDVRGB219 *This,WINBOOL bState);
13554     END_INTERFACE
13555   } IDVRGB219Vtbl;
13556   struct IDVRGB219 {
13557     CONST_VTBL struct IDVRGB219Vtbl *lpVtbl;
13558   };
13559 #ifdef COBJMACROS
13560 #define IDVRGB219_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13561 #define IDVRGB219_AddRef(This) (This)->lpVtbl->AddRef(This)
13562 #define IDVRGB219_Release(This) (This)->lpVtbl->Release(This)
13563 #define IDVRGB219_SetRGB219(This,bState) (This)->lpVtbl->SetRGB219(This,bState)
13564 #endif
13565 #endif
13566   HRESULT WINAPI IDVRGB219_SetRGB219_Proxy(IDVRGB219 *This,WINBOOL bState);
13567   void __RPC_STUB IDVRGB219_SetRGB219_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13568 #endif
13569 
13570 #ifndef __IDVSplitter_INTERFACE_DEFINED__
13571 #define __IDVSplitter_INTERFACE_DEFINED__
13572   EXTERN_C const IID IID_IDVSplitter;
13573 #if defined(__cplusplus) && !defined(CINTERFACE)
13574   struct IDVSplitter : public IUnknown {
13575   public:
13576     virtual HRESULT WINAPI DiscardAlternateVideoFrames(int nDiscard) = 0;
13577   };
13578 #else
13579   typedef struct IDVSplitterVtbl {
13580     BEGIN_INTERFACE
13581       HRESULT (WINAPI *QueryInterface)(IDVSplitter *This,REFIID riid,void **ppvObject);
13582       ULONG (WINAPI *AddRef)(IDVSplitter *This);
13583       ULONG (WINAPI *Release)(IDVSplitter *This);
13584       HRESULT (WINAPI *DiscardAlternateVideoFrames)(IDVSplitter *This,int nDiscard);
13585     END_INTERFACE
13586   } IDVSplitterVtbl;
13587   struct IDVSplitter {
13588     CONST_VTBL struct IDVSplitterVtbl *lpVtbl;
13589   };
13590 #ifdef COBJMACROS
13591 #define IDVSplitter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13592 #define IDVSplitter_AddRef(This) (This)->lpVtbl->AddRef(This)
13593 #define IDVSplitter_Release(This) (This)->lpVtbl->Release(This)
13594 #define IDVSplitter_DiscardAlternateVideoFrames(This,nDiscard) (This)->lpVtbl->DiscardAlternateVideoFrames(This,nDiscard)
13595 #endif
13596 #endif
13597   HRESULT WINAPI IDVSplitter_DiscardAlternateVideoFrames_Proxy(IDVSplitter *This,int nDiscard);
13598   void __RPC_STUB IDVSplitter_DiscardAlternateVideoFrames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13599 #endif
13600 
13601   enum _AM_AUDIO_RENDERER_STAT_PARAM {
13602     AM_AUDREND_STAT_PARAM_BREAK_COUNT = 1,
13603     AM_AUDREND_STAT_PARAM_SLAVE_MODE,AM_AUDREND_STAT_PARAM_SILENCE_DUR,
13604     AM_AUDREND_STAT_PARAM_LAST_BUFFER_DUR,AM_AUDREND_STAT_PARAM_DISCONTINUITIES,
13605     AM_AUDREND_STAT_PARAM_SLAVE_RATE,AM_AUDREND_STAT_PARAM_SLAVE_DROPWRITE_DUR,
13606     AM_AUDREND_STAT_PARAM_SLAVE_HIGHLOWERROR,AM_AUDREND_STAT_PARAM_SLAVE_LASTHIGHLOWERROR,
13607     AM_AUDREND_STAT_PARAM_SLAVE_ACCUMERROR,AM_AUDREND_STAT_PARAM_BUFFERFULLNESS,
13608     AM_AUDREND_STAT_PARAM_JITTER
13609   };
13610 
13611   extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_c_ifspec;
13612   extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_s_ifspec;
13613 #ifndef __IAMAudioRendererStats_INTERFACE_DEFINED__
13614 #define __IAMAudioRendererStats_INTERFACE_DEFINED__
13615   EXTERN_C const IID IID_IAMAudioRendererStats;
13616 #if defined(__cplusplus) && !defined(CINTERFACE)
13617   struct IAMAudioRendererStats : public IUnknown {
13618   public:
13619     virtual HRESULT WINAPI GetStatParam(DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2) = 0;
13620   };
13621 #else
13622   typedef struct IAMAudioRendererStatsVtbl {
13623     BEGIN_INTERFACE
13624       HRESULT (WINAPI *QueryInterface)(IAMAudioRendererStats *This,REFIID riid,void **ppvObject);
13625       ULONG (WINAPI *AddRef)(IAMAudioRendererStats *This);
13626       ULONG (WINAPI *Release)(IAMAudioRendererStats *This);
13627       HRESULT (WINAPI *GetStatParam)(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
13628     END_INTERFACE
13629   } IAMAudioRendererStatsVtbl;
13630   struct IAMAudioRendererStats {
13631     CONST_VTBL struct IAMAudioRendererStatsVtbl *lpVtbl;
13632   };
13633 #ifdef COBJMACROS
13634 #define IAMAudioRendererStats_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13635 #define IAMAudioRendererStats_AddRef(This) (This)->lpVtbl->AddRef(This)
13636 #define IAMAudioRendererStats_Release(This) (This)->lpVtbl->Release(This)
13637 #define IAMAudioRendererStats_GetStatParam(This,dwParam,pdwParam1,pdwParam2) (This)->lpVtbl->GetStatParam(This,dwParam,pdwParam1,pdwParam2)
13638 #endif
13639 #endif
13640   HRESULT WINAPI IAMAudioRendererStats_GetStatParam_Proxy(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
13641   void __RPC_STUB IAMAudioRendererStats_GetStatParam_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13642 #endif
13643 
13644   enum _AM_INTF_SEARCH_FLAGS {
13645     AM_INTF_SEARCH_INPUT_PIN = 0x1,AM_INTF_SEARCH_OUTPUT_PIN = 0x2,AM_INTF_SEARCH_FILTER = 0x4
13646   };
13647 
13648   extern RPC_IF_HANDLE __MIDL_itf_strmif_0361_v0_0_c_ifspec;
13649   extern RPC_IF_HANDLE __MIDL_itf_strmif_0361_v0_0_s_ifspec;
13650 #ifndef __IAMGraphStreams_INTERFACE_DEFINED__
13651 #define __IAMGraphStreams_INTERFACE_DEFINED__
13652   EXTERN_C const IID IID_IAMGraphStreams;
13653 #if defined(__cplusplus) && !defined(CINTERFACE)
13654   struct IAMGraphStreams : public IUnknown {
13655   public:
13656     virtual HRESULT WINAPI FindUpstreamInterface(IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags) = 0;
13657     virtual HRESULT WINAPI SyncUsingStreamOffset(WINBOOL bUseStreamOffset) = 0;
13658     virtual HRESULT WINAPI SetMaxGraphLatency(REFERENCE_TIME rtMaxGraphLatency) = 0;
13659   };
13660 #else
13661   typedef struct IAMGraphStreamsVtbl {
13662     BEGIN_INTERFACE
13663       HRESULT (WINAPI *QueryInterface)(IAMGraphStreams *This,REFIID riid,void **ppvObject);
13664       ULONG (WINAPI *AddRef)(IAMGraphStreams *This);
13665       ULONG (WINAPI *Release)(IAMGraphStreams *This);
13666       HRESULT (WINAPI *FindUpstreamInterface)(IAMGraphStreams *This,IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags);
13667       HRESULT (WINAPI *SyncUsingStreamOffset)(IAMGraphStreams *This,WINBOOL bUseStreamOffset);
13668       HRESULT (WINAPI *SetMaxGraphLatency)(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
13669     END_INTERFACE
13670   } IAMGraphStreamsVtbl;
13671   struct IAMGraphStreams {
13672     CONST_VTBL struct IAMGraphStreamsVtbl *lpVtbl;
13673   };
13674 #ifdef COBJMACROS
13675 #define IAMGraphStreams_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13676 #define IAMGraphStreams_AddRef(This) (This)->lpVtbl->AddRef(This)
13677 #define IAMGraphStreams_Release(This) (This)->lpVtbl->Release(This)
13678 #define IAMGraphStreams_FindUpstreamInterface(This,pPin,riid,ppvInterface,dwFlags) (This)->lpVtbl->FindUpstreamInterface(This,pPin,riid,ppvInterface,dwFlags)
13679 #define IAMGraphStreams_SyncUsingStreamOffset(This,bUseStreamOffset) (This)->lpVtbl->SyncUsingStreamOffset(This,bUseStreamOffset)
13680 #define IAMGraphStreams_SetMaxGraphLatency(This,rtMaxGraphLatency) (This)->lpVtbl->SetMaxGraphLatency(This,rtMaxGraphLatency)
13681 #endif
13682 #endif
13683   HRESULT WINAPI IAMGraphStreams_FindUpstreamInterface_Proxy(IAMGraphStreams *This,IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags);
13684   void __RPC_STUB IAMGraphStreams_FindUpstreamInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13685   HRESULT WINAPI IAMGraphStreams_SyncUsingStreamOffset_Proxy(IAMGraphStreams *This,WINBOOL bUseStreamOffset);
13686   void __RPC_STUB IAMGraphStreams_SyncUsingStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13687   HRESULT WINAPI IAMGraphStreams_SetMaxGraphLatency_Proxy(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
13688   void __RPC_STUB IAMGraphStreams_SetMaxGraphLatency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13689 #endif
13690 
13691   enum AMOVERLAYFX {
13692     AMOVERFX_NOFX = 0,AMOVERFX_MIRRORLEFTRIGHT = 0x2,AMOVERFX_MIRRORUPDOWN = 0x4,AMOVERFX_DEINTERLACE = 0x8
13693   };
13694 
13695   extern RPC_IF_HANDLE __MIDL_itf_strmif_0362_v0_0_c_ifspec;
13696   extern RPC_IF_HANDLE __MIDL_itf_strmif_0362_v0_0_s_ifspec;
13697 #ifndef __IAMOverlayFX_INTERFACE_DEFINED__
13698 #define __IAMOverlayFX_INTERFACE_DEFINED__
13699   EXTERN_C const IID IID_IAMOverlayFX;
13700 #if defined(__cplusplus) && !defined(CINTERFACE)
13701   struct IAMOverlayFX : public IUnknown {
13702   public:
13703     virtual HRESULT WINAPI QueryOverlayFXCaps(DWORD *lpdwOverlayFXCaps) = 0;
13704     virtual HRESULT WINAPI SetOverlayFX(DWORD dwOverlayFX) = 0;
13705     virtual HRESULT WINAPI GetOverlayFX(DWORD *lpdwOverlayFX) = 0;
13706   };
13707 #else
13708   typedef struct IAMOverlayFXVtbl {
13709     BEGIN_INTERFACE
13710       HRESULT (WINAPI *QueryInterface)(IAMOverlayFX *This,REFIID riid,void **ppvObject);
13711       ULONG (WINAPI *AddRef)(IAMOverlayFX *This);
13712       ULONG (WINAPI *Release)(IAMOverlayFX *This);
13713       HRESULT (WINAPI *QueryOverlayFXCaps)(IAMOverlayFX *This,DWORD *lpdwOverlayFXCaps);
13714       HRESULT (WINAPI *SetOverlayFX)(IAMOverlayFX *This,DWORD dwOverlayFX);
13715       HRESULT (WINAPI *GetOverlayFX)(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
13716     END_INTERFACE
13717   } IAMOverlayFXVtbl;
13718   struct IAMOverlayFX {
13719     CONST_VTBL struct IAMOverlayFXVtbl *lpVtbl;
13720   };
13721 #ifdef COBJMACROS
13722 #define IAMOverlayFX_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13723 #define IAMOverlayFX_AddRef(This) (This)->lpVtbl->AddRef(This)
13724 #define IAMOverlayFX_Release(This) (This)->lpVtbl->Release(This)
13725 #define IAMOverlayFX_QueryOverlayFXCaps(This,lpdwOverlayFXCaps) (This)->lpVtbl->QueryOverlayFXCaps(This,lpdwOverlayFXCaps)
13726 #define IAMOverlayFX_SetOverlayFX(This,dwOverlayFX) (This)->lpVtbl->SetOverlayFX(This,dwOverlayFX)
13727 #define IAMOverlayFX_GetOverlayFX(This,lpdwOverlayFX) (This)->lpVtbl->GetOverlayFX(This,lpdwOverlayFX)
13728 #endif
13729 #endif
13730   HRESULT WINAPI IAMOverlayFX_QueryOverlayFXCaps_Proxy(IAMOverlayFX *This,DWORD *lpdwOverlayFXCaps);
13731   void __RPC_STUB IAMOverlayFX_QueryOverlayFXCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13732   HRESULT WINAPI IAMOverlayFX_SetOverlayFX_Proxy(IAMOverlayFX *This,DWORD dwOverlayFX);
13733   void __RPC_STUB IAMOverlayFX_SetOverlayFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13734   HRESULT WINAPI IAMOverlayFX_GetOverlayFX_Proxy(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
13735   void __RPC_STUB IAMOverlayFX_GetOverlayFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13736 #endif
13737 
13738 #ifndef __IAMOpenProgress_INTERFACE_DEFINED__
13739 #define __IAMOpenProgress_INTERFACE_DEFINED__
13740   EXTERN_C const IID IID_IAMOpenProgress;
13741 #if defined(__cplusplus) && !defined(CINTERFACE)
13742   struct IAMOpenProgress : public IUnknown {
13743   public:
13744     virtual HRESULT WINAPI QueryProgress(LONGLONG *pllTotal,LONGLONG *pllCurrent) = 0;
13745     virtual HRESULT WINAPI AbortOperation(void) = 0;
13746   };
13747 #else
13748   typedef struct IAMOpenProgressVtbl {
13749     BEGIN_INTERFACE
13750       HRESULT (WINAPI *QueryInterface)(IAMOpenProgress *This,REFIID riid,void **ppvObject);
13751       ULONG (WINAPI *AddRef)(IAMOpenProgress *This);
13752       ULONG (WINAPI *Release)(IAMOpenProgress *This);
13753       HRESULT (WINAPI *QueryProgress)(IAMOpenProgress *This,LONGLONG *pllTotal,LONGLONG *pllCurrent);
13754       HRESULT (WINAPI *AbortOperation)(IAMOpenProgress *This);
13755     END_INTERFACE
13756   } IAMOpenProgressVtbl;
13757   struct IAMOpenProgress {
13758     CONST_VTBL struct IAMOpenProgressVtbl *lpVtbl;
13759   };
13760 #ifdef COBJMACROS
13761 #define IAMOpenProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13762 #define IAMOpenProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
13763 #define IAMOpenProgress_Release(This) (This)->lpVtbl->Release(This)
13764 #define IAMOpenProgress_QueryProgress(This,pllTotal,pllCurrent) (This)->lpVtbl->QueryProgress(This,pllTotal,pllCurrent)
13765 #define IAMOpenProgress_AbortOperation(This) (This)->lpVtbl->AbortOperation(This)
13766 #endif
13767 #endif
13768   HRESULT WINAPI IAMOpenProgress_QueryProgress_Proxy(IAMOpenProgress *This,LONGLONG *pllTotal,LONGLONG *pllCurrent);
13769   void __RPC_STUB IAMOpenProgress_QueryProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13770   HRESULT WINAPI IAMOpenProgress_AbortOperation_Proxy(IAMOpenProgress *This);
13771   void __RPC_STUB IAMOpenProgress_AbortOperation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13772 #endif
13773 
13774 #ifdef __CRT_UUID_DECL
13775 __CRT_UUID_DECL(IMpeg2Demultiplexer,0x436eee9c,0x264f,0x4242,0x90,0xe1,0x4e,0x33,0x0c,0x10,0x75,0x12);
13776 #endif
13777 
13778 #ifndef __IMpeg2Demultiplexer_INTERFACE_DEFINED__
13779 #define __IMpeg2Demultiplexer_INTERFACE_DEFINED__
13780   EXTERN_C const IID IID_IMpeg2Demultiplexer;
13781 #if defined(__cplusplus) && !defined(CINTERFACE)
13782   struct IMpeg2Demultiplexer : public IUnknown {
13783   public:
13784     virtual HRESULT WINAPI CreateOutputPin(AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin) = 0;
13785     virtual HRESULT WINAPI SetOutputPinMediaType(LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType) = 0;
13786     virtual HRESULT WINAPI DeleteOutputPin(LPWSTR pszPinName) = 0;
13787   };
13788 #else
13789   typedef struct IMpeg2DemultiplexerVtbl {
13790     BEGIN_INTERFACE
13791       HRESULT (WINAPI *QueryInterface)(IMpeg2Demultiplexer *This,REFIID riid,void **ppvObject);
13792       ULONG (WINAPI *AddRef)(IMpeg2Demultiplexer *This);
13793       ULONG (WINAPI *Release)(IMpeg2Demultiplexer *This);
13794       HRESULT (WINAPI *CreateOutputPin)(IMpeg2Demultiplexer *This,AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin);
13795       HRESULT (WINAPI *SetOutputPinMediaType)(IMpeg2Demultiplexer *This,LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType);
13796       HRESULT (WINAPI *DeleteOutputPin)(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
13797     END_INTERFACE
13798   } IMpeg2DemultiplexerVtbl;
13799   struct IMpeg2Demultiplexer {
13800     CONST_VTBL struct IMpeg2DemultiplexerVtbl *lpVtbl;
13801   };
13802 #ifdef COBJMACROS
13803 #define IMpeg2Demultiplexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13804 #define IMpeg2Demultiplexer_AddRef(This) (This)->lpVtbl->AddRef(This)
13805 #define IMpeg2Demultiplexer_Release(This) (This)->lpVtbl->Release(This)
13806 #define IMpeg2Demultiplexer_CreateOutputPin(This,pMediaType,pszPinName,ppIPin) (This)->lpVtbl->CreateOutputPin(This,pMediaType,pszPinName,ppIPin)
13807 #define IMpeg2Demultiplexer_SetOutputPinMediaType(This,pszPinName,pMediaType) (This)->lpVtbl->SetOutputPinMediaType(This,pszPinName,pMediaType)
13808 #define IMpeg2Demultiplexer_DeleteOutputPin(This,pszPinName) (This)->lpVtbl->DeleteOutputPin(This,pszPinName)
13809 #endif
13810 #endif
13811   HRESULT WINAPI IMpeg2Demultiplexer_CreateOutputPin_Proxy(IMpeg2Demultiplexer *This,AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin);
13812   void __RPC_STUB IMpeg2Demultiplexer_CreateOutputPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13813   HRESULT WINAPI IMpeg2Demultiplexer_SetOutputPinMediaType_Proxy(IMpeg2Demultiplexer *This,LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType);
13814   void __RPC_STUB IMpeg2Demultiplexer_SetOutputPinMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13815   HRESULT WINAPI IMpeg2Demultiplexer_DeleteOutputPin_Proxy(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
13816   void __RPC_STUB IMpeg2Demultiplexer_DeleteOutputPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13817 #endif
13818 
13819 #define MPEG2_PROGRAM_STREAM_MAP 0x00000000
13820 #define MPEG2_PROGRAM_ELEMENTARY_STREAM 0x00000001
13821 #define MPEG2_PROGRAM_DIRECTORY_PES_PACKET 0x00000002
13822 #define MPEG2_PROGRAM_PACK_HEADER 0x00000003
13823 #define MPEG2_PROGRAM_PES_STREAM 0x00000004
13824 #define MPEG2_PROGRAM_SYSTEM_HEADER 0x00000005
13825 #define SUBSTREAM_FILTER_VAL_NONE 0x10000000
13826 
13827   typedef struct __MIDL___MIDL_itf_strmif_0365_0001 {
13828     ULONG stream_id;
13829     DWORD dwMediaSampleContent;
13830     ULONG ulSubstreamFilterValue;
13831     int iDataOffset;
13832   } STREAM_ID_MAP;
13833 
13834   extern RPC_IF_HANDLE __MIDL_itf_strmif_0365_v0_0_c_ifspec;
13835   extern RPC_IF_HANDLE __MIDL_itf_strmif_0365_v0_0_s_ifspec;
13836 #ifndef __IEnumStreamIdMap_INTERFACE_DEFINED__
13837 #define __IEnumStreamIdMap_INTERFACE_DEFINED__
13838   EXTERN_C const IID IID_IEnumStreamIdMap;
13839 #if defined(__cplusplus) && !defined(CINTERFACE)
13840   struct IEnumStreamIdMap : public IUnknown {
13841   public:
13842     virtual HRESULT WINAPI Next(ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived) = 0;
13843     virtual HRESULT WINAPI Skip(ULONG cRecords) = 0;
13844     virtual HRESULT WINAPI Reset(void) = 0;
13845     virtual HRESULT WINAPI Clone(IEnumStreamIdMap **ppIEnumStreamIdMap) = 0;
13846   };
13847 #else
13848   typedef struct IEnumStreamIdMapVtbl {
13849     BEGIN_INTERFACE
13850       HRESULT (WINAPI *QueryInterface)(IEnumStreamIdMap *This,REFIID riid,void **ppvObject);
13851       ULONG (WINAPI *AddRef)(IEnumStreamIdMap *This);
13852       ULONG (WINAPI *Release)(IEnumStreamIdMap *This);
13853       HRESULT (WINAPI *Next)(IEnumStreamIdMap *This,ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived);
13854       HRESULT (WINAPI *Skip)(IEnumStreamIdMap *This,ULONG cRecords);
13855       HRESULT (WINAPI *Reset)(IEnumStreamIdMap *This);
13856       HRESULT (WINAPI *Clone)(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
13857     END_INTERFACE
13858   } IEnumStreamIdMapVtbl;
13859   struct IEnumStreamIdMap {
13860     CONST_VTBL struct IEnumStreamIdMapVtbl *lpVtbl;
13861   };
13862 #ifdef COBJMACROS
13863 #define IEnumStreamIdMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13864 #define IEnumStreamIdMap_AddRef(This) (This)->lpVtbl->AddRef(This)
13865 #define IEnumStreamIdMap_Release(This) (This)->lpVtbl->Release(This)
13866 #define IEnumStreamIdMap_Next(This,cRequest,pStreamIdMap,pcReceived) (This)->lpVtbl->Next(This,cRequest,pStreamIdMap,pcReceived)
13867 #define IEnumStreamIdMap_Skip(This,cRecords) (This)->lpVtbl->Skip(This,cRecords)
13868 #define IEnumStreamIdMap_Reset(This) (This)->lpVtbl->Reset(This)
13869 #define IEnumStreamIdMap_Clone(This,ppIEnumStreamIdMap) (This)->lpVtbl->Clone(This,ppIEnumStreamIdMap)
13870 #endif
13871 #endif
13872   HRESULT WINAPI IEnumStreamIdMap_Next_Proxy(IEnumStreamIdMap *This,ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived);
13873   void __RPC_STUB IEnumStreamIdMap_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13874   HRESULT WINAPI IEnumStreamIdMap_Skip_Proxy(IEnumStreamIdMap *This,ULONG cRecords);
13875   void __RPC_STUB IEnumStreamIdMap_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13876   HRESULT WINAPI IEnumStreamIdMap_Reset_Proxy(IEnumStreamIdMap *This);
13877   void __RPC_STUB IEnumStreamIdMap_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13878   HRESULT WINAPI IEnumStreamIdMap_Clone_Proxy(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
13879   void __RPC_STUB IEnumStreamIdMap_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13880 #endif
13881 
13882 #ifndef __IMPEG2StreamIdMap_INTERFACE_DEFINED__
13883 #define __IMPEG2StreamIdMap_INTERFACE_DEFINED__
13884   EXTERN_C const IID IID_IMPEG2StreamIdMap;
13885 #if defined(__cplusplus) && !defined(CINTERFACE)
13886   struct IMPEG2StreamIdMap : public IUnknown {
13887   public:
13888     virtual HRESULT WINAPI MapStreamId(ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset) = 0;
13889     virtual HRESULT WINAPI UnmapStreamId(ULONG culStreamId,ULONG *pulStreamId) = 0;
13890     virtual HRESULT WINAPI EnumStreamIdMap(IEnumStreamIdMap **ppIEnumStreamIdMap) = 0;
13891   };
13892 #else
13893   typedef struct IMPEG2StreamIdMapVtbl {
13894     BEGIN_INTERFACE
13895       HRESULT (WINAPI *QueryInterface)(IMPEG2StreamIdMap *This,REFIID riid,void **ppvObject);
13896       ULONG (WINAPI *AddRef)(IMPEG2StreamIdMap *This);
13897       ULONG (WINAPI *Release)(IMPEG2StreamIdMap *This);
13898       HRESULT (WINAPI *MapStreamId)(IMPEG2StreamIdMap *This,ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset);
13899       HRESULT (WINAPI *UnmapStreamId)(IMPEG2StreamIdMap *This,ULONG culStreamId,ULONG *pulStreamId);
13900       HRESULT (WINAPI *EnumStreamIdMap)(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
13901     END_INTERFACE
13902   } IMPEG2StreamIdMapVtbl;
13903   struct IMPEG2StreamIdMap {
13904     CONST_VTBL struct IMPEG2StreamIdMapVtbl *lpVtbl;
13905   };
13906 #ifdef COBJMACROS
13907 #define IMPEG2StreamIdMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13908 #define IMPEG2StreamIdMap_AddRef(This) (This)->lpVtbl->AddRef(This)
13909 #define IMPEG2StreamIdMap_Release(This) (This)->lpVtbl->Release(This)
13910 #define IMPEG2StreamIdMap_MapStreamId(This,ulStreamId,MediaSampleContent,ulSubstreamFilterValue,iDataOffset) (This)->lpVtbl->MapStreamId(This,ulStreamId,MediaSampleContent,ulSubstreamFilterValue,iDataOffset)
13911 #define IMPEG2StreamIdMap_UnmapStreamId(This,culStreamId,pulStreamId) (This)->lpVtbl->UnmapStreamId(This,culStreamId,pulStreamId)
13912 #define IMPEG2StreamIdMap_EnumStreamIdMap(This,ppIEnumStreamIdMap) (This)->lpVtbl->EnumStreamIdMap(This,ppIEnumStreamIdMap)
13913 #endif
13914 #endif
13915   HRESULT WINAPI IMPEG2StreamIdMap_MapStreamId_Proxy(IMPEG2StreamIdMap *This,ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset);
13916   void __RPC_STUB IMPEG2StreamIdMap_MapStreamId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13917   HRESULT WINAPI IMPEG2StreamIdMap_UnmapStreamId_Proxy(IMPEG2StreamIdMap *This,ULONG culStreamId,ULONG *pulStreamId);
13918   void __RPC_STUB IMPEG2StreamIdMap_UnmapStreamId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13919   HRESULT WINAPI IMPEG2StreamIdMap_EnumStreamIdMap_Proxy(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
13920   void __RPC_STUB IMPEG2StreamIdMap_EnumStreamIdMap_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13921 #endif
13922 
13923 #ifndef __IRegisterServiceProvider_INTERFACE_DEFINED__
13924 #define __IRegisterServiceProvider_INTERFACE_DEFINED__
13925   EXTERN_C const IID IID_IRegisterServiceProvider;
13926 #if defined(__cplusplus) && !defined(CINTERFACE)
13927   struct IRegisterServiceProvider : public IUnknown {
13928   public:
13929     virtual HRESULT WINAPI RegisterService(REFGUID guidService,IUnknown *pUnkObject) = 0;
13930   };
13931 #else
13932   typedef struct IRegisterServiceProviderVtbl {
13933     BEGIN_INTERFACE
13934       HRESULT (WINAPI *QueryInterface)(IRegisterServiceProvider *This,REFIID riid,void **ppvObject);
13935       ULONG (WINAPI *AddRef)(IRegisterServiceProvider *This);
13936       ULONG (WINAPI *Release)(IRegisterServiceProvider *This);
13937       HRESULT (WINAPI *RegisterService)(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
13938     END_INTERFACE
13939   } IRegisterServiceProviderVtbl;
13940   struct IRegisterServiceProvider {
13941     CONST_VTBL struct IRegisterServiceProviderVtbl *lpVtbl;
13942   };
13943 #ifdef COBJMACROS
13944 #define IRegisterServiceProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13945 #define IRegisterServiceProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
13946 #define IRegisterServiceProvider_Release(This) (This)->lpVtbl->Release(This)
13947 #define IRegisterServiceProvider_RegisterService(This,guidService,pUnkObject) (This)->lpVtbl->RegisterService(This,guidService,pUnkObject)
13948 #endif
13949 #endif
13950   HRESULT WINAPI IRegisterServiceProvider_RegisterService_Proxy(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
13951   void __RPC_STUB IRegisterServiceProvider_RegisterService_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13952 #endif
13953 
13954 #ifdef __cplusplus
13955 #ifndef _IAMFilterGraphCallback_
13956 #define _IAMFilterGraphCallback_
13957   EXTERN_GUID(IID_IAMFilterGraphCallback,0x56a868fd,0x0ad4,0x11ce,0xb0,0xa3,0x0,0x20,0xaf,0x0b,0xa7,0x70);
13958   struct IAMFilterGraphCallback : public IUnknown {
13959     virtual HRESULT UnableToRender(IPin *pPin) = 0;
13960   };
13961 #endif
13962 #endif
13963   struct CodecAPIEventData {
13964     GUID guid;
13965     DWORD dataLength;
13966     DWORD reserved[3];
13967   };
13968 
13969   extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_c_ifspec;
13970   extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_s_ifspec;
13971 #ifndef __ICodecAPI_INTERFACE_DEFINED__
13972 #define __ICodecAPI_INTERFACE_DEFINED__
13973   EXTERN_C const IID IID_ICodecAPI;
13974 #if defined(__cplusplus) && !defined(CINTERFACE)
13975   struct ICodecAPI : public IUnknown {
13976   public:
13977     virtual HRESULT WINAPI IsSupported(const GUID *Api) = 0;
13978     virtual HRESULT WINAPI IsModifiable(const GUID *Api) = 0;
13979     virtual HRESULT WINAPI GetParameterRange(const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta) = 0;
13980     virtual HRESULT WINAPI GetParameterValues(const GUID *Api,VARIANT **Values,ULONG *ValuesCount) = 0;
13981     virtual HRESULT WINAPI GetDefaultValue(const GUID *Api,VARIANT *Value) = 0;
13982     virtual HRESULT WINAPI GetValue(const GUID *Api,VARIANT *Value) = 0;
13983     virtual HRESULT WINAPI SetValue(const GUID *Api,VARIANT *Value) = 0;
13984     virtual HRESULT WINAPI RegisterForEvent(const GUID *Api,LONG_PTR userData) = 0;
13985     virtual HRESULT WINAPI UnregisterForEvent(const GUID *Api) = 0;
13986     virtual HRESULT WINAPI SetAllDefaults(void) = 0;
13987     virtual HRESULT WINAPI SetValueWithNotify(const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
13988     virtual HRESULT WINAPI SetAllDefaultsWithNotify(GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
13989     virtual HRESULT WINAPI GetAllSettings(IStream *__MIDL_0016) = 0;
13990     virtual HRESULT WINAPI SetAllSettings(IStream *__MIDL_0017) = 0;
13991     virtual HRESULT WINAPI SetAllSettingsWithNotify(IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
13992   };
13993 #else
13994   typedef struct ICodecAPIVtbl {
13995     BEGIN_INTERFACE
13996       HRESULT (WINAPI *QueryInterface)(ICodecAPI *This,REFIID riid,void **ppvObject);
13997       ULONG (WINAPI *AddRef)(ICodecAPI *This);
13998       ULONG (WINAPI *Release)(ICodecAPI *This);
13999       HRESULT (WINAPI *IsSupported)(ICodecAPI *This,const GUID *Api);
14000       HRESULT (WINAPI *IsModifiable)(ICodecAPI *This,const GUID *Api);
14001       HRESULT (WINAPI *GetParameterRange)(ICodecAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
14002       HRESULT (WINAPI *GetParameterValues)(ICodecAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
14003       HRESULT (WINAPI *GetDefaultValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
14004       HRESULT (WINAPI *GetValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
14005       HRESULT (WINAPI *SetValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
14006       HRESULT (WINAPI *RegisterForEvent)(ICodecAPI *This,const GUID *Api,LONG_PTR userData);
14007       HRESULT (WINAPI *UnregisterForEvent)(ICodecAPI *This,const GUID *Api);
14008       HRESULT (WINAPI *SetAllDefaults)(ICodecAPI *This);
14009       HRESULT (WINAPI *SetValueWithNotify)(ICodecAPI *This,const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount);
14010       HRESULT (WINAPI *SetAllDefaultsWithNotify)(ICodecAPI *This,GUID **ChangedParam,ULONG *ChangedParamCount);
14011       HRESULT (WINAPI *GetAllSettings)(ICodecAPI *This,IStream *__MIDL_0016);
14012       HRESULT (WINAPI *SetAllSettings)(ICodecAPI *This,IStream *__MIDL_0017);
14013       HRESULT (WINAPI *SetAllSettingsWithNotify)(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
14014     END_INTERFACE
14015   } ICodecAPIVtbl;
14016   struct ICodecAPI {
14017     CONST_VTBL struct ICodecAPIVtbl *lpVtbl;
14018   };
14019 #ifdef COBJMACROS
14020 #define ICodecAPI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14021 #define ICodecAPI_AddRef(This) (This)->lpVtbl->AddRef(This)
14022 #define ICodecAPI_Release(This) (This)->lpVtbl->Release(This)
14023 #define ICodecAPI_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
14024 #define ICodecAPI_IsModifiable(This,Api) (This)->lpVtbl->IsModifiable(This,Api)
14025 #define ICodecAPI_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
14026 #define ICodecAPI_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
14027 #define ICodecAPI_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
14028 #define ICodecAPI_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
14029 #define ICodecAPI_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
14030 #define ICodecAPI_RegisterForEvent(This,Api,userData) (This)->lpVtbl->RegisterForEvent(This,Api,userData)
14031 #define ICodecAPI_UnregisterForEvent(This,Api) (This)->lpVtbl->UnregisterForEvent(This,Api)
14032 #define ICodecAPI_SetAllDefaults(This) (This)->lpVtbl->SetAllDefaults(This)
14033 #define ICodecAPI_SetValueWithNotify(This,Api,Value,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetValueWithNotify(This,Api,Value,ChangedParam,ChangedParamCount)
14034 #define ICodecAPI_SetAllDefaultsWithNotify(This,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetAllDefaultsWithNotify(This,ChangedParam,ChangedParamCount)
14035 #define ICodecAPI_GetAllSettings(This,__MIDL_0016) (This)->lpVtbl->GetAllSettings(This,__MIDL_0016)
14036 #define ICodecAPI_SetAllSettings(This,__MIDL_0017) (This)->lpVtbl->SetAllSettings(This,__MIDL_0017)
14037 #define ICodecAPI_SetAllSettingsWithNotify(This,__MIDL_0018,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetAllSettingsWithNotify(This,__MIDL_0018,ChangedParam,ChangedParamCount)
14038 #endif
14039 #endif
14040   HRESULT WINAPI ICodecAPI_IsSupported_Proxy(ICodecAPI *This,const GUID *Api);
14041   void __RPC_STUB ICodecAPI_IsSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14042   HRESULT WINAPI ICodecAPI_IsModifiable_Proxy(ICodecAPI *This,const GUID *Api);
14043   void __RPC_STUB ICodecAPI_IsModifiable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14044   HRESULT WINAPI ICodecAPI_GetParameterRange_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
14045   void __RPC_STUB ICodecAPI_GetParameterRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14046   HRESULT WINAPI ICodecAPI_GetParameterValues_Proxy(ICodecAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
14047   void __RPC_STUB ICodecAPI_GetParameterValues_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14048   HRESULT WINAPI ICodecAPI_GetDefaultValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
14049   void __RPC_STUB ICodecAPI_GetDefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14050   HRESULT WINAPI ICodecAPI_GetValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
14051   void __RPC_STUB ICodecAPI_GetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14052   HRESULT WINAPI ICodecAPI_SetValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
14053   void __RPC_STUB ICodecAPI_SetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14054   HRESULT WINAPI ICodecAPI_RegisterForEvent_Proxy(ICodecAPI *This,const GUID *Api,LONG_PTR userData);
14055   void __RPC_STUB ICodecAPI_RegisterForEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14056   HRESULT WINAPI ICodecAPI_UnregisterForEvent_Proxy(ICodecAPI *This,const GUID *Api);
14057   void __RPC_STUB ICodecAPI_UnregisterForEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14058   HRESULT WINAPI ICodecAPI_SetAllDefaults_Proxy(ICodecAPI *This);
14059   void __RPC_STUB ICodecAPI_SetAllDefaults_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14060   HRESULT WINAPI ICodecAPI_SetValueWithNotify_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount);
14061   void __RPC_STUB ICodecAPI_SetValueWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14062   HRESULT WINAPI ICodecAPI_SetAllDefaultsWithNotify_Proxy(ICodecAPI *This,GUID **ChangedParam,ULONG *ChangedParamCount);
14063   void __RPC_STUB ICodecAPI_SetAllDefaultsWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14064   HRESULT WINAPI ICodecAPI_GetAllSettings_Proxy(ICodecAPI *This,IStream *__MIDL_0016);
14065   void __RPC_STUB ICodecAPI_GetAllSettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14066   HRESULT WINAPI ICodecAPI_SetAllSettings_Proxy(ICodecAPI *This,IStream *__MIDL_0017);
14067   void __RPC_STUB ICodecAPI_SetAllSettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14068   HRESULT WINAPI ICodecAPI_SetAllSettingsWithNotify_Proxy(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
14069   void __RPC_STUB ICodecAPI_SetAllSettingsWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14070 #endif
14071 
14072 #ifndef __IGetCapabilitiesKey_INTERFACE_DEFINED__
14073 #define __IGetCapabilitiesKey_INTERFACE_DEFINED__
14074   EXTERN_C const IID IID_IGetCapabilitiesKey;
14075 #if defined(__cplusplus) && !defined(CINTERFACE)
14076   struct IGetCapabilitiesKey : public IUnknown {
14077   public:
14078     virtual HRESULT WINAPI GetCapabilitiesKey(HKEY *pHKey) = 0;
14079   };
14080 #else
14081   typedef struct IGetCapabilitiesKeyVtbl {
14082     BEGIN_INTERFACE
14083       HRESULT (WINAPI *QueryInterface)(IGetCapabilitiesKey *This,REFIID riid,void **ppvObject);
14084       ULONG (WINAPI *AddRef)(IGetCapabilitiesKey *This);
14085       ULONG (WINAPI *Release)(IGetCapabilitiesKey *This);
14086       HRESULT (WINAPI *GetCapabilitiesKey)(IGetCapabilitiesKey *This,HKEY *pHKey);
14087     END_INTERFACE
14088   } IGetCapabilitiesKeyVtbl;
14089   struct IGetCapabilitiesKey {
14090     CONST_VTBL struct IGetCapabilitiesKeyVtbl *lpVtbl;
14091   };
14092 #ifdef COBJMACROS
14093 #define IGetCapabilitiesKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14094 #define IGetCapabilitiesKey_AddRef(This) (This)->lpVtbl->AddRef(This)
14095 #define IGetCapabilitiesKey_Release(This) (This)->lpVtbl->Release(This)
14096 #define IGetCapabilitiesKey_GetCapabilitiesKey(This,pHKey) (This)->lpVtbl->GetCapabilitiesKey(This,pHKey)
14097 #endif
14098 #endif
14099   HRESULT WINAPI IGetCapabilitiesKey_GetCapabilitiesKey_Proxy(IGetCapabilitiesKey *This,HKEY *pHKey);
14100   void __RPC_STUB IGetCapabilitiesKey_GetCapabilitiesKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14101 #endif
14102 
14103 #ifndef __IEncoderAPI_INTERFACE_DEFINED__
14104 #define __IEncoderAPI_INTERFACE_DEFINED__
14105   EXTERN_C const IID IID_IEncoderAPI;
14106 #if defined(__cplusplus) && !defined(CINTERFACE)
14107   struct IEncoderAPI : public IUnknown {
14108   public:
14109     virtual HRESULT WINAPI IsSupported(const GUID *Api) = 0;
14110     virtual HRESULT WINAPI IsAvailable(const GUID *Api) = 0;
14111     virtual HRESULT WINAPI GetParameterRange(const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta) = 0;
14112     virtual HRESULT WINAPI GetParameterValues(const GUID *Api,VARIANT **Values,ULONG *ValuesCount) = 0;
14113     virtual HRESULT WINAPI GetDefaultValue(const GUID *Api,VARIANT *Value) = 0;
14114     virtual HRESULT WINAPI GetValue(const GUID *Api,VARIANT *Value) = 0;
14115     virtual HRESULT WINAPI SetValue(const GUID *Api,VARIANT *Value) = 0;
14116   };
14117 #else
14118   typedef struct IEncoderAPIVtbl {
14119     BEGIN_INTERFACE
14120       HRESULT (WINAPI *QueryInterface)(IEncoderAPI *This,REFIID riid,void **ppvObject);
14121       ULONG (WINAPI *AddRef)(IEncoderAPI *This);
14122       ULONG (WINAPI *Release)(IEncoderAPI *This);
14123       HRESULT (WINAPI *IsSupported)(IEncoderAPI *This,const GUID *Api);
14124       HRESULT (WINAPI *IsAvailable)(IEncoderAPI *This,const GUID *Api);
14125       HRESULT (WINAPI *GetParameterRange)(IEncoderAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
14126       HRESULT (WINAPI *GetParameterValues)(IEncoderAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
14127       HRESULT (WINAPI *GetDefaultValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
14128       HRESULT (WINAPI *GetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
14129       HRESULT (WINAPI *SetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
14130     END_INTERFACE
14131   } IEncoderAPIVtbl;
14132   struct IEncoderAPI {
14133     CONST_VTBL struct IEncoderAPIVtbl *lpVtbl;
14134   };
14135 #ifdef COBJMACROS
14136 #define IEncoderAPI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14137 #define IEncoderAPI_AddRef(This) (This)->lpVtbl->AddRef(This)
14138 #define IEncoderAPI_Release(This) (This)->lpVtbl->Release(This)
14139 #define IEncoderAPI_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
14140 #define IEncoderAPI_IsAvailable(This,Api) (This)->lpVtbl->IsAvailable(This,Api)
14141 #define IEncoderAPI_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
14142 #define IEncoderAPI_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
14143 #define IEncoderAPI_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
14144 #define IEncoderAPI_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
14145 #define IEncoderAPI_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
14146 #endif
14147 #endif
14148   HRESULT WINAPI IEncoderAPI_IsSupported_Proxy(IEncoderAPI *This,const GUID *Api);
14149   void __RPC_STUB IEncoderAPI_IsSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14150   HRESULT WINAPI IEncoderAPI_IsAvailable_Proxy(IEncoderAPI *This,const GUID *Api);
14151   void __RPC_STUB IEncoderAPI_IsAvailable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14152   HRESULT WINAPI IEncoderAPI_GetParameterRange_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
14153   void __RPC_STUB IEncoderAPI_GetParameterRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14154   HRESULT WINAPI IEncoderAPI_GetParameterValues_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
14155   void __RPC_STUB IEncoderAPI_GetParameterValues_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14156   HRESULT WINAPI IEncoderAPI_GetDefaultValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
14157   void __RPC_STUB IEncoderAPI_GetDefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14158   HRESULT WINAPI IEncoderAPI_GetValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
14159   void __RPC_STUB IEncoderAPI_GetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14160   HRESULT WINAPI IEncoderAPI_SetValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
14161   void __RPC_STUB IEncoderAPI_SetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14162 #endif
14163 
14164 #ifndef __IVideoEncoder_INTERFACE_DEFINED__
14165 #define __IVideoEncoder_INTERFACE_DEFINED__
14166   EXTERN_C const IID IID_IVideoEncoder;
14167 #if defined(__cplusplus) && !defined(CINTERFACE)
14168   struct IVideoEncoder : public IEncoderAPI {
14169   public:
14170   };
14171 #else
14172   typedef struct IVideoEncoderVtbl {
14173     BEGIN_INTERFACE
14174       HRESULT (WINAPI *QueryInterface)(IVideoEncoder *This,REFIID riid,void **ppvObject);
14175       ULONG (WINAPI *AddRef)(IVideoEncoder *This);
14176       ULONG (WINAPI *Release)(IVideoEncoder *This);
14177       HRESULT (WINAPI *IsSupported)(IVideoEncoder *This,const GUID *Api);
14178       HRESULT (WINAPI *IsAvailable)(IVideoEncoder *This,const GUID *Api);
14179       HRESULT (WINAPI *GetParameterRange)(IVideoEncoder *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
14180       HRESULT (WINAPI *GetParameterValues)(IVideoEncoder *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
14181       HRESULT (WINAPI *GetDefaultValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
14182       HRESULT (WINAPI *GetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
14183       HRESULT (WINAPI *SetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
14184     END_INTERFACE
14185   } IVideoEncoderVtbl;
14186   struct IVideoEncoder {
14187     CONST_VTBL struct IVideoEncoderVtbl *lpVtbl;
14188   };
14189 #ifdef COBJMACROS
14190 #define IVideoEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14191 #define IVideoEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
14192 #define IVideoEncoder_Release(This) (This)->lpVtbl->Release(This)
14193 #define IVideoEncoder_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
14194 #define IVideoEncoder_IsAvailable(This,Api) (This)->lpVtbl->IsAvailable(This,Api)
14195 #define IVideoEncoder_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
14196 #define IVideoEncoder_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
14197 #define IVideoEncoder_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
14198 #define IVideoEncoder_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
14199 #define IVideoEncoder_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
14200 #endif
14201 #endif
14202 #endif
14203 
14204 #ifndef __ENCODER_API_DEFINES__
14205 #define __ENCODER_API_DEFINES__
14206   typedef enum __MIDL___MIDL_itf_strmif_0374_0001 {
14207     ConstantBitRate = 0,
14208     VariableBitRateAverage,VariableBitRatePeak
14209   } VIDEOENCODER_BITRATE_MODE;
14210 #endif
14211 #define AM_GETDECODERCAP_QUERY_VMR_SUPPORT 0x00000001
14212 #define VMR_NOTSUPPORTED 0x00000000
14213 #define VMR_SUPPORTED 0x00000001
14214 #define AM_QUERY_DECODER_VMR_SUPPORT 0x00000001
14215 #define AM_QUERY_DECODER_DXVA_1_SUPPORT 0x00000002
14216 #define AM_QUERY_DECODER_DVD_SUPPORT 0x00000003
14217 #define AM_QUERY_DECODER_ATSC_SD_SUPPORT 0x00000004
14218 #define AM_QUERY_DECODER_ATSC_HD_SUPPORT 0x00000005
14219 #define AM_GETDECODERCAP_QUERY_VMR9_SUPPORT 0x00000006
14220 #define DECODER_CAP_NOTSUPPORTED 0x00000000
14221 #define DECODER_CAP_SUPPORTED 0x00000001
14222 
14223   extern RPC_IF_HANDLE __MIDL_itf_strmif_0374_v0_0_c_ifspec;
14224   extern RPC_IF_HANDLE __MIDL_itf_strmif_0374_v0_0_s_ifspec;
14225 #ifndef __IAMDecoderCaps_INTERFACE_DEFINED__
14226 #define __IAMDecoderCaps_INTERFACE_DEFINED__
14227   EXTERN_C const IID IID_IAMDecoderCaps;
14228 #if defined(__cplusplus) && !defined(CINTERFACE)
14229   struct IAMDecoderCaps : public IUnknown {
14230   public:
14231     virtual HRESULT WINAPI GetDecoderCaps(DWORD dwCapIndex,DWORD *lpdwCap) = 0;
14232   };
14233 #else
14234   typedef struct IAMDecoderCapsVtbl {
14235     BEGIN_INTERFACE
14236       HRESULT (WINAPI *QueryInterface)(IAMDecoderCaps *This,REFIID riid,void **ppvObject);
14237       ULONG (WINAPI *AddRef)(IAMDecoderCaps *This);
14238       ULONG (WINAPI *Release)(IAMDecoderCaps *This);
14239       HRESULT (WINAPI *GetDecoderCaps)(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
14240     END_INTERFACE
14241   } IAMDecoderCapsVtbl;
14242   struct IAMDecoderCaps {
14243     CONST_VTBL struct IAMDecoderCapsVtbl *lpVtbl;
14244   };
14245 #ifdef COBJMACROS
14246 #define IAMDecoderCaps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14247 #define IAMDecoderCaps_AddRef(This) (This)->lpVtbl->AddRef(This)
14248 #define IAMDecoderCaps_Release(This) (This)->lpVtbl->Release(This)
14249 #define IAMDecoderCaps_GetDecoderCaps(This,dwCapIndex,lpdwCap) (This)->lpVtbl->GetDecoderCaps(This,dwCapIndex,lpdwCap)
14250 #endif
14251 #endif
14252   HRESULT WINAPI IAMDecoderCaps_GetDecoderCaps_Proxy(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
14253   void __RPC_STUB IAMDecoderCaps_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14254 #endif
14255 
14256 #ifdef MINGW_HAS_DDRAW_H
14257 #include <ddraw.h>
14258 #else
14259   typedef void *IDirectDraw;
14260   typedef void *IDirectDrawSurface;
14261   typedef void *LPDIRECTDRAWSURFACE7;
14262   typedef void *LPDIRECTDRAW7;
14263   typedef void *LPDDPIXELFORMAT;
14264   typedef struct DDCOLORKEY {
14265     DWORD dw1;
14266     DWORD dw2;
14267   } DDCOLORKEY;
14268   typedef DDCOLORKEY *LPDDCOLORKEY;
14269 #endif
14270 
14271   typedef enum tagDVD_DOMAIN {
14272     DVD_DOMAIN_FirstPlay = 1,
14273     DVD_DOMAIN_VideoManagerMenu,DVD_DOMAIN_VideoTitleSetMenu,DVD_DOMAIN_Title,
14274     DVD_DOMAIN_Stop
14275   } DVD_DOMAIN;
14276 
14277   typedef enum tagDVD_MENU_ID {
14278     DVD_MENU_Title = 2,DVD_MENU_Root = 3,DVD_MENU_Subpicture = 4,DVD_MENU_Audio = 5,
14279     DVD_MENU_Angle = 6,DVD_MENU_Chapter = 7
14280   } DVD_MENU_ID;
14281 
14282   typedef enum tagDVD_DISC_SIDE {
14283     DVD_SIDE_A = 1,DVD_SIDE_B = 2
14284   } DVD_DISC_SIDE;
14285 
14286   typedef enum tagDVD_PREFERRED_DISPLAY_MODE {
14287     DISPLAY_CONTENT_DEFAULT = 0,DISPLAY_16x9 = 1,DISPLAY_4x3_PANSCAN_PREFERRED = 2,DISPLAY_4x3_LETTERBOX_PREFERRED = 3
14288   } DVD_PREFERRED_DISPLAY_MODE;
14289 
14290   typedef WORD DVD_REGISTER;
14291   typedef DVD_REGISTER GPRMARRAY[16];
14292   typedef DVD_REGISTER SPRMARRAY[24];
14293 
14294   typedef struct tagDVD_ATR {
14295     ULONG ulCAT;
14296     BYTE pbATRI[768];
14297   } DVD_ATR;
14298 
14299   typedef BYTE DVD_VideoATR[2];
14300   typedef BYTE DVD_AudioATR[8];
14301   typedef BYTE DVD_SubpictureATR[6];
14302 
14303   typedef enum tagDVD_FRAMERATE {
14304     DVD_FPS_25 = 1,DVD_FPS_30NonDrop = 3
14305   } DVD_FRAMERATE;
14306 
14307   typedef struct tagDVD_TIMECODE {
14308     ULONG Hours1 :4;
14309     ULONG Hours10 :4;
14310     ULONG Minutes1 :4;
14311     ULONG Minutes10:4;
14312     ULONG Seconds1 :4;
14313     ULONG Seconds10:4;
14314     ULONG Frames1 :4;
14315     ULONG Frames10 :2;
14316     ULONG FrameRateCode: 2;
14317   } DVD_TIMECODE;
14318 
14319   typedef enum tagDVD_TIMECODE_FLAGS {
14320     DVD_TC_FLAG_25fps = 0x1,DVD_TC_FLAG_30fps = 0x2,DVD_TC_FLAG_DropFrame = 0x4,DVD_TC_FLAG_Interpolated = 0x8
14321   } DVD_TIMECODE_FLAGS;
14322 
14323   typedef struct tagDVD_HMSF_TIMECODE {
14324     BYTE bHours;
14325     BYTE bMinutes;
14326     BYTE bSeconds;
14327     BYTE bFrames;
14328   } DVD_HMSF_TIMECODE;
14329 
14330   typedef struct tagDVD_PLAYBACK_LOCATION2 {
14331     ULONG TitleNum;
14332     ULONG ChapterNum;
14333     DVD_HMSF_TIMECODE TimeCode;
14334     ULONG TimeCodeFlags;
14335   } DVD_PLAYBACK_LOCATION2;
14336 
14337   typedef struct tagDVD_PLAYBACK_LOCATION {
14338     ULONG TitleNum;
14339     ULONG ChapterNum;
14340     ULONG TimeCode;
14341   } DVD_PLAYBACK_LOCATION;
14342 
14343   typedef DWORD VALID_UOP_SOMTHING_OR_OTHER;
14344 
14345   typedef enum __MIDL___MIDL_itf_strmif_0376_0001 {
14346     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,
14347     UOP_FLAG_Play_Chapter_Or_AtTime = 0x20,UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x40,UOP_FLAG_PlayNext_Chapter = 0x80,UOP_FLAG_Play_Forwards = 0x100,
14348     UOP_FLAG_Play_Backwards = 0x200,UOP_FLAG_ShowMenu_Title = 0x400,UOP_FLAG_ShowMenu_Root = 0x800,UOP_FLAG_ShowMenu_SubPic = 0x1000,
14349     UOP_FLAG_ShowMenu_Audio = 0x2000,UOP_FLAG_ShowMenu_Angle = 0x4000,UOP_FLAG_ShowMenu_Chapter = 0x8000,UOP_FLAG_Resume = 0x10000,
14350     UOP_FLAG_Select_Or_Activate_Button = 0x20000,UOP_FLAG_Still_Off = 0x40000,UOP_FLAG_Pause_On = 0x80000,UOP_FLAG_Select_Audio_Stream = 0x100000,
14351     UOP_FLAG_Select_SubPic_Stream = 0x200000,UOP_FLAG_Select_Angle = 0x400000,UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x800000,
14352     UOP_FLAG_Select_Video_Mode_Preference = 0x1000000
14353   } VALID_UOP_FLAG;
14354 
14355   typedef enum __MIDL___MIDL_itf_strmif_0376_0002 {
14356     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,
14357     DVD_CMD_FLAG_EndAfterRendered = 0x10
14358   } DVD_CMD_FLAGS;
14359 
14360   typedef enum __MIDL___MIDL_itf_strmif_0376_0003 {
14361     DVD_ResetOnStop = 1,DVD_NotifyParentalLevelChange = 2,DVD_HMSF_TimeCodeEvents = 3,DVD_AudioDuringFFwdRew = 4
14362   } DVD_OPTION_FLAG;
14363 
14364   typedef enum __MIDL___MIDL_itf_strmif_0376_0004 {
14365     DVD_Relative_Upper = 1,DVD_Relative_Lower = 2,DVD_Relative_Left = 3,DVD_Relative_Right = 4
14366   } DVD_RELATIVE_BUTTON;
14367 
14368   typedef enum tagDVD_PARENTAL_LEVEL {
14369     DVD_PARENTAL_LEVEL_8 = 0x8000,DVD_PARENTAL_LEVEL_7 = 0x4000,DVD_PARENTAL_LEVEL_6 = 0x2000,DVD_PARENTAL_LEVEL_5 = 0x1000,
14370     DVD_PARENTAL_LEVEL_4 = 0x800,DVD_PARENTAL_LEVEL_3 = 0x400,DVD_PARENTAL_LEVEL_2 = 0x200,DVD_PARENTAL_LEVEL_1 = 0x100
14371   } DVD_PARENTAL_LEVEL;
14372 
14373   typedef enum tagDVD_AUDIO_LANG_EXT {
14374     DVD_AUD_EXT_NotSpecified = 0,DVD_AUD_EXT_Captions = 1,DVD_AUD_EXT_VisuallyImpaired = 2,DVD_AUD_EXT_DirectorComments1 = 3,
14375     DVD_AUD_EXT_DirectorComments2 = 4
14376   } DVD_AUDIO_LANG_EXT;
14377 
14378   typedef enum tagDVD_SUBPICTURE_LANG_EXT {
14379     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,
14380     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,
14381     DVD_SP_EXT_DirectorComments_Children = 15
14382   } DVD_SUBPICTURE_LANG_EXT;
14383 
14384   typedef enum tagDVD_AUDIO_APPMODE {
14385     DVD_AudioMode_None = 0,DVD_AudioMode_Karaoke = 1,DVD_AudioMode_Surround = 2,DVD_AudioMode_Other = 3
14386   } DVD_AUDIO_APPMODE;
14387 
14388   typedef enum tagDVD_AUDIO_FORMAT {
14389     DVD_AudioFormat_AC3 = 0,DVD_AudioFormat_MPEG1 = 1,DVD_AudioFormat_MPEG1_DRC = 2,DVD_AudioFormat_MPEG2 = 3,DVD_AudioFormat_MPEG2_DRC = 4,
14390     DVD_AudioFormat_LPCM = 5,DVD_AudioFormat_DTS = 6,DVD_AudioFormat_SDDS = 7,DVD_AudioFormat_Other = 8
14391   } DVD_AUDIO_FORMAT;
14392 
14393   typedef enum tagDVD_KARAOKE_DOWNMIX {
14394     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,
14395     DVD_Mix_0to1 = 0x100,DVD_Mix_1to1 = 0x200,DVD_Mix_2to1 = 0x400,DVD_Mix_3to1 = 0x800,DVD_Mix_4to1 = 0x1000,DVD_Mix_Lto1 = 0x2000,
14396     DVD_Mix_Rto1 = 0x4000
14397   } DVD_KARAOKE_DOWNMIX;
14398 
14399   typedef struct tagDVD_AudioAttributes {
14400     DVD_AUDIO_APPMODE AppMode;
14401     BYTE AppModeData;
14402     DVD_AUDIO_FORMAT AudioFormat;
14403     LCID Language;
14404     DVD_AUDIO_LANG_EXT LanguageExtension;
14405     WINBOOL fHasMultichannelInfo;
14406     DWORD dwFrequency;
14407     BYTE bQuantization;
14408     BYTE bNumberOfChannels;
14409     DWORD dwReserved[2];
14410   } DVD_AudioAttributes;
14411 
14412   typedef struct tagDVD_MUA_MixingInfo {
14413     WINBOOL fMixTo0;
14414     WINBOOL fMixTo1;
14415     WINBOOL fMix0InPhase;
14416     WINBOOL fMix1InPhase;
14417     DWORD dwSpeakerPosition;
14418   } DVD_MUA_MixingInfo;
14419 
14420   typedef struct tagDVD_MUA_Coeff {
14421     double log2_alpha;
14422     double log2_beta;
14423   } DVD_MUA_Coeff;
14424 
14425   typedef struct tagDVD_MultichannelAudioAttributes {
14426     DVD_MUA_MixingInfo Info[8];
14427     DVD_MUA_Coeff Coeff[8];
14428   } DVD_MultichannelAudioAttributes;
14429 
14430   typedef enum tagDVD_KARAOKE_CONTENTS {
14431     DVD_Karaoke_GuideVocal1 = 0x1,DVD_Karaoke_GuideVocal2 = 0x2,DVD_Karaoke_GuideMelody1 = 0x4,DVD_Karaoke_GuideMelody2 = 0x8,
14432     DVD_Karaoke_GuideMelodyA = 0x10,DVD_Karaoke_GuideMelodyB = 0x20,DVD_Karaoke_SoundEffectA = 0x40,DVD_Karaoke_SoundEffectB = 0x80
14433   } DVD_KARAOKE_CONTENTS;
14434 
14435   typedef enum tagDVD_KARAOKE_ASSIGNMENT {
14436     DVD_Assignment_reserved0 = 0,DVD_Assignment_reserved1 = 1,DVD_Assignment_LR = 2,DVD_Assignment_LRM = 3,DVD_Assignment_LR1 = 4,
14437     DVD_Assignment_LRM1 = 5,DVD_Assignment_LR12 = 6,DVD_Assignment_LRM12 = 7
14438   } DVD_KARAOKE_ASSIGNMENT;
14439 
14440   typedef struct tagDVD_KaraokeAttributes {
14441     BYTE bVersion;
14442     WINBOOL fMasterOfCeremoniesInGuideVocal1;
14443     WINBOOL fDuet;
14444     DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
14445     WORD wChannelContents[8];
14446   } DVD_KaraokeAttributes;
14447 
14448   typedef enum tagDVD_VIDEO_COMPRESSION {
14449     DVD_VideoCompression_Other = 0,DVD_VideoCompression_MPEG1 = 1,DVD_VideoCompression_MPEG2 = 2
14450   } DVD_VIDEO_COMPRESSION;
14451 
14452   typedef struct tagDVD_VideoAttributes {
14453     WINBOOL fPanscanPermitted;
14454     WINBOOL fLetterboxPermitted;
14455     ULONG ulAspectX;
14456     ULONG ulAspectY;
14457     ULONG ulFrameRate;
14458     ULONG ulFrameHeight;
14459     DVD_VIDEO_COMPRESSION Compression;
14460     WINBOOL fLine21Field1InGOP;
14461     WINBOOL fLine21Field2InGOP;
14462     ULONG ulSourceResolutionX;
14463     ULONG ulSourceResolutionY;
14464     WINBOOL fIsSourceLetterboxed;
14465     WINBOOL fIsFilmMode;
14466   } DVD_VideoAttributes;
14467 
14468   typedef enum tagDVD_SUBPICTURE_TYPE {
14469     DVD_SPType_NotSpecified = 0,DVD_SPType_Language = 1,DVD_SPType_Other = 2
14470   } DVD_SUBPICTURE_TYPE;
14471 
14472   typedef enum tagDVD_SUBPICTURE_CODING {
14473     DVD_SPCoding_RunLength = 0,DVD_SPCoding_Extended = 1,DVD_SPCoding_Other = 2
14474   } DVD_SUBPICTURE_CODING;
14475 
14476   typedef struct tagDVD_SubpictureAttributes {
14477     DVD_SUBPICTURE_TYPE Type;
14478     DVD_SUBPICTURE_CODING CodingMode;
14479     LCID Language;
14480     DVD_SUBPICTURE_LANG_EXT LanguageExtension;
14481   } DVD_SubpictureAttributes;
14482 
14483   typedef enum tagDVD_TITLE_APPMODE {
14484     DVD_AppMode_Not_Specified = 0,DVD_AppMode_Karaoke = 1,DVD_AppMode_Other = 3
14485   } DVD_TITLE_APPMODE;
14486 
14487   typedef struct tagDVD_TitleMainAttributes {
14488     DVD_TITLE_APPMODE AppMode;
14489     DVD_VideoAttributes VideoAttributes;
14490     ULONG ulNumberOfAudioStreams;
14491     DVD_AudioAttributes AudioAttributes[8];
14492     DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8];
14493     ULONG ulNumberOfSubpictureStreams;
14494     DVD_SubpictureAttributes SubpictureAttributes[32];
14495   } DVD_TitleAttributes;
14496 
14497   typedef struct tagDVD_MenuAttributes {
14498     WINBOOL fCompatibleRegion[8];
14499     DVD_VideoAttributes VideoAttributes;
14500     WINBOOL fAudioPresent;
14501     DVD_AudioAttributes AudioAttributes;
14502     WINBOOL fSubpicturePresent;
14503     DVD_SubpictureAttributes SubpictureAttributes;
14504   } DVD_MenuAttributes;
14505 
14506   extern RPC_IF_HANDLE __MIDL_itf_strmif_0376_v0_0_c_ifspec;
14507   extern RPC_IF_HANDLE __MIDL_itf_strmif_0376_v0_0_s_ifspec;
14508 #ifndef __IDvdControl_INTERFACE_DEFINED__
14509 #define __IDvdControl_INTERFACE_DEFINED__
14510   EXTERN_C const IID IID_IDvdControl;
14511 #if defined(__cplusplus) && !defined(CINTERFACE)
14512   struct IDvdControl : public IUnknown {
14513   public:
14514     virtual HRESULT WINAPI TitlePlay(ULONG ulTitle) = 0;
14515     virtual HRESULT WINAPI ChapterPlay(ULONG ulTitle,ULONG ulChapter) = 0;
14516     virtual HRESULT WINAPI TimePlay(ULONG ulTitle,ULONG bcdTime) = 0;
14517     virtual HRESULT WINAPI StopForResume(void) = 0;
14518     virtual HRESULT WINAPI GoUp(void) = 0;
14519     virtual HRESULT WINAPI TimeSearch(ULONG bcdTime) = 0;
14520     virtual HRESULT WINAPI ChapterSearch(ULONG ulChapter) = 0;
14521     virtual HRESULT WINAPI PrevPGSearch(void) = 0;
14522     virtual HRESULT WINAPI TopPGSearch(void) = 0;
14523     virtual HRESULT WINAPI NextPGSearch(void) = 0;
14524     virtual HRESULT WINAPI ForwardScan(double dwSpeed) = 0;
14525     virtual HRESULT WINAPI BackwardScan(double dwSpeed) = 0;
14526     virtual HRESULT WINAPI MenuCall(DVD_MENU_ID MenuID) = 0;
14527     virtual HRESULT WINAPI Resume(void) = 0;
14528     virtual HRESULT WINAPI UpperButtonSelect(void) = 0;
14529     virtual HRESULT WINAPI LowerButtonSelect(void) = 0;
14530     virtual HRESULT WINAPI LeftButtonSelect(void) = 0;
14531     virtual HRESULT WINAPI RightButtonSelect(void) = 0;
14532     virtual HRESULT WINAPI ButtonActivate(void) = 0;
14533     virtual HRESULT WINAPI ButtonSelectAndActivate(ULONG ulButton) = 0;
14534     virtual HRESULT WINAPI StillOff(void) = 0;
14535     virtual HRESULT WINAPI PauseOn(void) = 0;
14536     virtual HRESULT WINAPI PauseOff(void) = 0;
14537     virtual HRESULT WINAPI MenuLanguageSelect(LCID Language) = 0;
14538     virtual HRESULT WINAPI AudioStreamChange(ULONG ulAudio) = 0;
14539     virtual HRESULT WINAPI SubpictureStreamChange(ULONG ulSubPicture,WINBOOL bDisplay) = 0;
14540     virtual HRESULT WINAPI AngleChange(ULONG ulAngle) = 0;
14541     virtual HRESULT WINAPI ParentalLevelSelect(ULONG ulParentalLevel) = 0;
14542     virtual HRESULT WINAPI ParentalCountrySelect(WORD wCountry) = 0;
14543     virtual HRESULT WINAPI KaraokeAudioPresentationModeChange(ULONG ulMode) = 0;
14544     virtual HRESULT WINAPI VideoModePreferrence(ULONG ulPreferredDisplayMode) = 0;
14545     virtual HRESULT WINAPI SetRoot(LPCWSTR pszPath) = 0;
14546     virtual HRESULT WINAPI MouseActivate(POINT point) = 0;
14547     virtual HRESULT WINAPI MouseSelect(POINT point) = 0;
14548     virtual HRESULT WINAPI ChapterPlayAutoStop(ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay) = 0;
14549   };
14550 #else
14551   typedef struct IDvdControlVtbl {
14552     BEGIN_INTERFACE
14553       HRESULT (WINAPI *QueryInterface)(IDvdControl *This,REFIID riid,void **ppvObject);
14554       ULONG (WINAPI *AddRef)(IDvdControl *This);
14555       ULONG (WINAPI *Release)(IDvdControl *This);
14556       HRESULT (WINAPI *TitlePlay)(IDvdControl *This,ULONG ulTitle);
14557       HRESULT (WINAPI *ChapterPlay)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter);
14558       HRESULT (WINAPI *TimePlay)(IDvdControl *This,ULONG ulTitle,ULONG bcdTime);
14559       HRESULT (WINAPI *StopForResume)(IDvdControl *This);
14560       HRESULT (WINAPI *GoUp)(IDvdControl *This);
14561       HRESULT (WINAPI *TimeSearch)(IDvdControl *This,ULONG bcdTime);
14562       HRESULT (WINAPI *ChapterSearch)(IDvdControl *This,ULONG ulChapter);
14563       HRESULT (WINAPI *PrevPGSearch)(IDvdControl *This);
14564       HRESULT (WINAPI *TopPGSearch)(IDvdControl *This);
14565       HRESULT (WINAPI *NextPGSearch)(IDvdControl *This);
14566       HRESULT (WINAPI *ForwardScan)(IDvdControl *This,double dwSpeed);
14567       HRESULT (WINAPI *BackwardScan)(IDvdControl *This,double dwSpeed);
14568       HRESULT (WINAPI *MenuCall)(IDvdControl *This,DVD_MENU_ID MenuID);
14569       HRESULT (WINAPI *Resume)(IDvdControl *This);
14570       HRESULT (WINAPI *UpperButtonSelect)(IDvdControl *This);
14571       HRESULT (WINAPI *LowerButtonSelect)(IDvdControl *This);
14572       HRESULT (WINAPI *LeftButtonSelect)(IDvdControl *This);
14573       HRESULT (WINAPI *RightButtonSelect)(IDvdControl *This);
14574       HRESULT (WINAPI *ButtonActivate)(IDvdControl *This);
14575       HRESULT (WINAPI *ButtonSelectAndActivate)(IDvdControl *This,ULONG ulButton);
14576       HRESULT (WINAPI *StillOff)(IDvdControl *This);
14577       HRESULT (WINAPI *PauseOn)(IDvdControl *This);
14578       HRESULT (WINAPI *PauseOff)(IDvdControl *This);
14579       HRESULT (WINAPI *MenuLanguageSelect)(IDvdControl *This,LCID Language);
14580       HRESULT (WINAPI *AudioStreamChange)(IDvdControl *This,ULONG ulAudio);
14581       HRESULT (WINAPI *SubpictureStreamChange)(IDvdControl *This,ULONG ulSubPicture,WINBOOL bDisplay);
14582       HRESULT (WINAPI *AngleChange)(IDvdControl *This,ULONG ulAngle);
14583       HRESULT (WINAPI *ParentalLevelSelect)(IDvdControl *This,ULONG ulParentalLevel);
14584       HRESULT (WINAPI *ParentalCountrySelect)(IDvdControl *This,WORD wCountry);
14585       HRESULT (WINAPI *KaraokeAudioPresentationModeChange)(IDvdControl *This,ULONG ulMode);
14586       HRESULT (WINAPI *VideoModePreferrence)(IDvdControl *This,ULONG ulPreferredDisplayMode);
14587       HRESULT (WINAPI *SetRoot)(IDvdControl *This,LPCWSTR pszPath);
14588       HRESULT (WINAPI *MouseActivate)(IDvdControl *This,POINT point);
14589       HRESULT (WINAPI *MouseSelect)(IDvdControl *This,POINT point);
14590       HRESULT (WINAPI *ChapterPlayAutoStop)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
14591     END_INTERFACE
14592   } IDvdControlVtbl;
14593   struct IDvdControl {
14594     CONST_VTBL struct IDvdControlVtbl *lpVtbl;
14595   };
14596 #ifdef COBJMACROS
14597 #define IDvdControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14598 #define IDvdControl_AddRef(This) (This)->lpVtbl->AddRef(This)
14599 #define IDvdControl_Release(This) (This)->lpVtbl->Release(This)
14600 #define IDvdControl_TitlePlay(This,ulTitle) (This)->lpVtbl->TitlePlay(This,ulTitle)
14601 #define IDvdControl_ChapterPlay(This,ulTitle,ulChapter) (This)->lpVtbl->ChapterPlay(This,ulTitle,ulChapter)
14602 #define IDvdControl_TimePlay(This,ulTitle,bcdTime) (This)->lpVtbl->TimePlay(This,ulTitle,bcdTime)
14603 #define IDvdControl_StopForResume(This) (This)->lpVtbl->StopForResume(This)
14604 #define IDvdControl_GoUp(This) (This)->lpVtbl->GoUp(This)
14605 #define IDvdControl_TimeSearch(This,bcdTime) (This)->lpVtbl->TimeSearch(This,bcdTime)
14606 #define IDvdControl_ChapterSearch(This,ulChapter) (This)->lpVtbl->ChapterSearch(This,ulChapter)
14607 #define IDvdControl_PrevPGSearch(This) (This)->lpVtbl->PrevPGSearch(This)
14608 #define IDvdControl_TopPGSearch(This) (This)->lpVtbl->TopPGSearch(This)
14609 #define IDvdControl_NextPGSearch(This) (This)->lpVtbl->NextPGSearch(This)
14610 #define IDvdControl_ForwardScan(This,dwSpeed) (This)->lpVtbl->ForwardScan(This,dwSpeed)
14611 #define IDvdControl_BackwardScan(This,dwSpeed) (This)->lpVtbl->BackwardScan(This,dwSpeed)
14612 #define IDvdControl_MenuCall(This,MenuID) (This)->lpVtbl->MenuCall(This,MenuID)
14613 #define IDvdControl_Resume(This) (This)->lpVtbl->Resume(This)
14614 #define IDvdControl_UpperButtonSelect(This) (This)->lpVtbl->UpperButtonSelect(This)
14615 #define IDvdControl_LowerButtonSelect(This) (This)->lpVtbl->LowerButtonSelect(This)
14616 #define IDvdControl_LeftButtonSelect(This) (This)->lpVtbl->LeftButtonSelect(This)
14617 #define IDvdControl_RightButtonSelect(This) (This)->lpVtbl->RightButtonSelect(This)
14618 #define IDvdControl_ButtonActivate(This) (This)->lpVtbl->ButtonActivate(This)
14619 #define IDvdControl_ButtonSelectAndActivate(This,ulButton) (This)->lpVtbl->ButtonSelectAndActivate(This,ulButton)
14620 #define IDvdControl_StillOff(This) (This)->lpVtbl->StillOff(This)
14621 #define IDvdControl_PauseOn(This) (This)->lpVtbl->PauseOn(This)
14622 #define IDvdControl_PauseOff(This) (This)->lpVtbl->PauseOff(This)
14623 #define IDvdControl_MenuLanguageSelect(This,Language) (This)->lpVtbl->MenuLanguageSelect(This,Language)
14624 #define IDvdControl_AudioStreamChange(This,ulAudio) (This)->lpVtbl->AudioStreamChange(This,ulAudio)
14625 #define IDvdControl_SubpictureStreamChange(This,ulSubPicture,bDisplay) (This)->lpVtbl->SubpictureStreamChange(This,ulSubPicture,bDisplay)
14626 #define IDvdControl_AngleChange(This,ulAngle) (This)->lpVtbl->AngleChange(This,ulAngle)
14627 #define IDvdControl_ParentalLevelSelect(This,ulParentalLevel) (This)->lpVtbl->ParentalLevelSelect(This,ulParentalLevel)
14628 #define IDvdControl_ParentalCountrySelect(This,wCountry) (This)->lpVtbl->ParentalCountrySelect(This,wCountry)
14629 #define IDvdControl_KaraokeAudioPresentationModeChange(This,ulMode) (This)->lpVtbl->KaraokeAudioPresentationModeChange(This,ulMode)
14630 #define IDvdControl_VideoModePreferrence(This,ulPreferredDisplayMode) (This)->lpVtbl->VideoModePreferrence(This,ulPreferredDisplayMode)
14631 #define IDvdControl_SetRoot(This,pszPath) (This)->lpVtbl->SetRoot(This,pszPath)
14632 #define IDvdControl_MouseActivate(This,point) (This)->lpVtbl->MouseActivate(This,point)
14633 #define IDvdControl_MouseSelect(This,point) (This)->lpVtbl->MouseSelect(This,point)
14634 #define IDvdControl_ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay) (This)->lpVtbl->ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay)
14635 #endif
14636 #endif
14637   HRESULT WINAPI IDvdControl_TitlePlay_Proxy(IDvdControl *This,ULONG ulTitle);
14638   void __RPC_STUB IDvdControl_TitlePlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14639   HRESULT WINAPI IDvdControl_ChapterPlay_Proxy(IDvdControl *This,ULONG ulTitle,ULONG ulChapter);
14640   void __RPC_STUB IDvdControl_ChapterPlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14641   HRESULT WINAPI IDvdControl_TimePlay_Proxy(IDvdControl *This,ULONG ulTitle,ULONG bcdTime);
14642   void __RPC_STUB IDvdControl_TimePlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14643   HRESULT WINAPI IDvdControl_StopForResume_Proxy(IDvdControl *This);
14644   void __RPC_STUB IDvdControl_StopForResume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14645   HRESULT WINAPI IDvdControl_GoUp_Proxy(IDvdControl *This);
14646   void __RPC_STUB IDvdControl_GoUp_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14647   HRESULT WINAPI IDvdControl_TimeSearch_Proxy(IDvdControl *This,ULONG bcdTime);
14648   void __RPC_STUB IDvdControl_TimeSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14649   HRESULT WINAPI IDvdControl_ChapterSearch_Proxy(IDvdControl *This,ULONG ulChapter);
14650   void __RPC_STUB IDvdControl_ChapterSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14651   HRESULT WINAPI IDvdControl_PrevPGSearch_Proxy(IDvdControl *This);
14652   void __RPC_STUB IDvdControl_PrevPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14653   HRESULT WINAPI IDvdControl_TopPGSearch_Proxy(IDvdControl *This);
14654   void __RPC_STUB IDvdControl_TopPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14655   HRESULT WINAPI IDvdControl_NextPGSearch_Proxy(IDvdControl *This);
14656   void __RPC_STUB IDvdControl_NextPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14657   HRESULT WINAPI IDvdControl_ForwardScan_Proxy(IDvdControl *This,double dwSpeed);
14658   void __RPC_STUB IDvdControl_ForwardScan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14659   HRESULT WINAPI IDvdControl_BackwardScan_Proxy(IDvdControl *This,double dwSpeed);
14660   void __RPC_STUB IDvdControl_BackwardScan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14661   HRESULT WINAPI IDvdControl_MenuCall_Proxy(IDvdControl *This,DVD_MENU_ID MenuID);
14662   void __RPC_STUB IDvdControl_MenuCall_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14663   HRESULT WINAPI IDvdControl_Resume_Proxy(IDvdControl *This);
14664   void __RPC_STUB IDvdControl_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14665   HRESULT WINAPI IDvdControl_UpperButtonSelect_Proxy(IDvdControl *This);
14666   void __RPC_STUB IDvdControl_UpperButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14667   HRESULT WINAPI IDvdControl_LowerButtonSelect_Proxy(IDvdControl *This);
14668   void __RPC_STUB IDvdControl_LowerButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14669   HRESULT WINAPI IDvdControl_LeftButtonSelect_Proxy(IDvdControl *This);
14670   void __RPC_STUB IDvdControl_LeftButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14671   HRESULT WINAPI IDvdControl_RightButtonSelect_Proxy(IDvdControl *This);
14672   void __RPC_STUB IDvdControl_RightButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14673   HRESULT WINAPI IDvdControl_ButtonActivate_Proxy(IDvdControl *This);
14674   void __RPC_STUB IDvdControl_ButtonActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14675   HRESULT WINAPI IDvdControl_ButtonSelectAndActivate_Proxy(IDvdControl *This,ULONG ulButton);
14676   void __RPC_STUB IDvdControl_ButtonSelectAndActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14677   HRESULT WINAPI IDvdControl_StillOff_Proxy(IDvdControl *This);
14678   void __RPC_STUB IDvdControl_StillOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14679   HRESULT WINAPI IDvdControl_PauseOn_Proxy(IDvdControl *This);
14680   void __RPC_STUB IDvdControl_PauseOn_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14681   HRESULT WINAPI IDvdControl_PauseOff_Proxy(IDvdControl *This);
14682   void __RPC_STUB IDvdControl_PauseOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14683   HRESULT WINAPI IDvdControl_MenuLanguageSelect_Proxy(IDvdControl *This,LCID Language);
14684   void __RPC_STUB IDvdControl_MenuLanguageSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14685   HRESULT WINAPI IDvdControl_AudioStreamChange_Proxy(IDvdControl *This,ULONG ulAudio);
14686   void __RPC_STUB IDvdControl_AudioStreamChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14687   HRESULT WINAPI IDvdControl_SubpictureStreamChange_Proxy(IDvdControl *This,ULONG ulSubPicture,WINBOOL bDisplay);
14688   void __RPC_STUB IDvdControl_SubpictureStreamChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14689   HRESULT WINAPI IDvdControl_AngleChange_Proxy(IDvdControl *This,ULONG ulAngle);
14690   void __RPC_STUB IDvdControl_AngleChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14691   HRESULT WINAPI IDvdControl_ParentalLevelSelect_Proxy(IDvdControl *This,ULONG ulParentalLevel);
14692   void __RPC_STUB IDvdControl_ParentalLevelSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14693   HRESULT WINAPI IDvdControl_ParentalCountrySelect_Proxy(IDvdControl *This,WORD wCountry);
14694   void __RPC_STUB IDvdControl_ParentalCountrySelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14695   HRESULT WINAPI IDvdControl_KaraokeAudioPresentationModeChange_Proxy(IDvdControl *This,ULONG ulMode);
14696   void __RPC_STUB IDvdControl_KaraokeAudioPresentationModeChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14697   HRESULT WINAPI IDvdControl_VideoModePreferrence_Proxy(IDvdControl *This,ULONG ulPreferredDisplayMode);
14698   void __RPC_STUB IDvdControl_VideoModePreferrence_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14699   HRESULT WINAPI IDvdControl_SetRoot_Proxy(IDvdControl *This,LPCWSTR pszPath);
14700   void __RPC_STUB IDvdControl_SetRoot_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14701   HRESULT WINAPI IDvdControl_MouseActivate_Proxy(IDvdControl *This,POINT point);
14702   void __RPC_STUB IDvdControl_MouseActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14703   HRESULT WINAPI IDvdControl_MouseSelect_Proxy(IDvdControl *This,POINT point);
14704   void __RPC_STUB IDvdControl_MouseSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14705   HRESULT WINAPI IDvdControl_ChapterPlayAutoStop_Proxy(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
14706   void __RPC_STUB IDvdControl_ChapterPlayAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14707 #endif
14708 
14709 #ifndef __IDvdInfo_INTERFACE_DEFINED__
14710 #define __IDvdInfo_INTERFACE_DEFINED__
14711   EXTERN_C const IID IID_IDvdInfo;
14712 #if defined(__cplusplus) && !defined(CINTERFACE)
14713   struct IDvdInfo : public IUnknown {
14714   public:
14715     virtual HRESULT WINAPI GetCurrentDomain(DVD_DOMAIN *pDomain) = 0;
14716     virtual HRESULT WINAPI GetCurrentLocation(DVD_PLAYBACK_LOCATION *pLocation) = 0;
14717     virtual HRESULT WINAPI GetTotalTitleTime(ULONG *pulTotalTime) = 0;
14718     virtual HRESULT WINAPI GetCurrentButton(ULONG *pulButtonsAvailable,ULONG *pulCurrentButton) = 0;
14719     virtual HRESULT WINAPI GetCurrentAngle(ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle) = 0;
14720     virtual HRESULT WINAPI GetCurrentAudio(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream) = 0;
14721     virtual HRESULT WINAPI GetCurrentSubpicture(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled) = 0;
14722     virtual HRESULT WINAPI GetCurrentUOPS(VALID_UOP_SOMTHING_OR_OTHER *pUOP) = 0;
14723     virtual HRESULT WINAPI GetAllSPRMs(SPRMARRAY *pRegisterArray) = 0;
14724     virtual HRESULT WINAPI GetAllGPRMs(GPRMARRAY *pRegisterArray) = 0;
14725     virtual HRESULT WINAPI GetAudioLanguage(ULONG ulStream,LCID *pLanguage) = 0;
14726     virtual HRESULT WINAPI GetSubpictureLanguage(ULONG ulStream,LCID *pLanguage) = 0;
14727     virtual HRESULT WINAPI GetTitleAttributes(ULONG ulTitle,DVD_ATR *pATR) = 0;
14728     virtual HRESULT WINAPI GetVMGAttributes(DVD_ATR *pATR) = 0;
14729     virtual HRESULT WINAPI GetCurrentVideoAttributes(DVD_VideoATR *pATR) = 0;
14730     virtual HRESULT WINAPI GetCurrentAudioAttributes(DVD_AudioATR *pATR) = 0;
14731     virtual HRESULT WINAPI GetCurrentSubpictureAttributes(DVD_SubpictureATR *pATR) = 0;
14732     virtual HRESULT WINAPI GetCurrentVolumeInfo(ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles) = 0;
14733     virtual HRESULT WINAPI GetDVDTextInfo(BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize) = 0;
14734     virtual HRESULT WINAPI GetPlayerParentalLevel(ULONG *pulParentalLevel,ULONG *pulCountryCode) = 0;
14735     virtual HRESULT WINAPI GetNumberOfChapters(ULONG ulTitle,ULONG *pulNumberOfChapters) = 0;
14736     virtual HRESULT WINAPI GetTitleParentalLevels(ULONG ulTitle,ULONG *pulParentalLevels) = 0;
14737     virtual HRESULT WINAPI GetRoot(LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize) = 0;
14738   };
14739 #else
14740   typedef struct IDvdInfoVtbl {
14741     BEGIN_INTERFACE
14742       HRESULT (WINAPI *QueryInterface)(IDvdInfo *This,REFIID riid,void **ppvObject);
14743       ULONG (WINAPI *AddRef)(IDvdInfo *This);
14744       ULONG (WINAPI *Release)(IDvdInfo *This);
14745       HRESULT (WINAPI *GetCurrentDomain)(IDvdInfo *This,DVD_DOMAIN *pDomain);
14746       HRESULT (WINAPI *GetCurrentLocation)(IDvdInfo *This,DVD_PLAYBACK_LOCATION *pLocation);
14747       HRESULT (WINAPI *GetTotalTitleTime)(IDvdInfo *This,ULONG *pulTotalTime);
14748       HRESULT (WINAPI *GetCurrentButton)(IDvdInfo *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
14749       HRESULT (WINAPI *GetCurrentAngle)(IDvdInfo *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
14750       HRESULT (WINAPI *GetCurrentAudio)(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
14751       HRESULT (WINAPI *GetCurrentSubpicture)(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled);
14752       HRESULT (WINAPI *GetCurrentUOPS)(IDvdInfo *This,VALID_UOP_SOMTHING_OR_OTHER *pUOP);
14753       HRESULT (WINAPI *GetAllSPRMs)(IDvdInfo *This,SPRMARRAY *pRegisterArray);
14754       HRESULT (WINAPI *GetAllGPRMs)(IDvdInfo *This,GPRMARRAY *pRegisterArray);
14755       HRESULT (WINAPI *GetAudioLanguage)(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
14756       HRESULT (WINAPI *GetSubpictureLanguage)(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
14757       HRESULT (WINAPI *GetTitleAttributes)(IDvdInfo *This,ULONG ulTitle,DVD_ATR *pATR);
14758       HRESULT (WINAPI *GetVMGAttributes)(IDvdInfo *This,DVD_ATR *pATR);
14759       HRESULT (WINAPI *GetCurrentVideoAttributes)(IDvdInfo *This,DVD_VideoATR *pATR);
14760       HRESULT (WINAPI *GetCurrentAudioAttributes)(IDvdInfo *This,DVD_AudioATR *pATR);
14761       HRESULT (WINAPI *GetCurrentSubpictureAttributes)(IDvdInfo *This,DVD_SubpictureATR *pATR);
14762       HRESULT (WINAPI *GetCurrentVolumeInfo)(IDvdInfo *This,ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
14763       HRESULT (WINAPI *GetDVDTextInfo)(IDvdInfo *This,BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize);
14764       HRESULT (WINAPI *GetPlayerParentalLevel)(IDvdInfo *This,ULONG *pulParentalLevel,ULONG *pulCountryCode);
14765       HRESULT (WINAPI *GetNumberOfChapters)(IDvdInfo *This,ULONG ulTitle,ULONG *pulNumberOfChapters);
14766       HRESULT (WINAPI *GetTitleParentalLevels)(IDvdInfo *This,ULONG ulTitle,ULONG *pulParentalLevels);
14767       HRESULT (WINAPI *GetRoot)(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
14768     END_INTERFACE
14769   } IDvdInfoVtbl;
14770   struct IDvdInfo {
14771     CONST_VTBL struct IDvdInfoVtbl *lpVtbl;
14772   };
14773 #ifdef COBJMACROS
14774 #define IDvdInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14775 #define IDvdInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
14776 #define IDvdInfo_Release(This) (This)->lpVtbl->Release(This)
14777 #define IDvdInfo_GetCurrentDomain(This,pDomain) (This)->lpVtbl->GetCurrentDomain(This,pDomain)
14778 #define IDvdInfo_GetCurrentLocation(This,pLocation) (This)->lpVtbl->GetCurrentLocation(This,pLocation)
14779 #define IDvdInfo_GetTotalTitleTime(This,pulTotalTime) (This)->lpVtbl->GetTotalTitleTime(This,pulTotalTime)
14780 #define IDvdInfo_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton) (This)->lpVtbl->GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
14781 #define IDvdInfo_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle) (This)->lpVtbl->GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
14782 #define IDvdInfo_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream) (This)->lpVtbl->GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
14783 #define IDvdInfo_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled) (This)->lpVtbl->GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled)
14784 #define IDvdInfo_GetCurrentUOPS(This,pUOP) (This)->lpVtbl->GetCurrentUOPS(This,pUOP)
14785 #define IDvdInfo_GetAllSPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllSPRMs(This,pRegisterArray)
14786 #define IDvdInfo_GetAllGPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllGPRMs(This,pRegisterArray)
14787 #define IDvdInfo_GetAudioLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetAudioLanguage(This,ulStream,pLanguage)
14788 #define IDvdInfo_GetSubpictureLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetSubpictureLanguage(This,ulStream,pLanguage)
14789 #define IDvdInfo_GetTitleAttributes(This,ulTitle,pATR) (This)->lpVtbl->GetTitleAttributes(This,ulTitle,pATR)
14790 #define IDvdInfo_GetVMGAttributes(This,pATR) (This)->lpVtbl->GetVMGAttributes(This,pATR)
14791 #define IDvdInfo_GetCurrentVideoAttributes(This,pATR) (This)->lpVtbl->GetCurrentVideoAttributes(This,pATR)
14792 #define IDvdInfo_GetCurrentAudioAttributes(This,pATR) (This)->lpVtbl->GetCurrentAudioAttributes(This,pATR)
14793 #define IDvdInfo_GetCurrentSubpictureAttributes(This,pATR) (This)->lpVtbl->GetCurrentSubpictureAttributes(This,pATR)
14794 #define IDvdInfo_GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles) (This)->lpVtbl->GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles)
14795 #define IDvdInfo_GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize) (This)->lpVtbl->GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize)
14796 #define IDvdInfo_GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode) (This)->lpVtbl->GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode)
14797 #define IDvdInfo_GetNumberOfChapters(This,ulTitle,pulNumberOfChapters) (This)->lpVtbl->GetNumberOfChapters(This,ulTitle,pulNumberOfChapters)
14798 #define IDvdInfo_GetTitleParentalLevels(This,ulTitle,pulParentalLevels) (This)->lpVtbl->GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
14799 #define IDvdInfo_GetRoot(This,pRoot,ulBufSize,pulActualSize) (This)->lpVtbl->GetRoot(This,pRoot,ulBufSize,pulActualSize)
14800 #endif
14801 #endif
14802   HRESULT WINAPI IDvdInfo_GetCurrentDomain_Proxy(IDvdInfo *This,DVD_DOMAIN *pDomain);
14803   void __RPC_STUB IDvdInfo_GetCurrentDomain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14804   HRESULT WINAPI IDvdInfo_GetCurrentLocation_Proxy(IDvdInfo *This,DVD_PLAYBACK_LOCATION *pLocation);
14805   void __RPC_STUB IDvdInfo_GetCurrentLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14806   HRESULT WINAPI IDvdInfo_GetTotalTitleTime_Proxy(IDvdInfo *This,ULONG *pulTotalTime);
14807   void __RPC_STUB IDvdInfo_GetTotalTitleTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14808   HRESULT WINAPI IDvdInfo_GetCurrentButton_Proxy(IDvdInfo *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
14809   void __RPC_STUB IDvdInfo_GetCurrentButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14810   HRESULT WINAPI IDvdInfo_GetCurrentAngle_Proxy(IDvdInfo *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
14811   void __RPC_STUB IDvdInfo_GetCurrentAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14812   HRESULT WINAPI IDvdInfo_GetCurrentAudio_Proxy(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
14813   void __RPC_STUB IDvdInfo_GetCurrentAudio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14814   HRESULT WINAPI IDvdInfo_GetCurrentSubpicture_Proxy(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled);
14815   void __RPC_STUB IDvdInfo_GetCurrentSubpicture_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14816   HRESULT WINAPI IDvdInfo_GetCurrentUOPS_Proxy(IDvdInfo *This,VALID_UOP_SOMTHING_OR_OTHER *pUOP);
14817   void __RPC_STUB IDvdInfo_GetCurrentUOPS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14818   HRESULT WINAPI IDvdInfo_GetAllSPRMs_Proxy(IDvdInfo *This,SPRMARRAY *pRegisterArray);
14819   void __RPC_STUB IDvdInfo_GetAllSPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14820   HRESULT WINAPI IDvdInfo_GetAllGPRMs_Proxy(IDvdInfo *This,GPRMARRAY *pRegisterArray);
14821   void __RPC_STUB IDvdInfo_GetAllGPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14822   HRESULT WINAPI IDvdInfo_GetAudioLanguage_Proxy(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
14823   void __RPC_STUB IDvdInfo_GetAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14824   HRESULT WINAPI IDvdInfo_GetSubpictureLanguage_Proxy(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
14825   void __RPC_STUB IDvdInfo_GetSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14826   HRESULT WINAPI IDvdInfo_GetTitleAttributes_Proxy(IDvdInfo *This,ULONG ulTitle,DVD_ATR *pATR);
14827   void __RPC_STUB IDvdInfo_GetTitleAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14828   HRESULT WINAPI IDvdInfo_GetVMGAttributes_Proxy(IDvdInfo *This,DVD_ATR *pATR);
14829   void __RPC_STUB IDvdInfo_GetVMGAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14830   HRESULT WINAPI IDvdInfo_GetCurrentVideoAttributes_Proxy(IDvdInfo *This,DVD_VideoATR *pATR);
14831   void __RPC_STUB IDvdInfo_GetCurrentVideoAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14832   HRESULT WINAPI IDvdInfo_GetCurrentAudioAttributes_Proxy(IDvdInfo *This,DVD_AudioATR *pATR);
14833   void __RPC_STUB IDvdInfo_GetCurrentAudioAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14834   HRESULT WINAPI IDvdInfo_GetCurrentSubpictureAttributes_Proxy(IDvdInfo *This,DVD_SubpictureATR *pATR);
14835   void __RPC_STUB IDvdInfo_GetCurrentSubpictureAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14836   HRESULT WINAPI IDvdInfo_GetCurrentVolumeInfo_Proxy(IDvdInfo *This,ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
14837   void __RPC_STUB IDvdInfo_GetCurrentVolumeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14838   HRESULT WINAPI IDvdInfo_GetDVDTextInfo_Proxy(IDvdInfo *This,BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize);
14839   void __RPC_STUB IDvdInfo_GetDVDTextInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14840   HRESULT WINAPI IDvdInfo_GetPlayerParentalLevel_Proxy(IDvdInfo *This,ULONG *pulParentalLevel,ULONG *pulCountryCode);
14841   void __RPC_STUB IDvdInfo_GetPlayerParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14842   HRESULT WINAPI IDvdInfo_GetNumberOfChapters_Proxy(IDvdInfo *This,ULONG ulTitle,ULONG *pulNumberOfChapters);
14843   void __RPC_STUB IDvdInfo_GetNumberOfChapters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14844   HRESULT WINAPI IDvdInfo_GetTitleParentalLevels_Proxy(IDvdInfo *This,ULONG ulTitle,ULONG *pulParentalLevels);
14845   void __RPC_STUB IDvdInfo_GetTitleParentalLevels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14846   HRESULT WINAPI IDvdInfo_GetRoot_Proxy(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
14847   void __RPC_STUB IDvdInfo_GetRoot_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14848 #endif
14849 
14850 #ifndef __IDvdCmd_INTERFACE_DEFINED__
14851 #define __IDvdCmd_INTERFACE_DEFINED__
14852   EXTERN_C const IID IID_IDvdCmd;
14853 #if defined(__cplusplus) && !defined(CINTERFACE)
14854   struct IDvdCmd : public IUnknown {
14855   public:
14856     virtual HRESULT WINAPI WaitForStart(void) = 0;
14857     virtual HRESULT WINAPI WaitForEnd(void) = 0;
14858   };
14859 #else
14860   typedef struct IDvdCmdVtbl {
14861     BEGIN_INTERFACE
14862       HRESULT (WINAPI *QueryInterface)(IDvdCmd *This,REFIID riid,void **ppvObject);
14863       ULONG (WINAPI *AddRef)(IDvdCmd *This);
14864       ULONG (WINAPI *Release)(IDvdCmd *This);
14865       HRESULT (WINAPI *WaitForStart)(IDvdCmd *This);
14866       HRESULT (WINAPI *WaitForEnd)(IDvdCmd *This);
14867     END_INTERFACE
14868   } IDvdCmdVtbl;
14869   struct IDvdCmd {
14870     CONST_VTBL struct IDvdCmdVtbl *lpVtbl;
14871   };
14872 #ifdef COBJMACROS
14873 #define IDvdCmd_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14874 #define IDvdCmd_AddRef(This) (This)->lpVtbl->AddRef(This)
14875 #define IDvdCmd_Release(This) (This)->lpVtbl->Release(This)
14876 #define IDvdCmd_WaitForStart(This) (This)->lpVtbl->WaitForStart(This)
14877 #define IDvdCmd_WaitForEnd(This) (This)->lpVtbl->WaitForEnd(This)
14878 #endif
14879 #endif
14880   HRESULT WINAPI IDvdCmd_WaitForStart_Proxy(IDvdCmd *This);
14881   void __RPC_STUB IDvdCmd_WaitForStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14882   HRESULT WINAPI IDvdCmd_WaitForEnd_Proxy(IDvdCmd *This);
14883   void __RPC_STUB IDvdCmd_WaitForEnd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14884 #endif
14885 
14886 #ifndef __IDvdState_INTERFACE_DEFINED__
14887 #define __IDvdState_INTERFACE_DEFINED__
14888   EXTERN_C const IID IID_IDvdState;
14889 #if defined(__cplusplus) && !defined(CINTERFACE)
14890   struct IDvdState : public IUnknown {
14891   public:
14892     virtual HRESULT WINAPI GetDiscID(ULONGLONG *pullUniqueID) = 0;
14893     virtual HRESULT WINAPI GetParentalLevel(ULONG *pulParentalLevel) = 0;
14894   };
14895 #else
14896   typedef struct IDvdStateVtbl {
14897     BEGIN_INTERFACE
14898       HRESULT (WINAPI *QueryInterface)(IDvdState *This,REFIID riid,void **ppvObject);
14899       ULONG (WINAPI *AddRef)(IDvdState *This);
14900       ULONG (WINAPI *Release)(IDvdState *This);
14901       HRESULT (WINAPI *GetDiscID)(IDvdState *This,ULONGLONG *pullUniqueID);
14902       HRESULT (WINAPI *GetParentalLevel)(IDvdState *This,ULONG *pulParentalLevel);
14903     END_INTERFACE
14904   } IDvdStateVtbl;
14905   struct IDvdState {
14906     CONST_VTBL struct IDvdStateVtbl *lpVtbl;
14907   };
14908 #ifdef COBJMACROS
14909 #define IDvdState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14910 #define IDvdState_AddRef(This) (This)->lpVtbl->AddRef(This)
14911 #define IDvdState_Release(This) (This)->lpVtbl->Release(This)
14912 #define IDvdState_GetDiscID(This,pullUniqueID) (This)->lpVtbl->GetDiscID(This,pullUniqueID)
14913 #define IDvdState_GetParentalLevel(This,pulParentalLevel) (This)->lpVtbl->GetParentalLevel(This,pulParentalLevel)
14914 #endif
14915 #endif
14916   HRESULT WINAPI IDvdState_GetDiscID_Proxy(IDvdState *This,ULONGLONG *pullUniqueID);
14917   void __RPC_STUB IDvdState_GetDiscID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14918   HRESULT WINAPI IDvdState_GetParentalLevel_Proxy(IDvdState *This,ULONG *pulParentalLevel);
14919   void __RPC_STUB IDvdState_GetParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14920 #endif
14921 
14922 #ifndef __IDvdControl2_INTERFACE_DEFINED__
14923 #define __IDvdControl2_INTERFACE_DEFINED__
14924   EXTERN_C const IID IID_IDvdControl2;
14925 #if defined(__cplusplus) && !defined(CINTERFACE)
14926   struct IDvdControl2 : public IUnknown {
14927   public:
14928     virtual HRESULT WINAPI PlayTitle(ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14929     virtual HRESULT WINAPI PlayChapterInTitle(ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14930     virtual HRESULT WINAPI PlayAtTimeInTitle(ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14931     virtual HRESULT WINAPI Stop(void) = 0;
14932     virtual HRESULT WINAPI ReturnFromSubmenu(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14933     virtual HRESULT WINAPI PlayAtTime(DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14934     virtual HRESULT WINAPI PlayChapter(ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14935     virtual HRESULT WINAPI PlayPrevChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14936     virtual HRESULT WINAPI ReplayChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14937     virtual HRESULT WINAPI PlayNextChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14938     virtual HRESULT WINAPI PlayForwards(double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14939     virtual HRESULT WINAPI PlayBackwards(double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14940     virtual HRESULT WINAPI ShowMenu(DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14941     virtual HRESULT WINAPI Resume(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14942     virtual HRESULT WINAPI SelectRelativeButton(DVD_RELATIVE_BUTTON buttonDir) = 0;
14943     virtual HRESULT WINAPI ActivateButton(void) = 0;
14944     virtual HRESULT WINAPI SelectButton(ULONG ulButton) = 0;
14945     virtual HRESULT WINAPI SelectAndActivateButton(ULONG ulButton) = 0;
14946     virtual HRESULT WINAPI StillOff(void) = 0;
14947     virtual HRESULT WINAPI Pause(WINBOOL bState) = 0;
14948     virtual HRESULT WINAPI SelectAudioStream(ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14949     virtual HRESULT WINAPI SelectSubpictureStream(ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14950     virtual HRESULT WINAPI SetSubpictureState(WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14951     virtual HRESULT WINAPI SelectAngle(ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14952     virtual HRESULT WINAPI SelectParentalLevel(ULONG ulParentalLevel) = 0;
14953     virtual HRESULT WINAPI SelectParentalCountry(BYTE bCountry[2]) = 0;
14954     virtual HRESULT WINAPI SelectKaraokeAudioPresentationMode(ULONG ulMode) = 0;
14955     virtual HRESULT WINAPI SelectVideoModePreference(ULONG ulPreferredDisplayMode) = 0;
14956     virtual HRESULT WINAPI SetDVDDirectory(LPCWSTR pszwPath) = 0;
14957     virtual HRESULT WINAPI ActivateAtPosition(POINT point) = 0;
14958     virtual HRESULT WINAPI SelectAtPosition(POINT point) = 0;
14959     virtual HRESULT WINAPI PlayChaptersAutoStop(ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14960     virtual HRESULT WINAPI AcceptParentalLevelChange(WINBOOL bAccept) = 0;
14961     virtual HRESULT WINAPI SetOption(DVD_OPTION_FLAG flag,WINBOOL fState) = 0;
14962     virtual HRESULT WINAPI SetState(IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14963     virtual HRESULT WINAPI PlayPeriodInTitleAutoStop(ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14964     virtual HRESULT WINAPI SetGPRM(ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14965     virtual HRESULT WINAPI SelectDefaultMenuLanguage(LCID Language) = 0;
14966     virtual HRESULT WINAPI SelectDefaultAudioLanguage(LCID Language,DVD_AUDIO_LANG_EXT audioExtension) = 0;
14967     virtual HRESULT WINAPI SelectDefaultSubpictureLanguage(LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension) = 0;
14968   };
14969 #else
14970   typedef struct IDvdControl2Vtbl {
14971     BEGIN_INTERFACE
14972       HRESULT (WINAPI *QueryInterface)(IDvdControl2 *This,REFIID riid,void **ppvObject);
14973       ULONG (WINAPI *AddRef)(IDvdControl2 *This);
14974       ULONG (WINAPI *Release)(IDvdControl2 *This);
14975       HRESULT (WINAPI *PlayTitle)(IDvdControl2 *This,ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd);
14976       HRESULT (WINAPI *PlayChapterInTitle)(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
14977       HRESULT (WINAPI *PlayAtTimeInTitle)(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd);
14978       HRESULT (WINAPI *Stop)(IDvdControl2 *This);
14979       HRESULT (WINAPI *ReturnFromSubmenu)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14980       HRESULT (WINAPI *PlayAtTime)(IDvdControl2 *This,DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd);
14981       HRESULT (WINAPI *PlayChapter)(IDvdControl2 *This,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
14982       HRESULT (WINAPI *PlayPrevChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14983       HRESULT (WINAPI *ReplayChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14984       HRESULT (WINAPI *PlayNextChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14985       HRESULT (WINAPI *PlayForwards)(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
14986       HRESULT (WINAPI *PlayBackwards)(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
14987       HRESULT (WINAPI *ShowMenu)(IDvdControl2 *This,DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd);
14988       HRESULT (WINAPI *Resume)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14989       HRESULT (WINAPI *SelectRelativeButton)(IDvdControl2 *This,DVD_RELATIVE_BUTTON buttonDir);
14990       HRESULT (WINAPI *ActivateButton)(IDvdControl2 *This);
14991       HRESULT (WINAPI *SelectButton)(IDvdControl2 *This,ULONG ulButton);
14992       HRESULT (WINAPI *SelectAndActivateButton)(IDvdControl2 *This,ULONG ulButton);
14993       HRESULT (WINAPI *StillOff)(IDvdControl2 *This);
14994       HRESULT (WINAPI *Pause)(IDvdControl2 *This,WINBOOL bState);
14995       HRESULT (WINAPI *SelectAudioStream)(IDvdControl2 *This,ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd);
14996       HRESULT (WINAPI *SelectSubpictureStream)(IDvdControl2 *This,ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd);
14997       HRESULT (WINAPI *SetSubpictureState)(IDvdControl2 *This,WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd);
14998       HRESULT (WINAPI *SelectAngle)(IDvdControl2 *This,ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd);
14999       HRESULT (WINAPI *SelectParentalLevel)(IDvdControl2 *This,ULONG ulParentalLevel);
15000       HRESULT (WINAPI *SelectParentalCountry)(IDvdControl2 *This,BYTE bCountry[2]);
15001       HRESULT (WINAPI *SelectKaraokeAudioPresentationMode)(IDvdControl2 *This,ULONG ulMode);
15002       HRESULT (WINAPI *SelectVideoModePreference)(IDvdControl2 *This,ULONG ulPreferredDisplayMode);
15003       HRESULT (WINAPI *SetDVDDirectory)(IDvdControl2 *This,LPCWSTR pszwPath);
15004       HRESULT (WINAPI *ActivateAtPosition)(IDvdControl2 *This,POINT point);
15005       HRESULT (WINAPI *SelectAtPosition)(IDvdControl2 *This,POINT point);
15006       HRESULT (WINAPI *PlayChaptersAutoStop)(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd);
15007       HRESULT (WINAPI *AcceptParentalLevelChange)(IDvdControl2 *This,WINBOOL bAccept);
15008       HRESULT (WINAPI *SetOption)(IDvdControl2 *This,DVD_OPTION_FLAG flag,WINBOOL fState);
15009       HRESULT (WINAPI *SetState)(IDvdControl2 *This,IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd);
15010       HRESULT (WINAPI *PlayPeriodInTitleAutoStop)(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd);
15011       HRESULT (WINAPI *SetGPRM)(IDvdControl2 *This,ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd);
15012       HRESULT (WINAPI *SelectDefaultMenuLanguage)(IDvdControl2 *This,LCID Language);
15013       HRESULT (WINAPI *SelectDefaultAudioLanguage)(IDvdControl2 *This,LCID Language,DVD_AUDIO_LANG_EXT audioExtension);
15014       HRESULT (WINAPI *SelectDefaultSubpictureLanguage)(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
15015     END_INTERFACE
15016   } IDvdControl2Vtbl;
15017   struct IDvdControl2 {
15018     CONST_VTBL struct IDvdControl2Vtbl *lpVtbl;
15019   };
15020 #ifdef COBJMACROS
15021 #define IDvdControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15022 #define IDvdControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
15023 #define IDvdControl2_Release(This) (This)->lpVtbl->Release(This)
15024 #define IDvdControl2_PlayTitle(This,ulTitle,dwFlags,ppCmd) (This)->lpVtbl->PlayTitle(This,ulTitle,dwFlags,ppCmd)
15025 #define IDvdControl2_PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd) (This)->lpVtbl->PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd)
15026 #define IDvdControl2_PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd) (This)->lpVtbl->PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd)
15027 #define IDvdControl2_Stop(This) (This)->lpVtbl->Stop(This)
15028 #define IDvdControl2_ReturnFromSubmenu(This,dwFlags,ppCmd) (This)->lpVtbl->ReturnFromSubmenu(This,dwFlags,ppCmd)
15029 #define IDvdControl2_PlayAtTime(This,pTime,dwFlags,ppCmd) (This)->lpVtbl->PlayAtTime(This,pTime,dwFlags,ppCmd)
15030 #define IDvdControl2_PlayChapter(This,ulChapter,dwFlags,ppCmd) (This)->lpVtbl->PlayChapter(This,ulChapter,dwFlags,ppCmd)
15031 #define IDvdControl2_PlayPrevChapter(This,dwFlags,ppCmd) (This)->lpVtbl->PlayPrevChapter(This,dwFlags,ppCmd)
15032 #define IDvdControl2_ReplayChapter(This,dwFlags,ppCmd) (This)->lpVtbl->ReplayChapter(This,dwFlags,ppCmd)
15033 #define IDvdControl2_PlayNextChapter(This,dwFlags,ppCmd) (This)->lpVtbl->PlayNextChapter(This,dwFlags,ppCmd)
15034 #define IDvdControl2_PlayForwards(This,dSpeed,dwFlags,ppCmd) (This)->lpVtbl->PlayForwards(This,dSpeed,dwFlags,ppCmd)
15035 #define IDvdControl2_PlayBackwards(This,dSpeed,dwFlags,ppCmd) (This)->lpVtbl->PlayBackwards(This,dSpeed,dwFlags,ppCmd)
15036 #define IDvdControl2_ShowMenu(This,MenuID,dwFlags,ppCmd) (This)->lpVtbl->ShowMenu(This,MenuID,dwFlags,ppCmd)
15037 #define IDvdControl2_Resume(This,dwFlags,ppCmd) (This)->lpVtbl->Resume(This,dwFlags,ppCmd)
15038 #define IDvdControl2_SelectRelativeButton(This,buttonDir) (This)->lpVtbl->SelectRelativeButton(This,buttonDir)
15039 #define IDvdControl2_ActivateButton(This) (This)->lpVtbl->ActivateButton(This)
15040 #define IDvdControl2_SelectButton(This,ulButton) (This)->lpVtbl->SelectButton(This,ulButton)
15041 #define IDvdControl2_SelectAndActivateButton(This,ulButton) (This)->lpVtbl->SelectAndActivateButton(This,ulButton)
15042 #define IDvdControl2_StillOff(This) (This)->lpVtbl->StillOff(This)
15043 #define IDvdControl2_Pause(This,bState) (This)->lpVtbl->Pause(This,bState)
15044 #define IDvdControl2_SelectAudioStream(This,ulAudio,dwFlags,ppCmd) (This)->lpVtbl->SelectAudioStream(This,ulAudio,dwFlags,ppCmd)
15045 #define IDvdControl2_SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd) (This)->lpVtbl->SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd)
15046 #define IDvdControl2_SetSubpictureState(This,bState,dwFlags,ppCmd) (This)->lpVtbl->SetSubpictureState(This,bState,dwFlags,ppCmd)
15047 #define IDvdControl2_SelectAngle(This,ulAngle,dwFlags,ppCmd) (This)->lpVtbl->SelectAngle(This,ulAngle,dwFlags,ppCmd)
15048 #define IDvdControl2_SelectParentalLevel(This,ulParentalLevel) (This)->lpVtbl->SelectParentalLevel(This,ulParentalLevel)
15049 #define IDvdControl2_SelectParentalCountry(This,bCountry) (This)->lpVtbl->SelectParentalCountry(This,bCountry)
15050 #define IDvdControl2_SelectKaraokeAudioPresentationMode(This,ulMode) (This)->lpVtbl->SelectKaraokeAudioPresentationMode(This,ulMode)
15051 #define IDvdControl2_SelectVideoModePreference(This,ulPreferredDisplayMode) (This)->lpVtbl->SelectVideoModePreference(This,ulPreferredDisplayMode)
15052 #define IDvdControl2_SetDVDDirectory(This,pszwPath) (This)->lpVtbl->SetDVDDirectory(This,pszwPath)
15053 #define IDvdControl2_ActivateAtPosition(This,point) (This)->lpVtbl->ActivateAtPosition(This,point)
15054 #define IDvdControl2_SelectAtPosition(This,point) (This)->lpVtbl->SelectAtPosition(This,point)
15055 #define IDvdControl2_PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd) (This)->lpVtbl->PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd)
15056 #define IDvdControl2_AcceptParentalLevelChange(This,bAccept) (This)->lpVtbl->AcceptParentalLevelChange(This,bAccept)
15057 #define IDvdControl2_SetOption(This,flag,fState) (This)->lpVtbl->SetOption(This,flag,fState)
15058 #define IDvdControl2_SetState(This,pState,dwFlags,ppCmd) (This)->lpVtbl->SetState(This,pState,dwFlags,ppCmd)
15059 #define IDvdControl2_PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd) (This)->lpVtbl->PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd)
15060 #define IDvdControl2_SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd) (This)->lpVtbl->SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd)
15061 #define IDvdControl2_SelectDefaultMenuLanguage(This,Language) (This)->lpVtbl->SelectDefaultMenuLanguage(This,Language)
15062 #define IDvdControl2_SelectDefaultAudioLanguage(This,Language,audioExtension) (This)->lpVtbl->SelectDefaultAudioLanguage(This,Language,audioExtension)
15063 #define IDvdControl2_SelectDefaultSubpictureLanguage(This,Language,subpictureExtension) (This)->lpVtbl->SelectDefaultSubpictureLanguage(This,Language,subpictureExtension)
15064 #endif
15065 #endif
15066   HRESULT WINAPI IDvdControl2_PlayTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd);
15067   void __RPC_STUB IDvdControl2_PlayTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15068   HRESULT WINAPI IDvdControl2_PlayChapterInTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
15069   void __RPC_STUB IDvdControl2_PlayChapterInTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15070   HRESULT WINAPI IDvdControl2_PlayAtTimeInTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd);
15071   void __RPC_STUB IDvdControl2_PlayAtTimeInTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15072   HRESULT WINAPI IDvdControl2_Stop_Proxy(IDvdControl2 *This);
15073   void __RPC_STUB IDvdControl2_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15074   HRESULT WINAPI IDvdControl2_ReturnFromSubmenu_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
15075   void __RPC_STUB IDvdControl2_ReturnFromSubmenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15076   HRESULT WINAPI IDvdControl2_PlayAtTime_Proxy(IDvdControl2 *This,DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd);
15077   void __RPC_STUB IDvdControl2_PlayAtTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15078   HRESULT WINAPI IDvdControl2_PlayChapter_Proxy(IDvdControl2 *This,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
15079   void __RPC_STUB IDvdControl2_PlayChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15080   HRESULT WINAPI IDvdControl2_PlayPrevChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
15081   void __RPC_STUB IDvdControl2_PlayPrevChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15082   HRESULT WINAPI IDvdControl2_ReplayChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
15083   void __RPC_STUB IDvdControl2_ReplayChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15084   HRESULT WINAPI IDvdControl2_PlayNextChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
15085   void __RPC_STUB IDvdControl2_PlayNextChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15086   HRESULT WINAPI IDvdControl2_PlayForwards_Proxy(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
15087   void __RPC_STUB IDvdControl2_PlayForwards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15088   HRESULT WINAPI IDvdControl2_PlayBackwards_Proxy(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
15089   void __RPC_STUB IDvdControl2_PlayBackwards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15090   HRESULT WINAPI IDvdControl2_ShowMenu_Proxy(IDvdControl2 *This,DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd);
15091   void __RPC_STUB IDvdControl2_ShowMenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15092   HRESULT WINAPI IDvdControl2_Resume_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
15093   void __RPC_STUB IDvdControl2_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15094   HRESULT WINAPI IDvdControl2_SelectRelativeButton_Proxy(IDvdControl2 *This,DVD_RELATIVE_BUTTON buttonDir);
15095   void __RPC_STUB IDvdControl2_SelectRelativeButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15096   HRESULT WINAPI IDvdControl2_ActivateButton_Proxy(IDvdControl2 *This);
15097   void __RPC_STUB IDvdControl2_ActivateButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15098   HRESULT WINAPI IDvdControl2_SelectButton_Proxy(IDvdControl2 *This,ULONG ulButton);
15099   void __RPC_STUB IDvdControl2_SelectButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15100   HRESULT WINAPI IDvdControl2_SelectAndActivateButton_Proxy(IDvdControl2 *This,ULONG ulButton);
15101   void __RPC_STUB IDvdControl2_SelectAndActivateButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15102   HRESULT WINAPI IDvdControl2_StillOff_Proxy(IDvdControl2 *This);
15103   void __RPC_STUB IDvdControl2_StillOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15104   HRESULT WINAPI IDvdControl2_Pause_Proxy(IDvdControl2 *This,WINBOOL bState);
15105   void __RPC_STUB IDvdControl2_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15106   HRESULT WINAPI IDvdControl2_SelectAudioStream_Proxy(IDvdControl2 *This,ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd);
15107   void __RPC_STUB IDvdControl2_SelectAudioStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15108   HRESULT WINAPI IDvdControl2_SelectSubpictureStream_Proxy(IDvdControl2 *This,ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd);
15109   void __RPC_STUB IDvdControl2_SelectSubpictureStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15110   HRESULT WINAPI IDvdControl2_SetSubpictureState_Proxy(IDvdControl2 *This,WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd);
15111   void __RPC_STUB IDvdControl2_SetSubpictureState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15112   HRESULT WINAPI IDvdControl2_SelectAngle_Proxy(IDvdControl2 *This,ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd);
15113   void __RPC_STUB IDvdControl2_SelectAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15114   HRESULT WINAPI IDvdControl2_SelectParentalLevel_Proxy(IDvdControl2 *This,ULONG ulParentalLevel);
15115   void __RPC_STUB IDvdControl2_SelectParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15116   HRESULT WINAPI IDvdControl2_SelectParentalCountry_Proxy(IDvdControl2 *This,BYTE bCountry[2]);
15117   void __RPC_STUB IDvdControl2_SelectParentalCountry_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15118   HRESULT WINAPI IDvdControl2_SelectKaraokeAudioPresentationMode_Proxy(IDvdControl2 *This,ULONG ulMode);
15119   void __RPC_STUB IDvdControl2_SelectKaraokeAudioPresentationMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15120   HRESULT WINAPI IDvdControl2_SelectVideoModePreference_Proxy(IDvdControl2 *This,ULONG ulPreferredDisplayMode);
15121   void __RPC_STUB IDvdControl2_SelectVideoModePreference_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15122   HRESULT WINAPI IDvdControl2_SetDVDDirectory_Proxy(IDvdControl2 *This,LPCWSTR pszwPath);
15123   void __RPC_STUB IDvdControl2_SetDVDDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15124   HRESULT WINAPI IDvdControl2_ActivateAtPosition_Proxy(IDvdControl2 *This,POINT point);
15125   void __RPC_STUB IDvdControl2_ActivateAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15126   HRESULT WINAPI IDvdControl2_SelectAtPosition_Proxy(IDvdControl2 *This,POINT point);
15127   void __RPC_STUB IDvdControl2_SelectAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15128   HRESULT WINAPI IDvdControl2_PlayChaptersAutoStop_Proxy(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd);
15129   void __RPC_STUB IDvdControl2_PlayChaptersAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15130   HRESULT WINAPI IDvdControl2_AcceptParentalLevelChange_Proxy(IDvdControl2 *This,WINBOOL bAccept);
15131   void __RPC_STUB IDvdControl2_AcceptParentalLevelChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15132   HRESULT WINAPI IDvdControl2_SetOption_Proxy(IDvdControl2 *This,DVD_OPTION_FLAG flag,WINBOOL fState);
15133   void __RPC_STUB IDvdControl2_SetOption_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15134   HRESULT WINAPI IDvdControl2_SetState_Proxy(IDvdControl2 *This,IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd);
15135   void __RPC_STUB IDvdControl2_SetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15136   HRESULT WINAPI IDvdControl2_PlayPeriodInTitleAutoStop_Proxy(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd);
15137   void __RPC_STUB IDvdControl2_PlayPeriodInTitleAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15138   HRESULT WINAPI IDvdControl2_SetGPRM_Proxy(IDvdControl2 *This,ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd);
15139   void __RPC_STUB IDvdControl2_SetGPRM_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15140   HRESULT WINAPI IDvdControl2_SelectDefaultMenuLanguage_Proxy(IDvdControl2 *This,LCID Language);
15141   void __RPC_STUB IDvdControl2_SelectDefaultMenuLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15142   HRESULT WINAPI IDvdControl2_SelectDefaultAudioLanguage_Proxy(IDvdControl2 *This,LCID Language,DVD_AUDIO_LANG_EXT audioExtension);
15143   void __RPC_STUB IDvdControl2_SelectDefaultAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15144   HRESULT WINAPI IDvdControl2_SelectDefaultSubpictureLanguage_Proxy(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
15145   void __RPC_STUB IDvdControl2_SelectDefaultSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15146 #endif
15147 
15148   enum DVD_TextStringType {
15149     DVD_Struct_Volume = 0x1,DVD_Struct_Title = 0x2,DVD_Struct_ParentalID = 0x3,DVD_Struct_PartOfTitle = 0x4,DVD_Struct_Cell = 0x5,
15150     DVD_Stream_Audio = 0x10,DVD_Stream_Subpicture = 0x11,DVD_Stream_Angle = 0x12,DVD_Channel_Audio = 0x20,DVD_General_Name = 0x30,
15151     DVD_General_Comments = 0x31,DVD_Title_Series = 0x38,DVD_Title_Movie = 0x39,DVD_Title_Video = 0x3a,DVD_Title_Album = 0x3b,DVD_Title_Song = 0x3c,
15152     DVD_Title_Other = 0x3f,DVD_Title_Sub_Series = 0x40,DVD_Title_Sub_Movie = 0x41,DVD_Title_Sub_Video = 0x42,DVD_Title_Sub_Album = 0x43,
15153     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,
15154     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
15155   };
15156 
15157   enum DVD_TextCharSet {
15158     DVD_CharSet_Unicode = 0,DVD_CharSet_ISO646 = 1,DVD_CharSet_JIS_Roman_Kanji = 2,DVD_CharSet_ISO8859_1 = 3,
15159     DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
15160   };
15161 #define DVD_TITLE_MENU 0x000
15162 #define DVD_STREAM_DATA_CURRENT 0x800
15163 #define DVD_STREAM_DATA_VMGM 0x400
15164 #define DVD_STREAM_DATA_VTSM 0x401
15165 #define DVD_DEFAULT_AUDIO_STREAM 0x0f
15166 
15167   typedef struct tagDVD_DECODER_CAPS {
15168     DWORD dwSize;
15169     DWORD dwAudioCaps;
15170     double dFwdMaxRateVideo;
15171     double dFwdMaxRateAudio;
15172     double dFwdMaxRateSP;
15173     double dBwdMaxRateVideo;
15174     double dBwdMaxRateAudio;
15175     double dBwdMaxRateSP;
15176     DWORD dwRes1;
15177     DWORD dwRes2;
15178     DWORD dwRes3;
15179     DWORD dwRes4;
15180   } DVD_DECODER_CAPS;
15181 
15182 #define DVD_AUDIO_CAPS_AC3 0x00000001
15183 #define DVD_AUDIO_CAPS_MPEG2 0x00000002
15184 #define DVD_AUDIO_CAPS_LPCM 0x00000004
15185 #define DVD_AUDIO_CAPS_DTS 0x00000008
15186 #define DVD_AUDIO_CAPS_SDDS 0x00000010
15187 
15188   extern RPC_IF_HANDLE __MIDL_itf_strmif_0387_v0_0_c_ifspec;
15189   extern RPC_IF_HANDLE __MIDL_itf_strmif_0387_v0_0_s_ifspec;
15190 #ifndef __IDvdInfo2_INTERFACE_DEFINED__
15191 #define __IDvdInfo2_INTERFACE_DEFINED__
15192   EXTERN_C const IID IID_IDvdInfo2;
15193 #if defined(__cplusplus) && !defined(CINTERFACE)
15194   struct IDvdInfo2 : public IUnknown {
15195   public:
15196     virtual HRESULT WINAPI GetCurrentDomain(DVD_DOMAIN *pDomain) = 0;
15197     virtual HRESULT WINAPI GetCurrentLocation(DVD_PLAYBACK_LOCATION2 *pLocation) = 0;
15198     virtual HRESULT WINAPI GetTotalTitleTime(DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags) = 0;
15199     virtual HRESULT WINAPI GetCurrentButton(ULONG *pulButtonsAvailable,ULONG *pulCurrentButton) = 0;
15200     virtual HRESULT WINAPI GetCurrentAngle(ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle) = 0;
15201     virtual HRESULT WINAPI GetCurrentAudio(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream) = 0;
15202     virtual HRESULT WINAPI GetCurrentSubpicture(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled) = 0;
15203     virtual HRESULT WINAPI GetCurrentUOPS(ULONG *pulUOPs) = 0;
15204     virtual HRESULT WINAPI GetAllSPRMs(SPRMARRAY *pRegisterArray) = 0;
15205     virtual HRESULT WINAPI GetAllGPRMs(GPRMARRAY *pRegisterArray) = 0;
15206     virtual HRESULT WINAPI GetAudioLanguage(ULONG ulStream,LCID *pLanguage) = 0;
15207     virtual HRESULT WINAPI GetSubpictureLanguage(ULONG ulStream,LCID *pLanguage) = 0;
15208     virtual HRESULT WINAPI GetTitleAttributes(ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle) = 0;
15209     virtual HRESULT WINAPI GetVMGAttributes(DVD_MenuAttributes *pATR) = 0;
15210     virtual HRESULT WINAPI GetCurrentVideoAttributes(DVD_VideoAttributes *pATR) = 0;
15211     virtual HRESULT WINAPI GetAudioAttributes(ULONG ulStream,DVD_AudioAttributes *pATR) = 0;
15212     virtual HRESULT WINAPI GetKaraokeAttributes(ULONG ulStream,DVD_KaraokeAttributes *pAttributes) = 0;
15213     virtual HRESULT WINAPI GetSubpictureAttributes(ULONG ulStream,DVD_SubpictureAttributes *pATR) = 0;
15214     virtual HRESULT WINAPI GetDVDVolumeInfo(ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles) = 0;
15215     virtual HRESULT WINAPI GetDVDTextNumberOfLanguages(ULONG *pulNumOfLangs) = 0;
15216     virtual HRESULT WINAPI GetDVDTextLanguageInfo(ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet) = 0;
15217     virtual HRESULT WINAPI GetDVDTextStringAsNative(ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType) = 0;
15218     virtual HRESULT WINAPI GetDVDTextStringAsUnicode(ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType) = 0;
15219     virtual HRESULT WINAPI GetPlayerParentalLevel(ULONG *pulParentalLevel,BYTE pbCountryCode[2]) = 0;
15220     virtual HRESULT WINAPI GetNumberOfChapters(ULONG ulTitle,ULONG *pulNumOfChapters) = 0;
15221     virtual HRESULT WINAPI GetTitleParentalLevels(ULONG ulTitle,ULONG *pulParentalLevels) = 0;
15222     virtual HRESULT WINAPI GetDVDDirectory(LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize) = 0;
15223     virtual HRESULT WINAPI IsAudioStreamEnabled(ULONG ulStreamNum,WINBOOL *pbEnabled) = 0;
15224     virtual HRESULT WINAPI GetDiscID(LPCWSTR pszwPath,ULONGLONG *pullDiscID) = 0;
15225     virtual HRESULT WINAPI GetState(IDvdState **pStateData) = 0;
15226     virtual HRESULT WINAPI GetMenuLanguages(LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages) = 0;
15227     virtual HRESULT WINAPI GetButtonAtPosition(POINT point,ULONG *pulButtonIndex) = 0;
15228     virtual HRESULT WINAPI GetCmdFromEvent(LONG_PTR lParam1,IDvdCmd **pCmdObj) = 0;
15229     virtual HRESULT WINAPI GetDefaultMenuLanguage(LCID *pLanguage) = 0;
15230     virtual HRESULT WINAPI GetDefaultAudioLanguage(LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension) = 0;
15231     virtual HRESULT WINAPI GetDefaultSubpictureLanguage(LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension) = 0;
15232     virtual HRESULT WINAPI GetDecoderCaps(DVD_DECODER_CAPS *pCaps) = 0;
15233     virtual HRESULT WINAPI GetButtonRect(ULONG ulButton,RECT *pRect) = 0;
15234     virtual HRESULT WINAPI IsSubpictureStreamEnabled(ULONG ulStreamNum,WINBOOL *pbEnabled) = 0;
15235   };
15236 #else
15237   typedef struct IDvdInfo2Vtbl {
15238     BEGIN_INTERFACE
15239       HRESULT (WINAPI *QueryInterface)(IDvdInfo2 *This,REFIID riid,void **ppvObject);
15240       ULONG (WINAPI *AddRef)(IDvdInfo2 *This);
15241       ULONG (WINAPI *Release)(IDvdInfo2 *This);
15242       HRESULT (WINAPI *GetCurrentDomain)(IDvdInfo2 *This,DVD_DOMAIN *pDomain);
15243       HRESULT (WINAPI *GetCurrentLocation)(IDvdInfo2 *This,DVD_PLAYBACK_LOCATION2 *pLocation);
15244       HRESULT (WINAPI *GetTotalTitleTime)(IDvdInfo2 *This,DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags);
15245       HRESULT (WINAPI *GetCurrentButton)(IDvdInfo2 *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
15246       HRESULT (WINAPI *GetCurrentAngle)(IDvdInfo2 *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
15247       HRESULT (WINAPI *GetCurrentAudio)(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
15248       HRESULT (WINAPI *GetCurrentSubpicture)(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled);
15249       HRESULT (WINAPI *GetCurrentUOPS)(IDvdInfo2 *This,ULONG *pulUOPs);
15250       HRESULT (WINAPI *GetAllSPRMs)(IDvdInfo2 *This,SPRMARRAY *pRegisterArray);
15251       HRESULT (WINAPI *GetAllGPRMs)(IDvdInfo2 *This,GPRMARRAY *pRegisterArray);
15252       HRESULT (WINAPI *GetAudioLanguage)(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
15253       HRESULT (WINAPI *GetSubpictureLanguage)(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
15254       HRESULT (WINAPI *GetTitleAttributes)(IDvdInfo2 *This,ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle);
15255       HRESULT (WINAPI *GetVMGAttributes)(IDvdInfo2 *This,DVD_MenuAttributes *pATR);
15256       HRESULT (WINAPI *GetCurrentVideoAttributes)(IDvdInfo2 *This,DVD_VideoAttributes *pATR);
15257       HRESULT (WINAPI *GetAudioAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_AudioAttributes *pATR);
15258       HRESULT (WINAPI *GetKaraokeAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_KaraokeAttributes *pAttributes);
15259       HRESULT (WINAPI *GetSubpictureAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_SubpictureAttributes *pATR);
15260       HRESULT (WINAPI *GetDVDVolumeInfo)(IDvdInfo2 *This,ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
15261       HRESULT (WINAPI *GetDVDTextNumberOfLanguages)(IDvdInfo2 *This,ULONG *pulNumOfLangs);
15262       HRESULT (WINAPI *GetDVDTextLanguageInfo)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet);
15263       HRESULT (WINAPI *GetDVDTextStringAsNative)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
15264       HRESULT (WINAPI *GetDVDTextStringAsUnicode)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
15265       HRESULT (WINAPI *GetPlayerParentalLevel)(IDvdInfo2 *This,ULONG *pulParentalLevel,BYTE pbCountryCode[2]);
15266       HRESULT (WINAPI *GetNumberOfChapters)(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulNumOfChapters);
15267       HRESULT (WINAPI *GetTitleParentalLevels)(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulParentalLevels);
15268       HRESULT (WINAPI *GetDVDDirectory)(IDvdInfo2 *This,LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize);
15269       HRESULT (WINAPI *IsAudioStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
15270       HRESULT (WINAPI *GetDiscID)(IDvdInfo2 *This,LPCWSTR pszwPath,ULONGLONG *pullDiscID);
15271       HRESULT (WINAPI *GetState)(IDvdInfo2 *This,IDvdState **pStateData);
15272       HRESULT (WINAPI *GetMenuLanguages)(IDvdInfo2 *This,LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages);
15273       HRESULT (WINAPI *GetButtonAtPosition)(IDvdInfo2 *This,POINT point,ULONG *pulButtonIndex);
15274       HRESULT (WINAPI *GetCmdFromEvent)(IDvdInfo2 *This,LONG_PTR lParam1,IDvdCmd **pCmdObj);
15275       HRESULT (WINAPI *GetDefaultMenuLanguage)(IDvdInfo2 *This,LCID *pLanguage);
15276       HRESULT (WINAPI *GetDefaultAudioLanguage)(IDvdInfo2 *This,LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension);
15277       HRESULT (WINAPI *GetDefaultSubpictureLanguage)(IDvdInfo2 *This,LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
15278       HRESULT (WINAPI *GetDecoderCaps)(IDvdInfo2 *This,DVD_DECODER_CAPS *pCaps);
15279       HRESULT (WINAPI *GetButtonRect)(IDvdInfo2 *This,ULONG ulButton,RECT *pRect);
15280       HRESULT (WINAPI *IsSubpictureStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
15281     END_INTERFACE
15282   } IDvdInfo2Vtbl;
15283   struct IDvdInfo2 {
15284     CONST_VTBL struct IDvdInfo2Vtbl *lpVtbl;
15285   };
15286 #ifdef COBJMACROS
15287 #define IDvdInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15288 #define IDvdInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
15289 #define IDvdInfo2_Release(This) (This)->lpVtbl->Release(This)
15290 #define IDvdInfo2_GetCurrentDomain(This,pDomain) (This)->lpVtbl->GetCurrentDomain(This,pDomain)
15291 #define IDvdInfo2_GetCurrentLocation(This,pLocation) (This)->lpVtbl->GetCurrentLocation(This,pLocation)
15292 #define IDvdInfo2_GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags) (This)->lpVtbl->GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags)
15293 #define IDvdInfo2_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton) (This)->lpVtbl->GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
15294 #define IDvdInfo2_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle) (This)->lpVtbl->GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
15295 #define IDvdInfo2_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream) (This)->lpVtbl->GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
15296 #define IDvdInfo2_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled) (This)->lpVtbl->GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled)
15297 #define IDvdInfo2_GetCurrentUOPS(This,pulUOPs) (This)->lpVtbl->GetCurrentUOPS(This,pulUOPs)
15298 #define IDvdInfo2_GetAllSPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllSPRMs(This,pRegisterArray)
15299 #define IDvdInfo2_GetAllGPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllGPRMs(This,pRegisterArray)
15300 #define IDvdInfo2_GetAudioLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetAudioLanguage(This,ulStream,pLanguage)
15301 #define IDvdInfo2_GetSubpictureLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetSubpictureLanguage(This,ulStream,pLanguage)
15302 #define IDvdInfo2_GetTitleAttributes(This,ulTitle,pMenu,pTitle) (This)->lpVtbl->GetTitleAttributes(This,ulTitle,pMenu,pTitle)
15303 #define IDvdInfo2_GetVMGAttributes(This,pATR) (This)->lpVtbl->GetVMGAttributes(This,pATR)
15304 #define IDvdInfo2_GetCurrentVideoAttributes(This,pATR) (This)->lpVtbl->GetCurrentVideoAttributes(This,pATR)
15305 #define IDvdInfo2_GetAudioAttributes(This,ulStream,pATR) (This)->lpVtbl->GetAudioAttributes(This,ulStream,pATR)
15306 #define IDvdInfo2_GetKaraokeAttributes(This,ulStream,pAttributes) (This)->lpVtbl->GetKaraokeAttributes(This,ulStream,pAttributes)
15307 #define IDvdInfo2_GetSubpictureAttributes(This,ulStream,pATR) (This)->lpVtbl->GetSubpictureAttributes(This,ulStream,pATR)
15308 #define IDvdInfo2_GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles) (This)->lpVtbl->GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles)
15309 #define IDvdInfo2_GetDVDTextNumberOfLanguages(This,pulNumOfLangs) (This)->lpVtbl->GetDVDTextNumberOfLanguages(This,pulNumOfLangs)
15310 #define IDvdInfo2_GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet) (This)->lpVtbl->GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet)
15311 #define IDvdInfo2_GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType) (This)->lpVtbl->GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType)
15312 #define IDvdInfo2_GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType) (This)->lpVtbl->GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType)
15313 #define IDvdInfo2_GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode) (This)->lpVtbl->GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode)
15314 #define IDvdInfo2_GetNumberOfChapters(This,ulTitle,pulNumOfChapters) (This)->lpVtbl->GetNumberOfChapters(This,ulTitle,pulNumOfChapters)
15315 #define IDvdInfo2_GetTitleParentalLevels(This,ulTitle,pulParentalLevels) (This)->lpVtbl->GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
15316 #define IDvdInfo2_GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize) (This)->lpVtbl->GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize)
15317 #define IDvdInfo2_IsAudioStreamEnabled(This,ulStreamNum,pbEnabled) (This)->lpVtbl->IsAudioStreamEnabled(This,ulStreamNum,pbEnabled)
15318 #define IDvdInfo2_GetDiscID(This,pszwPath,pullDiscID) (This)->lpVtbl->GetDiscID(This,pszwPath,pullDiscID)
15319 #define IDvdInfo2_GetState(This,pStateData) (This)->lpVtbl->GetState(This,pStateData)
15320 #define IDvdInfo2_GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages) (This)->lpVtbl->GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages)
15321 #define IDvdInfo2_GetButtonAtPosition(This,point,pulButtonIndex) (This)->lpVtbl->GetButtonAtPosition(This,point,pulButtonIndex)
15322 #define IDvdInfo2_GetCmdFromEvent(This,lParam1,pCmdObj) (This)->lpVtbl->GetCmdFromEvent(This,lParam1,pCmdObj)
15323 #define IDvdInfo2_GetDefaultMenuLanguage(This,pLanguage) (This)->lpVtbl->GetDefaultMenuLanguage(This,pLanguage)
15324 #define IDvdInfo2_GetDefaultAudioLanguage(This,pLanguage,pAudioExtension) (This)->lpVtbl->GetDefaultAudioLanguage(This,pLanguage,pAudioExtension)
15325 #define IDvdInfo2_GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension) (This)->lpVtbl->GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension)
15326 #define IDvdInfo2_GetDecoderCaps(This,pCaps) (This)->lpVtbl->GetDecoderCaps(This,pCaps)
15327 #define IDvdInfo2_GetButtonRect(This,ulButton,pRect) (This)->lpVtbl->GetButtonRect(This,ulButton,pRect)
15328 #define IDvdInfo2_IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled) (This)->lpVtbl->IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled)
15329 #endif
15330 #endif
15331   HRESULT WINAPI IDvdInfo2_GetCurrentDomain_Proxy(IDvdInfo2 *This,DVD_DOMAIN *pDomain);
15332   void __RPC_STUB IDvdInfo2_GetCurrentDomain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15333   HRESULT WINAPI IDvdInfo2_GetCurrentLocation_Proxy(IDvdInfo2 *This,DVD_PLAYBACK_LOCATION2 *pLocation);
15334   void __RPC_STUB IDvdInfo2_GetCurrentLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15335   HRESULT WINAPI IDvdInfo2_GetTotalTitleTime_Proxy(IDvdInfo2 *This,DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags);
15336   void __RPC_STUB IDvdInfo2_GetTotalTitleTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15337   HRESULT WINAPI IDvdInfo2_GetCurrentButton_Proxy(IDvdInfo2 *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
15338   void __RPC_STUB IDvdInfo2_GetCurrentButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15339   HRESULT WINAPI IDvdInfo2_GetCurrentAngle_Proxy(IDvdInfo2 *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
15340   void __RPC_STUB IDvdInfo2_GetCurrentAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15341   HRESULT WINAPI IDvdInfo2_GetCurrentAudio_Proxy(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
15342   void __RPC_STUB IDvdInfo2_GetCurrentAudio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15343   HRESULT WINAPI IDvdInfo2_GetCurrentSubpicture_Proxy(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled);
15344   void __RPC_STUB IDvdInfo2_GetCurrentSubpicture_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15345   HRESULT WINAPI IDvdInfo2_GetCurrentUOPS_Proxy(IDvdInfo2 *This,ULONG *pulUOPs);
15346   void __RPC_STUB IDvdInfo2_GetCurrentUOPS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15347   HRESULT WINAPI IDvdInfo2_GetAllSPRMs_Proxy(IDvdInfo2 *This,SPRMARRAY *pRegisterArray);
15348   void __RPC_STUB IDvdInfo2_GetAllSPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15349   HRESULT WINAPI IDvdInfo2_GetAllGPRMs_Proxy(IDvdInfo2 *This,GPRMARRAY *pRegisterArray);
15350   void __RPC_STUB IDvdInfo2_GetAllGPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15351   HRESULT WINAPI IDvdInfo2_GetAudioLanguage_Proxy(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
15352   void __RPC_STUB IDvdInfo2_GetAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15353   HRESULT WINAPI IDvdInfo2_GetSubpictureLanguage_Proxy(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
15354   void __RPC_STUB IDvdInfo2_GetSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15355   HRESULT WINAPI IDvdInfo2_GetTitleAttributes_Proxy(IDvdInfo2 *This,ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle);
15356   void __RPC_STUB IDvdInfo2_GetTitleAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15357   HRESULT WINAPI IDvdInfo2_GetVMGAttributes_Proxy(IDvdInfo2 *This,DVD_MenuAttributes *pATR);
15358   void __RPC_STUB IDvdInfo2_GetVMGAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15359   HRESULT WINAPI IDvdInfo2_GetCurrentVideoAttributes_Proxy(IDvdInfo2 *This,DVD_VideoAttributes *pATR);
15360   void __RPC_STUB IDvdInfo2_GetCurrentVideoAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15361   HRESULT WINAPI IDvdInfo2_GetAudioAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_AudioAttributes *pATR);
15362   void __RPC_STUB IDvdInfo2_GetAudioAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15363   HRESULT WINAPI IDvdInfo2_GetKaraokeAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_KaraokeAttributes *pAttributes);
15364   void __RPC_STUB IDvdInfo2_GetKaraokeAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15365   HRESULT WINAPI IDvdInfo2_GetSubpictureAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_SubpictureAttributes *pATR);
15366   void __RPC_STUB IDvdInfo2_GetSubpictureAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15367   HRESULT WINAPI IDvdInfo2_GetDVDVolumeInfo_Proxy(IDvdInfo2 *This,ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
15368   void __RPC_STUB IDvdInfo2_GetDVDVolumeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15369   HRESULT WINAPI IDvdInfo2_GetDVDTextNumberOfLanguages_Proxy(IDvdInfo2 *This,ULONG *pulNumOfLangs);
15370   void __RPC_STUB IDvdInfo2_GetDVDTextNumberOfLanguages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15371   HRESULT WINAPI IDvdInfo2_GetDVDTextLanguageInfo_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet);
15372   void __RPC_STUB IDvdInfo2_GetDVDTextLanguageInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15373   HRESULT WINAPI IDvdInfo2_GetDVDTextStringAsNative_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
15374   void __RPC_STUB IDvdInfo2_GetDVDTextStringAsNative_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15375   HRESULT WINAPI IDvdInfo2_GetDVDTextStringAsUnicode_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
15376   void __RPC_STUB IDvdInfo2_GetDVDTextStringAsUnicode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15377   HRESULT WINAPI IDvdInfo2_GetPlayerParentalLevel_Proxy(IDvdInfo2 *This,ULONG *pulParentalLevel,BYTE pbCountryCode[2]);
15378   void __RPC_STUB IDvdInfo2_GetPlayerParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15379   HRESULT WINAPI IDvdInfo2_GetNumberOfChapters_Proxy(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulNumOfChapters);
15380   void __RPC_STUB IDvdInfo2_GetNumberOfChapters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15381   HRESULT WINAPI IDvdInfo2_GetTitleParentalLevels_Proxy(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulParentalLevels);
15382   void __RPC_STUB IDvdInfo2_GetTitleParentalLevels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15383   HRESULT WINAPI IDvdInfo2_GetDVDDirectory_Proxy(IDvdInfo2 *This,LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize);
15384   void __RPC_STUB IDvdInfo2_GetDVDDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15385   HRESULT WINAPI IDvdInfo2_IsAudioStreamEnabled_Proxy(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
15386   void __RPC_STUB IDvdInfo2_IsAudioStreamEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15387   HRESULT WINAPI IDvdInfo2_GetDiscID_Proxy(IDvdInfo2 *This,LPCWSTR pszwPath,ULONGLONG *pullDiscID);
15388   void __RPC_STUB IDvdInfo2_GetDiscID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15389   HRESULT WINAPI IDvdInfo2_GetState_Proxy(IDvdInfo2 *This,IDvdState **pStateData);
15390   void __RPC_STUB IDvdInfo2_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15391   HRESULT WINAPI IDvdInfo2_GetMenuLanguages_Proxy(IDvdInfo2 *This,LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages);
15392   void __RPC_STUB IDvdInfo2_GetMenuLanguages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15393   HRESULT WINAPI IDvdInfo2_GetButtonAtPosition_Proxy(IDvdInfo2 *This,POINT point,ULONG *pulButtonIndex);
15394   void __RPC_STUB IDvdInfo2_GetButtonAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15395   HRESULT WINAPI IDvdInfo2_GetCmdFromEvent_Proxy(IDvdInfo2 *This,LONG_PTR lParam1,IDvdCmd **pCmdObj);
15396   void __RPC_STUB IDvdInfo2_GetCmdFromEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15397   HRESULT WINAPI IDvdInfo2_GetDefaultMenuLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage);
15398   void __RPC_STUB IDvdInfo2_GetDefaultMenuLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15399   HRESULT WINAPI IDvdInfo2_GetDefaultAudioLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension);
15400   void __RPC_STUB IDvdInfo2_GetDefaultAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15401   HRESULT WINAPI IDvdInfo2_GetDefaultSubpictureLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
15402   void __RPC_STUB IDvdInfo2_GetDefaultSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15403   HRESULT WINAPI IDvdInfo2_GetDecoderCaps_Proxy(IDvdInfo2 *This,DVD_DECODER_CAPS *pCaps);
15404   void __RPC_STUB IDvdInfo2_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15405   HRESULT WINAPI IDvdInfo2_GetButtonRect_Proxy(IDvdInfo2 *This,ULONG ulButton,RECT *pRect);
15406   void __RPC_STUB IDvdInfo2_GetButtonRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15407   HRESULT WINAPI IDvdInfo2_IsSubpictureStreamEnabled_Proxy(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
15408   void __RPC_STUB IDvdInfo2_IsSubpictureStreamEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15409 #endif
15410 
15411   typedef enum _AM_DVD_GRAPH_FLAGS {
15412     AM_DVD_HWDEC_PREFER = 0x1,AM_DVD_HWDEC_ONLY = 0x2,AM_DVD_SWDEC_PREFER = 0x4,AM_DVD_SWDEC_ONLY = 0x8,AM_DVD_NOVPE = 0x100,
15413     AM_DVD_VMR9_ONLY = 0x800
15414   } AM_DVD_GRAPH_FLAGS;
15415 
15416   typedef enum _AM_DVD_STREAM_FLAGS {
15417     AM_DVD_STREAM_VIDEO = 0x1,AM_DVD_STREAM_AUDIO = 0x2,AM_DVD_STREAM_SUBPIC = 0x4
15418   } AM_DVD_STREAM_FLAGS;
15419 
15420   typedef struct __MIDL___MIDL_itf_strmif_0389_0001 {
15421     HRESULT hrVPEStatus;
15422     WINBOOL bDvdVolInvalid;
15423     WINBOOL bDvdVolUnknown;
15424     WINBOOL bNoLine21In;
15425     WINBOOL bNoLine21Out;
15426     int iNumStreams;
15427     int iNumStreamsFailed;
15428     DWORD dwFailedStreamsFlag;
15429   } AM_DVD_RENDERSTATUS;
15430 
15431   extern RPC_IF_HANDLE __MIDL_itf_strmif_0389_v0_0_c_ifspec;
15432   extern RPC_IF_HANDLE __MIDL_itf_strmif_0389_v0_0_s_ifspec;
15433 #ifndef __IDvdGraphBuilder_INTERFACE_DEFINED__
15434 #define __IDvdGraphBuilder_INTERFACE_DEFINED__
15435   EXTERN_C const IID IID_IDvdGraphBuilder;
15436 #if defined(__cplusplus) && !defined(CINTERFACE)
15437   struct IDvdGraphBuilder : public IUnknown {
15438   public:
15439     virtual HRESULT WINAPI GetFiltergraph(IGraphBuilder **ppGB) = 0;
15440     virtual HRESULT WINAPI GetDvdInterface(REFIID riid,void **ppvIF) = 0;
15441     virtual HRESULT WINAPI RenderDvdVideoVolume(LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus) = 0;
15442   };
15443 #else
15444   typedef struct IDvdGraphBuilderVtbl {
15445     BEGIN_INTERFACE
15446       HRESULT (WINAPI *QueryInterface)(IDvdGraphBuilder *This,REFIID riid,void **ppvObject);
15447       ULONG (WINAPI *AddRef)(IDvdGraphBuilder *This);
15448       ULONG (WINAPI *Release)(IDvdGraphBuilder *This);
15449       HRESULT (WINAPI *GetFiltergraph)(IDvdGraphBuilder *This,IGraphBuilder **ppGB);
15450       HRESULT (WINAPI *GetDvdInterface)(IDvdGraphBuilder *This,REFIID riid,void **ppvIF);
15451       HRESULT (WINAPI *RenderDvdVideoVolume)(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
15452     END_INTERFACE
15453   } IDvdGraphBuilderVtbl;
15454   struct IDvdGraphBuilder {
15455     CONST_VTBL struct IDvdGraphBuilderVtbl *lpVtbl;
15456   };
15457 #ifdef COBJMACROS
15458 #define IDvdGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15459 #define IDvdGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
15460 #define IDvdGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
15461 #define IDvdGraphBuilder_GetFiltergraph(This,ppGB) (This)->lpVtbl->GetFiltergraph(This,ppGB)
15462 #define IDvdGraphBuilder_GetDvdInterface(This,riid,ppvIF) (This)->lpVtbl->GetDvdInterface(This,riid,ppvIF)
15463 #define IDvdGraphBuilder_RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus) (This)->lpVtbl->RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus)
15464 #endif
15465 #endif
15466   HRESULT WINAPI IDvdGraphBuilder_GetFiltergraph_Proxy(IDvdGraphBuilder *This,IGraphBuilder **ppGB);
15467   void __RPC_STUB IDvdGraphBuilder_GetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15468   HRESULT WINAPI IDvdGraphBuilder_GetDvdInterface_Proxy(IDvdGraphBuilder *This,REFIID riid,void **ppvIF);
15469   void __RPC_STUB IDvdGraphBuilder_GetDvdInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15470   HRESULT WINAPI IDvdGraphBuilder_RenderDvdVideoVolume_Proxy(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
15471   void __RPC_STUB IDvdGraphBuilder_RenderDvdVideoVolume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15472 #endif
15473 
15474 #ifndef __IDDrawExclModeVideo_INTERFACE_DEFINED__
15475 #define __IDDrawExclModeVideo_INTERFACE_DEFINED__
15476   EXTERN_C const IID IID_IDDrawExclModeVideo;
15477 #if defined(__cplusplus) && !defined(CINTERFACE)
15478   struct IDDrawExclModeVideo : public IUnknown {
15479   public:
15480     virtual HRESULT WINAPI SetDDrawObject(IDirectDraw *pDDrawObject) = 0;
15481     virtual HRESULT WINAPI GetDDrawObject(IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal) = 0;
15482     virtual HRESULT WINAPI SetDDrawSurface(IDirectDrawSurface *pDDrawSurface) = 0;
15483     virtual HRESULT WINAPI GetDDrawSurface(IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal) = 0;
15484     virtual HRESULT WINAPI SetDrawParameters(const RECT *prcSource,const RECT *prcTarget) = 0;
15485     virtual HRESULT WINAPI GetNativeVideoProps(DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY) = 0;
15486     virtual HRESULT WINAPI SetCallbackInterface(IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags) = 0;
15487   };
15488 #else
15489   typedef struct IDDrawExclModeVideoVtbl {
15490     BEGIN_INTERFACE
15491       HRESULT (WINAPI *QueryInterface)(IDDrawExclModeVideo *This,REFIID riid,void **ppvObject);
15492       ULONG (WINAPI *AddRef)(IDDrawExclModeVideo *This);
15493       ULONG (WINAPI *Release)(IDDrawExclModeVideo *This);
15494       HRESULT (WINAPI *SetDDrawObject)(IDDrawExclModeVideo *This,IDirectDraw *pDDrawObject);
15495       HRESULT (WINAPI *GetDDrawObject)(IDDrawExclModeVideo *This,IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal);
15496       HRESULT (WINAPI *SetDDrawSurface)(IDDrawExclModeVideo *This,IDirectDrawSurface *pDDrawSurface);
15497       HRESULT (WINAPI *GetDDrawSurface)(IDDrawExclModeVideo *This,IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal);
15498       HRESULT (WINAPI *SetDrawParameters)(IDDrawExclModeVideo *This,const RECT *prcSource,const RECT *prcTarget);
15499       HRESULT (WINAPI *GetNativeVideoProps)(IDDrawExclModeVideo *This,DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY);
15500       HRESULT (WINAPI *SetCallbackInterface)(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
15501     END_INTERFACE
15502   } IDDrawExclModeVideoVtbl;
15503   struct IDDrawExclModeVideo {
15504     CONST_VTBL struct IDDrawExclModeVideoVtbl *lpVtbl;
15505   };
15506 #ifdef COBJMACROS
15507 #define IDDrawExclModeVideo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15508 #define IDDrawExclModeVideo_AddRef(This) (This)->lpVtbl->AddRef(This)
15509 #define IDDrawExclModeVideo_Release(This) (This)->lpVtbl->Release(This)
15510 #define IDDrawExclModeVideo_SetDDrawObject(This,pDDrawObject) (This)->lpVtbl->SetDDrawObject(This,pDDrawObject)
15511 #define IDDrawExclModeVideo_GetDDrawObject(This,ppDDrawObject,pbUsingExternal) (This)->lpVtbl->GetDDrawObject(This,ppDDrawObject,pbUsingExternal)
15512 #define IDDrawExclModeVideo_SetDDrawSurface(This,pDDrawSurface) (This)->lpVtbl->SetDDrawSurface(This,pDDrawSurface)
15513 #define IDDrawExclModeVideo_GetDDrawSurface(This,ppDDrawSurface,pbUsingExternal) (This)->lpVtbl->GetDDrawSurface(This,ppDDrawSurface,pbUsingExternal)
15514 #define IDDrawExclModeVideo_SetDrawParameters(This,prcSource,prcTarget) (This)->lpVtbl->SetDrawParameters(This,prcSource,prcTarget)
15515 #define IDDrawExclModeVideo_GetNativeVideoProps(This,pdwVideoWidth,pdwVideoHeight,pdwPictAspectRatioX,pdwPictAspectRatioY) (This)->lpVtbl->GetNativeVideoProps(This,pdwVideoWidth,pdwVideoHeight,pdwPictAspectRatioX,pdwPictAspectRatioY)
15516 #define IDDrawExclModeVideo_SetCallbackInterface(This,pCallback,dwFlags) (This)->lpVtbl->SetCallbackInterface(This,pCallback,dwFlags)
15517 #endif
15518 #endif
15519   HRESULT WINAPI IDDrawExclModeVideo_SetDDrawObject_Proxy(IDDrawExclModeVideo *This,IDirectDraw *pDDrawObject);
15520   void __RPC_STUB IDDrawExclModeVideo_SetDDrawObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15521   HRESULT WINAPI IDDrawExclModeVideo_GetDDrawObject_Proxy(IDDrawExclModeVideo *This,IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal);
15522   void __RPC_STUB IDDrawExclModeVideo_GetDDrawObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15523   HRESULT WINAPI IDDrawExclModeVideo_SetDDrawSurface_Proxy(IDDrawExclModeVideo *This,IDirectDrawSurface *pDDrawSurface);
15524   void __RPC_STUB IDDrawExclModeVideo_SetDDrawSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15525   HRESULT WINAPI IDDrawExclModeVideo_GetDDrawSurface_Proxy(IDDrawExclModeVideo *This,IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal);
15526   void __RPC_STUB IDDrawExclModeVideo_GetDDrawSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15527   HRESULT WINAPI IDDrawExclModeVideo_SetDrawParameters_Proxy(IDDrawExclModeVideo *This,const RECT *prcSource,const RECT *prcTarget);
15528   void __RPC_STUB IDDrawExclModeVideo_SetDrawParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15529   HRESULT WINAPI IDDrawExclModeVideo_GetNativeVideoProps_Proxy(IDDrawExclModeVideo *This,DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY);
15530   void __RPC_STUB IDDrawExclModeVideo_GetNativeVideoProps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15531   HRESULT WINAPI IDDrawExclModeVideo_SetCallbackInterface_Proxy(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
15532   void __RPC_STUB IDDrawExclModeVideo_SetCallbackInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15533 #endif
15534 
15535   enum _AM_OVERLAY_NOTIFY_FLAGS {
15536     AM_OVERLAY_NOTIFY_VISIBLE_CHANGE = 0x1,AM_OVERLAY_NOTIFY_SOURCE_CHANGE = 0x2,AM_OVERLAY_NOTIFY_DEST_CHANGE = 0x4
15537   };
15538 
15539   extern RPC_IF_HANDLE __MIDL_itf_strmif_0391_v0_0_c_ifspec;
15540   extern RPC_IF_HANDLE __MIDL_itf_strmif_0391_v0_0_s_ifspec;
15541 #ifndef __IDDrawExclModeVideoCallback_INTERFACE_DEFINED__
15542 #define __IDDrawExclModeVideoCallback_INTERFACE_DEFINED__
15543   EXTERN_C const IID IID_IDDrawExclModeVideoCallback;
15544 #if defined(__cplusplus) && !defined(CINTERFACE)
15545   struct IDDrawExclModeVideoCallback : public IUnknown {
15546   public:
15547     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;
15548     virtual HRESULT WINAPI OnUpdateColorKey(const COLORKEY *pKey,DWORD dwColor) = 0;
15549     virtual HRESULT WINAPI OnUpdateSize(DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight) = 0;
15550   };
15551 #else
15552   typedef struct IDDrawExclModeVideoCallbackVtbl {
15553     BEGIN_INTERFACE
15554       HRESULT (WINAPI *QueryInterface)(IDDrawExclModeVideoCallback *This,REFIID riid,void **ppvObject);
15555       ULONG (WINAPI *AddRef)(IDDrawExclModeVideoCallback *This);
15556       ULONG (WINAPI *Release)(IDDrawExclModeVideoCallback *This);
15557       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);
15558       HRESULT (WINAPI *OnUpdateColorKey)(IDDrawExclModeVideoCallback *This,const COLORKEY *pKey,DWORD dwColor);
15559       HRESULT (WINAPI *OnUpdateSize)(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
15560     END_INTERFACE
15561   } IDDrawExclModeVideoCallbackVtbl;
15562   struct IDDrawExclModeVideoCallback {
15563     CONST_VTBL struct IDDrawExclModeVideoCallbackVtbl *lpVtbl;
15564   };
15565 #ifdef COBJMACROS
15566 #define IDDrawExclModeVideoCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15567 #define IDDrawExclModeVideoCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
15568 #define IDDrawExclModeVideoCallback_Release(This) (This)->lpVtbl->Release(This)
15569 #define IDDrawExclModeVideoCallback_OnUpdateOverlay(This,bBefore,dwFlags,bOldVisible,prcOldSrc,prcOldDest,bNewVisible,prcNewSrc,prcNewDest) (This)->lpVtbl->OnUpdateOverlay(This,bBefore,dwFlags,bOldVisible,prcOldSrc,prcOldDest,bNewVisible,prcNewSrc,prcNewDest)
15570 #define IDDrawExclModeVideoCallback_OnUpdateColorKey(This,pKey,dwColor) (This)->lpVtbl->OnUpdateColorKey(This,pKey,dwColor)
15571 #define IDDrawExclModeVideoCallback_OnUpdateSize(This,dwWidth,dwHeight,dwARWidth,dwARHeight) (This)->lpVtbl->OnUpdateSize(This,dwWidth,dwHeight,dwARWidth,dwARHeight)
15572 #endif
15573 #endif
15574   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);
15575   void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateOverlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15576   HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateColorKey_Proxy(IDDrawExclModeVideoCallback *This,const COLORKEY *pKey,DWORD dwColor);
15577   void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15578   HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateSize_Proxy(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
15579   void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15580 #endif
15581 
15582   extern RPC_IF_HANDLE __MIDL_itf_strmif_0392_v0_0_c_ifspec;
15583   extern RPC_IF_HANDLE __MIDL_itf_strmif_0392_v0_0_s_ifspec;
15584 #ifndef __IPinConnection_INTERFACE_DEFINED__
15585 #define __IPinConnection_INTERFACE_DEFINED__
15586   EXTERN_C const IID IID_IPinConnection;
15587 #if defined(__cplusplus) && !defined(CINTERFACE)
15588   struct IPinConnection : public IUnknown {
15589   public:
15590     virtual HRESULT WINAPI DynamicQueryAccept(const AM_MEDIA_TYPE *pmt) = 0;
15591     virtual HRESULT WINAPI NotifyEndOfStream(HANDLE hNotifyEvent) = 0;
15592     virtual HRESULT WINAPI IsEndPin(void) = 0;
15593     virtual HRESULT WINAPI DynamicDisconnect(void) = 0;
15594   };
15595 #else
15596   typedef struct IPinConnectionVtbl {
15597     BEGIN_INTERFACE
15598       HRESULT (WINAPI *QueryInterface)(IPinConnection *This,REFIID riid,void **ppvObject);
15599       ULONG (WINAPI *AddRef)(IPinConnection *This);
15600       ULONG (WINAPI *Release)(IPinConnection *This);
15601       HRESULT (WINAPI *DynamicQueryAccept)(IPinConnection *This,const AM_MEDIA_TYPE *pmt);
15602       HRESULT (WINAPI *NotifyEndOfStream)(IPinConnection *This,HANDLE hNotifyEvent);
15603       HRESULT (WINAPI *IsEndPin)(IPinConnection *This);
15604       HRESULT (WINAPI *DynamicDisconnect)(IPinConnection *This);
15605     END_INTERFACE
15606   } IPinConnectionVtbl;
15607   struct IPinConnection {
15608     CONST_VTBL struct IPinConnectionVtbl *lpVtbl;
15609   };
15610 #ifdef COBJMACROS
15611 #define IPinConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15612 #define IPinConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
15613 #define IPinConnection_Release(This) (This)->lpVtbl->Release(This)
15614 #define IPinConnection_DynamicQueryAccept(This,pmt) (This)->lpVtbl->DynamicQueryAccept(This,pmt)
15615 #define IPinConnection_NotifyEndOfStream(This,hNotifyEvent) (This)->lpVtbl->NotifyEndOfStream(This,hNotifyEvent)
15616 #define IPinConnection_IsEndPin(This) (This)->lpVtbl->IsEndPin(This)
15617 #define IPinConnection_DynamicDisconnect(This) (This)->lpVtbl->DynamicDisconnect(This)
15618 #endif
15619 #endif
15620   HRESULT WINAPI IPinConnection_DynamicQueryAccept_Proxy(IPinConnection *This,const AM_MEDIA_TYPE *pmt);
15621   void __RPC_STUB IPinConnection_DynamicQueryAccept_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15622   HRESULT WINAPI IPinConnection_NotifyEndOfStream_Proxy(IPinConnection *This,HANDLE hNotifyEvent);
15623   void __RPC_STUB IPinConnection_NotifyEndOfStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15624   HRESULT WINAPI IPinConnection_IsEndPin_Proxy(IPinConnection *This);
15625   void __RPC_STUB IPinConnection_IsEndPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15626   HRESULT WINAPI IPinConnection_DynamicDisconnect_Proxy(IPinConnection *This);
15627   void __RPC_STUB IPinConnection_DynamicDisconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15628 #endif
15629 
15630 #ifndef __IPinFlowControl_INTERFACE_DEFINED__
15631 #define __IPinFlowControl_INTERFACE_DEFINED__
15632   EXTERN_C const IID IID_IPinFlowControl;
15633 #if defined(__cplusplus) && !defined(CINTERFACE)
15634   struct IPinFlowControl : public IUnknown {
15635   public:
15636     virtual HRESULT WINAPI Block(DWORD dwBlockFlags,HANDLE hEvent) = 0;
15637   };
15638 #else
15639   typedef struct IPinFlowControlVtbl {
15640     BEGIN_INTERFACE
15641       HRESULT (WINAPI *QueryInterface)(IPinFlowControl *This,REFIID riid,void **ppvObject);
15642       ULONG (WINAPI *AddRef)(IPinFlowControl *This);
15643       ULONG (WINAPI *Release)(IPinFlowControl *This);
15644       HRESULT (WINAPI *Block)(IPinFlowControl *This,DWORD dwBlockFlags,HANDLE hEvent);
15645     END_INTERFACE
15646   } IPinFlowControlVtbl;
15647   struct IPinFlowControl {
15648     CONST_VTBL struct IPinFlowControlVtbl *lpVtbl;
15649   };
15650 #ifdef COBJMACROS
15651 #define IPinFlowControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15652 #define IPinFlowControl_AddRef(This) (This)->lpVtbl->AddRef(This)
15653 #define IPinFlowControl_Release(This) (This)->lpVtbl->Release(This)
15654 #define IPinFlowControl_Block(This,dwBlockFlags,hEvent) (This)->lpVtbl->Block(This,dwBlockFlags,hEvent)
15655 #endif
15656 #endif
15657   HRESULT WINAPI IPinFlowControl_Block_Proxy(IPinFlowControl *This,DWORD dwBlockFlags,HANDLE hEvent);
15658   void __RPC_STUB IPinFlowControl_Block_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15659 #endif
15660 
15661   enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS {
15662     AM_PIN_FLOW_CONTROL_BLOCK = 0x1
15663   };
15664   typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS {
15665     AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x1,AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x2,
15666     AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x4
15667   } AM_GRAPH_CONFIG_RECONNECT_FLAGS;
15668 
15669   enum _REM_FILTER_FLAGS {
15670     REMFILTERF_LEAVECONNECTED = 0x1
15671   };
15672 
15673   typedef enum _AM_FILTER_FLAGS {
15674     AM_FILTER_FLAGS_REMOVABLE = 0x1
15675   } AM_FILTER_FLAGS;
15676 
15677   extern RPC_IF_HANDLE __MIDL_itf_strmif_0394_v0_0_c_ifspec;
15678   extern RPC_IF_HANDLE __MIDL_itf_strmif_0394_v0_0_s_ifspec;
15679 #ifndef __IGraphConfig_INTERFACE_DEFINED__
15680 #define __IGraphConfig_INTERFACE_DEFINED__
15681   EXTERN_C const IID IID_IGraphConfig;
15682 #if defined(__cplusplus) && !defined(CINTERFACE)
15683   struct IGraphConfig : public IUnknown {
15684   public:
15685     virtual HRESULT WINAPI Reconnect(IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags) = 0;
15686     virtual HRESULT WINAPI Reconfigure(IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent) = 0;
15687     virtual HRESULT WINAPI AddFilterToCache(IBaseFilter *pFilter) = 0;
15688     virtual HRESULT WINAPI EnumCacheFilter(IEnumFilters **pEnum) = 0;
15689     virtual HRESULT WINAPI RemoveFilterFromCache(IBaseFilter *pFilter) = 0;
15690     virtual HRESULT WINAPI GetStartTime(REFERENCE_TIME *prtStart) = 0;
15691     virtual HRESULT WINAPI PushThroughData(IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort) = 0;
15692     virtual HRESULT WINAPI SetFilterFlags(IBaseFilter *pFilter,DWORD dwFlags) = 0;
15693     virtual HRESULT WINAPI GetFilterFlags(IBaseFilter *pFilter,DWORD *pdwFlags) = 0;
15694     virtual HRESULT WINAPI RemoveFilterEx(IBaseFilter *pFilter,DWORD Flags) = 0;
15695   };
15696 #else
15697   typedef struct IGraphConfigVtbl {
15698     BEGIN_INTERFACE
15699       HRESULT (WINAPI *QueryInterface)(IGraphConfig *This,REFIID riid,void **ppvObject);
15700       ULONG (WINAPI *AddRef)(IGraphConfig *This);
15701       ULONG (WINAPI *Release)(IGraphConfig *This);
15702       HRESULT (WINAPI *Reconnect)(IGraphConfig *This,IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags);
15703       HRESULT (WINAPI *Reconfigure)(IGraphConfig *This,IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent);
15704       HRESULT (WINAPI *AddFilterToCache)(IGraphConfig *This,IBaseFilter *pFilter);
15705       HRESULT (WINAPI *EnumCacheFilter)(IGraphConfig *This,IEnumFilters **pEnum);
15706       HRESULT (WINAPI *RemoveFilterFromCache)(IGraphConfig *This,IBaseFilter *pFilter);
15707       HRESULT (WINAPI *GetStartTime)(IGraphConfig *This,REFERENCE_TIME *prtStart);
15708       HRESULT (WINAPI *PushThroughData)(IGraphConfig *This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort);
15709       HRESULT (WINAPI *SetFilterFlags)(IGraphConfig *This,IBaseFilter *pFilter,DWORD dwFlags);
15710       HRESULT (WINAPI *GetFilterFlags)(IGraphConfig *This,IBaseFilter *pFilter,DWORD *pdwFlags);
15711       HRESULT (WINAPI *RemoveFilterEx)(IGraphConfig *This,IBaseFilter *pFilter,DWORD Flags);
15712     END_INTERFACE
15713   } IGraphConfigVtbl;
15714   struct IGraphConfig {
15715     CONST_VTBL struct IGraphConfigVtbl *lpVtbl;
15716   };
15717 #ifdef COBJMACROS
15718 #define IGraphConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15719 #define IGraphConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
15720 #define IGraphConfig_Release(This) (This)->lpVtbl->Release(This)
15721 #define IGraphConfig_Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags) (This)->lpVtbl->Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags)
15722 #define IGraphConfig_Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent) (This)->lpVtbl->Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent)
15723 #define IGraphConfig_AddFilterToCache(This,pFilter) (This)->lpVtbl->AddFilterToCache(This,pFilter)
15724 #define IGraphConfig_EnumCacheFilter(This,pEnum) (This)->lpVtbl->EnumCacheFilter(This,pEnum)
15725 #define IGraphConfig_RemoveFilterFromCache(This,pFilter) (This)->lpVtbl->RemoveFilterFromCache(This,pFilter)
15726 #define IGraphConfig_GetStartTime(This,prtStart) (This)->lpVtbl->GetStartTime(This,prtStart)
15727 #define IGraphConfig_PushThroughData(This,pOutputPin,pConnection,hEventAbort) (This)->lpVtbl->PushThroughData(This,pOutputPin,pConnection,hEventAbort)
15728 #define IGraphConfig_SetFilterFlags(This,pFilter,dwFlags) (This)->lpVtbl->SetFilterFlags(This,pFilter,dwFlags)
15729 #define IGraphConfig_GetFilterFlags(This,pFilter,pdwFlags) (This)->lpVtbl->GetFilterFlags(This,pFilter,pdwFlags)
15730 #define IGraphConfig_RemoveFilterEx(This,pFilter,Flags) (This)->lpVtbl->RemoveFilterEx(This,pFilter,Flags)
15731 #endif
15732 #endif
15733   HRESULT WINAPI IGraphConfig_Reconnect_Proxy(IGraphConfig *This,IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags);
15734   void __RPC_STUB IGraphConfig_Reconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15735   HRESULT WINAPI IGraphConfig_Reconfigure_Proxy(IGraphConfig *This,IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent);
15736   void __RPC_STUB IGraphConfig_Reconfigure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15737   HRESULT WINAPI IGraphConfig_AddFilterToCache_Proxy(IGraphConfig *This,IBaseFilter *pFilter);
15738   void __RPC_STUB IGraphConfig_AddFilterToCache_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15739   HRESULT WINAPI IGraphConfig_EnumCacheFilter_Proxy(IGraphConfig *This,IEnumFilters **pEnum);
15740   void __RPC_STUB IGraphConfig_EnumCacheFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15741   HRESULT WINAPI IGraphConfig_RemoveFilterFromCache_Proxy(IGraphConfig *This,IBaseFilter *pFilter);
15742   void __RPC_STUB IGraphConfig_RemoveFilterFromCache_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15743   HRESULT WINAPI IGraphConfig_GetStartTime_Proxy(IGraphConfig *This,REFERENCE_TIME *prtStart);
15744   void __RPC_STUB IGraphConfig_GetStartTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15745   HRESULT WINAPI IGraphConfig_PushThroughData_Proxy(IGraphConfig *This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort);
15746   void __RPC_STUB IGraphConfig_PushThroughData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15747   HRESULT WINAPI IGraphConfig_SetFilterFlags_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD dwFlags);
15748   void __RPC_STUB IGraphConfig_SetFilterFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15749   HRESULT WINAPI IGraphConfig_GetFilterFlags_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD *pdwFlags);
15750   void __RPC_STUB IGraphConfig_GetFilterFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15751   HRESULT WINAPI IGraphConfig_RemoveFilterEx_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD Flags);
15752   void __RPC_STUB IGraphConfig_RemoveFilterEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15753 #endif
15754 
15755 #ifndef __IGraphConfigCallback_INTERFACE_DEFINED__
15756 #define __IGraphConfigCallback_INTERFACE_DEFINED__
15757   EXTERN_C const IID IID_IGraphConfigCallback;
15758 #if defined(__cplusplus) && !defined(CINTERFACE)
15759   struct IGraphConfigCallback : public IUnknown {
15760   public:
15761     virtual HRESULT WINAPI Reconfigure(PVOID pvContext,DWORD dwFlags) = 0;
15762   };
15763 #else
15764   typedef struct IGraphConfigCallbackVtbl {
15765     BEGIN_INTERFACE
15766       HRESULT (WINAPI *QueryInterface)(IGraphConfigCallback *This,REFIID riid,void **ppvObject);
15767       ULONG (WINAPI *AddRef)(IGraphConfigCallback *This);
15768       ULONG (WINAPI *Release)(IGraphConfigCallback *This);
15769       HRESULT (WINAPI *Reconfigure)(IGraphConfigCallback *This,PVOID pvContext,DWORD dwFlags);
15770     END_INTERFACE
15771   } IGraphConfigCallbackVtbl;
15772   struct IGraphConfigCallback {
15773     CONST_VTBL struct IGraphConfigCallbackVtbl *lpVtbl;
15774   };
15775 #ifdef COBJMACROS
15776 #define IGraphConfigCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15777 #define IGraphConfigCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
15778 #define IGraphConfigCallback_Release(This) (This)->lpVtbl->Release(This)
15779 #define IGraphConfigCallback_Reconfigure(This,pvContext,dwFlags) (This)->lpVtbl->Reconfigure(This,pvContext,dwFlags)
15780 #endif
15781 #endif
15782   HRESULT WINAPI IGraphConfigCallback_Reconfigure_Proxy(IGraphConfigCallback *This,PVOID pvContext,DWORD dwFlags);
15783   void __RPC_STUB IGraphConfigCallback_Reconfigure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15784 #endif
15785 
15786 #ifndef __IFilterChain_INTERFACE_DEFINED__
15787 #define __IFilterChain_INTERFACE_DEFINED__
15788   EXTERN_C const IID IID_IFilterChain;
15789 #if defined(__cplusplus) && !defined(CINTERFACE)
15790   struct IFilterChain : public IUnknown {
15791   public:
15792     virtual HRESULT WINAPI StartChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
15793     virtual HRESULT WINAPI PauseChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
15794     virtual HRESULT WINAPI StopChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
15795     virtual HRESULT WINAPI RemoveChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
15796   };
15797 #else
15798   typedef struct IFilterChainVtbl {
15799     BEGIN_INTERFACE
15800       HRESULT (WINAPI *QueryInterface)(IFilterChain *This,REFIID riid,void **ppvObject);
15801       ULONG (WINAPI *AddRef)(IFilterChain *This);
15802       ULONG (WINAPI *Release)(IFilterChain *This);
15803       HRESULT (WINAPI *StartChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15804       HRESULT (WINAPI *PauseChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15805       HRESULT (WINAPI *StopChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15806       HRESULT (WINAPI *RemoveChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15807     END_INTERFACE
15808   } IFilterChainVtbl;
15809   struct IFilterChain {
15810     CONST_VTBL struct IFilterChainVtbl *lpVtbl;
15811   };
15812 #ifdef COBJMACROS
15813 #define IFilterChain_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15814 #define IFilterChain_AddRef(This) (This)->lpVtbl->AddRef(This)
15815 #define IFilterChain_Release(This) (This)->lpVtbl->Release(This)
15816 #define IFilterChain_StartChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StartChain(This,pStartFilter,pEndFilter)
15817 #define IFilterChain_PauseChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->PauseChain(This,pStartFilter,pEndFilter)
15818 #define IFilterChain_StopChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StopChain(This,pStartFilter,pEndFilter)
15819 #define IFilterChain_RemoveChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->RemoveChain(This,pStartFilter,pEndFilter)
15820 #endif
15821 #endif
15822   HRESULT WINAPI IFilterChain_StartChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15823   void __RPC_STUB IFilterChain_StartChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15824   HRESULT WINAPI IFilterChain_PauseChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15825   void __RPC_STUB IFilterChain_PauseChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15826   HRESULT WINAPI IFilterChain_StopChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15827   void __RPC_STUB IFilterChain_StopChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15828   HRESULT WINAPI IFilterChain_RemoveChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15829   void __RPC_STUB IFilterChain_RemoveChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15830 #endif
15831 
15832 #ifdef MINGW_HAS_DDRAW_H
15833 #include <ddraw.h>
15834 #endif
15835 
15836   typedef enum __MIDL___MIDL_itf_strmif_0397_0002 {
15837     VMRSample_SyncPoint = 0x1,VMRSample_Preroll = 0x2,VMRSample_Discontinuity = 0x4,VMRSample_TimeValid = 0x8,VMRSample_SrcDstRectsValid = 0x10
15838   } VMRPresentationFlags;
15839 
15840   typedef struct tagVMRPRESENTATIONINFO {
15841     DWORD dwFlags;
15842     LPDIRECTDRAWSURFACE7 lpSurf;
15843     REFERENCE_TIME rtStart;
15844     REFERENCE_TIME rtEnd;
15845     SIZE szAspectRatio;
15846     RECT rcSrc;
15847     RECT rcDst;
15848     DWORD dwTypeSpecificFlags;
15849     DWORD dwInterlaceFlags;
15850   } VMRPRESENTATIONINFO;
15851 
15852   extern RPC_IF_HANDLE __MIDL_itf_strmif_0397_v0_0_c_ifspec;
15853   extern RPC_IF_HANDLE __MIDL_itf_strmif_0397_v0_0_s_ifspec;
15854 #ifndef __IVMRImagePresenter_INTERFACE_DEFINED__
15855 #define __IVMRImagePresenter_INTERFACE_DEFINED__
15856   EXTERN_C const IID IID_IVMRImagePresenter;
15857 #if defined(__cplusplus) && !defined(CINTERFACE)
15858   struct IVMRImagePresenter : public IUnknown {
15859   public:
15860     virtual HRESULT WINAPI StartPresenting(DWORD_PTR dwUserID) = 0;
15861     virtual HRESULT WINAPI StopPresenting(DWORD_PTR dwUserID) = 0;
15862     virtual HRESULT WINAPI PresentImage(DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo) = 0;
15863   };
15864 #else
15865   typedef struct IVMRImagePresenterVtbl {
15866     BEGIN_INTERFACE
15867       HRESULT (WINAPI *QueryInterface)(IVMRImagePresenter *This,REFIID riid,void **ppvObject);
15868       ULONG (WINAPI *AddRef)(IVMRImagePresenter *This);
15869       ULONG (WINAPI *Release)(IVMRImagePresenter *This);
15870       HRESULT (WINAPI *StartPresenting)(IVMRImagePresenter *This,DWORD_PTR dwUserID);
15871       HRESULT (WINAPI *StopPresenting)(IVMRImagePresenter *This,DWORD_PTR dwUserID);
15872       HRESULT (WINAPI *PresentImage)(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
15873     END_INTERFACE
15874   } IVMRImagePresenterVtbl;
15875   struct IVMRImagePresenter {
15876     CONST_VTBL struct IVMRImagePresenterVtbl *lpVtbl;
15877   };
15878 #ifdef COBJMACROS
15879 #define IVMRImagePresenter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15880 #define IVMRImagePresenter_AddRef(This) (This)->lpVtbl->AddRef(This)
15881 #define IVMRImagePresenter_Release(This) (This)->lpVtbl->Release(This)
15882 #define IVMRImagePresenter_StartPresenting(This,dwUserID) (This)->lpVtbl->StartPresenting(This,dwUserID)
15883 #define IVMRImagePresenter_StopPresenting(This,dwUserID) (This)->lpVtbl->StopPresenting(This,dwUserID)
15884 #define IVMRImagePresenter_PresentImage(This,dwUserID,lpPresInfo) (This)->lpVtbl->PresentImage(This,dwUserID,lpPresInfo)
15885 #endif
15886 #endif
15887   HRESULT WINAPI IVMRImagePresenter_StartPresenting_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID);
15888   void __RPC_STUB IVMRImagePresenter_StartPresenting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15889   HRESULT WINAPI IVMRImagePresenter_StopPresenting_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID);
15890   void __RPC_STUB IVMRImagePresenter_StopPresenting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15891   HRESULT WINAPI IVMRImagePresenter_PresentImage_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
15892   void __RPC_STUB IVMRImagePresenter_PresentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15893 #endif
15894 
15895   typedef enum __MIDL___MIDL_itf_strmif_0398_0001 {
15896     AMAP_PIXELFORMAT_VALID = 0x1,AMAP_3D_TARGET = 0x2,AMAP_ALLOW_SYSMEM = 0x4,AMAP_FORCE_SYSMEM = 0x8,AMAP_DIRECTED_FLIP = 0x10,AMAP_DXVA_TARGET = 0x20
15897   } VMRSurfaceAllocationFlags;
15898 
15899   typedef struct tagVMRALLOCATIONINFO {
15900     DWORD dwFlags;
15901     LPBITMAPINFOHEADER lpHdr;
15902     LPDDPIXELFORMAT lpPixFmt;
15903     SIZE szAspectRatio;
15904     DWORD dwMinBuffers;
15905     DWORD dwMaxBuffers;
15906     DWORD dwInterlaceFlags;
15907     SIZE szNativeSize;
15908   } VMRALLOCATIONINFO;
15909 
15910   extern RPC_IF_HANDLE __MIDL_itf_strmif_0398_v0_0_c_ifspec;
15911   extern RPC_IF_HANDLE __MIDL_itf_strmif_0398_v0_0_s_ifspec;
15912 #ifndef __IVMRSurfaceAllocator_INTERFACE_DEFINED__
15913 #define __IVMRSurfaceAllocator_INTERFACE_DEFINED__
15914   EXTERN_C const IID IID_IVMRSurfaceAllocator;
15915 #if defined(__cplusplus) && !defined(CINTERFACE)
15916   struct IVMRSurfaceAllocator : public IUnknown {
15917   public:
15918     virtual HRESULT WINAPI AllocateSurface(DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface) = 0;
15919     virtual HRESULT WINAPI FreeSurface(DWORD_PTR dwID) = 0;
15920     virtual HRESULT WINAPI PrepareSurface(DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags) = 0;
15921     virtual HRESULT WINAPI AdviseNotify(IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify) = 0;
15922   };
15923 #else
15924   typedef struct IVMRSurfaceAllocatorVtbl {
15925     BEGIN_INTERFACE
15926       HRESULT (WINAPI *QueryInterface)(IVMRSurfaceAllocator *This,REFIID riid,void **ppvObject);
15927       ULONG (WINAPI *AddRef)(IVMRSurfaceAllocator *This);
15928       ULONG (WINAPI *Release)(IVMRSurfaceAllocator *This);
15929       HRESULT (WINAPI *AllocateSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface);
15930       HRESULT (WINAPI *FreeSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwID);
15931       HRESULT (WINAPI *PrepareSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags);
15932       HRESULT (WINAPI *AdviseNotify)(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
15933     END_INTERFACE
15934   } IVMRSurfaceAllocatorVtbl;
15935   struct IVMRSurfaceAllocator {
15936     CONST_VTBL struct IVMRSurfaceAllocatorVtbl *lpVtbl;
15937   };
15938 #ifdef COBJMACROS
15939 #define IVMRSurfaceAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15940 #define IVMRSurfaceAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
15941 #define IVMRSurfaceAllocator_Release(This) (This)->lpVtbl->Release(This)
15942 #define IVMRSurfaceAllocator_AllocateSurface(This,dwUserID,lpAllocInfo,lpdwActualBuffers,lplpSurface) (This)->lpVtbl->AllocateSurface(This,dwUserID,lpAllocInfo,lpdwActualBuffers,lplpSurface)
15943 #define IVMRSurfaceAllocator_FreeSurface(This,dwID) (This)->lpVtbl->FreeSurface(This,dwID)
15944 #define IVMRSurfaceAllocator_PrepareSurface(This,dwUserID,lpSurface,dwSurfaceFlags) (This)->lpVtbl->PrepareSurface(This,dwUserID,lpSurface,dwSurfaceFlags)
15945 #define IVMRSurfaceAllocator_AdviseNotify(This,lpIVMRSurfAllocNotify) (This)->lpVtbl->AdviseNotify(This,lpIVMRSurfAllocNotify)
15946 #endif
15947 #endif
15948   HRESULT WINAPI IVMRSurfaceAllocator_AllocateSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface);
15949   void __RPC_STUB IVMRSurfaceAllocator_AllocateSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15950   HRESULT WINAPI IVMRSurfaceAllocator_FreeSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwID);
15951   void __RPC_STUB IVMRSurfaceAllocator_FreeSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15952   HRESULT WINAPI IVMRSurfaceAllocator_PrepareSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags);
15953   void __RPC_STUB IVMRSurfaceAllocator_PrepareSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15954   HRESULT WINAPI IVMRSurfaceAllocator_AdviseNotify_Proxy(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
15955   void __RPC_STUB IVMRSurfaceAllocator_AdviseNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15956 #endif
15957 
15958 #ifndef __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__
15959 #define __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__
15960   EXTERN_C const IID IID_IVMRSurfaceAllocatorNotify;
15961 #if defined(__cplusplus) && !defined(CINTERFACE)
15962   struct IVMRSurfaceAllocatorNotify : public IUnknown {
15963   public:
15964     virtual HRESULT WINAPI AdviseSurfaceAllocator(DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator) = 0;
15965     virtual HRESULT WINAPI SetDDrawDevice(LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor) = 0;
15966     virtual HRESULT WINAPI ChangeDDrawDevice(LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor) = 0;
15967     virtual HRESULT WINAPI RestoreDDrawSurfaces(void) = 0;
15968     virtual HRESULT WINAPI NotifyEvent(LONG EventCode,LONG_PTR Param1,LONG_PTR Param2) = 0;
15969     virtual HRESULT WINAPI SetBorderColor(COLORREF clrBorder) = 0;
15970   };
15971 #else
15972   typedef struct IVMRSurfaceAllocatorNotifyVtbl {
15973     BEGIN_INTERFACE
15974       HRESULT (WINAPI *QueryInterface)(IVMRSurfaceAllocatorNotify *This,REFIID riid,void **ppvObject);
15975       ULONG (WINAPI *AddRef)(IVMRSurfaceAllocatorNotify *This);
15976       ULONG (WINAPI *Release)(IVMRSurfaceAllocatorNotify *This);
15977       HRESULT (WINAPI *AdviseSurfaceAllocator)(IVMRSurfaceAllocatorNotify *This,DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator);
15978       HRESULT (WINAPI *SetDDrawDevice)(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
15979       HRESULT (WINAPI *ChangeDDrawDevice)(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
15980       HRESULT (WINAPI *RestoreDDrawSurfaces)(IVMRSurfaceAllocatorNotify *This);
15981       HRESULT (WINAPI *NotifyEvent)(IVMRSurfaceAllocatorNotify *This,LONG EventCode,LONG_PTR Param1,LONG_PTR Param2);
15982       HRESULT (WINAPI *SetBorderColor)(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
15983     END_INTERFACE
15984   } IVMRSurfaceAllocatorNotifyVtbl;
15985   struct IVMRSurfaceAllocatorNotify {
15986     CONST_VTBL struct IVMRSurfaceAllocatorNotifyVtbl *lpVtbl;
15987   };
15988 #ifdef COBJMACROS
15989 #define IVMRSurfaceAllocatorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15990 #define IVMRSurfaceAllocatorNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
15991 #define IVMRSurfaceAllocatorNotify_Release(This) (This)->lpVtbl->Release(This)
15992 #define IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator) (This)->lpVtbl->AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator)
15993 #define IVMRSurfaceAllocatorNotify_SetDDrawDevice(This,lpDDrawDevice,hMonitor) (This)->lpVtbl->SetDDrawDevice(This,lpDDrawDevice,hMonitor)
15994 #define IVMRSurfaceAllocatorNotify_ChangeDDrawDevice(This,lpDDrawDevice,hMonitor) (This)->lpVtbl->ChangeDDrawDevice(This,lpDDrawDevice,hMonitor)
15995 #define IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces(This) (This)->lpVtbl->RestoreDDrawSurfaces(This)
15996 #define IVMRSurfaceAllocatorNotify_NotifyEvent(This,EventCode,Param1,Param2) (This)->lpVtbl->NotifyEvent(This,EventCode,Param1,Param2)
15997 #define IVMRSurfaceAllocatorNotify_SetBorderColor(This,clrBorder) (This)->lpVtbl->SetBorderColor(This,clrBorder)
15998 #endif
15999 #endif
16000   HRESULT WINAPI IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator_Proxy(IVMRSurfaceAllocatorNotify *This,DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator);
16001   void __RPC_STUB IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16002   HRESULT WINAPI IVMRSurfaceAllocatorNotify_SetDDrawDevice_Proxy(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
16003   void __RPC_STUB IVMRSurfaceAllocatorNotify_SetDDrawDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16004   HRESULT WINAPI IVMRSurfaceAllocatorNotify_ChangeDDrawDevice_Proxy(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
16005   void __RPC_STUB IVMRSurfaceAllocatorNotify_ChangeDDrawDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16006   HRESULT WINAPI IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces_Proxy(IVMRSurfaceAllocatorNotify *This);
16007   void __RPC_STUB IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16008   HRESULT WINAPI IVMRSurfaceAllocatorNotify_NotifyEvent_Proxy(IVMRSurfaceAllocatorNotify *This,LONG EventCode,LONG_PTR Param1,LONG_PTR Param2);
16009   void __RPC_STUB IVMRSurfaceAllocatorNotify_NotifyEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16010   HRESULT WINAPI IVMRSurfaceAllocatorNotify_SetBorderColor_Proxy(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
16011   void __RPC_STUB IVMRSurfaceAllocatorNotify_SetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16012 #endif
16013 
16014   typedef enum __MIDL___MIDL_itf_strmif_0400_0001 {
16015     VMR_ARMODE_NONE = 0,VMR_ARMODE_LETTER_BOX = VMR_ARMODE_NONE + 1
16016   } VMR_ASPECT_RATIO_MODE;
16017 
16018   extern RPC_IF_HANDLE __MIDL_itf_strmif_0400_v0_0_c_ifspec;
16019   extern RPC_IF_HANDLE __MIDL_itf_strmif_0400_v0_0_s_ifspec;
16020 #ifndef __IVMRWindowlessControl_INTERFACE_DEFINED__
16021 #define __IVMRWindowlessControl_INTERFACE_DEFINED__
16022   EXTERN_C const IID IID_IVMRWindowlessControl;
16023 #if defined(__cplusplus) && !defined(CINTERFACE)
16024   struct IVMRWindowlessControl : public IUnknown {
16025   public:
16026     virtual HRESULT WINAPI GetNativeVideoSize(LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight) = 0;
16027     virtual HRESULT WINAPI GetMinIdealVideoSize(LONG *lpWidth,LONG *lpHeight) = 0;
16028     virtual HRESULT WINAPI GetMaxIdealVideoSize(LONG *lpWidth,LONG *lpHeight) = 0;
16029     virtual HRESULT WINAPI SetVideoPosition(const LPRECT lpSRCRect,const LPRECT lpDSTRect) = 0;
16030     virtual HRESULT WINAPI GetVideoPosition(LPRECT lpSRCRect,LPRECT lpDSTRect) = 0;
16031     virtual HRESULT WINAPI GetAspectRatioMode(DWORD *lpAspectRatioMode) = 0;
16032     virtual HRESULT WINAPI SetAspectRatioMode(DWORD AspectRatioMode) = 0;
16033     virtual HRESULT WINAPI SetVideoClippingWindow(HWND hwnd) = 0;
16034     virtual HRESULT WINAPI RepaintVideo(HWND hwnd,HDC hdc) = 0;
16035     virtual HRESULT WINAPI DisplayModeChanged(void) = 0;
16036     virtual HRESULT WINAPI GetCurrentImage(BYTE **lpDib) = 0;
16037     virtual HRESULT WINAPI SetBorderColor(COLORREF Clr) = 0;
16038     virtual HRESULT WINAPI GetBorderColor(COLORREF *lpClr) = 0;
16039     virtual HRESULT WINAPI SetColorKey(COLORREF Clr) = 0;
16040     virtual HRESULT WINAPI GetColorKey(COLORREF *lpClr) = 0;
16041   };
16042 #else
16043   typedef struct IVMRWindowlessControlVtbl {
16044     BEGIN_INTERFACE
16045       HRESULT (WINAPI *QueryInterface)(IVMRWindowlessControl *This,REFIID riid,void **ppvObject);
16046       ULONG (WINAPI *AddRef)(IVMRWindowlessControl *This);
16047       ULONG (WINAPI *Release)(IVMRWindowlessControl *This);
16048       HRESULT (WINAPI *GetNativeVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight);
16049       HRESULT (WINAPI *GetMinIdealVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
16050       HRESULT (WINAPI *GetMaxIdealVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
16051       HRESULT (WINAPI *SetVideoPosition)(IVMRWindowlessControl *This,const LPRECT lpSRCRect,const LPRECT lpDSTRect);
16052       HRESULT (WINAPI *GetVideoPosition)(IVMRWindowlessControl *This,LPRECT lpSRCRect,LPRECT lpDSTRect);
16053       HRESULT (WINAPI *GetAspectRatioMode)(IVMRWindowlessControl *This,DWORD *lpAspectRatioMode);
16054       HRESULT (WINAPI *SetAspectRatioMode)(IVMRWindowlessControl *This,DWORD AspectRatioMode);
16055       HRESULT (WINAPI *SetVideoClippingWindow)(IVMRWindowlessControl *This,HWND hwnd);
16056       HRESULT (WINAPI *RepaintVideo)(IVMRWindowlessControl *This,HWND hwnd,HDC hdc);
16057       HRESULT (WINAPI *DisplayModeChanged)(IVMRWindowlessControl *This);
16058       HRESULT (WINAPI *GetCurrentImage)(IVMRWindowlessControl *This,BYTE **lpDib);
16059       HRESULT (WINAPI *SetBorderColor)(IVMRWindowlessControl *This,COLORREF Clr);
16060       HRESULT (WINAPI *GetBorderColor)(IVMRWindowlessControl *This,COLORREF *lpClr);
16061       HRESULT (WINAPI *SetColorKey)(IVMRWindowlessControl *This,COLORREF Clr);
16062       HRESULT (WINAPI *GetColorKey)(IVMRWindowlessControl *This,COLORREF *lpClr);
16063     END_INTERFACE
16064   } IVMRWindowlessControlVtbl;
16065   struct IVMRWindowlessControl {
16066     CONST_VTBL struct IVMRWindowlessControlVtbl *lpVtbl;
16067   };
16068 #ifdef COBJMACROS
16069 #define IVMRWindowlessControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16070 #define IVMRWindowlessControl_AddRef(This) (This)->lpVtbl->AddRef(This)
16071 #define IVMRWindowlessControl_Release(This) (This)->lpVtbl->Release(This)
16072 #define IVMRWindowlessControl_GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight) (This)->lpVtbl->GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight)
16073 #define IVMRWindowlessControl_GetMinIdealVideoSize(This,lpWidth,lpHeight) (This)->lpVtbl->GetMinIdealVideoSize(This,lpWidth,lpHeight)
16074 #define IVMRWindowlessControl_GetMaxIdealVideoSize(This,lpWidth,lpHeight) (This)->lpVtbl->GetMaxIdealVideoSize(This,lpWidth,lpHeight)
16075 #define IVMRWindowlessControl_SetVideoPosition(This,lpSRCRect,lpDSTRect) (This)->lpVtbl->SetVideoPosition(This,lpSRCRect,lpDSTRect)
16076 #define IVMRWindowlessControl_GetVideoPosition(This,lpSRCRect,lpDSTRect) (This)->lpVtbl->GetVideoPosition(This,lpSRCRect,lpDSTRect)
16077 #define IVMRWindowlessControl_GetAspectRatioMode(This,lpAspectRatioMode) (This)->lpVtbl->GetAspectRatioMode(This,lpAspectRatioMode)
16078 #define IVMRWindowlessControl_SetAspectRatioMode(This,AspectRatioMode) (This)->lpVtbl->SetAspectRatioMode(This,AspectRatioMode)
16079 #define IVMRWindowlessControl_SetVideoClippingWindow(This,hwnd) (This)->lpVtbl->SetVideoClippingWindow(This,hwnd)
16080 #define IVMRWindowlessControl_RepaintVideo(This,hwnd,hdc) (This)->lpVtbl->RepaintVideo(This,hwnd,hdc)
16081 #define IVMRWindowlessControl_DisplayModeChanged(This) (This)->lpVtbl->DisplayModeChanged(This)
16082 #define IVMRWindowlessControl_GetCurrentImage(This,lpDib) (This)->lpVtbl->GetCurrentImage(This,lpDib)
16083 #define IVMRWindowlessControl_SetBorderColor(This,Clr) (This)->lpVtbl->SetBorderColor(This,Clr)
16084 #define IVMRWindowlessControl_GetBorderColor(This,lpClr) (This)->lpVtbl->GetBorderColor(This,lpClr)
16085 #define IVMRWindowlessControl_SetColorKey(This,Clr) (This)->lpVtbl->SetColorKey(This,Clr)
16086 #define IVMRWindowlessControl_GetColorKey(This,lpClr) (This)->lpVtbl->GetColorKey(This,lpClr)
16087 #endif
16088 #endif
16089   HRESULT WINAPI IVMRWindowlessControl_GetNativeVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight);
16090   void __RPC_STUB IVMRWindowlessControl_GetNativeVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16091   HRESULT WINAPI IVMRWindowlessControl_GetMinIdealVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
16092   void __RPC_STUB IVMRWindowlessControl_GetMinIdealVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16093   HRESULT WINAPI IVMRWindowlessControl_GetMaxIdealVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
16094   void __RPC_STUB IVMRWindowlessControl_GetMaxIdealVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16095   HRESULT WINAPI IVMRWindowlessControl_SetVideoPosition_Proxy(IVMRWindowlessControl *This,const LPRECT lpSRCRect,const LPRECT lpDSTRect);
16096   void __RPC_STUB IVMRWindowlessControl_SetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16097   HRESULT WINAPI IVMRWindowlessControl_GetVideoPosition_Proxy(IVMRWindowlessControl *This,LPRECT lpSRCRect,LPRECT lpDSTRect);
16098   void __RPC_STUB IVMRWindowlessControl_GetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16099   HRESULT WINAPI IVMRWindowlessControl_GetAspectRatioMode_Proxy(IVMRWindowlessControl *This,DWORD *lpAspectRatioMode);
16100   void __RPC_STUB IVMRWindowlessControl_GetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16101   HRESULT WINAPI IVMRWindowlessControl_SetAspectRatioMode_Proxy(IVMRWindowlessControl *This,DWORD AspectRatioMode);
16102   void __RPC_STUB IVMRWindowlessControl_SetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16103   HRESULT WINAPI IVMRWindowlessControl_SetVideoClippingWindow_Proxy(IVMRWindowlessControl *This,HWND hwnd);
16104   void __RPC_STUB IVMRWindowlessControl_SetVideoClippingWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16105   HRESULT WINAPI IVMRWindowlessControl_RepaintVideo_Proxy(IVMRWindowlessControl *This,HWND hwnd,HDC hdc);
16106   void __RPC_STUB IVMRWindowlessControl_RepaintVideo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16107   HRESULT WINAPI IVMRWindowlessControl_DisplayModeChanged_Proxy(IVMRWindowlessControl *This);
16108   void __RPC_STUB IVMRWindowlessControl_DisplayModeChanged_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16109   HRESULT WINAPI IVMRWindowlessControl_GetCurrentImage_Proxy(IVMRWindowlessControl *This,BYTE **lpDib);
16110   void __RPC_STUB IVMRWindowlessControl_GetCurrentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16111   HRESULT WINAPI IVMRWindowlessControl_SetBorderColor_Proxy(IVMRWindowlessControl *This,COLORREF Clr);
16112   void __RPC_STUB IVMRWindowlessControl_SetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16113   HRESULT WINAPI IVMRWindowlessControl_GetBorderColor_Proxy(IVMRWindowlessControl *This,COLORREF *lpClr);
16114   void __RPC_STUB IVMRWindowlessControl_GetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16115   HRESULT WINAPI IVMRWindowlessControl_SetColorKey_Proxy(IVMRWindowlessControl *This,COLORREF Clr);
16116   void __RPC_STUB IVMRWindowlessControl_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16117   HRESULT WINAPI IVMRWindowlessControl_GetColorKey_Proxy(IVMRWindowlessControl *This,COLORREF *lpClr);
16118   void __RPC_STUB IVMRWindowlessControl_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16119 #endif
16120 
16121   typedef enum __MIDL___MIDL_itf_strmif_0401_0001 {
16122     MixerPref_NoDecimation = 0x1,MixerPref_DecimateOutput = 0x2,MixerPref_ARAdjustXorY = 0x4,MixerPref_DecimationReserved = 0x8,
16123     MixerPref_DecimateMask = 0xf,MixerPref_BiLinearFiltering = 0x10,MixerPref_PointFiltering = 0x20,MixerPref_FilteringMask = 0xf0,
16124     MixerPref_RenderTargetRGB = 0x100,MixerPref_RenderTargetYUV = 0x1000,MixerPref_RenderTargetYUV420 = 0x200,MixerPref_RenderTargetYUV422 = 0x400,
16125     MixerPref_RenderTargetYUV444 = 0x800,MixerPref_RenderTargetReserved = 0xe000,MixerPref_RenderTargetMask = 0xff00,
16126     MixerPref_DynamicSwitchToBOB = 0x10000,MixerPref_DynamicDecimateBy2 = 0x20000,MixerPref_DynamicReserved = 0xc0000,
16127     MixerPref_DynamicMask = 0xf0000
16128   } VMRMixerPrefs;
16129 
16130   typedef struct _NORMALIZEDRECT {
16131     float left;
16132     float top;
16133     float right;
16134     float bottom;
16135   } NORMALIZEDRECT;
16136 
16137   typedef struct _NORMALIZEDRECT *PNORMALIZEDRECT;
16138 
16139   extern RPC_IF_HANDLE __MIDL_itf_strmif_0401_v0_0_c_ifspec;
16140   extern RPC_IF_HANDLE __MIDL_itf_strmif_0401_v0_0_s_ifspec;
16141 #ifndef __IVMRMixerControl_INTERFACE_DEFINED__
16142 #define __IVMRMixerControl_INTERFACE_DEFINED__
16143   EXTERN_C const IID IID_IVMRMixerControl;
16144 #if defined(__cplusplus) && !defined(CINTERFACE)
16145   struct IVMRMixerControl : public IUnknown {
16146   public:
16147     virtual HRESULT WINAPI SetAlpha(DWORD dwStreamID,float Alpha) = 0;
16148     virtual HRESULT WINAPI GetAlpha(DWORD dwStreamID,float *pAlpha) = 0;
16149     virtual HRESULT WINAPI SetZOrder(DWORD dwStreamID,DWORD dwZ) = 0;
16150     virtual HRESULT WINAPI GetZOrder(DWORD dwStreamID,DWORD *pZ) = 0;
16151     virtual HRESULT WINAPI SetOutputRect(DWORD dwStreamID,const NORMALIZEDRECT *pRect) = 0;
16152     virtual HRESULT WINAPI GetOutputRect(DWORD dwStreamID,NORMALIZEDRECT *pRect) = 0;
16153     virtual HRESULT WINAPI SetBackgroundClr(COLORREF ClrBkg) = 0;
16154     virtual HRESULT WINAPI GetBackgroundClr(COLORREF *lpClrBkg) = 0;
16155     virtual HRESULT WINAPI SetMixingPrefs(DWORD dwMixerPrefs) = 0;
16156     virtual HRESULT WINAPI GetMixingPrefs(DWORD *pdwMixerPrefs) = 0;
16157   };
16158 #else
16159   typedef struct IVMRMixerControlVtbl {
16160     BEGIN_INTERFACE
16161       HRESULT (WINAPI *QueryInterface)(IVMRMixerControl *This,REFIID riid,void **ppvObject);
16162       ULONG (WINAPI *AddRef)(IVMRMixerControl *This);
16163       ULONG (WINAPI *Release)(IVMRMixerControl *This);
16164       HRESULT (WINAPI *SetAlpha)(IVMRMixerControl *This,DWORD dwStreamID,float Alpha);
16165       HRESULT (WINAPI *GetAlpha)(IVMRMixerControl *This,DWORD dwStreamID,float *pAlpha);
16166       HRESULT (WINAPI *SetZOrder)(IVMRMixerControl *This,DWORD dwStreamID,DWORD dwZ);
16167       HRESULT (WINAPI *GetZOrder)(IVMRMixerControl *This,DWORD dwStreamID,DWORD *pZ);
16168       HRESULT (WINAPI *SetOutputRect)(IVMRMixerControl *This,DWORD dwStreamID,const NORMALIZEDRECT *pRect);
16169       HRESULT (WINAPI *GetOutputRect)(IVMRMixerControl *This,DWORD dwStreamID,NORMALIZEDRECT *pRect);
16170       HRESULT (WINAPI *SetBackgroundClr)(IVMRMixerControl *This,COLORREF ClrBkg);
16171       HRESULT (WINAPI *GetBackgroundClr)(IVMRMixerControl *This,COLORREF *lpClrBkg);
16172       HRESULT (WINAPI *SetMixingPrefs)(IVMRMixerControl *This,DWORD dwMixerPrefs);
16173       HRESULT (WINAPI *GetMixingPrefs)(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
16174     END_INTERFACE
16175   } IVMRMixerControlVtbl;
16176   struct IVMRMixerControl {
16177     CONST_VTBL struct IVMRMixerControlVtbl *lpVtbl;
16178   };
16179 #ifdef COBJMACROS
16180 #define IVMRMixerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16181 #define IVMRMixerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
16182 #define IVMRMixerControl_Release(This) (This)->lpVtbl->Release(This)
16183 #define IVMRMixerControl_SetAlpha(This,dwStreamID,Alpha) (This)->lpVtbl->SetAlpha(This,dwStreamID,Alpha)
16184 #define IVMRMixerControl_GetAlpha(This,dwStreamID,pAlpha) (This)->lpVtbl->GetAlpha(This,dwStreamID,pAlpha)
16185 #define IVMRMixerControl_SetZOrder(This,dwStreamID,dwZ) (This)->lpVtbl->SetZOrder(This,dwStreamID,dwZ)
16186 #define IVMRMixerControl_GetZOrder(This,dwStreamID,pZ) (This)->lpVtbl->GetZOrder(This,dwStreamID,pZ)
16187 #define IVMRMixerControl_SetOutputRect(This,dwStreamID,pRect) (This)->lpVtbl->SetOutputRect(This,dwStreamID,pRect)
16188 #define IVMRMixerControl_GetOutputRect(This,dwStreamID,pRect) (This)->lpVtbl->GetOutputRect(This,dwStreamID,pRect)
16189 #define IVMRMixerControl_SetBackgroundClr(This,ClrBkg) (This)->lpVtbl->SetBackgroundClr(This,ClrBkg)
16190 #define IVMRMixerControl_GetBackgroundClr(This,lpClrBkg) (This)->lpVtbl->GetBackgroundClr(This,lpClrBkg)
16191 #define IVMRMixerControl_SetMixingPrefs(This,dwMixerPrefs) (This)->lpVtbl->SetMixingPrefs(This,dwMixerPrefs)
16192 #define IVMRMixerControl_GetMixingPrefs(This,pdwMixerPrefs) (This)->lpVtbl->GetMixingPrefs(This,pdwMixerPrefs)
16193 #endif
16194 #endif
16195   HRESULT WINAPI IVMRMixerControl_SetAlpha_Proxy(IVMRMixerControl *This,DWORD dwStreamID,float Alpha);
16196   void __RPC_STUB IVMRMixerControl_SetAlpha_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16197   HRESULT WINAPI IVMRMixerControl_GetAlpha_Proxy(IVMRMixerControl *This,DWORD dwStreamID,float *pAlpha);
16198   void __RPC_STUB IVMRMixerControl_GetAlpha_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16199   HRESULT WINAPI IVMRMixerControl_SetZOrder_Proxy(IVMRMixerControl *This,DWORD dwStreamID,DWORD dwZ);
16200   void __RPC_STUB IVMRMixerControl_SetZOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16201   HRESULT WINAPI IVMRMixerControl_GetZOrder_Proxy(IVMRMixerControl *This,DWORD dwStreamID,DWORD *pZ);
16202   void __RPC_STUB IVMRMixerControl_GetZOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16203   HRESULT WINAPI IVMRMixerControl_SetOutputRect_Proxy(IVMRMixerControl *This,DWORD dwStreamID,const NORMALIZEDRECT *pRect);
16204   void __RPC_STUB IVMRMixerControl_SetOutputRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16205   HRESULT WINAPI IVMRMixerControl_GetOutputRect_Proxy(IVMRMixerControl *This,DWORD dwStreamID,NORMALIZEDRECT *pRect);
16206   void __RPC_STUB IVMRMixerControl_GetOutputRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16207   HRESULT WINAPI IVMRMixerControl_SetBackgroundClr_Proxy(IVMRMixerControl *This,COLORREF ClrBkg);
16208   void __RPC_STUB IVMRMixerControl_SetBackgroundClr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16209   HRESULT WINAPI IVMRMixerControl_GetBackgroundClr_Proxy(IVMRMixerControl *This,COLORREF *lpClrBkg);
16210   void __RPC_STUB IVMRMixerControl_GetBackgroundClr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16211   HRESULT WINAPI IVMRMixerControl_SetMixingPrefs_Proxy(IVMRMixerControl *This,DWORD dwMixerPrefs);
16212   void __RPC_STUB IVMRMixerControl_SetMixingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16213   HRESULT WINAPI IVMRMixerControl_GetMixingPrefs_Proxy(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
16214 
16215   void __RPC_STUB IVMRMixerControl_GetMixingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16216 #endif
16217 
16218 #ifdef __cplusplus
16219   typedef struct tagVMRGUID {
16220     ::GUID *pGUID;
16221     ::GUID GUID;
16222   } VMRGUID;
16223 #else
16224   typedef struct tagVMRGUID {
16225     GUID *pGUID;
16226     GUID GUID;
16227   } VMRGUID;
16228 #endif
16229 
16230   typedef struct tagVMRMONITORINFO {
16231     VMRGUID guid;
16232     RECT rcMonitor;
16233     HMONITOR hMon;
16234     DWORD dwFlags;
16235     wchar_t szDevice[32];
16236     wchar_t szDescription[256];
16237     LARGE_INTEGER liDriverVersion;
16238     DWORD dwVendorId;
16239     DWORD dwDeviceId;
16240     DWORD dwSubSysId;
16241     DWORD dwRevision;
16242   } VMRMONITORINFO;
16243 
16244   extern RPC_IF_HANDLE __MIDL_itf_strmif_0402_v0_0_c_ifspec;
16245   extern RPC_IF_HANDLE __MIDL_itf_strmif_0402_v0_0_s_ifspec;
16246 #ifndef __IVMRMonitorConfig_INTERFACE_DEFINED__
16247 #define __IVMRMonitorConfig_INTERFACE_DEFINED__
16248   EXTERN_C const IID IID_IVMRMonitorConfig;
16249 #if defined(__cplusplus) && !defined(CINTERFACE)
16250   struct IVMRMonitorConfig : public IUnknown {
16251   public:
16252     virtual HRESULT WINAPI SetMonitor(const VMRGUID *pGUID) = 0;
16253     virtual HRESULT WINAPI GetMonitor(VMRGUID *pGUID) = 0;
16254     virtual HRESULT WINAPI SetDefaultMonitor(const VMRGUID *pGUID) = 0;
16255     virtual HRESULT WINAPI GetDefaultMonitor(VMRGUID *pGUID) = 0;
16256     virtual HRESULT WINAPI GetAvailableMonitors(VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices) = 0;
16257   };
16258 #else
16259   typedef struct IVMRMonitorConfigVtbl {
16260     BEGIN_INTERFACE
16261       HRESULT (WINAPI *QueryInterface)(IVMRMonitorConfig *This,REFIID riid,void **ppvObject);
16262       ULONG (WINAPI *AddRef)(IVMRMonitorConfig *This);
16263       ULONG (WINAPI *Release)(IVMRMonitorConfig *This);
16264       HRESULT (WINAPI *SetMonitor)(IVMRMonitorConfig *This,const VMRGUID *pGUID);
16265       HRESULT (WINAPI *GetMonitor)(IVMRMonitorConfig *This,VMRGUID *pGUID);
16266       HRESULT (WINAPI *SetDefaultMonitor)(IVMRMonitorConfig *This,const VMRGUID *pGUID);
16267       HRESULT (WINAPI *GetDefaultMonitor)(IVMRMonitorConfig *This,VMRGUID *pGUID);
16268       HRESULT (WINAPI *GetAvailableMonitors)(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
16269     END_INTERFACE
16270   } IVMRMonitorConfigVtbl;
16271   struct IVMRMonitorConfig {
16272     CONST_VTBL struct IVMRMonitorConfigVtbl *lpVtbl;
16273   };
16274 #ifdef COBJMACROS
16275 #define IVMRMonitorConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16276 #define IVMRMonitorConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
16277 #define IVMRMonitorConfig_Release(This) (This)->lpVtbl->Release(This)
16278 #define IVMRMonitorConfig_SetMonitor(This,pGUID) (This)->lpVtbl->SetMonitor(This,pGUID)
16279 #define IVMRMonitorConfig_GetMonitor(This,pGUID) (This)->lpVtbl->GetMonitor(This,pGUID)
16280 #define IVMRMonitorConfig_SetDefaultMonitor(This,pGUID) (This)->lpVtbl->SetDefaultMonitor(This,pGUID)
16281 #define IVMRMonitorConfig_GetDefaultMonitor(This,pGUID) (This)->lpVtbl->GetDefaultMonitor(This,pGUID)
16282 #define IVMRMonitorConfig_GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices) (This)->lpVtbl->GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices)
16283 #endif
16284 #endif
16285   HRESULT WINAPI IVMRMonitorConfig_SetMonitor_Proxy(IVMRMonitorConfig *This,const VMRGUID *pGUID);
16286   void __RPC_STUB IVMRMonitorConfig_SetMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16287   HRESULT WINAPI IVMRMonitorConfig_GetMonitor_Proxy(IVMRMonitorConfig *This,VMRGUID *pGUID);
16288   void __RPC_STUB IVMRMonitorConfig_GetMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16289   HRESULT WINAPI IVMRMonitorConfig_SetDefaultMonitor_Proxy(IVMRMonitorConfig *This,const VMRGUID *pGUID);
16290   void __RPC_STUB IVMRMonitorConfig_SetDefaultMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16291   HRESULT WINAPI IVMRMonitorConfig_GetDefaultMonitor_Proxy(IVMRMonitorConfig *This,VMRGUID *pGUID);
16292   void __RPC_STUB IVMRMonitorConfig_GetDefaultMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16293   HRESULT WINAPI IVMRMonitorConfig_GetAvailableMonitors_Proxy(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
16294   void __RPC_STUB IVMRMonitorConfig_GetAvailableMonitors_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16295 #endif
16296 
16297   typedef enum __MIDL___MIDL_itf_strmif_0403_0001 {
16298     RenderPrefs_RestrictToInitialMonitor = 0,RenderPrefs_ForceOffscreen = 0x1,RenderPrefs_ForceOverlays = 0x2,RenderPrefs_AllowOverlays = 0,
16299     RenderPrefs_AllowOffscreen = 0,RenderPrefs_DoNotRenderColorKeyAndBorder = 0x8,RenderPrefs_Reserved = 0x10,RenderPrefs_PreferAGPMemWhenMixing = 0x20,
16300     RenderPrefs_Mask = 0x3f
16301   } VMRRenderPrefs;
16302 
16303   typedef enum __MIDL___MIDL_itf_strmif_0403_0002 {
16304     VMRMode_Windowed = 0x1,VMRMode_Windowless = 0x2,VMRMode_Renderless = 0x4,VMRMode_Mask = 0x7
16305   } VMRMode;
16306 
16307   enum __MIDL___MIDL_itf_strmif_0403_0003 {
16308     MAX_NUMBER_OF_STREAMS = 16
16309   };
16310 
16311   extern RPC_IF_HANDLE __MIDL_itf_strmif_0403_v0_0_c_ifspec;
16312   extern RPC_IF_HANDLE __MIDL_itf_strmif_0403_v0_0_s_ifspec;
16313 #ifndef __IVMRFilterConfig_INTERFACE_DEFINED__
16314 #define __IVMRFilterConfig_INTERFACE_DEFINED__
16315   EXTERN_C const IID IID_IVMRFilterConfig;
16316 #if defined(__cplusplus) && !defined(CINTERFACE)
16317   struct IVMRFilterConfig : public IUnknown {
16318   public:
16319     virtual HRESULT WINAPI SetImageCompositor(IVMRImageCompositor *lpVMRImgCompositor) = 0;
16320     virtual HRESULT WINAPI SetNumberOfStreams(DWORD dwMaxStreams) = 0;
16321     virtual HRESULT WINAPI GetNumberOfStreams(DWORD *pdwMaxStreams) = 0;
16322     virtual HRESULT WINAPI SetRenderingPrefs(DWORD dwRenderFlags) = 0;
16323     virtual HRESULT WINAPI GetRenderingPrefs(DWORD *pdwRenderFlags) = 0;
16324     virtual HRESULT WINAPI SetRenderingMode(DWORD Mode) = 0;
16325     virtual HRESULT WINAPI GetRenderingMode(DWORD *pMode) = 0;
16326   };
16327 #else
16328   typedef struct IVMRFilterConfigVtbl {
16329     BEGIN_INTERFACE
16330       HRESULT (WINAPI *QueryInterface)(IVMRFilterConfig *This,REFIID riid,void **ppvObject);
16331       ULONG (WINAPI *AddRef)(IVMRFilterConfig *This);
16332       ULONG (WINAPI *Release)(IVMRFilterConfig *This);
16333       HRESULT (WINAPI *SetImageCompositor)(IVMRFilterConfig *This,IVMRImageCompositor *lpVMRImgCompositor);
16334       HRESULT (WINAPI *SetNumberOfStreams)(IVMRFilterConfig *This,DWORD dwMaxStreams);
16335       HRESULT (WINAPI *GetNumberOfStreams)(IVMRFilterConfig *This,DWORD *pdwMaxStreams);
16336       HRESULT (WINAPI *SetRenderingPrefs)(IVMRFilterConfig *This,DWORD dwRenderFlags);
16337       HRESULT (WINAPI *GetRenderingPrefs)(IVMRFilterConfig *This,DWORD *pdwRenderFlags);
16338       HRESULT (WINAPI *SetRenderingMode)(IVMRFilterConfig *This,DWORD Mode);
16339       HRESULT (WINAPI *GetRenderingMode)(IVMRFilterConfig *This,DWORD *pMode);
16340     END_INTERFACE
16341   } IVMRFilterConfigVtbl;
16342   struct IVMRFilterConfig {
16343     CONST_VTBL struct IVMRFilterConfigVtbl *lpVtbl;
16344   };
16345 #ifdef COBJMACROS
16346 #define IVMRFilterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16347 #define IVMRFilterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
16348 #define IVMRFilterConfig_Release(This) (This)->lpVtbl->Release(This)
16349 #define IVMRFilterConfig_SetImageCompositor(This,lpVMRImgCompositor) (This)->lpVtbl->SetImageCompositor(This,lpVMRImgCompositor)
16350 #define IVMRFilterConfig_SetNumberOfStreams(This,dwMaxStreams) (This)->lpVtbl->SetNumberOfStreams(This,dwMaxStreams)
16351 #define IVMRFilterConfig_GetNumberOfStreams(This,pdwMaxStreams) (This)->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams)
16352 #define IVMRFilterConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
16353 #define IVMRFilterConfig_GetRenderingPrefs(This,pdwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags)
16354 #define IVMRFilterConfig_SetRenderingMode(This,Mode) (This)->lpVtbl->SetRenderingMode(This,Mode)
16355 #define IVMRFilterConfig_GetRenderingMode(This,pMode) (This)->lpVtbl->GetRenderingMode(This,pMode)
16356 #endif
16357 #endif
16358   HRESULT WINAPI IVMRFilterConfig_SetImageCompositor_Proxy(IVMRFilterConfig *This,IVMRImageCompositor *lpVMRImgCompositor);
16359   void __RPC_STUB IVMRFilterConfig_SetImageCompositor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16360   HRESULT WINAPI IVMRFilterConfig_SetNumberOfStreams_Proxy(IVMRFilterConfig *This,DWORD dwMaxStreams);
16361   void __RPC_STUB IVMRFilterConfig_SetNumberOfStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16362   HRESULT WINAPI IVMRFilterConfig_GetNumberOfStreams_Proxy(IVMRFilterConfig *This,DWORD *pdwMaxStreams);
16363   void __RPC_STUB IVMRFilterConfig_GetNumberOfStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16364   HRESULT WINAPI IVMRFilterConfig_SetRenderingPrefs_Proxy(IVMRFilterConfig *This,DWORD dwRenderFlags);
16365   void __RPC_STUB IVMRFilterConfig_SetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16366   HRESULT WINAPI IVMRFilterConfig_GetRenderingPrefs_Proxy(IVMRFilterConfig *This,DWORD *pdwRenderFlags);
16367   void __RPC_STUB IVMRFilterConfig_GetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16368   HRESULT WINAPI IVMRFilterConfig_SetRenderingMode_Proxy(IVMRFilterConfig *This,DWORD Mode);
16369   void __RPC_STUB IVMRFilterConfig_SetRenderingMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16370   HRESULT WINAPI IVMRFilterConfig_GetRenderingMode_Proxy(IVMRFilterConfig *This,DWORD *pMode);
16371   void __RPC_STUB IVMRFilterConfig_GetRenderingMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16372 #endif
16373 
16374 #ifndef __IVMRAspectRatioControl_INTERFACE_DEFINED__
16375 #define __IVMRAspectRatioControl_INTERFACE_DEFINED__
16376   EXTERN_C const IID IID_IVMRAspectRatioControl;
16377 #if defined(__cplusplus) && !defined(CINTERFACE)
16378   struct IVMRAspectRatioControl : public IUnknown {
16379   public:
16380     virtual HRESULT WINAPI GetAspectRatioMode(LPDWORD lpdwARMode) = 0;
16381     virtual HRESULT WINAPI SetAspectRatioMode(DWORD dwARMode) = 0;
16382   };
16383 #else
16384   typedef struct IVMRAspectRatioControlVtbl {
16385     BEGIN_INTERFACE
16386       HRESULT (WINAPI *QueryInterface)(IVMRAspectRatioControl *This,REFIID riid,void **ppvObject);
16387       ULONG (WINAPI *AddRef)(IVMRAspectRatioControl *This);
16388       ULONG (WINAPI *Release)(IVMRAspectRatioControl *This);
16389       HRESULT (WINAPI *GetAspectRatioMode)(IVMRAspectRatioControl *This,LPDWORD lpdwARMode);
16390       HRESULT (WINAPI *SetAspectRatioMode)(IVMRAspectRatioControl *This,DWORD dwARMode);
16391     END_INTERFACE
16392   } IVMRAspectRatioControlVtbl;
16393   struct IVMRAspectRatioControl {
16394     CONST_VTBL struct IVMRAspectRatioControlVtbl *lpVtbl;
16395   };
16396 #ifdef COBJMACROS
16397 #define IVMRAspectRatioControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16398 #define IVMRAspectRatioControl_AddRef(This) (This)->lpVtbl->AddRef(This)
16399 #define IVMRAspectRatioControl_Release(This) (This)->lpVtbl->Release(This)
16400 #define IVMRAspectRatioControl_GetAspectRatioMode(This,lpdwARMode) (This)->lpVtbl->GetAspectRatioMode(This,lpdwARMode)
16401 #define IVMRAspectRatioControl_SetAspectRatioMode(This,dwARMode) (This)->lpVtbl->SetAspectRatioMode(This,dwARMode)
16402 #endif
16403 #endif
16404   HRESULT WINAPI IVMRAspectRatioControl_GetAspectRatioMode_Proxy(IVMRAspectRatioControl *This,LPDWORD lpdwARMode);
16405   void __RPC_STUB IVMRAspectRatioControl_GetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16406   HRESULT WINAPI IVMRAspectRatioControl_SetAspectRatioMode_Proxy(IVMRAspectRatioControl *This,DWORD dwARMode);
16407   void __RPC_STUB IVMRAspectRatioControl_SetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16408 #endif
16409 
16410   typedef enum __MIDL___MIDL_itf_strmif_0405_0001 {
16411     DeinterlacePref_NextBest = 0x1,DeinterlacePref_BOB = 0x2,DeinterlacePref_Weave = 0x4,DeinterlacePref_Mask = 0x7
16412   } VMRDeinterlacePrefs;
16413 
16414   typedef enum __MIDL___MIDL_itf_strmif_0405_0002 {
16415     DeinterlaceTech_Unknown = 0,DeinterlaceTech_BOBLineReplicate = 0x1,DeinterlaceTech_BOBVerticalStretch = 0x2,DeinterlaceTech_MedianFiltering = 0x4,
16416     DeinterlaceTech_EdgeFiltering = 0x10,DeinterlaceTech_FieldAdaptive = 0x20,DeinterlaceTech_PixelAdaptive = 0x40,
16417     DeinterlaceTech_MotionVectorSteered = 0x80
16418   } VMRDeinterlaceTech;
16419 
16420   typedef struct _VMRFrequency {
16421     DWORD dwNumerator;
16422     DWORD dwDenominator;
16423   } VMRFrequency;
16424 
16425   typedef struct _VMRVideoDesc {
16426     DWORD dwSize;
16427     DWORD dwSampleWidth;
16428     DWORD dwSampleHeight;
16429     WINBOOL SingleFieldPerSample;
16430     DWORD dwFourCC;
16431     VMRFrequency InputSampleFreq;
16432     VMRFrequency OutputFrameFreq;
16433   } VMRVideoDesc;
16434 
16435   typedef struct _VMRDeinterlaceCaps {
16436     DWORD dwSize;
16437     DWORD dwNumPreviousOutputFrames;
16438     DWORD dwNumForwardRefSamples;
16439     DWORD dwNumBackwardRefSamples;
16440     VMRDeinterlaceTech DeinterlaceTechnology;
16441   } VMRDeinterlaceCaps;
16442 
16443   extern RPC_IF_HANDLE __MIDL_itf_strmif_0405_v0_0_c_ifspec;
16444   extern RPC_IF_HANDLE __MIDL_itf_strmif_0405_v0_0_s_ifspec;
16445 #ifndef __IVMRDeinterlaceControl_INTERFACE_DEFINED__
16446 #define __IVMRDeinterlaceControl_INTERFACE_DEFINED__
16447   EXTERN_C const IID IID_IVMRDeinterlaceControl;
16448 #if defined(__cplusplus) && !defined(CINTERFACE)
16449   struct IVMRDeinterlaceControl : public IUnknown {
16450   public:
16451     virtual HRESULT WINAPI GetNumberOfDeinterlaceModes(VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes) = 0;
16452     virtual HRESULT WINAPI GetDeinterlaceModeCaps(LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps) = 0;
16453     virtual HRESULT WINAPI GetDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
16454     virtual HRESULT WINAPI SetDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
16455     virtual HRESULT WINAPI GetDeinterlacePrefs(LPDWORD lpdwDeinterlacePrefs) = 0;
16456     virtual HRESULT WINAPI SetDeinterlacePrefs(DWORD dwDeinterlacePrefs) = 0;
16457     virtual HRESULT WINAPI GetActualDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
16458   };
16459 #else
16460   typedef struct IVMRDeinterlaceControlVtbl {
16461     BEGIN_INTERFACE
16462       HRESULT (WINAPI *QueryInterface)(IVMRDeinterlaceControl *This,REFIID riid,void **ppvObject);
16463       ULONG (WINAPI *AddRef)(IVMRDeinterlaceControl *This);
16464       ULONG (WINAPI *Release)(IVMRDeinterlaceControl *This);
16465       HRESULT (WINAPI *GetNumberOfDeinterlaceModes)(IVMRDeinterlaceControl *This,VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes);
16466       HRESULT (WINAPI *GetDeinterlaceModeCaps)(IVMRDeinterlaceControl *This,LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps);
16467       HRESULT (WINAPI *GetDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
16468       HRESULT (WINAPI *SetDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
16469       HRESULT (WINAPI *GetDeinterlacePrefs)(IVMRDeinterlaceControl *This,LPDWORD lpdwDeinterlacePrefs);
16470       HRESULT (WINAPI *SetDeinterlacePrefs)(IVMRDeinterlaceControl *This,DWORD dwDeinterlacePrefs);
16471       HRESULT (WINAPI *GetActualDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
16472     END_INTERFACE
16473   } IVMRDeinterlaceControlVtbl;
16474   struct IVMRDeinterlaceControl {
16475     CONST_VTBL struct IVMRDeinterlaceControlVtbl *lpVtbl;
16476   };
16477 #ifdef COBJMACROS
16478 #define IVMRDeinterlaceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16479 #define IVMRDeinterlaceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
16480 #define IVMRDeinterlaceControl_Release(This) (This)->lpVtbl->Release(This)
16481 #define IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes) (This)->lpVtbl->GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes)
16482 #define IVMRDeinterlaceControl_GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps) (This)->lpVtbl->GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps)
16483 #define IVMRDeinterlaceControl_GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
16484 #define IVMRDeinterlaceControl_SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
16485 #define IVMRDeinterlaceControl_GetDeinterlacePrefs(This,lpdwDeinterlacePrefs) (This)->lpVtbl->GetDeinterlacePrefs(This,lpdwDeinterlacePrefs)
16486 #define IVMRDeinterlaceControl_SetDeinterlacePrefs(This,dwDeinterlacePrefs) (This)->lpVtbl->SetDeinterlacePrefs(This,dwDeinterlacePrefs)
16487 #define IVMRDeinterlaceControl_GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
16488 #endif
16489 #endif
16490   HRESULT WINAPI IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes_Proxy(IVMRDeinterlaceControl *This,VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes);
16491   void __RPC_STUB IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16492   HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlaceModeCaps_Proxy(IVMRDeinterlaceControl *This,LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps);
16493   void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlaceModeCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16494   HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
16495   void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16496   HRESULT WINAPI IVMRDeinterlaceControl_SetDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
16497   void __RPC_STUB IVMRDeinterlaceControl_SetDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16498   HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlacePrefs_Proxy(IVMRDeinterlaceControl *This,LPDWORD lpdwDeinterlacePrefs);
16499   void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlacePrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16500   HRESULT WINAPI IVMRDeinterlaceControl_SetDeinterlacePrefs_Proxy(IVMRDeinterlaceControl *This,DWORD dwDeinterlacePrefs);
16501   void __RPC_STUB IVMRDeinterlaceControl_SetDeinterlacePrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16502   HRESULT WINAPI IVMRDeinterlaceControl_GetActualDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
16503   void __RPC_STUB IVMRDeinterlaceControl_GetActualDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16504 #endif
16505 
16506   typedef struct _VMRALPHABITMAP {
16507     DWORD dwFlags;
16508     HDC hdc;
16509     LPDIRECTDRAWSURFACE7 pDDS;
16510     RECT rSrc;
16511     NORMALIZEDRECT rDest;
16512     FLOAT fAlpha;
16513     COLORREF clrSrcKey;
16514   } VMRALPHABITMAP;
16515 
16516   typedef struct _VMRALPHABITMAP *PVMRALPHABITMAP;
16517 
16518 #define VMRBITMAP_DISABLE 0x00000001
16519 #define VMRBITMAP_HDC 0x00000002
16520 #define VMRBITMAP_ENTIREDDS 0x00000004
16521 #define VMRBITMAP_SRCCOLORKEY 0x00000008
16522 #define VMRBITMAP_SRCRECT 0x00000010
16523 
16524   extern RPC_IF_HANDLE __MIDL_itf_strmif_0406_v0_0_c_ifspec;
16525   extern RPC_IF_HANDLE __MIDL_itf_strmif_0406_v0_0_s_ifspec;
16526 #ifndef __IVMRMixerBitmap_INTERFACE_DEFINED__
16527 #define __IVMRMixerBitmap_INTERFACE_DEFINED__
16528   EXTERN_C const IID IID_IVMRMixerBitmap;
16529 #if defined(__cplusplus) && !defined(CINTERFACE)
16530   struct IVMRMixerBitmap : public IUnknown {
16531   public:
16532     virtual HRESULT WINAPI SetAlphaBitmap(const VMRALPHABITMAP *pBmpParms) = 0;
16533     virtual HRESULT WINAPI UpdateAlphaBitmapParameters(PVMRALPHABITMAP pBmpParms) = 0;
16534     virtual HRESULT WINAPI GetAlphaBitmapParameters(PVMRALPHABITMAP pBmpParms) = 0;
16535   };
16536 #else
16537   typedef struct IVMRMixerBitmapVtbl {
16538     BEGIN_INTERFACE
16539       HRESULT (WINAPI *QueryInterface)(IVMRMixerBitmap *This,REFIID riid,void **ppvObject);
16540       ULONG (WINAPI *AddRef)(IVMRMixerBitmap *This);
16541       ULONG (WINAPI *Release)(IVMRMixerBitmap *This);
16542       HRESULT (WINAPI *SetAlphaBitmap)(IVMRMixerBitmap *This,const VMRALPHABITMAP *pBmpParms);
16543       HRESULT (WINAPI *UpdateAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
16544       HRESULT (WINAPI *GetAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
16545     END_INTERFACE
16546   } IVMRMixerBitmapVtbl;
16547   struct IVMRMixerBitmap {
16548     CONST_VTBL struct IVMRMixerBitmapVtbl *lpVtbl;
16549   };
16550 #ifdef COBJMACROS
16551 #define IVMRMixerBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16552 #define IVMRMixerBitmap_AddRef(This) (This)->lpVtbl->AddRef(This)
16553 #define IVMRMixerBitmap_Release(This) (This)->lpVtbl->Release(This)
16554 #define IVMRMixerBitmap_SetAlphaBitmap(This,pBmpParms) (This)->lpVtbl->SetAlphaBitmap(This,pBmpParms)
16555 #define IVMRMixerBitmap_UpdateAlphaBitmapParameters(This,pBmpParms) (This)->lpVtbl->UpdateAlphaBitmapParameters(This,pBmpParms)
16556 #define IVMRMixerBitmap_GetAlphaBitmapParameters(This,pBmpParms) (This)->lpVtbl->GetAlphaBitmapParameters(This,pBmpParms)
16557 #endif
16558 #endif
16559   HRESULT WINAPI IVMRMixerBitmap_SetAlphaBitmap_Proxy(IVMRMixerBitmap *This,const VMRALPHABITMAP *pBmpParms);
16560   void __RPC_STUB IVMRMixerBitmap_SetAlphaBitmap_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16561   HRESULT WINAPI IVMRMixerBitmap_UpdateAlphaBitmapParameters_Proxy(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
16562   void __RPC_STUB IVMRMixerBitmap_UpdateAlphaBitmapParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16563   HRESULT WINAPI IVMRMixerBitmap_GetAlphaBitmapParameters_Proxy(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
16564   void __RPC_STUB IVMRMixerBitmap_GetAlphaBitmapParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16565 #endif
16566 
16567   typedef struct _VMRVIDEOSTREAMINFO {
16568     LPDIRECTDRAWSURFACE7 pddsVideoSurface;
16569     DWORD dwWidth;
16570     DWORD dwHeight;
16571     DWORD dwStrmID;
16572     FLOAT fAlpha;
16573     DDCOLORKEY ddClrKey;
16574     NORMALIZEDRECT rNormal;
16575   } VMRVIDEOSTREAMINFO;
16576 
16577   extern RPC_IF_HANDLE __MIDL_itf_strmif_0407_v0_0_c_ifspec;
16578   extern RPC_IF_HANDLE __MIDL_itf_strmif_0407_v0_0_s_ifspec;
16579 #ifndef __IVMRImageCompositor_INTERFACE_DEFINED__
16580 #define __IVMRImageCompositor_INTERFACE_DEFINED__
16581   EXTERN_C const IID IID_IVMRImageCompositor;
16582 #if defined(__cplusplus) && !defined(CINTERFACE)
16583   struct IVMRImageCompositor : public IUnknown {
16584   public:
16585     virtual HRESULT WINAPI InitCompositionTarget(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget) = 0;
16586     virtual HRESULT WINAPI TermCompositionTarget(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget) = 0;
16587     virtual HRESULT WINAPI SetStreamMediaType(DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture) = 0;
16588     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;
16589   };
16590 #else
16591   typedef struct IVMRImageCompositorVtbl {
16592     BEGIN_INTERFACE
16593       HRESULT (WINAPI *QueryInterface)(IVMRImageCompositor *This,REFIID riid,void **ppvObject);
16594       ULONG (WINAPI *AddRef)(IVMRImageCompositor *This);
16595       ULONG (WINAPI *Release)(IVMRImageCompositor *This);
16596       HRESULT (WINAPI *InitCompositionTarget)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
16597       HRESULT (WINAPI *TermCompositionTarget)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
16598       HRESULT (WINAPI *SetStreamMediaType)(IVMRImageCompositor *This,DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture);
16599       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);
16600     END_INTERFACE
16601   } IVMRImageCompositorVtbl;
16602   struct IVMRImageCompositor {
16603     CONST_VTBL struct IVMRImageCompositorVtbl *lpVtbl;
16604   };
16605 #ifdef COBJMACROS
16606 #define IVMRImageCompositor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16607 #define IVMRImageCompositor_AddRef(This) (This)->lpVtbl->AddRef(This)
16608 #define IVMRImageCompositor_Release(This) (This)->lpVtbl->Release(This)
16609 #define IVMRImageCompositor_InitCompositionTarget(This,pD3DDevice,pddsRenderTarget) (This)->lpVtbl->InitCompositionTarget(This,pD3DDevice,pddsRenderTarget)
16610 #define IVMRImageCompositor_TermCompositionTarget(This,pD3DDevice,pddsRenderTarget) (This)->lpVtbl->TermCompositionTarget(This,pD3DDevice,pddsRenderTarget)
16611 #define IVMRImageCompositor_SetStreamMediaType(This,dwStrmID,pmt,fTexture) (This)->lpVtbl->SetStreamMediaType(This,dwStrmID,pmt,fTexture)
16612 #define IVMRImageCompositor_CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams) (This)->lpVtbl->CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams)
16613 #endif
16614 #endif
16615   HRESULT WINAPI IVMRImageCompositor_InitCompositionTarget_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
16616   void __RPC_STUB IVMRImageCompositor_InitCompositionTarget_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16617   HRESULT WINAPI IVMRImageCompositor_TermCompositionTarget_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
16618   void __RPC_STUB IVMRImageCompositor_TermCompositionTarget_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16619   HRESULT WINAPI IVMRImageCompositor_SetStreamMediaType_Proxy(IVMRImageCompositor *This,DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture);
16620   void __RPC_STUB IVMRImageCompositor_SetStreamMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16621   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);
16622   void __RPC_STUB IVMRImageCompositor_CompositeImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16623 #endif
16624 
16625 #ifndef __IVMRVideoStreamControl_INTERFACE_DEFINED__
16626 #define __IVMRVideoStreamControl_INTERFACE_DEFINED__
16627   EXTERN_C const IID IID_IVMRVideoStreamControl;
16628 #if defined(__cplusplus) && !defined(CINTERFACE)
16629   struct IVMRVideoStreamControl : public IUnknown {
16630   public:
16631     virtual HRESULT WINAPI SetColorKey(LPDDCOLORKEY lpClrKey) = 0;
16632     virtual HRESULT WINAPI GetColorKey(LPDDCOLORKEY lpClrKey) = 0;
16633     virtual HRESULT WINAPI SetStreamActiveState(WINBOOL fActive) = 0;
16634     virtual HRESULT WINAPI GetStreamActiveState(WINBOOL *lpfActive) = 0;
16635   };
16636 #else
16637   typedef struct IVMRVideoStreamControlVtbl {
16638     BEGIN_INTERFACE
16639       HRESULT (WINAPI *QueryInterface)(IVMRVideoStreamControl *This,REFIID riid,void **ppvObject);
16640       ULONG (WINAPI *AddRef)(IVMRVideoStreamControl *This);
16641       ULONG (WINAPI *Release)(IVMRVideoStreamControl *This);
16642       HRESULT (WINAPI *SetColorKey)(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
16643       HRESULT (WINAPI *GetColorKey)(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
16644       HRESULT (WINAPI *SetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL fActive);
16645       HRESULT (WINAPI *GetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
16646     END_INTERFACE
16647   } IVMRVideoStreamControlVtbl;
16648   struct IVMRVideoStreamControl {
16649     CONST_VTBL struct IVMRVideoStreamControlVtbl *lpVtbl;
16650   };
16651 #ifdef COBJMACROS
16652 #define IVMRVideoStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16653 #define IVMRVideoStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
16654 #define IVMRVideoStreamControl_Release(This) (This)->lpVtbl->Release(This)
16655 #define IVMRVideoStreamControl_SetColorKey(This,lpClrKey) (This)->lpVtbl->SetColorKey(This,lpClrKey)
16656 #define IVMRVideoStreamControl_GetColorKey(This,lpClrKey) (This)->lpVtbl->GetColorKey(This,lpClrKey)
16657 #define IVMRVideoStreamControl_SetStreamActiveState(This,fActive) (This)->lpVtbl->SetStreamActiveState(This,fActive)
16658 #define IVMRVideoStreamControl_GetStreamActiveState(This,lpfActive) (This)->lpVtbl->GetStreamActiveState(This,lpfActive)
16659 #endif
16660 #endif
16661   HRESULT WINAPI IVMRVideoStreamControl_SetColorKey_Proxy(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
16662   void __RPC_STUB IVMRVideoStreamControl_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16663   HRESULT WINAPI IVMRVideoStreamControl_GetColorKey_Proxy(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
16664   void __RPC_STUB IVMRVideoStreamControl_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16665   HRESULT WINAPI IVMRVideoStreamControl_SetStreamActiveState_Proxy(IVMRVideoStreamControl *This,WINBOOL fActive);
16666   void __RPC_STUB IVMRVideoStreamControl_SetStreamActiveState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16667   HRESULT WINAPI IVMRVideoStreamControl_GetStreamActiveState_Proxy(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
16668   void __RPC_STUB IVMRVideoStreamControl_GetStreamActiveState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16669 #endif
16670 
16671 #ifndef __IVMRSurface_INTERFACE_DEFINED__
16672 #define __IVMRSurface_INTERFACE_DEFINED__
16673   EXTERN_C const IID IID_IVMRSurface;
16674 #if defined(__cplusplus) && !defined(CINTERFACE)
16675   struct IVMRSurface : public IUnknown {
16676   public:
16677     virtual HRESULT WINAPI IsSurfaceLocked(void) = 0;
16678     virtual HRESULT WINAPI LockSurface(BYTE **lpSurface) = 0;
16679     virtual HRESULT WINAPI UnlockSurface(void) = 0;
16680     virtual HRESULT WINAPI GetSurface(LPDIRECTDRAWSURFACE7 *lplpSurface) = 0;
16681   };
16682 #else
16683   typedef struct IVMRSurfaceVtbl {
16684     BEGIN_INTERFACE
16685       HRESULT (WINAPI *QueryInterface)(IVMRSurface *This,REFIID riid,void **ppvObject);
16686       ULONG (WINAPI *AddRef)(IVMRSurface *This);
16687       ULONG (WINAPI *Release)(IVMRSurface *This);
16688       HRESULT (WINAPI *IsSurfaceLocked)(IVMRSurface *This);
16689       HRESULT (WINAPI *LockSurface)(IVMRSurface *This,BYTE **lpSurface);
16690       HRESULT (WINAPI *UnlockSurface)(IVMRSurface *This);
16691       HRESULT (WINAPI *GetSurface)(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
16692     END_INTERFACE
16693   } IVMRSurfaceVtbl;
16694   struct IVMRSurface {
16695     CONST_VTBL struct IVMRSurfaceVtbl *lpVtbl;
16696   };
16697 #ifdef COBJMACROS
16698 #define IVMRSurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16699 #define IVMRSurface_AddRef(This) (This)->lpVtbl->AddRef(This)
16700 #define IVMRSurface_Release(This) (This)->lpVtbl->Release(This)
16701 #define IVMRSurface_IsSurfaceLocked(This) (This)->lpVtbl->IsSurfaceLocked(This)
16702 #define IVMRSurface_LockSurface(This,lpSurface) (This)->lpVtbl->LockSurface(This,lpSurface)
16703 #define IVMRSurface_UnlockSurface(This) (This)->lpVtbl->UnlockSurface(This)
16704 #define IVMRSurface_GetSurface(This,lplpSurface) (This)->lpVtbl->GetSurface(This,lplpSurface)
16705 #endif
16706 #endif
16707   HRESULT WINAPI IVMRSurface_IsSurfaceLocked_Proxy(IVMRSurface *This);
16708   void __RPC_STUB IVMRSurface_IsSurfaceLocked_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16709   HRESULT WINAPI IVMRSurface_LockSurface_Proxy(IVMRSurface *This,BYTE **lpSurface);
16710   void __RPC_STUB IVMRSurface_LockSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16711   HRESULT WINAPI IVMRSurface_UnlockSurface_Proxy(IVMRSurface *This);
16712   void __RPC_STUB IVMRSurface_UnlockSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16713   HRESULT WINAPI IVMRSurface_GetSurface_Proxy(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
16714   void __RPC_STUB IVMRSurface_GetSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16715 #endif
16716 
16717 #ifndef __IVMRImagePresenterConfig_INTERFACE_DEFINED__
16718 #define __IVMRImagePresenterConfig_INTERFACE_DEFINED__
16719   EXTERN_C const IID IID_IVMRImagePresenterConfig;
16720 
16721 #if defined(__cplusplus) && !defined(CINTERFACE)
16722   struct IVMRImagePresenterConfig : public IUnknown {
16723   public:
16724     virtual HRESULT WINAPI SetRenderingPrefs(DWORD dwRenderFlags) = 0;
16725     virtual HRESULT WINAPI GetRenderingPrefs(DWORD *dwRenderFlags) = 0;
16726   };
16727 #else
16728   typedef struct IVMRImagePresenterConfigVtbl {
16729     BEGIN_INTERFACE
16730       HRESULT (WINAPI *QueryInterface)(IVMRImagePresenterConfig *This,REFIID riid,void **ppvObject);
16731       ULONG (WINAPI *AddRef)(IVMRImagePresenterConfig *This);
16732       ULONG (WINAPI *Release)(IVMRImagePresenterConfig *This);
16733       HRESULT (WINAPI *SetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD dwRenderFlags);
16734       HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
16735     END_INTERFACE
16736   } IVMRImagePresenterConfigVtbl;
16737   struct IVMRImagePresenterConfig {
16738     CONST_VTBL struct IVMRImagePresenterConfigVtbl *lpVtbl;
16739   };
16740 #ifdef COBJMACROS
16741 #define IVMRImagePresenterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16742 #define IVMRImagePresenterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
16743 #define IVMRImagePresenterConfig_Release(This) (This)->lpVtbl->Release(This)
16744 #define IVMRImagePresenterConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
16745 #define IVMRImagePresenterConfig_GetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,dwRenderFlags)
16746 #endif
16747 #endif
16748   HRESULT WINAPI IVMRImagePresenterConfig_SetRenderingPrefs_Proxy(IVMRImagePresenterConfig *This,DWORD dwRenderFlags);
16749   void __RPC_STUB IVMRImagePresenterConfig_SetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16750   HRESULT WINAPI IVMRImagePresenterConfig_GetRenderingPrefs_Proxy(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
16751   void __RPC_STUB IVMRImagePresenterConfig_GetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16752 #endif
16753 
16754 #ifndef __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__
16755 #define __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__
16756   EXTERN_C const IID IID_IVMRImagePresenterExclModeConfig;
16757 #if defined(__cplusplus) && !defined(CINTERFACE)
16758   struct IVMRImagePresenterExclModeConfig : public IVMRImagePresenterConfig {
16759   public:
16760     virtual HRESULT WINAPI SetXlcModeDDObjAndPrimarySurface(LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf) = 0;
16761     virtual HRESULT WINAPI GetXlcModeDDObjAndPrimarySurface(LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf) = 0;
16762   };
16763 #else
16764   typedef struct IVMRImagePresenterExclModeConfigVtbl {
16765     BEGIN_INTERFACE
16766       HRESULT (WINAPI *QueryInterface)(IVMRImagePresenterExclModeConfig *This,REFIID riid,void **ppvObject);
16767       ULONG (WINAPI *AddRef)(IVMRImagePresenterExclModeConfig *This);
16768       ULONG (WINAPI *Release)(IVMRImagePresenterExclModeConfig *This);
16769       HRESULT (WINAPI *SetRenderingPrefs)(IVMRImagePresenterExclModeConfig *This,DWORD dwRenderFlags);
16770       HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterExclModeConfig *This,DWORD *dwRenderFlags);
16771       HRESULT (WINAPI *SetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf);
16772       HRESULT (WINAPI *GetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
16773     END_INTERFACE
16774   } IVMRImagePresenterExclModeConfigVtbl;
16775   struct IVMRImagePresenterExclModeConfig {
16776     CONST_VTBL struct IVMRImagePresenterExclModeConfigVtbl *lpVtbl;
16777   };
16778 #ifdef COBJMACROS
16779 #define IVMRImagePresenterExclModeConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16780 #define IVMRImagePresenterExclModeConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
16781 #define IVMRImagePresenterExclModeConfig_Release(This) (This)->lpVtbl->Release(This)
16782 #define IVMRImagePresenterExclModeConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
16783 #define IVMRImagePresenterExclModeConfig_GetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,dwRenderFlags)
16784 #define IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf) (This)->lpVtbl->SetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf)
16785 #define IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf) (This)->lpVtbl->GetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf)
16786 #endif
16787 #endif
16788   HRESULT WINAPI IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface_Proxy(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf);
16789   void __RPC_STUB IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16790   HRESULT WINAPI IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface_Proxy(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
16791   void __RPC_STUB IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16792 #endif
16793 
16794 #ifndef __IVPManager_INTERFACE_DEFINED__
16795 #define __IVPManager_INTERFACE_DEFINED__
16796   EXTERN_C const IID IID_IVPManager;
16797 #if defined(__cplusplus) && !defined(CINTERFACE)
16798   struct IVPManager : public IUnknown {
16799   public:
16800     virtual HRESULT WINAPI SetVideoPortIndex(DWORD dwVideoPortIndex) = 0;
16801     virtual HRESULT WINAPI GetVideoPortIndex(DWORD *pdwVideoPortIndex) = 0;
16802   };
16803 #else
16804   typedef struct IVPManagerVtbl {
16805     BEGIN_INTERFACE
16806       HRESULT (WINAPI *QueryInterface)(IVPManager *This,REFIID riid,void **ppvObject);
16807       ULONG (WINAPI *AddRef)(IVPManager *This);
16808       ULONG (WINAPI *Release)(IVPManager *This);
16809       HRESULT (WINAPI *SetVideoPortIndex)(IVPManager *This,DWORD dwVideoPortIndex);
16810       HRESULT (WINAPI *GetVideoPortIndex)(IVPManager *This,DWORD *pdwVideoPortIndex);
16811     END_INTERFACE
16812   } IVPManagerVtbl;
16813   struct IVPManager {
16814     CONST_VTBL struct IVPManagerVtbl *lpVtbl;
16815   };
16816 #ifdef COBJMACROS
16817 #define IVPManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16818 #define IVPManager_AddRef(This) (This)->lpVtbl->AddRef(This)
16819 #define IVPManager_Release(This) (This)->lpVtbl->Release(This)
16820 #define IVPManager_SetVideoPortIndex(This,dwVideoPortIndex) (This)->lpVtbl->SetVideoPortIndex(This,dwVideoPortIndex)
16821 #define IVPManager_GetVideoPortIndex(This,pdwVideoPortIndex) (This)->lpVtbl->GetVideoPortIndex(This,pdwVideoPortIndex)
16822 #endif
16823 #endif
16824   HRESULT WINAPI IVPManager_SetVideoPortIndex_Proxy(IVPManager *This,DWORD dwVideoPortIndex);
16825   void __RPC_STUB IVPManager_SetVideoPortIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16826   HRESULT WINAPI IVPManager_GetVideoPortIndex_Proxy(IVPManager *This,DWORD *pdwVideoPortIndex);
16827   void __RPC_STUB IVPManager_GetVideoPortIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16828 #endif
16829 
16830   extern RPC_IF_HANDLE __MIDL_itf_strmif_0413_v0_0_c_ifspec;
16831   extern RPC_IF_HANDLE __MIDL_itf_strmif_0413_v0_0_s_ifspec;
16832 /* Begin additional prototypes for all interfaces */
16833 
16834 
16835 /* End additional prototypes */
16836 
16837 #ifdef __cplusplus
16838 }
16839 #endif
16840 
16841 #endif /* __strmif_h__ */
16842