1/*** Autogenerated by WIDL 1.6 from direct-x/include/vmr9.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 __vmr9_h__
16#define __vmr9_h__
17
18/* Forward declarations */
19
20#ifndef __IVMRImagePresenter9_FWD_DEFINED__
21#define __IVMRImagePresenter9_FWD_DEFINED__
22typedef interface IVMRImagePresenter9 IVMRImagePresenter9;
23#endif
24
25#ifndef __IVMRSurfaceAllocator9_FWD_DEFINED__
26#define __IVMRSurfaceAllocator9_FWD_DEFINED__
27typedef interface IVMRSurfaceAllocator9 IVMRSurfaceAllocator9;
28#endif
29
30#ifndef __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
31#define __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
32typedef interface IVMRSurfaceAllocatorEx9 IVMRSurfaceAllocatorEx9;
33#endif
34
35#ifndef __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
36#define __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
37typedef interface IVMRSurfaceAllocatorNotify9 IVMRSurfaceAllocatorNotify9;
38#endif
39
40#ifndef __IVMRWindowlessControl9_FWD_DEFINED__
41#define __IVMRWindowlessControl9_FWD_DEFINED__
42typedef interface IVMRWindowlessControl9 IVMRWindowlessControl9;
43#endif
44
45#ifndef __IVMRMixerControl9_FWD_DEFINED__
46#define __IVMRMixerControl9_FWD_DEFINED__
47typedef interface IVMRMixerControl9 IVMRMixerControl9;
48#endif
49
50#ifndef __IVMRMixerBitmap9_FWD_DEFINED__
51#define __IVMRMixerBitmap9_FWD_DEFINED__
52typedef interface IVMRMixerBitmap9 IVMRMixerBitmap9;
53#endif
54
55#ifndef __IVMRSurface9_FWD_DEFINED__
56#define __IVMRSurface9_FWD_DEFINED__
57typedef interface IVMRSurface9 IVMRSurface9;
58#endif
59
60#ifndef __IVMRImagePresenterConfig9_FWD_DEFINED__
61#define __IVMRImagePresenterConfig9_FWD_DEFINED__
62typedef interface IVMRImagePresenterConfig9 IVMRImagePresenterConfig9;
63#endif
64
65#ifndef __IVMRVideoStreamControl9_FWD_DEFINED__
66#define __IVMRVideoStreamControl9_FWD_DEFINED__
67typedef interface IVMRVideoStreamControl9 IVMRVideoStreamControl9;
68#endif
69
70#ifndef __IVMRFilterConfig9_FWD_DEFINED__
71#define __IVMRFilterConfig9_FWD_DEFINED__
72typedef interface IVMRFilterConfig9 IVMRFilterConfig9;
73#endif
74
75#ifndef __IVMRAspectRatioControl9_FWD_DEFINED__
76#define __IVMRAspectRatioControl9_FWD_DEFINED__
77typedef interface IVMRAspectRatioControl9 IVMRAspectRatioControl9;
78#endif
79
80#ifndef __IVMRMonitorConfig9_FWD_DEFINED__
81#define __IVMRMonitorConfig9_FWD_DEFINED__
82typedef interface IVMRMonitorConfig9 IVMRMonitorConfig9;
83#endif
84
85#ifndef __IVMRDeinterlaceControl9_FWD_DEFINED__
86#define __IVMRDeinterlaceControl9_FWD_DEFINED__
87typedef interface IVMRDeinterlaceControl9 IVMRDeinterlaceControl9;
88#endif
89
90#ifndef __IVMRImageCompositor9_FWD_DEFINED__
91#define __IVMRImageCompositor9_FWD_DEFINED__
92typedef interface IVMRImageCompositor9 IVMRImageCompositor9;
93#endif
94
95/* Headers for imported files */
96
97#include <unknwn.h>
98
99#ifdef __cplusplus
100extern "C" {
101#endif
102
103#if 0
104#ifndef __IDirect3DSurface9_FWD_DEFINED__
105#define __IDirect3DSurface9_FWD_DEFINED__
106typedef interface IDirect3DSurface9 IDirect3DSurface9;
107#endif
108
109#ifndef __IDirect3DDevice9_FWD_DEFINED__
110#define __IDirect3DDevice9_FWD_DEFINED__
111typedef interface IDirect3DDevice9 IDirect3DDevice9;
112#endif
113
114typedef LONGLONG REFERENCE_TIME;
115typedef DWORD D3DFORMAT;
116typedef DWORD D3DPOOL;
117typedef HANDLE HMONITOR;
118typedef struct __WIDL_vmr9_generated_name_00000002 {
119    char dummy;
120} AM_MEDIA_TYPE;
121typedef struct __WIDL_vmr9_generated_name_00000003 {
122    char dummy;
123} D3DCOLOR;
124#endif
125#ifndef __IVMRSurface9_FWD_DEFINED__
126#define __IVMRSurface9_FWD_DEFINED__
127typedef interface IVMRSurface9 IVMRSurface9;
128#endif
129
130#ifndef __IVMRSurfaceAllocator9_FWD_DEFINED__
131#define __IVMRSurfaceAllocator9_FWD_DEFINED__
132typedef interface IVMRSurfaceAllocator9 IVMRSurfaceAllocator9;
133#endif
134
135#ifndef __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
136#define __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
137typedef interface IVMRSurfaceAllocatorEx9 IVMRSurfaceAllocatorEx9;
138#endif
139
140#ifndef __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
141#define __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
142typedef interface IVMRSurfaceAllocatorNotify9 IVMRSurfaceAllocatorNotify9;
143#endif
144
145#ifndef __IVMRImagePresenter9_FWD_DEFINED__
146#define __IVMRImagePresenter9_FWD_DEFINED__
147typedef interface IVMRImagePresenter9 IVMRImagePresenter9;
148#endif
149
150#ifndef __IVMRImagePresenterConfig9_FWD_DEFINED__
151#define __IVMRImagePresenterConfig9_FWD_DEFINED__
152typedef interface IVMRImagePresenterConfig9 IVMRImagePresenterConfig9;
153#endif
154
155#ifndef __IVMRMonitorConfig9_FWD_DEFINED__
156#define __IVMRMonitorConfig9_FWD_DEFINED__
157typedef interface IVMRMonitorConfig9 IVMRMonitorConfig9;
158#endif
159
160#ifndef __IVMRWindowlessControl9_FWD_DEFINED__
161#define __IVMRWindowlessControl9_FWD_DEFINED__
162typedef interface IVMRWindowlessControl9 IVMRWindowlessControl9;
163#endif
164
165#ifndef __IVMRMixerControl9_FWD_DEFINED__
166#define __IVMRMixerControl9_FWD_DEFINED__
167typedef interface IVMRMixerControl9 IVMRMixerControl9;
168#endif
169
170#ifndef __IVMRImageCompositor9_FWD_DEFINED__
171#define __IVMRImageCompositor9_FWD_DEFINED__
172typedef interface IVMRImageCompositor9 IVMRImageCompositor9;
173#endif
174
175#ifndef __IVMRMixerBitmap9_FWD_DEFINED__
176#define __IVMRMixerBitmap9_FWD_DEFINED__
177typedef interface IVMRMixerBitmap9 IVMRMixerBitmap9;
178#endif
179
180#ifndef __IVMRFilterConfig9_FWD_DEFINED__
181#define __IVMRFilterConfig9_FWD_DEFINED__
182typedef interface IVMRFilterConfig9 IVMRFilterConfig9;
183#endif
184
185#ifndef __IVMRAspectRatioControl9_FWD_DEFINED__
186#define __IVMRAspectRatioControl9_FWD_DEFINED__
187typedef interface IVMRAspectRatioControl9 IVMRAspectRatioControl9;
188#endif
189
190#ifndef __IVMRVideoStreamControl9_FWD_DEFINED__
191#define __IVMRVideoStreamControl9_FWD_DEFINED__
192typedef interface IVMRVideoStreamControl9 IVMRVideoStreamControl9;
193#endif
194
195typedef enum _VMR9PresentationFlags {
196    VMR9Sample_SyncPoint = 0x1,
197    VMR9Sample_Preroll = 0x2,
198    VMR9Sample_Discontinuity = 0x4,
199    VMR9Sample_TimeValid = 0x8,
200    VMR9Sample_SrcDstRectsValid = 0x10
201} VMR9PresentationFlags;
202typedef struct _VMR9PresentationInfo {
203    DWORD dwFlags;
204    IDirect3DSurface9 *lpSurf;
205    REFERENCE_TIME rtStart;
206    REFERENCE_TIME rtEnd;
207    SIZE szAspectRatio;
208    RECT rcSrc;
209    RECT rcDst;
210    DWORD dwReserved1;
211    DWORD dwReserved2;
212} VMR9PresentationInfo;
213/*****************************************************************************
214 * IVMRImagePresenter9 interface
215 */
216#ifndef __IVMRImagePresenter9_INTERFACE_DEFINED__
217#define __IVMRImagePresenter9_INTERFACE_DEFINED__
218
219DEFINE_GUID(IID_IVMRImagePresenter9, 0x69188c61, 0x12a3, 0x40f0, 0x8f,0xfc, 0x34,0x2e,0x7b,0x43,0x3f,0xd7);
220#if defined(__cplusplus) && !defined(CINTERFACE)
221MIDL_INTERFACE("69188c61-12a3-40f0-8ffc-342e7b433fd7")
222IVMRImagePresenter9 : public IUnknown
223{
224    virtual HRESULT STDMETHODCALLTYPE StartPresenting(
225        DWORD_PTR id) = 0;
226
227    virtual HRESULT STDMETHODCALLTYPE StopPresenting(
228        DWORD_PTR id) = 0;
229
230    virtual HRESULT STDMETHODCALLTYPE PresentImage(
231        DWORD_PTR id,
232        VMR9PresentationInfo *info) = 0;
233
234};
235#ifdef __CRT_UUID_DECL
236__CRT_UUID_DECL(IVMRImagePresenter9, 0x69188c61, 0x12a3, 0x40f0, 0x8f,0xfc, 0x34,0x2e,0x7b,0x43,0x3f,0xd7)
237#endif
238#else
239typedef struct IVMRImagePresenter9Vtbl {
240    BEGIN_INTERFACE
241
242    /*** IUnknown methods ***/
243    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
244        IVMRImagePresenter9* This,
245        REFIID riid,
246        void **ppvObject);
247
248    ULONG (STDMETHODCALLTYPE *AddRef)(
249        IVMRImagePresenter9* This);
250
251    ULONG (STDMETHODCALLTYPE *Release)(
252        IVMRImagePresenter9* This);
253
254    /*** IVMRImagePresenter9 methods ***/
255    HRESULT (STDMETHODCALLTYPE *StartPresenting)(
256        IVMRImagePresenter9* This,
257        DWORD_PTR id);
258
259    HRESULT (STDMETHODCALLTYPE *StopPresenting)(
260        IVMRImagePresenter9* This,
261        DWORD_PTR id);
262
263    HRESULT (STDMETHODCALLTYPE *PresentImage)(
264        IVMRImagePresenter9* This,
265        DWORD_PTR id,
266        VMR9PresentationInfo *info);
267
268    END_INTERFACE
269} IVMRImagePresenter9Vtbl;
270interface IVMRImagePresenter9 {
271    CONST_VTBL IVMRImagePresenter9Vtbl* lpVtbl;
272};
273
274#ifdef COBJMACROS
275#ifndef WIDL_C_INLINE_WRAPPERS
276/*** IUnknown methods ***/
277#define IVMRImagePresenter9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
278#define IVMRImagePresenter9_AddRef(This) (This)->lpVtbl->AddRef(This)
279#define IVMRImagePresenter9_Release(This) (This)->lpVtbl->Release(This)
280/*** IVMRImagePresenter9 methods ***/
281#define IVMRImagePresenter9_StartPresenting(This,id) (This)->lpVtbl->StartPresenting(This,id)
282#define IVMRImagePresenter9_StopPresenting(This,id) (This)->lpVtbl->StopPresenting(This,id)
283#define IVMRImagePresenter9_PresentImage(This,id,info) (This)->lpVtbl->PresentImage(This,id,info)
284#else
285/*** IUnknown methods ***/
286static FORCEINLINE HRESULT IVMRImagePresenter9_QueryInterface(IVMRImagePresenter9* This,REFIID riid,void **ppvObject) {
287    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
288}
289static FORCEINLINE ULONG IVMRImagePresenter9_AddRef(IVMRImagePresenter9* This) {
290    return This->lpVtbl->AddRef(This);
291}
292static FORCEINLINE ULONG IVMRImagePresenter9_Release(IVMRImagePresenter9* This) {
293    return This->lpVtbl->Release(This);
294}
295/*** IVMRImagePresenter9 methods ***/
296static FORCEINLINE HRESULT IVMRImagePresenter9_StartPresenting(IVMRImagePresenter9* This,DWORD_PTR id) {
297    return This->lpVtbl->StartPresenting(This,id);
298}
299static FORCEINLINE HRESULT IVMRImagePresenter9_StopPresenting(IVMRImagePresenter9* This,DWORD_PTR id) {
300    return This->lpVtbl->StopPresenting(This,id);
301}
302static FORCEINLINE HRESULT IVMRImagePresenter9_PresentImage(IVMRImagePresenter9* This,DWORD_PTR id,VMR9PresentationInfo *info) {
303    return This->lpVtbl->PresentImage(This,id,info);
304}
305#endif
306#endif
307
308#endif
309
310HRESULT STDMETHODCALLTYPE IVMRImagePresenter9_StartPresenting_Proxy(
311    IVMRImagePresenter9* This,
312    DWORD_PTR id);
313void __RPC_STUB IVMRImagePresenter9_StartPresenting_Stub(
314    IRpcStubBuffer* This,
315    IRpcChannelBuffer* pRpcChannelBuffer,
316    PRPC_MESSAGE pRpcMessage,
317    DWORD* pdwStubPhase);
318HRESULT STDMETHODCALLTYPE IVMRImagePresenter9_StopPresenting_Proxy(
319    IVMRImagePresenter9* This,
320    DWORD_PTR id);
321void __RPC_STUB IVMRImagePresenter9_StopPresenting_Stub(
322    IRpcStubBuffer* This,
323    IRpcChannelBuffer* pRpcChannelBuffer,
324    PRPC_MESSAGE pRpcMessage,
325    DWORD* pdwStubPhase);
326HRESULT STDMETHODCALLTYPE IVMRImagePresenter9_PresentImage_Proxy(
327    IVMRImagePresenter9* This,
328    DWORD_PTR id,
329    VMR9PresentationInfo *info);
330void __RPC_STUB IVMRImagePresenter9_PresentImage_Stub(
331    IRpcStubBuffer* This,
332    IRpcChannelBuffer* pRpcChannelBuffer,
333    PRPC_MESSAGE pRpcMessage,
334    DWORD* pdwStubPhase);
335
336#endif  /* __IVMRImagePresenter9_INTERFACE_DEFINED__ */
337
338typedef enum _VMR9SurfaceAllocationFlags {
339    VMR9AllocFlag_3DRenderTarget = 0x1,
340    VMR9AllocFlag_DXVATarget = 0x2,
341    VMR9AllocFlag_TextureSurface = 0x4,
342    VMR9AllocFlag_OffscreenSurface = 0x8,
343    VMR9AllocFlag_RGBDynamicSwitch = 0x10,
344    VMR9AllocFlag_UsageReserved = 0xe0,
345    VMR9AllocFlag_UsageMask = 0xff
346} VMR9SurfaceAllocationFlags;
347typedef struct _VMR9AllocationInfo {
348    DWORD dwFlags;
349    DWORD dwWidth;
350    DWORD dwHeight;
351    D3DFORMAT Format;
352    D3DPOOL Pool;
353    DWORD MinBuffers;
354    SIZE szAspectRatio;
355    SIZE szNativeSize;
356} VMR9AllocationInfo;
357/*****************************************************************************
358 * IVMRSurfaceAllocator9 interface
359 */
360#ifndef __IVMRSurfaceAllocator9_INTERFACE_DEFINED__
361#define __IVMRSurfaceAllocator9_INTERFACE_DEFINED__
362
363DEFINE_GUID(IID_IVMRSurfaceAllocator9, 0x8d5148ea, 0x3f5d, 0x46cf, 0x9d,0xf1, 0xd1,0xb8,0x96,0xee,0xdb,0x1f);
364#if defined(__cplusplus) && !defined(CINTERFACE)
365MIDL_INTERFACE("8d5148ea-3f5d-46cf-9df1-d1b896eedb1f")
366IVMRSurfaceAllocator9 : public IUnknown
367{
368    virtual HRESULT STDMETHODCALLTYPE InitializeDevice(
369        DWORD_PTR id,
370        VMR9AllocationInfo *allocinfo,
371        DWORD *numbuffers) = 0;
372
373    virtual HRESULT STDMETHODCALLTYPE TerminateDevice(
374        DWORD_PTR id) = 0;
375
376    virtual HRESULT STDMETHODCALLTYPE GetSurface(
377        DWORD_PTR id,
378        DWORD surfaceindex,
379        DWORD flags,
380        IDirect3DSurface9 **surface) = 0;
381
382    virtual HRESULT STDMETHODCALLTYPE AdviseNotify(
383        IVMRSurfaceAllocatorNotify9 *allocnotify) = 0;
384
385};
386#ifdef __CRT_UUID_DECL
387__CRT_UUID_DECL(IVMRSurfaceAllocator9, 0x8d5148ea, 0x3f5d, 0x46cf, 0x9d,0xf1, 0xd1,0xb8,0x96,0xee,0xdb,0x1f)
388#endif
389#else
390typedef struct IVMRSurfaceAllocator9Vtbl {
391    BEGIN_INTERFACE
392
393    /*** IUnknown methods ***/
394    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
395        IVMRSurfaceAllocator9* This,
396        REFIID riid,
397        void **ppvObject);
398
399    ULONG (STDMETHODCALLTYPE *AddRef)(
400        IVMRSurfaceAllocator9* This);
401
402    ULONG (STDMETHODCALLTYPE *Release)(
403        IVMRSurfaceAllocator9* This);
404
405    /*** IVMRSurfaceAllocator9 methods ***/
406    HRESULT (STDMETHODCALLTYPE *InitializeDevice)(
407        IVMRSurfaceAllocator9* This,
408        DWORD_PTR id,
409        VMR9AllocationInfo *allocinfo,
410        DWORD *numbuffers);
411
412    HRESULT (STDMETHODCALLTYPE *TerminateDevice)(
413        IVMRSurfaceAllocator9* This,
414        DWORD_PTR id);
415
416    HRESULT (STDMETHODCALLTYPE *GetSurface)(
417        IVMRSurfaceAllocator9* This,
418        DWORD_PTR id,
419        DWORD surfaceindex,
420        DWORD flags,
421        IDirect3DSurface9 **surface);
422
423    HRESULT (STDMETHODCALLTYPE *AdviseNotify)(
424        IVMRSurfaceAllocator9* This,
425        IVMRSurfaceAllocatorNotify9 *allocnotify);
426
427    END_INTERFACE
428} IVMRSurfaceAllocator9Vtbl;
429interface IVMRSurfaceAllocator9 {
430    CONST_VTBL IVMRSurfaceAllocator9Vtbl* lpVtbl;
431};
432
433#ifdef COBJMACROS
434#ifndef WIDL_C_INLINE_WRAPPERS
435/*** IUnknown methods ***/
436#define IVMRSurfaceAllocator9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
437#define IVMRSurfaceAllocator9_AddRef(This) (This)->lpVtbl->AddRef(This)
438#define IVMRSurfaceAllocator9_Release(This) (This)->lpVtbl->Release(This)
439/*** IVMRSurfaceAllocator9 methods ***/
440#define IVMRSurfaceAllocator9_InitializeDevice(This,id,allocinfo,numbuffers) (This)->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers)
441#define IVMRSurfaceAllocator9_TerminateDevice(This,id) (This)->lpVtbl->TerminateDevice(This,id)
442#define IVMRSurfaceAllocator9_GetSurface(This,id,surfaceindex,flags,surface) (This)->lpVtbl->GetSurface(This,id,surfaceindex,flags,surface)
443#define IVMRSurfaceAllocator9_AdviseNotify(This,allocnotify) (This)->lpVtbl->AdviseNotify(This,allocnotify)
444#else
445/*** IUnknown methods ***/
446static FORCEINLINE HRESULT IVMRSurfaceAllocator9_QueryInterface(IVMRSurfaceAllocator9* This,REFIID riid,void **ppvObject) {
447    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
448}
449static FORCEINLINE ULONG IVMRSurfaceAllocator9_AddRef(IVMRSurfaceAllocator9* This) {
450    return This->lpVtbl->AddRef(This);
451}
452static FORCEINLINE ULONG IVMRSurfaceAllocator9_Release(IVMRSurfaceAllocator9* This) {
453    return This->lpVtbl->Release(This);
454}
455/*** IVMRSurfaceAllocator9 methods ***/
456static FORCEINLINE HRESULT IVMRSurfaceAllocator9_InitializeDevice(IVMRSurfaceAllocator9* This,DWORD_PTR id,VMR9AllocationInfo *allocinfo,DWORD *numbuffers) {
457    return This->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers);
458}
459static FORCEINLINE HRESULT IVMRSurfaceAllocator9_TerminateDevice(IVMRSurfaceAllocator9* This,DWORD_PTR id) {
460    return This->lpVtbl->TerminateDevice(This,id);
461}
462static FORCEINLINE HRESULT IVMRSurfaceAllocator9_GetSurface(IVMRSurfaceAllocator9* This,DWORD_PTR id,DWORD surfaceindex,DWORD flags,IDirect3DSurface9 **surface) {
463    return This->lpVtbl->GetSurface(This,id,surfaceindex,flags,surface);
464}
465static FORCEINLINE HRESULT IVMRSurfaceAllocator9_AdviseNotify(IVMRSurfaceAllocator9* This,IVMRSurfaceAllocatorNotify9 *allocnotify) {
466    return This->lpVtbl->AdviseNotify(This,allocnotify);
467}
468#endif
469#endif
470
471#endif
472
473HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_InitializeDevice_Proxy(
474    IVMRSurfaceAllocator9* This,
475    DWORD_PTR id,
476    VMR9AllocationInfo *allocinfo,
477    DWORD *numbuffers);
478void __RPC_STUB IVMRSurfaceAllocator9_InitializeDevice_Stub(
479    IRpcStubBuffer* This,
480    IRpcChannelBuffer* pRpcChannelBuffer,
481    PRPC_MESSAGE pRpcMessage,
482    DWORD* pdwStubPhase);
483HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_TerminateDevice_Proxy(
484    IVMRSurfaceAllocator9* This,
485    DWORD_PTR id);
486void __RPC_STUB IVMRSurfaceAllocator9_TerminateDevice_Stub(
487    IRpcStubBuffer* This,
488    IRpcChannelBuffer* pRpcChannelBuffer,
489    PRPC_MESSAGE pRpcMessage,
490    DWORD* pdwStubPhase);
491HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_GetSurface_Proxy(
492    IVMRSurfaceAllocator9* This,
493    DWORD_PTR id,
494    DWORD surfaceindex,
495    DWORD flags,
496    IDirect3DSurface9 **surface);
497void __RPC_STUB IVMRSurfaceAllocator9_GetSurface_Stub(
498    IRpcStubBuffer* This,
499    IRpcChannelBuffer* pRpcChannelBuffer,
500    PRPC_MESSAGE pRpcMessage,
501    DWORD* pdwStubPhase);
502HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_AdviseNotify_Proxy(
503    IVMRSurfaceAllocator9* This,
504    IVMRSurfaceAllocatorNotify9 *allocnotify);
505void __RPC_STUB IVMRSurfaceAllocator9_AdviseNotify_Stub(
506    IRpcStubBuffer* This,
507    IRpcChannelBuffer* pRpcChannelBuffer,
508    PRPC_MESSAGE pRpcMessage,
509    DWORD* pdwStubPhase);
510
511#endif  /* __IVMRSurfaceAllocator9_INTERFACE_DEFINED__ */
512
513/*****************************************************************************
514 * IVMRSurfaceAllocatorEx9 interface
515 */
516#ifndef __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__
517#define __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__
518
519DEFINE_GUID(IID_IVMRSurfaceAllocatorEx9, 0x6de9a68a, 0xa928, 0x4522, 0xbf,0x57, 0x65,0x5a,0xe3,0x86,0x64,0x56);
520#if defined(__cplusplus) && !defined(CINTERFACE)
521MIDL_INTERFACE("6de9a68a-a928-4522-bf57-655ae3866456")
522IVMRSurfaceAllocatorEx9 : public IVMRSurfaceAllocator9
523{
524    virtual HRESULT STDMETHODCALLTYPE GetSurfaceEx(
525        DWORD_PTR id,
526        DWORD surfaceindex,
527        DWORD flags,
528        IDirect3DSurface9 **surface,
529        RECT *dest) = 0;
530
531};
532#ifdef __CRT_UUID_DECL
533__CRT_UUID_DECL(IVMRSurfaceAllocatorEx9, 0x6de9a68a, 0xa928, 0x4522, 0xbf,0x57, 0x65,0x5a,0xe3,0x86,0x64,0x56)
534#endif
535#else
536typedef struct IVMRSurfaceAllocatorEx9Vtbl {
537    BEGIN_INTERFACE
538
539    /*** IUnknown methods ***/
540    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
541        IVMRSurfaceAllocatorEx9* This,
542        REFIID riid,
543        void **ppvObject);
544
545    ULONG (STDMETHODCALLTYPE *AddRef)(
546        IVMRSurfaceAllocatorEx9* This);
547
548    ULONG (STDMETHODCALLTYPE *Release)(
549        IVMRSurfaceAllocatorEx9* This);
550
551    /*** IVMRSurfaceAllocator9 methods ***/
552    HRESULT (STDMETHODCALLTYPE *InitializeDevice)(
553        IVMRSurfaceAllocatorEx9* This,
554        DWORD_PTR id,
555        VMR9AllocationInfo *allocinfo,
556        DWORD *numbuffers);
557
558    HRESULT (STDMETHODCALLTYPE *TerminateDevice)(
559        IVMRSurfaceAllocatorEx9* This,
560        DWORD_PTR id);
561
562    HRESULT (STDMETHODCALLTYPE *GetSurface)(
563        IVMRSurfaceAllocatorEx9* This,
564        DWORD_PTR id,
565        DWORD surfaceindex,
566        DWORD flags,
567        IDirect3DSurface9 **surface);
568
569    HRESULT (STDMETHODCALLTYPE *AdviseNotify)(
570        IVMRSurfaceAllocatorEx9* This,
571        IVMRSurfaceAllocatorNotify9 *allocnotify);
572
573    /*** IVMRSurfaceAllocatorEx9 methods ***/
574    HRESULT (STDMETHODCALLTYPE *GetSurfaceEx)(
575        IVMRSurfaceAllocatorEx9* This,
576        DWORD_PTR id,
577        DWORD surfaceindex,
578        DWORD flags,
579        IDirect3DSurface9 **surface,
580        RECT *dest);
581
582    END_INTERFACE
583} IVMRSurfaceAllocatorEx9Vtbl;
584interface IVMRSurfaceAllocatorEx9 {
585    CONST_VTBL IVMRSurfaceAllocatorEx9Vtbl* lpVtbl;
586};
587
588#ifdef COBJMACROS
589#ifndef WIDL_C_INLINE_WRAPPERS
590/*** IUnknown methods ***/
591#define IVMRSurfaceAllocatorEx9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
592#define IVMRSurfaceAllocatorEx9_AddRef(This) (This)->lpVtbl->AddRef(This)
593#define IVMRSurfaceAllocatorEx9_Release(This) (This)->lpVtbl->Release(This)
594/*** IVMRSurfaceAllocator9 methods ***/
595#define IVMRSurfaceAllocatorEx9_InitializeDevice(This,id,allocinfo,numbuffers) (This)->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers)
596#define IVMRSurfaceAllocatorEx9_TerminateDevice(This,id) (This)->lpVtbl->TerminateDevice(This,id)
597#define IVMRSurfaceAllocatorEx9_GetSurface(This,id,surfaceindex,flags,surface) (This)->lpVtbl->GetSurface(This,id,surfaceindex,flags,surface)
598#define IVMRSurfaceAllocatorEx9_AdviseNotify(This,allocnotify) (This)->lpVtbl->AdviseNotify(This,allocnotify)
599/*** IVMRSurfaceAllocatorEx9 methods ***/
600#define IVMRSurfaceAllocatorEx9_GetSurfaceEx(This,id,surfaceindex,flags,surface,dest) (This)->lpVtbl->GetSurfaceEx(This,id,surfaceindex,flags,surface,dest)
601#else
602/*** IUnknown methods ***/
603static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_QueryInterface(IVMRSurfaceAllocatorEx9* This,REFIID riid,void **ppvObject) {
604    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
605}
606static FORCEINLINE ULONG IVMRSurfaceAllocatorEx9_AddRef(IVMRSurfaceAllocatorEx9* This) {
607    return This->lpVtbl->AddRef(This);
608}
609static FORCEINLINE ULONG IVMRSurfaceAllocatorEx9_Release(IVMRSurfaceAllocatorEx9* This) {
610    return This->lpVtbl->Release(This);
611}
612/*** IVMRSurfaceAllocator9 methods ***/
613static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_InitializeDevice(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id,VMR9AllocationInfo *allocinfo,DWORD *numbuffers) {
614    return This->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers);
615}
616static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_TerminateDevice(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id) {
617    return This->lpVtbl->TerminateDevice(This,id);
618}
619static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_GetSurface(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id,DWORD surfaceindex,DWORD flags,IDirect3DSurface9 **surface) {
620    return This->lpVtbl->GetSurface(This,id,surfaceindex,flags,surface);
621}
622static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_AdviseNotify(IVMRSurfaceAllocatorEx9* This,IVMRSurfaceAllocatorNotify9 *allocnotify) {
623    return This->lpVtbl->AdviseNotify(This,allocnotify);
624}
625/*** IVMRSurfaceAllocatorEx9 methods ***/
626static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_GetSurfaceEx(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id,DWORD surfaceindex,DWORD flags,IDirect3DSurface9 **surface,RECT *dest) {
627    return This->lpVtbl->GetSurfaceEx(This,id,surfaceindex,flags,surface,dest);
628}
629#endif
630#endif
631
632#endif
633
634HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorEx9_GetSurfaceEx_Proxy(
635    IVMRSurfaceAllocatorEx9* This,
636    DWORD_PTR id,
637    DWORD surfaceindex,
638    DWORD flags,
639    IDirect3DSurface9 **surface,
640    RECT *dest);
641void __RPC_STUB IVMRSurfaceAllocatorEx9_GetSurfaceEx_Stub(
642    IRpcStubBuffer* This,
643    IRpcChannelBuffer* pRpcChannelBuffer,
644    PRPC_MESSAGE pRpcMessage,
645    DWORD* pdwStubPhase);
646
647#endif  /* __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__ */
648
649/*****************************************************************************
650 * IVMRSurfaceAllocatorNotify9 interface
651 */
652#ifndef __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__
653#define __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__
654
655DEFINE_GUID(IID_IVMRSurfaceAllocatorNotify9, 0xdca3f5df, 0xbb3a, 0x4d03, 0xbd,0x81, 0x84,0x61,0x4b,0xfb,0xfa,0x0c);
656#if defined(__cplusplus) && !defined(CINTERFACE)
657MIDL_INTERFACE("dca3f5df-bb3a-4d03-bd81-84614bfbfa0c")
658IVMRSurfaceAllocatorNotify9 : public IUnknown
659{
660    virtual HRESULT STDMETHODCALLTYPE AdviseSurfaceAllocator(
661        DWORD_PTR id,
662        IVMRSurfaceAllocator9 *alloc) = 0;
663
664    virtual HRESULT STDMETHODCALLTYPE SetD3DDevice(
665        IDirect3DDevice9 *device,
666        HMONITOR monitor) = 0;
667
668    virtual HRESULT STDMETHODCALLTYPE ChangeD3DDevice(
669        IDirect3DDevice9 *device,
670        HMONITOR monitor) = 0;
671
672    virtual HRESULT STDMETHODCALLTYPE AllocateSurfaceHelper(
673        VMR9AllocationInfo *allocinfo,
674        DWORD *numbuffers,
675        IDirect3DSurface9 **surface) = 0;
676
677    virtual HRESULT STDMETHODCALLTYPE NotifyEvent(
678        LONG code,
679        LONG_PTR param1,
680        LONG_PTR param2) = 0;
681
682};
683#ifdef __CRT_UUID_DECL
684__CRT_UUID_DECL(IVMRSurfaceAllocatorNotify9, 0xdca3f5df, 0xbb3a, 0x4d03, 0xbd,0x81, 0x84,0x61,0x4b,0xfb,0xfa,0x0c)
685#endif
686#else
687typedef struct IVMRSurfaceAllocatorNotify9Vtbl {
688    BEGIN_INTERFACE
689
690    /*** IUnknown methods ***/
691    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
692        IVMRSurfaceAllocatorNotify9* This,
693        REFIID riid,
694        void **ppvObject);
695
696    ULONG (STDMETHODCALLTYPE *AddRef)(
697        IVMRSurfaceAllocatorNotify9* This);
698
699    ULONG (STDMETHODCALLTYPE *Release)(
700        IVMRSurfaceAllocatorNotify9* This);
701
702    /*** IVMRSurfaceAllocatorNotify9 methods ***/
703    HRESULT (STDMETHODCALLTYPE *AdviseSurfaceAllocator)(
704        IVMRSurfaceAllocatorNotify9* This,
705        DWORD_PTR id,
706        IVMRSurfaceAllocator9 *alloc);
707
708    HRESULT (STDMETHODCALLTYPE *SetD3DDevice)(
709        IVMRSurfaceAllocatorNotify9* This,
710        IDirect3DDevice9 *device,
711        HMONITOR monitor);
712
713    HRESULT (STDMETHODCALLTYPE *ChangeD3DDevice)(
714        IVMRSurfaceAllocatorNotify9* This,
715        IDirect3DDevice9 *device,
716        HMONITOR monitor);
717
718    HRESULT (STDMETHODCALLTYPE *AllocateSurfaceHelper)(
719        IVMRSurfaceAllocatorNotify9* This,
720        VMR9AllocationInfo *allocinfo,
721        DWORD *numbuffers,
722        IDirect3DSurface9 **surface);
723
724    HRESULT (STDMETHODCALLTYPE *NotifyEvent)(
725        IVMRSurfaceAllocatorNotify9* This,
726        LONG code,
727        LONG_PTR param1,
728        LONG_PTR param2);
729
730    END_INTERFACE
731} IVMRSurfaceAllocatorNotify9Vtbl;
732interface IVMRSurfaceAllocatorNotify9 {
733    CONST_VTBL IVMRSurfaceAllocatorNotify9Vtbl* lpVtbl;
734};
735
736#ifdef COBJMACROS
737#ifndef WIDL_C_INLINE_WRAPPERS
738/*** IUnknown methods ***/
739#define IVMRSurfaceAllocatorNotify9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
740#define IVMRSurfaceAllocatorNotify9_AddRef(This) (This)->lpVtbl->AddRef(This)
741#define IVMRSurfaceAllocatorNotify9_Release(This) (This)->lpVtbl->Release(This)
742/*** IVMRSurfaceAllocatorNotify9 methods ***/
743#define IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator(This,id,alloc) (This)->lpVtbl->AdviseSurfaceAllocator(This,id,alloc)
744#define IVMRSurfaceAllocatorNotify9_SetD3DDevice(This,device,monitor) (This)->lpVtbl->SetD3DDevice(This,device,monitor)
745#define IVMRSurfaceAllocatorNotify9_ChangeD3DDevice(This,device,monitor) (This)->lpVtbl->ChangeD3DDevice(This,device,monitor)
746#define IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper(This,allocinfo,numbuffers,surface) (This)->lpVtbl->AllocateSurfaceHelper(This,allocinfo,numbuffers,surface)
747#define IVMRSurfaceAllocatorNotify9_NotifyEvent(This,code,param1,param2) (This)->lpVtbl->NotifyEvent(This,code,param1,param2)
748#else
749/*** IUnknown methods ***/
750static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_QueryInterface(IVMRSurfaceAllocatorNotify9* This,REFIID riid,void **ppvObject) {
751    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
752}
753static FORCEINLINE ULONG IVMRSurfaceAllocatorNotify9_AddRef(IVMRSurfaceAllocatorNotify9* This) {
754    return This->lpVtbl->AddRef(This);
755}
756static FORCEINLINE ULONG IVMRSurfaceAllocatorNotify9_Release(IVMRSurfaceAllocatorNotify9* This) {
757    return This->lpVtbl->Release(This);
758}
759/*** IVMRSurfaceAllocatorNotify9 methods ***/
760static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator(IVMRSurfaceAllocatorNotify9* This,DWORD_PTR id,IVMRSurfaceAllocator9 *alloc) {
761    return This->lpVtbl->AdviseSurfaceAllocator(This,id,alloc);
762}
763static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_SetD3DDevice(IVMRSurfaceAllocatorNotify9* This,IDirect3DDevice9 *device,HMONITOR monitor) {
764    return This->lpVtbl->SetD3DDevice(This,device,monitor);
765}
766static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_ChangeD3DDevice(IVMRSurfaceAllocatorNotify9* This,IDirect3DDevice9 *device,HMONITOR monitor) {
767    return This->lpVtbl->ChangeD3DDevice(This,device,monitor);
768}
769static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper(IVMRSurfaceAllocatorNotify9* This,VMR9AllocationInfo *allocinfo,DWORD *numbuffers,IDirect3DSurface9 **surface) {
770    return This->lpVtbl->AllocateSurfaceHelper(This,allocinfo,numbuffers,surface);
771}
772static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_NotifyEvent(IVMRSurfaceAllocatorNotify9* This,LONG code,LONG_PTR param1,LONG_PTR param2) {
773    return This->lpVtbl->NotifyEvent(This,code,param1,param2);
774}
775#endif
776#endif
777
778#endif
779
780HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator_Proxy(
781    IVMRSurfaceAllocatorNotify9* This,
782    DWORD_PTR id,
783    IVMRSurfaceAllocator9 *alloc);
784void __RPC_STUB IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator_Stub(
785    IRpcStubBuffer* This,
786    IRpcChannelBuffer* pRpcChannelBuffer,
787    PRPC_MESSAGE pRpcMessage,
788    DWORD* pdwStubPhase);
789HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_SetD3DDevice_Proxy(
790    IVMRSurfaceAllocatorNotify9* This,
791    IDirect3DDevice9 *device,
792    HMONITOR monitor);
793void __RPC_STUB IVMRSurfaceAllocatorNotify9_SetD3DDevice_Stub(
794    IRpcStubBuffer* This,
795    IRpcChannelBuffer* pRpcChannelBuffer,
796    PRPC_MESSAGE pRpcMessage,
797    DWORD* pdwStubPhase);
798HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_ChangeD3DDevice_Proxy(
799    IVMRSurfaceAllocatorNotify9* This,
800    IDirect3DDevice9 *device,
801    HMONITOR monitor);
802void __RPC_STUB IVMRSurfaceAllocatorNotify9_ChangeD3DDevice_Stub(
803    IRpcStubBuffer* This,
804    IRpcChannelBuffer* pRpcChannelBuffer,
805    PRPC_MESSAGE pRpcMessage,
806    DWORD* pdwStubPhase);
807HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper_Proxy(
808    IVMRSurfaceAllocatorNotify9* This,
809    VMR9AllocationInfo *allocinfo,
810    DWORD *numbuffers,
811    IDirect3DSurface9 **surface);
812void __RPC_STUB IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper_Stub(
813    IRpcStubBuffer* This,
814    IRpcChannelBuffer* pRpcChannelBuffer,
815    PRPC_MESSAGE pRpcMessage,
816    DWORD* pdwStubPhase);
817HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_NotifyEvent_Proxy(
818    IVMRSurfaceAllocatorNotify9* This,
819    LONG code,
820    LONG_PTR param1,
821    LONG_PTR param2);
822void __RPC_STUB IVMRSurfaceAllocatorNotify9_NotifyEvent_Stub(
823    IRpcStubBuffer* This,
824    IRpcChannelBuffer* pRpcChannelBuffer,
825    PRPC_MESSAGE pRpcMessage,
826    DWORD* pdwStubPhase);
827
828#endif  /* __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__ */
829
830typedef enum _VMR9AspectRatioMode {
831    VMR9ARMode_None = 0,
832    VMR9ARMode_LetterBox = 1
833} VMR9AspectRatioMode;
834/*****************************************************************************
835 * IVMRWindowlessControl9 interface
836 */
837#ifndef __IVMRWindowlessControl9_INTERFACE_DEFINED__
838#define __IVMRWindowlessControl9_INTERFACE_DEFINED__
839
840DEFINE_GUID(IID_IVMRWindowlessControl9, 0x8f537d09, 0xf85e, 0x4414, 0xb2,0x3b, 0x50,0x2e,0x54,0xc7,0x99,0x27);
841#if defined(__cplusplus) && !defined(CINTERFACE)
842MIDL_INTERFACE("8f537d09-f85e-4414-b23b-502e54c79927")
843IVMRWindowlessControl9 : public IUnknown
844{
845    virtual HRESULT STDMETHODCALLTYPE GetNativeVideoSize(
846        LONG *width,
847        LONG *height,
848        LONG *arwidth,
849        LONG *arheight) = 0;
850
851    virtual HRESULT STDMETHODCALLTYPE GetMinIdealVideoSize(
852        LONG *width,
853        LONG *height) = 0;
854
855    virtual HRESULT STDMETHODCALLTYPE GetMaxIdealVideoSize(
856        LONG *width,
857        LONG *height) = 0;
858
859    virtual HRESULT STDMETHODCALLTYPE SetVideoPosition(
860        const RECT *source,
861        const RECT *dest) = 0;
862
863    virtual HRESULT STDMETHODCALLTYPE GetVideoPosition(
864        RECT *source,
865        RECT *dest) = 0;
866
867    virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode(
868        DWORD *mode) = 0;
869
870    virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode(
871        DWORD mode) = 0;
872
873    virtual HRESULT STDMETHODCALLTYPE SetVideoClippingWindow(
874        HWND hwnd) = 0;
875
876    virtual HRESULT STDMETHODCALLTYPE RepaintVideo(
877        HWND hwnd,
878        HDC hdc) = 0;
879
880    virtual HRESULT STDMETHODCALLTYPE DisplayModeChanged(
881        ) = 0;
882
883    virtual HRESULT STDMETHODCALLTYPE GetCurrentImage(
884        BYTE **dib) = 0;
885
886    virtual HRESULT STDMETHODCALLTYPE SetBorderColor(
887        COLORREF color) = 0;
888
889    virtual HRESULT STDMETHODCALLTYPE GetBorderColor(
890        COLORREF *color) = 0;
891
892};
893#ifdef __CRT_UUID_DECL
894__CRT_UUID_DECL(IVMRWindowlessControl9, 0x8f537d09, 0xf85e, 0x4414, 0xb2,0x3b, 0x50,0x2e,0x54,0xc7,0x99,0x27)
895#endif
896#else
897typedef struct IVMRWindowlessControl9Vtbl {
898    BEGIN_INTERFACE
899
900    /*** IUnknown methods ***/
901    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
902        IVMRWindowlessControl9* This,
903        REFIID riid,
904        void **ppvObject);
905
906    ULONG (STDMETHODCALLTYPE *AddRef)(
907        IVMRWindowlessControl9* This);
908
909    ULONG (STDMETHODCALLTYPE *Release)(
910        IVMRWindowlessControl9* This);
911
912    /*** IVMRWindowlessControl9 methods ***/
913    HRESULT (STDMETHODCALLTYPE *GetNativeVideoSize)(
914        IVMRWindowlessControl9* This,
915        LONG *width,
916        LONG *height,
917        LONG *arwidth,
918        LONG *arheight);
919
920    HRESULT (STDMETHODCALLTYPE *GetMinIdealVideoSize)(
921        IVMRWindowlessControl9* This,
922        LONG *width,
923        LONG *height);
924
925    HRESULT (STDMETHODCALLTYPE *GetMaxIdealVideoSize)(
926        IVMRWindowlessControl9* This,
927        LONG *width,
928        LONG *height);
929
930    HRESULT (STDMETHODCALLTYPE *SetVideoPosition)(
931        IVMRWindowlessControl9* This,
932        const RECT *source,
933        const RECT *dest);
934
935    HRESULT (STDMETHODCALLTYPE *GetVideoPosition)(
936        IVMRWindowlessControl9* This,
937        RECT *source,
938        RECT *dest);
939
940    HRESULT (STDMETHODCALLTYPE *GetAspectRatioMode)(
941        IVMRWindowlessControl9* This,
942        DWORD *mode);
943
944    HRESULT (STDMETHODCALLTYPE *SetAspectRatioMode)(
945        IVMRWindowlessControl9* This,
946        DWORD mode);
947
948    HRESULT (STDMETHODCALLTYPE *SetVideoClippingWindow)(
949        IVMRWindowlessControl9* This,
950        HWND hwnd);
951
952    HRESULT (STDMETHODCALLTYPE *RepaintVideo)(
953        IVMRWindowlessControl9* This,
954        HWND hwnd,
955        HDC hdc);
956
957    HRESULT (STDMETHODCALLTYPE *DisplayModeChanged)(
958        IVMRWindowlessControl9* This);
959
960    HRESULT (STDMETHODCALLTYPE *GetCurrentImage)(
961        IVMRWindowlessControl9* This,
962        BYTE **dib);
963
964    HRESULT (STDMETHODCALLTYPE *SetBorderColor)(
965        IVMRWindowlessControl9* This,
966        COLORREF color);
967
968    HRESULT (STDMETHODCALLTYPE *GetBorderColor)(
969        IVMRWindowlessControl9* This,
970        COLORREF *color);
971
972    END_INTERFACE
973} IVMRWindowlessControl9Vtbl;
974interface IVMRWindowlessControl9 {
975    CONST_VTBL IVMRWindowlessControl9Vtbl* lpVtbl;
976};
977
978#ifdef COBJMACROS
979#ifndef WIDL_C_INLINE_WRAPPERS
980/*** IUnknown methods ***/
981#define IVMRWindowlessControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
982#define IVMRWindowlessControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
983#define IVMRWindowlessControl9_Release(This) (This)->lpVtbl->Release(This)
984/*** IVMRWindowlessControl9 methods ***/
985#define IVMRWindowlessControl9_GetNativeVideoSize(This,width,height,arwidth,arheight) (This)->lpVtbl->GetNativeVideoSize(This,width,height,arwidth,arheight)
986#define IVMRWindowlessControl9_GetMinIdealVideoSize(This,width,height) (This)->lpVtbl->GetMinIdealVideoSize(This,width,height)
987#define IVMRWindowlessControl9_GetMaxIdealVideoSize(This,width,height) (This)->lpVtbl->GetMaxIdealVideoSize(This,width,height)
988#define IVMRWindowlessControl9_SetVideoPosition(This,source,dest) (This)->lpVtbl->SetVideoPosition(This,source,dest)
989#define IVMRWindowlessControl9_GetVideoPosition(This,source,dest) (This)->lpVtbl->GetVideoPosition(This,source,dest)
990#define IVMRWindowlessControl9_GetAspectRatioMode(This,mode) (This)->lpVtbl->GetAspectRatioMode(This,mode)
991#define IVMRWindowlessControl9_SetAspectRatioMode(This,mode) (This)->lpVtbl->SetAspectRatioMode(This,mode)
992#define IVMRWindowlessControl9_SetVideoClippingWindow(This,hwnd) (This)->lpVtbl->SetVideoClippingWindow(This,hwnd)
993#define IVMRWindowlessControl9_RepaintVideo(This,hwnd,hdc) (This)->lpVtbl->RepaintVideo(This,hwnd,hdc)
994#define IVMRWindowlessControl9_DisplayModeChanged(This) (This)->lpVtbl->DisplayModeChanged(This)
995#define IVMRWindowlessControl9_GetCurrentImage(This,dib) (This)->lpVtbl->GetCurrentImage(This,dib)
996#define IVMRWindowlessControl9_SetBorderColor(This,color) (This)->lpVtbl->SetBorderColor(This,color)
997#define IVMRWindowlessControl9_GetBorderColor(This,color) (This)->lpVtbl->GetBorderColor(This,color)
998#else
999/*** IUnknown methods ***/
1000static FORCEINLINE HRESULT IVMRWindowlessControl9_QueryInterface(IVMRWindowlessControl9* This,REFIID riid,void **ppvObject) {
1001    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1002}
1003static FORCEINLINE ULONG IVMRWindowlessControl9_AddRef(IVMRWindowlessControl9* This) {
1004    return This->lpVtbl->AddRef(This);
1005}
1006static FORCEINLINE ULONG IVMRWindowlessControl9_Release(IVMRWindowlessControl9* This) {
1007    return This->lpVtbl->Release(This);
1008}
1009/*** IVMRWindowlessControl9 methods ***/
1010static FORCEINLINE HRESULT IVMRWindowlessControl9_GetNativeVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height,LONG *arwidth,LONG *arheight) {
1011    return This->lpVtbl->GetNativeVideoSize(This,width,height,arwidth,arheight);
1012}
1013static FORCEINLINE HRESULT IVMRWindowlessControl9_GetMinIdealVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height) {
1014    return This->lpVtbl->GetMinIdealVideoSize(This,width,height);
1015}
1016static FORCEINLINE HRESULT IVMRWindowlessControl9_GetMaxIdealVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height) {
1017    return This->lpVtbl->GetMaxIdealVideoSize(This,width,height);
1018}
1019static FORCEINLINE HRESULT IVMRWindowlessControl9_SetVideoPosition(IVMRWindowlessControl9* This,const RECT *source,const RECT *dest) {
1020    return This->lpVtbl->SetVideoPosition(This,source,dest);
1021}
1022static FORCEINLINE HRESULT IVMRWindowlessControl9_GetVideoPosition(IVMRWindowlessControl9* This,RECT *source,RECT *dest) {
1023    return This->lpVtbl->GetVideoPosition(This,source,dest);
1024}
1025static FORCEINLINE HRESULT IVMRWindowlessControl9_GetAspectRatioMode(IVMRWindowlessControl9* This,DWORD *mode) {
1026    return This->lpVtbl->GetAspectRatioMode(This,mode);
1027}
1028static FORCEINLINE HRESULT IVMRWindowlessControl9_SetAspectRatioMode(IVMRWindowlessControl9* This,DWORD mode) {
1029    return This->lpVtbl->SetAspectRatioMode(This,mode);
1030}
1031static FORCEINLINE HRESULT IVMRWindowlessControl9_SetVideoClippingWindow(IVMRWindowlessControl9* This,HWND hwnd) {
1032    return This->lpVtbl->SetVideoClippingWindow(This,hwnd);
1033}
1034static FORCEINLINE HRESULT IVMRWindowlessControl9_RepaintVideo(IVMRWindowlessControl9* This,HWND hwnd,HDC hdc) {
1035    return This->lpVtbl->RepaintVideo(This,hwnd,hdc);
1036}
1037static FORCEINLINE HRESULT IVMRWindowlessControl9_DisplayModeChanged(IVMRWindowlessControl9* This) {
1038    return This->lpVtbl->DisplayModeChanged(This);
1039}
1040static FORCEINLINE HRESULT IVMRWindowlessControl9_GetCurrentImage(IVMRWindowlessControl9* This,BYTE **dib) {
1041    return This->lpVtbl->GetCurrentImage(This,dib);
1042}
1043static FORCEINLINE HRESULT IVMRWindowlessControl9_SetBorderColor(IVMRWindowlessControl9* This,COLORREF color) {
1044    return This->lpVtbl->SetBorderColor(This,color);
1045}
1046static FORCEINLINE HRESULT IVMRWindowlessControl9_GetBorderColor(IVMRWindowlessControl9* This,COLORREF *color) {
1047    return This->lpVtbl->GetBorderColor(This,color);
1048}
1049#endif
1050#endif
1051
1052#endif
1053
1054HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetNativeVideoSize_Proxy(
1055    IVMRWindowlessControl9* This,
1056    LONG *width,
1057    LONG *height,
1058    LONG *arwidth,
1059    LONG *arheight);
1060void __RPC_STUB IVMRWindowlessControl9_GetNativeVideoSize_Stub(
1061    IRpcStubBuffer* This,
1062    IRpcChannelBuffer* pRpcChannelBuffer,
1063    PRPC_MESSAGE pRpcMessage,
1064    DWORD* pdwStubPhase);
1065HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetMinIdealVideoSize_Proxy(
1066    IVMRWindowlessControl9* This,
1067    LONG *width,
1068    LONG *height);
1069void __RPC_STUB IVMRWindowlessControl9_GetMinIdealVideoSize_Stub(
1070    IRpcStubBuffer* This,
1071    IRpcChannelBuffer* pRpcChannelBuffer,
1072    PRPC_MESSAGE pRpcMessage,
1073    DWORD* pdwStubPhase);
1074HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetMaxIdealVideoSize_Proxy(
1075    IVMRWindowlessControl9* This,
1076    LONG *width,
1077    LONG *height);
1078void __RPC_STUB IVMRWindowlessControl9_GetMaxIdealVideoSize_Stub(
1079    IRpcStubBuffer* This,
1080    IRpcChannelBuffer* pRpcChannelBuffer,
1081    PRPC_MESSAGE pRpcMessage,
1082    DWORD* pdwStubPhase);
1083HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetVideoPosition_Proxy(
1084    IVMRWindowlessControl9* This,
1085    const RECT *source,
1086    const RECT *dest);
1087void __RPC_STUB IVMRWindowlessControl9_SetVideoPosition_Stub(
1088    IRpcStubBuffer* This,
1089    IRpcChannelBuffer* pRpcChannelBuffer,
1090    PRPC_MESSAGE pRpcMessage,
1091    DWORD* pdwStubPhase);
1092HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetVideoPosition_Proxy(
1093    IVMRWindowlessControl9* This,
1094    RECT *source,
1095    RECT *dest);
1096void __RPC_STUB IVMRWindowlessControl9_GetVideoPosition_Stub(
1097    IRpcStubBuffer* This,
1098    IRpcChannelBuffer* pRpcChannelBuffer,
1099    PRPC_MESSAGE pRpcMessage,
1100    DWORD* pdwStubPhase);
1101HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetAspectRatioMode_Proxy(
1102    IVMRWindowlessControl9* This,
1103    DWORD *mode);
1104void __RPC_STUB IVMRWindowlessControl9_GetAspectRatioMode_Stub(
1105    IRpcStubBuffer* This,
1106    IRpcChannelBuffer* pRpcChannelBuffer,
1107    PRPC_MESSAGE pRpcMessage,
1108    DWORD* pdwStubPhase);
1109HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetAspectRatioMode_Proxy(
1110    IVMRWindowlessControl9* This,
1111    DWORD mode);
1112void __RPC_STUB IVMRWindowlessControl9_SetAspectRatioMode_Stub(
1113    IRpcStubBuffer* This,
1114    IRpcChannelBuffer* pRpcChannelBuffer,
1115    PRPC_MESSAGE pRpcMessage,
1116    DWORD* pdwStubPhase);
1117HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetVideoClippingWindow_Proxy(
1118    IVMRWindowlessControl9* This,
1119    HWND hwnd);
1120void __RPC_STUB IVMRWindowlessControl9_SetVideoClippingWindow_Stub(
1121    IRpcStubBuffer* This,
1122    IRpcChannelBuffer* pRpcChannelBuffer,
1123    PRPC_MESSAGE pRpcMessage,
1124    DWORD* pdwStubPhase);
1125HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_RepaintVideo_Proxy(
1126    IVMRWindowlessControl9* This,
1127    HWND hwnd,
1128    HDC hdc);
1129void __RPC_STUB IVMRWindowlessControl9_RepaintVideo_Stub(
1130    IRpcStubBuffer* This,
1131    IRpcChannelBuffer* pRpcChannelBuffer,
1132    PRPC_MESSAGE pRpcMessage,
1133    DWORD* pdwStubPhase);
1134HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_DisplayModeChanged_Proxy(
1135    IVMRWindowlessControl9* This);
1136void __RPC_STUB IVMRWindowlessControl9_DisplayModeChanged_Stub(
1137    IRpcStubBuffer* This,
1138    IRpcChannelBuffer* pRpcChannelBuffer,
1139    PRPC_MESSAGE pRpcMessage,
1140    DWORD* pdwStubPhase);
1141HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetCurrentImage_Proxy(
1142    IVMRWindowlessControl9* This,
1143    BYTE **dib);
1144void __RPC_STUB IVMRWindowlessControl9_GetCurrentImage_Stub(
1145    IRpcStubBuffer* This,
1146    IRpcChannelBuffer* pRpcChannelBuffer,
1147    PRPC_MESSAGE pRpcMessage,
1148    DWORD* pdwStubPhase);
1149HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetBorderColor_Proxy(
1150    IVMRWindowlessControl9* This,
1151    COLORREF color);
1152void __RPC_STUB IVMRWindowlessControl9_SetBorderColor_Stub(
1153    IRpcStubBuffer* This,
1154    IRpcChannelBuffer* pRpcChannelBuffer,
1155    PRPC_MESSAGE pRpcMessage,
1156    DWORD* pdwStubPhase);
1157HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetBorderColor_Proxy(
1158    IVMRWindowlessControl9* This,
1159    COLORREF *color);
1160void __RPC_STUB IVMRWindowlessControl9_GetBorderColor_Stub(
1161    IRpcStubBuffer* This,
1162    IRpcChannelBuffer* pRpcChannelBuffer,
1163    PRPC_MESSAGE pRpcMessage,
1164    DWORD* pdwStubPhase);
1165
1166#endif  /* __IVMRWindowlessControl9_INTERFACE_DEFINED__ */
1167
1168typedef enum _VMR9MixerPrefs {
1169    MixerPref9_NoDecimation = 0x1,
1170    MixerPref9_DecimateOutput = 0x2,
1171    MixerPref9_ARAdjustXorY = 0x4,
1172    MixerPref9_NonSquareMixing = 0x8,
1173    MixerPref9_DecimateMask = 0xf,
1174    MixerPref9_BiLinearFiltering = 0x10,
1175    MixerPref9_PointFiltering = 0x20,
1176    MixerPref9_AnisotropicFiltering = 0x40,
1177    MixerPref9_PyramidalQuadFiltering = 0x80,
1178    MixerPref9_GaussianQuadFiltering = 0x100,
1179    MixerPref9_FilteringReserved = 0xe00,
1180    MixerPref9_FilteringMask = 0xff0,
1181    MixerPref9_RenderTargetRGB = 0x1000,
1182    MixerPref9_RenderTargetYUV = 0x2000,
1183    MixerPref9_RenderTargetReserved = 0xfc000,
1184    MixerPref9_DynamicSwitchToBOB = 0x100000,
1185    MixerPref9_DynamicDecimateBy2 = 0x200000,
1186    MixerPref9_DynamicReserved = 0xc00000,
1187    MixerPref9_DynamicMask = 0xf00000
1188} VMR9MixerPrefs;
1189typedef struct _VMR9NormalizedRect {
1190    FLOAT left;
1191    FLOAT top;
1192    FLOAT right;
1193    FLOAT bottom;
1194} VMR9NormalizedRect;
1195typedef enum _VMR9ProcAmpControlFlags {
1196    ProcAmpControl9_Brightness = 0x1,
1197    ProcAmpControl9_Contrast = 0x2,
1198    ProcAmpControl9_Hue = 0x4,
1199    ProcAmpControl9_Saturation = 0x8,
1200    ProcAmpControl9_Mask = 0xf
1201} VMR9ProcAmpControlFlags;
1202typedef struct _VMR9ProcAmpControl {
1203    DWORD dwSize;
1204    DWORD dwFlags;
1205    FLOAT Brightness;
1206    FLOAT Contrast;
1207    FLOAT Hue;
1208    FLOAT Saturation;
1209} VMR9ProcAmpControl;
1210typedef struct _VMR9ProcAmpControlRange {
1211    DWORD dwSize;
1212    VMR9ProcAmpControlFlags dwProperty;
1213    FLOAT MinValue;
1214    FLOAT MaxValue;
1215    FLOAT DefaultValue;
1216    FLOAT StepSize;
1217} VMR9ProcAmpControlRange;
1218/*****************************************************************************
1219 * IVMRMixerControl9 interface
1220 */
1221#ifndef __IVMRMixerControl9_INTERFACE_DEFINED__
1222#define __IVMRMixerControl9_INTERFACE_DEFINED__
1223
1224DEFINE_GUID(IID_IVMRMixerControl9, 0x1a777eaa, 0x47c8, 0x4930, 0xb2,0xc9, 0x8f,0xee,0x1c,0x1b,0x0f,0x3b);
1225#if defined(__cplusplus) && !defined(CINTERFACE)
1226MIDL_INTERFACE("1a777eaa-47c8-4930-b2c9-8fee1c1b0f3b")
1227IVMRMixerControl9 : public IUnknown
1228{
1229    virtual HRESULT STDMETHODCALLTYPE SetAlpha(
1230        DWORD streamid,
1231        FLOAT alpha) = 0;
1232
1233    virtual HRESULT STDMETHODCALLTYPE GetAlpha(
1234        DWORD streamid,
1235        FLOAT *alpha) = 0;
1236
1237    virtual HRESULT STDMETHODCALLTYPE SetZOrder(
1238        DWORD streamid,
1239        DWORD zorder) = 0;
1240
1241    virtual HRESULT STDMETHODCALLTYPE GetZOrder(
1242        DWORD streamid,
1243        DWORD *zorder) = 0;
1244
1245    virtual HRESULT STDMETHODCALLTYPE SetOutputRect(
1246        DWORD streamid,
1247        const VMR9NormalizedRect *rect) = 0;
1248
1249    virtual HRESULT STDMETHODCALLTYPE GetOutputRect(
1250        DWORD streamid,
1251        VMR9NormalizedRect *rect) = 0;
1252
1253    virtual HRESULT STDMETHODCALLTYPE SetBackgroundClr(
1254        COLORREF back) = 0;
1255
1256    virtual HRESULT STDMETHODCALLTYPE GetBackgroundClr(
1257        COLORREF *back) = 0;
1258
1259    virtual HRESULT STDMETHODCALLTYPE SetMixingPrefs(
1260        DWORD mixingprefs) = 0;
1261
1262    virtual HRESULT STDMETHODCALLTYPE GetMixingPrefs(
1263        DWORD *mixingprefs) = 0;
1264
1265    virtual HRESULT STDMETHODCALLTYPE SetProcAmpControl(
1266        DWORD streamid,
1267        VMR9ProcAmpControl *control) = 0;
1268
1269    virtual HRESULT STDMETHODCALLTYPE GetProcAmpControl(
1270        DWORD streamid,
1271        VMR9ProcAmpControl *control) = 0;
1272
1273    virtual HRESULT STDMETHODCALLTYPE GetProcAmpControlRange(
1274        DWORD streamid,
1275        VMR9ProcAmpControlRange *controlrange) = 0;
1276
1277};
1278#ifdef __CRT_UUID_DECL
1279__CRT_UUID_DECL(IVMRMixerControl9, 0x1a777eaa, 0x47c8, 0x4930, 0xb2,0xc9, 0x8f,0xee,0x1c,0x1b,0x0f,0x3b)
1280#endif
1281#else
1282typedef struct IVMRMixerControl9Vtbl {
1283    BEGIN_INTERFACE
1284
1285    /*** IUnknown methods ***/
1286    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1287        IVMRMixerControl9* This,
1288        REFIID riid,
1289        void **ppvObject);
1290
1291    ULONG (STDMETHODCALLTYPE *AddRef)(
1292        IVMRMixerControl9* This);
1293
1294    ULONG (STDMETHODCALLTYPE *Release)(
1295        IVMRMixerControl9* This);
1296
1297    /*** IVMRMixerControl9 methods ***/
1298    HRESULT (STDMETHODCALLTYPE *SetAlpha)(
1299        IVMRMixerControl9* This,
1300        DWORD streamid,
1301        FLOAT alpha);
1302
1303    HRESULT (STDMETHODCALLTYPE *GetAlpha)(
1304        IVMRMixerControl9* This,
1305        DWORD streamid,
1306        FLOAT *alpha);
1307
1308    HRESULT (STDMETHODCALLTYPE *SetZOrder)(
1309        IVMRMixerControl9* This,
1310        DWORD streamid,
1311        DWORD zorder);
1312
1313    HRESULT (STDMETHODCALLTYPE *GetZOrder)(
1314        IVMRMixerControl9* This,
1315        DWORD streamid,
1316        DWORD *zorder);
1317
1318    HRESULT (STDMETHODCALLTYPE *SetOutputRect)(
1319        IVMRMixerControl9* This,
1320        DWORD streamid,
1321        const VMR9NormalizedRect *rect);
1322
1323    HRESULT (STDMETHODCALLTYPE *GetOutputRect)(
1324        IVMRMixerControl9* This,
1325        DWORD streamid,
1326        VMR9NormalizedRect *rect);
1327
1328    HRESULT (STDMETHODCALLTYPE *SetBackgroundClr)(
1329        IVMRMixerControl9* This,
1330        COLORREF back);
1331
1332    HRESULT (STDMETHODCALLTYPE *GetBackgroundClr)(
1333        IVMRMixerControl9* This,
1334        COLORREF *back);
1335
1336    HRESULT (STDMETHODCALLTYPE *SetMixingPrefs)(
1337        IVMRMixerControl9* This,
1338        DWORD mixingprefs);
1339
1340    HRESULT (STDMETHODCALLTYPE *GetMixingPrefs)(
1341        IVMRMixerControl9* This,
1342        DWORD *mixingprefs);
1343
1344    HRESULT (STDMETHODCALLTYPE *SetProcAmpControl)(
1345        IVMRMixerControl9* This,
1346        DWORD streamid,
1347        VMR9ProcAmpControl *control);
1348
1349    HRESULT (STDMETHODCALLTYPE *GetProcAmpControl)(
1350        IVMRMixerControl9* This,
1351        DWORD streamid,
1352        VMR9ProcAmpControl *control);
1353
1354    HRESULT (STDMETHODCALLTYPE *GetProcAmpControlRange)(
1355        IVMRMixerControl9* This,
1356        DWORD streamid,
1357        VMR9ProcAmpControlRange *controlrange);
1358
1359    END_INTERFACE
1360} IVMRMixerControl9Vtbl;
1361interface IVMRMixerControl9 {
1362    CONST_VTBL IVMRMixerControl9Vtbl* lpVtbl;
1363};
1364
1365#ifdef COBJMACROS
1366#ifndef WIDL_C_INLINE_WRAPPERS
1367/*** IUnknown methods ***/
1368#define IVMRMixerControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1369#define IVMRMixerControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
1370#define IVMRMixerControl9_Release(This) (This)->lpVtbl->Release(This)
1371/*** IVMRMixerControl9 methods ***/
1372#define IVMRMixerControl9_SetAlpha(This,streamid,alpha) (This)->lpVtbl->SetAlpha(This,streamid,alpha)
1373#define IVMRMixerControl9_GetAlpha(This,streamid,alpha) (This)->lpVtbl->GetAlpha(This,streamid,alpha)
1374#define IVMRMixerControl9_SetZOrder(This,streamid,zorder) (This)->lpVtbl->SetZOrder(This,streamid,zorder)
1375#define IVMRMixerControl9_GetZOrder(This,streamid,zorder) (This)->lpVtbl->GetZOrder(This,streamid,zorder)
1376#define IVMRMixerControl9_SetOutputRect(This,streamid,rect) (This)->lpVtbl->SetOutputRect(This,streamid,rect)
1377#define IVMRMixerControl9_GetOutputRect(This,streamid,rect) (This)->lpVtbl->GetOutputRect(This,streamid,rect)
1378#define IVMRMixerControl9_SetBackgroundClr(This,back) (This)->lpVtbl->SetBackgroundClr(This,back)
1379#define IVMRMixerControl9_GetBackgroundClr(This,back) (This)->lpVtbl->GetBackgroundClr(This,back)
1380#define IVMRMixerControl9_SetMixingPrefs(This,mixingprefs) (This)->lpVtbl->SetMixingPrefs(This,mixingprefs)
1381#define IVMRMixerControl9_GetMixingPrefs(This,mixingprefs) (This)->lpVtbl->GetMixingPrefs(This,mixingprefs)
1382#define IVMRMixerControl9_SetProcAmpControl(This,streamid,control) (This)->lpVtbl->SetProcAmpControl(This,streamid,control)
1383#define IVMRMixerControl9_GetProcAmpControl(This,streamid,control) (This)->lpVtbl->GetProcAmpControl(This,streamid,control)
1384#define IVMRMixerControl9_GetProcAmpControlRange(This,streamid,controlrange) (This)->lpVtbl->GetProcAmpControlRange(This,streamid,controlrange)
1385#else
1386/*** IUnknown methods ***/
1387static FORCEINLINE HRESULT IVMRMixerControl9_QueryInterface(IVMRMixerControl9* This,REFIID riid,void **ppvObject) {
1388    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1389}
1390static FORCEINLINE ULONG IVMRMixerControl9_AddRef(IVMRMixerControl9* This) {
1391    return This->lpVtbl->AddRef(This);
1392}
1393static FORCEINLINE ULONG IVMRMixerControl9_Release(IVMRMixerControl9* This) {
1394    return This->lpVtbl->Release(This);
1395}
1396/*** IVMRMixerControl9 methods ***/
1397static FORCEINLINE HRESULT IVMRMixerControl9_SetAlpha(IVMRMixerControl9* This,DWORD streamid,FLOAT alpha) {
1398    return This->lpVtbl->SetAlpha(This,streamid,alpha);
1399}
1400static FORCEINLINE HRESULT IVMRMixerControl9_GetAlpha(IVMRMixerControl9* This,DWORD streamid,FLOAT *alpha) {
1401    return This->lpVtbl->GetAlpha(This,streamid,alpha);
1402}
1403static FORCEINLINE HRESULT IVMRMixerControl9_SetZOrder(IVMRMixerControl9* This,DWORD streamid,DWORD zorder) {
1404    return This->lpVtbl->SetZOrder(This,streamid,zorder);
1405}
1406static FORCEINLINE HRESULT IVMRMixerControl9_GetZOrder(IVMRMixerControl9* This,DWORD streamid,DWORD *zorder) {
1407    return This->lpVtbl->GetZOrder(This,streamid,zorder);
1408}
1409static FORCEINLINE HRESULT IVMRMixerControl9_SetOutputRect(IVMRMixerControl9* This,DWORD streamid,const VMR9NormalizedRect *rect) {
1410    return This->lpVtbl->SetOutputRect(This,streamid,rect);
1411}
1412static FORCEINLINE HRESULT IVMRMixerControl9_GetOutputRect(IVMRMixerControl9* This,DWORD streamid,VMR9NormalizedRect *rect) {
1413    return This->lpVtbl->GetOutputRect(This,streamid,rect);
1414}
1415static FORCEINLINE HRESULT IVMRMixerControl9_SetBackgroundClr(IVMRMixerControl9* This,COLORREF back) {
1416    return This->lpVtbl->SetBackgroundClr(This,back);
1417}
1418static FORCEINLINE HRESULT IVMRMixerControl9_GetBackgroundClr(IVMRMixerControl9* This,COLORREF *back) {
1419    return This->lpVtbl->GetBackgroundClr(This,back);
1420}
1421static FORCEINLINE HRESULT IVMRMixerControl9_SetMixingPrefs(IVMRMixerControl9* This,DWORD mixingprefs) {
1422    return This->lpVtbl->SetMixingPrefs(This,mixingprefs);
1423}
1424static FORCEINLINE HRESULT IVMRMixerControl9_GetMixingPrefs(IVMRMixerControl9* This,DWORD *mixingprefs) {
1425    return This->lpVtbl->GetMixingPrefs(This,mixingprefs);
1426}
1427static FORCEINLINE HRESULT IVMRMixerControl9_SetProcAmpControl(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControl *control) {
1428    return This->lpVtbl->SetProcAmpControl(This,streamid,control);
1429}
1430static FORCEINLINE HRESULT IVMRMixerControl9_GetProcAmpControl(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControl *control) {
1431    return This->lpVtbl->GetProcAmpControl(This,streamid,control);
1432}
1433static FORCEINLINE HRESULT IVMRMixerControl9_GetProcAmpControlRange(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControlRange *controlrange) {
1434    return This->lpVtbl->GetProcAmpControlRange(This,streamid,controlrange);
1435}
1436#endif
1437#endif
1438
1439#endif
1440
1441HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetAlpha_Proxy(
1442    IVMRMixerControl9* This,
1443    DWORD streamid,
1444    FLOAT alpha);
1445void __RPC_STUB IVMRMixerControl9_SetAlpha_Stub(
1446    IRpcStubBuffer* This,
1447    IRpcChannelBuffer* pRpcChannelBuffer,
1448    PRPC_MESSAGE pRpcMessage,
1449    DWORD* pdwStubPhase);
1450HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetAlpha_Proxy(
1451    IVMRMixerControl9* This,
1452    DWORD streamid,
1453    FLOAT *alpha);
1454void __RPC_STUB IVMRMixerControl9_GetAlpha_Stub(
1455    IRpcStubBuffer* This,
1456    IRpcChannelBuffer* pRpcChannelBuffer,
1457    PRPC_MESSAGE pRpcMessage,
1458    DWORD* pdwStubPhase);
1459HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetZOrder_Proxy(
1460    IVMRMixerControl9* This,
1461    DWORD streamid,
1462    DWORD zorder);
1463void __RPC_STUB IVMRMixerControl9_SetZOrder_Stub(
1464    IRpcStubBuffer* This,
1465    IRpcChannelBuffer* pRpcChannelBuffer,
1466    PRPC_MESSAGE pRpcMessage,
1467    DWORD* pdwStubPhase);
1468HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetZOrder_Proxy(
1469    IVMRMixerControl9* This,
1470    DWORD streamid,
1471    DWORD *zorder);
1472void __RPC_STUB IVMRMixerControl9_GetZOrder_Stub(
1473    IRpcStubBuffer* This,
1474    IRpcChannelBuffer* pRpcChannelBuffer,
1475    PRPC_MESSAGE pRpcMessage,
1476    DWORD* pdwStubPhase);
1477HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetOutputRect_Proxy(
1478    IVMRMixerControl9* This,
1479    DWORD streamid,
1480    const VMR9NormalizedRect *rect);
1481void __RPC_STUB IVMRMixerControl9_SetOutputRect_Stub(
1482    IRpcStubBuffer* This,
1483    IRpcChannelBuffer* pRpcChannelBuffer,
1484    PRPC_MESSAGE pRpcMessage,
1485    DWORD* pdwStubPhase);
1486HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetOutputRect_Proxy(
1487    IVMRMixerControl9* This,
1488    DWORD streamid,
1489    VMR9NormalizedRect *rect);
1490void __RPC_STUB IVMRMixerControl9_GetOutputRect_Stub(
1491    IRpcStubBuffer* This,
1492    IRpcChannelBuffer* pRpcChannelBuffer,
1493    PRPC_MESSAGE pRpcMessage,
1494    DWORD* pdwStubPhase);
1495HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetBackgroundClr_Proxy(
1496    IVMRMixerControl9* This,
1497    COLORREF back);
1498void __RPC_STUB IVMRMixerControl9_SetBackgroundClr_Stub(
1499    IRpcStubBuffer* This,
1500    IRpcChannelBuffer* pRpcChannelBuffer,
1501    PRPC_MESSAGE pRpcMessage,
1502    DWORD* pdwStubPhase);
1503HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetBackgroundClr_Proxy(
1504    IVMRMixerControl9* This,
1505    COLORREF *back);
1506void __RPC_STUB IVMRMixerControl9_GetBackgroundClr_Stub(
1507    IRpcStubBuffer* This,
1508    IRpcChannelBuffer* pRpcChannelBuffer,
1509    PRPC_MESSAGE pRpcMessage,
1510    DWORD* pdwStubPhase);
1511HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetMixingPrefs_Proxy(
1512    IVMRMixerControl9* This,
1513    DWORD mixingprefs);
1514void __RPC_STUB IVMRMixerControl9_SetMixingPrefs_Stub(
1515    IRpcStubBuffer* This,
1516    IRpcChannelBuffer* pRpcChannelBuffer,
1517    PRPC_MESSAGE pRpcMessage,
1518    DWORD* pdwStubPhase);
1519HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetMixingPrefs_Proxy(
1520    IVMRMixerControl9* This,
1521    DWORD *mixingprefs);
1522void __RPC_STUB IVMRMixerControl9_GetMixingPrefs_Stub(
1523    IRpcStubBuffer* This,
1524    IRpcChannelBuffer* pRpcChannelBuffer,
1525    PRPC_MESSAGE pRpcMessage,
1526    DWORD* pdwStubPhase);
1527HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetProcAmpControl_Proxy(
1528    IVMRMixerControl9* This,
1529    DWORD streamid,
1530    VMR9ProcAmpControl *control);
1531void __RPC_STUB IVMRMixerControl9_SetProcAmpControl_Stub(
1532    IRpcStubBuffer* This,
1533    IRpcChannelBuffer* pRpcChannelBuffer,
1534    PRPC_MESSAGE pRpcMessage,
1535    DWORD* pdwStubPhase);
1536HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetProcAmpControl_Proxy(
1537    IVMRMixerControl9* This,
1538    DWORD streamid,
1539    VMR9ProcAmpControl *control);
1540void __RPC_STUB IVMRMixerControl9_GetProcAmpControl_Stub(
1541    IRpcStubBuffer* This,
1542    IRpcChannelBuffer* pRpcChannelBuffer,
1543    PRPC_MESSAGE pRpcMessage,
1544    DWORD* pdwStubPhase);
1545HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetProcAmpControlRange_Proxy(
1546    IVMRMixerControl9* This,
1547    DWORD streamid,
1548    VMR9ProcAmpControlRange *controlrange);
1549void __RPC_STUB IVMRMixerControl9_GetProcAmpControlRange_Stub(
1550    IRpcStubBuffer* This,
1551    IRpcChannelBuffer* pRpcChannelBuffer,
1552    PRPC_MESSAGE pRpcMessage,
1553    DWORD* pdwStubPhase);
1554
1555#endif  /* __IVMRMixerControl9_INTERFACE_DEFINED__ */
1556
1557typedef struct _VMR9AlphaBitmap {
1558    DWORD dwFlags;
1559    HDC hdc;
1560    IDirect3DSurface9 *pDDS;
1561    RECT rSrc;
1562    VMR9NormalizedRect *rDest;
1563    FLOAT fAlpha;
1564    COLORREF clrSrcKey;
1565    DWORD dwFilterMode;
1566} VMR9AlphaBitmap;
1567typedef enum _VMR9AlphaBitmapFlags {
1568    VMR9AlphaBitmap_Disable = 0x1,
1569    VMR9AlphaBitmap_hDC = 0x2,
1570    VMR9AlphaBitmap_EntireDDS = 0x4,
1571    VMR9AlphaBitmap_SrcColorKey = 0x8,
1572    VMR9AlphaBitmap_SrcRect = 0x10,
1573    VMR9AlphaBitmap_FilterMode = 0x20
1574} VMR9AlphaBitmapFlags;
1575/*****************************************************************************
1576 * IVMRMixerBitmap9 interface
1577 */
1578#ifndef __IVMRMixerBitmap9_INTERFACE_DEFINED__
1579#define __IVMRMixerBitmap9_INTERFACE_DEFINED__
1580
1581DEFINE_GUID(IID_IVMRMixerBitmap9, 0xced175e5, 0x1935, 0x4820, 0x81,0xbd, 0xff,0x6a,0xd0,0x0c,0x91,0x08);
1582#if defined(__cplusplus) && !defined(CINTERFACE)
1583MIDL_INTERFACE("ced175e5-1935-4820-81bd-ff6ad00c9108")
1584IVMRMixerBitmap9 : public IUnknown
1585{
1586    virtual HRESULT STDMETHODCALLTYPE SetAlphaBitmap(
1587        const VMR9AlphaBitmap *bitmap) = 0;
1588
1589    virtual HRESULT STDMETHODCALLTYPE UpdateAlphaBitmapParameters(
1590        const VMR9AlphaBitmap *bitmap) = 0;
1591
1592    virtual HRESULT STDMETHODCALLTYPE GetAlphaBitmapParameters(
1593        VMR9AlphaBitmap *bitmap) = 0;
1594
1595};
1596#ifdef __CRT_UUID_DECL
1597__CRT_UUID_DECL(IVMRMixerBitmap9, 0xced175e5, 0x1935, 0x4820, 0x81,0xbd, 0xff,0x6a,0xd0,0x0c,0x91,0x08)
1598#endif
1599#else
1600typedef struct IVMRMixerBitmap9Vtbl {
1601    BEGIN_INTERFACE
1602
1603    /*** IUnknown methods ***/
1604    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1605        IVMRMixerBitmap9* This,
1606        REFIID riid,
1607        void **ppvObject);
1608
1609    ULONG (STDMETHODCALLTYPE *AddRef)(
1610        IVMRMixerBitmap9* This);
1611
1612    ULONG (STDMETHODCALLTYPE *Release)(
1613        IVMRMixerBitmap9* This);
1614
1615    /*** IVMRMixerBitmap9 methods ***/
1616    HRESULT (STDMETHODCALLTYPE *SetAlphaBitmap)(
1617        IVMRMixerBitmap9* This,
1618        const VMR9AlphaBitmap *bitmap);
1619
1620    HRESULT (STDMETHODCALLTYPE *UpdateAlphaBitmapParameters)(
1621        IVMRMixerBitmap9* This,
1622        const VMR9AlphaBitmap *bitmap);
1623
1624    HRESULT (STDMETHODCALLTYPE *GetAlphaBitmapParameters)(
1625        IVMRMixerBitmap9* This,
1626        VMR9AlphaBitmap *bitmap);
1627
1628    END_INTERFACE
1629} IVMRMixerBitmap9Vtbl;
1630interface IVMRMixerBitmap9 {
1631    CONST_VTBL IVMRMixerBitmap9Vtbl* lpVtbl;
1632};
1633
1634#ifdef COBJMACROS
1635#ifndef WIDL_C_INLINE_WRAPPERS
1636/*** IUnknown methods ***/
1637#define IVMRMixerBitmap9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1638#define IVMRMixerBitmap9_AddRef(This) (This)->lpVtbl->AddRef(This)
1639#define IVMRMixerBitmap9_Release(This) (This)->lpVtbl->Release(This)
1640/*** IVMRMixerBitmap9 methods ***/
1641#define IVMRMixerBitmap9_SetAlphaBitmap(This,bitmap) (This)->lpVtbl->SetAlphaBitmap(This,bitmap)
1642#define IVMRMixerBitmap9_UpdateAlphaBitmapParameters(This,bitmap) (This)->lpVtbl->UpdateAlphaBitmapParameters(This,bitmap)
1643#define IVMRMixerBitmap9_GetAlphaBitmapParameters(This,bitmap) (This)->lpVtbl->GetAlphaBitmapParameters(This,bitmap)
1644#else
1645/*** IUnknown methods ***/
1646static FORCEINLINE HRESULT IVMRMixerBitmap9_QueryInterface(IVMRMixerBitmap9* This,REFIID riid,void **ppvObject) {
1647    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1648}
1649static FORCEINLINE ULONG IVMRMixerBitmap9_AddRef(IVMRMixerBitmap9* This) {
1650    return This->lpVtbl->AddRef(This);
1651}
1652static FORCEINLINE ULONG IVMRMixerBitmap9_Release(IVMRMixerBitmap9* This) {
1653    return This->lpVtbl->Release(This);
1654}
1655/*** IVMRMixerBitmap9 methods ***/
1656static FORCEINLINE HRESULT IVMRMixerBitmap9_SetAlphaBitmap(IVMRMixerBitmap9* This,const VMR9AlphaBitmap *bitmap) {
1657    return This->lpVtbl->SetAlphaBitmap(This,bitmap);
1658}
1659static FORCEINLINE HRESULT IVMRMixerBitmap9_UpdateAlphaBitmapParameters(IVMRMixerBitmap9* This,const VMR9AlphaBitmap *bitmap) {
1660    return This->lpVtbl->UpdateAlphaBitmapParameters(This,bitmap);
1661}
1662static FORCEINLINE HRESULT IVMRMixerBitmap9_GetAlphaBitmapParameters(IVMRMixerBitmap9* This,VMR9AlphaBitmap *bitmap) {
1663    return This->lpVtbl->GetAlphaBitmapParameters(This,bitmap);
1664}
1665#endif
1666#endif
1667
1668#endif
1669
1670HRESULT STDMETHODCALLTYPE IVMRMixerBitmap9_SetAlphaBitmap_Proxy(
1671    IVMRMixerBitmap9* This,
1672    const VMR9AlphaBitmap *bitmap);
1673void __RPC_STUB IVMRMixerBitmap9_SetAlphaBitmap_Stub(
1674    IRpcStubBuffer* This,
1675    IRpcChannelBuffer* pRpcChannelBuffer,
1676    PRPC_MESSAGE pRpcMessage,
1677    DWORD* pdwStubPhase);
1678HRESULT STDMETHODCALLTYPE IVMRMixerBitmap9_UpdateAlphaBitmapParameters_Proxy(
1679    IVMRMixerBitmap9* This,
1680    const VMR9AlphaBitmap *bitmap);
1681void __RPC_STUB IVMRMixerBitmap9_UpdateAlphaBitmapParameters_Stub(
1682    IRpcStubBuffer* This,
1683    IRpcChannelBuffer* pRpcChannelBuffer,
1684    PRPC_MESSAGE pRpcMessage,
1685    DWORD* pdwStubPhase);
1686HRESULT STDMETHODCALLTYPE IVMRMixerBitmap9_GetAlphaBitmapParameters_Proxy(
1687    IVMRMixerBitmap9* This,
1688    VMR9AlphaBitmap *bitmap);
1689void __RPC_STUB IVMRMixerBitmap9_GetAlphaBitmapParameters_Stub(
1690    IRpcStubBuffer* This,
1691    IRpcChannelBuffer* pRpcChannelBuffer,
1692    PRPC_MESSAGE pRpcMessage,
1693    DWORD* pdwStubPhase);
1694
1695#endif  /* __IVMRMixerBitmap9_INTERFACE_DEFINED__ */
1696
1697/*****************************************************************************
1698 * IVMRSurface9 interface
1699 */
1700#ifndef __IVMRSurface9_INTERFACE_DEFINED__
1701#define __IVMRSurface9_INTERFACE_DEFINED__
1702
1703DEFINE_GUID(IID_IVMRSurface9, 0xdfc581a1, 0x6e1f, 0x4c3a, 0x8d,0x0a, 0x5e,0x97,0x92,0xea,0x2a,0xfc);
1704#if defined(__cplusplus) && !defined(CINTERFACE)
1705MIDL_INTERFACE("dfc581a1-6e1f-4c3a-8d0a-5e9792ea2afc")
1706IVMRSurface9 : public IUnknown
1707{
1708    virtual HRESULT STDMETHODCALLTYPE IsSurfaceLocked(
1709        ) = 0;
1710
1711    virtual HRESULT STDMETHODCALLTYPE LockSurface(
1712        BYTE **surface) = 0;
1713
1714    virtual HRESULT STDMETHODCALLTYPE UnlockSurface(
1715        ) = 0;
1716
1717    virtual HRESULT STDMETHODCALLTYPE GetSurface(
1718        IDirect3DSurface9 **surface) = 0;
1719
1720};
1721#ifdef __CRT_UUID_DECL
1722__CRT_UUID_DECL(IVMRSurface9, 0xdfc581a1, 0x6e1f, 0x4c3a, 0x8d,0x0a, 0x5e,0x97,0x92,0xea,0x2a,0xfc)
1723#endif
1724#else
1725typedef struct IVMRSurface9Vtbl {
1726    BEGIN_INTERFACE
1727
1728    /*** IUnknown methods ***/
1729    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1730        IVMRSurface9* This,
1731        REFIID riid,
1732        void **ppvObject);
1733
1734    ULONG (STDMETHODCALLTYPE *AddRef)(
1735        IVMRSurface9* This);
1736
1737    ULONG (STDMETHODCALLTYPE *Release)(
1738        IVMRSurface9* This);
1739
1740    /*** IVMRSurface9 methods ***/
1741    HRESULT (STDMETHODCALLTYPE *IsSurfaceLocked)(
1742        IVMRSurface9* This);
1743
1744    HRESULT (STDMETHODCALLTYPE *LockSurface)(
1745        IVMRSurface9* This,
1746        BYTE **surface);
1747
1748    HRESULT (STDMETHODCALLTYPE *UnlockSurface)(
1749        IVMRSurface9* This);
1750
1751    HRESULT (STDMETHODCALLTYPE *GetSurface)(
1752        IVMRSurface9* This,
1753        IDirect3DSurface9 **surface);
1754
1755    END_INTERFACE
1756} IVMRSurface9Vtbl;
1757interface IVMRSurface9 {
1758    CONST_VTBL IVMRSurface9Vtbl* lpVtbl;
1759};
1760
1761#ifdef COBJMACROS
1762#ifndef WIDL_C_INLINE_WRAPPERS
1763/*** IUnknown methods ***/
1764#define IVMRSurface9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1765#define IVMRSurface9_AddRef(This) (This)->lpVtbl->AddRef(This)
1766#define IVMRSurface9_Release(This) (This)->lpVtbl->Release(This)
1767/*** IVMRSurface9 methods ***/
1768#define IVMRSurface9_IsSurfaceLocked(This) (This)->lpVtbl->IsSurfaceLocked(This)
1769#define IVMRSurface9_LockSurface(This,surface) (This)->lpVtbl->LockSurface(This,surface)
1770#define IVMRSurface9_UnlockSurface(This) (This)->lpVtbl->UnlockSurface(This)
1771#define IVMRSurface9_GetSurface(This,surface) (This)->lpVtbl->GetSurface(This,surface)
1772#else
1773/*** IUnknown methods ***/
1774static FORCEINLINE HRESULT IVMRSurface9_QueryInterface(IVMRSurface9* This,REFIID riid,void **ppvObject) {
1775    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1776}
1777static FORCEINLINE ULONG IVMRSurface9_AddRef(IVMRSurface9* This) {
1778    return This->lpVtbl->AddRef(This);
1779}
1780static FORCEINLINE ULONG IVMRSurface9_Release(IVMRSurface9* This) {
1781    return This->lpVtbl->Release(This);
1782}
1783/*** IVMRSurface9 methods ***/
1784static FORCEINLINE HRESULT IVMRSurface9_IsSurfaceLocked(IVMRSurface9* This) {
1785    return This->lpVtbl->IsSurfaceLocked(This);
1786}
1787static FORCEINLINE HRESULT IVMRSurface9_LockSurface(IVMRSurface9* This,BYTE **surface) {
1788    return This->lpVtbl->LockSurface(This,surface);
1789}
1790static FORCEINLINE HRESULT IVMRSurface9_UnlockSurface(IVMRSurface9* This) {
1791    return This->lpVtbl->UnlockSurface(This);
1792}
1793static FORCEINLINE HRESULT IVMRSurface9_GetSurface(IVMRSurface9* This,IDirect3DSurface9 **surface) {
1794    return This->lpVtbl->GetSurface(This,surface);
1795}
1796#endif
1797#endif
1798
1799#endif
1800
1801HRESULT STDMETHODCALLTYPE IVMRSurface9_IsSurfaceLocked_Proxy(
1802    IVMRSurface9* This);
1803void __RPC_STUB IVMRSurface9_IsSurfaceLocked_Stub(
1804    IRpcStubBuffer* This,
1805    IRpcChannelBuffer* pRpcChannelBuffer,
1806    PRPC_MESSAGE pRpcMessage,
1807    DWORD* pdwStubPhase);
1808HRESULT STDMETHODCALLTYPE IVMRSurface9_LockSurface_Proxy(
1809    IVMRSurface9* This,
1810    BYTE **surface);
1811void __RPC_STUB IVMRSurface9_LockSurface_Stub(
1812    IRpcStubBuffer* This,
1813    IRpcChannelBuffer* pRpcChannelBuffer,
1814    PRPC_MESSAGE pRpcMessage,
1815    DWORD* pdwStubPhase);
1816HRESULT STDMETHODCALLTYPE IVMRSurface9_UnlockSurface_Proxy(
1817    IVMRSurface9* This);
1818void __RPC_STUB IVMRSurface9_UnlockSurface_Stub(
1819    IRpcStubBuffer* This,
1820    IRpcChannelBuffer* pRpcChannelBuffer,
1821    PRPC_MESSAGE pRpcMessage,
1822    DWORD* pdwStubPhase);
1823HRESULT STDMETHODCALLTYPE IVMRSurface9_GetSurface_Proxy(
1824    IVMRSurface9* This,
1825    IDirect3DSurface9 **surface);
1826void __RPC_STUB IVMRSurface9_GetSurface_Stub(
1827    IRpcStubBuffer* This,
1828    IRpcChannelBuffer* pRpcChannelBuffer,
1829    PRPC_MESSAGE pRpcMessage,
1830    DWORD* pdwStubPhase);
1831
1832#endif  /* __IVMRSurface9_INTERFACE_DEFINED__ */
1833
1834typedef enum _VMR9RenderPrefs {
1835    RenderPrefs9_DoNotRenderBorder = 0x1,
1836    RenderPrefs9_Mask = 0x1
1837} VMR9RenderPrefs;
1838/*****************************************************************************
1839 * IVMRImagePresenterConfig9 interface
1840 */
1841#ifndef __IVMRImagePresenterConfig9_INTERFACE_DEFINED__
1842#define __IVMRImagePresenterConfig9_INTERFACE_DEFINED__
1843
1844DEFINE_GUID(IID_IVMRImagePresenterConfig9, 0x45c15cab, 0x6e22, 0x420a, 0x80,0x43, 0xae,0x1f,0x0a,0xc0,0x2c,0x7d);
1845#if defined(__cplusplus) && !defined(CINTERFACE)
1846MIDL_INTERFACE("45c15cab-6e22-420a-8043-ae1f0ac02c7d")
1847IVMRImagePresenterConfig9 : public IUnknown
1848{
1849    virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs(
1850        DWORD renderflags) = 0;
1851
1852    virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs(
1853        DWORD *renderflags) = 0;
1854
1855};
1856#ifdef __CRT_UUID_DECL
1857__CRT_UUID_DECL(IVMRImagePresenterConfig9, 0x45c15cab, 0x6e22, 0x420a, 0x80,0x43, 0xae,0x1f,0x0a,0xc0,0x2c,0x7d)
1858#endif
1859#else
1860typedef struct IVMRImagePresenterConfig9Vtbl {
1861    BEGIN_INTERFACE
1862
1863    /*** IUnknown methods ***/
1864    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1865        IVMRImagePresenterConfig9* This,
1866        REFIID riid,
1867        void **ppvObject);
1868
1869    ULONG (STDMETHODCALLTYPE *AddRef)(
1870        IVMRImagePresenterConfig9* This);
1871
1872    ULONG (STDMETHODCALLTYPE *Release)(
1873        IVMRImagePresenterConfig9* This);
1874
1875    /*** IVMRImagePresenterConfig9 methods ***/
1876    HRESULT (STDMETHODCALLTYPE *SetRenderingPrefs)(
1877        IVMRImagePresenterConfig9* This,
1878        DWORD renderflags);
1879
1880    HRESULT (STDMETHODCALLTYPE *GetRenderingPrefs)(
1881        IVMRImagePresenterConfig9* This,
1882        DWORD *renderflags);
1883
1884    END_INTERFACE
1885} IVMRImagePresenterConfig9Vtbl;
1886interface IVMRImagePresenterConfig9 {
1887    CONST_VTBL IVMRImagePresenterConfig9Vtbl* lpVtbl;
1888};
1889
1890#ifdef COBJMACROS
1891#ifndef WIDL_C_INLINE_WRAPPERS
1892/*** IUnknown methods ***/
1893#define IVMRImagePresenterConfig9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1894#define IVMRImagePresenterConfig9_AddRef(This) (This)->lpVtbl->AddRef(This)
1895#define IVMRImagePresenterConfig9_Release(This) (This)->lpVtbl->Release(This)
1896/*** IVMRImagePresenterConfig9 methods ***/
1897#define IVMRImagePresenterConfig9_SetRenderingPrefs(This,renderflags) (This)->lpVtbl->SetRenderingPrefs(This,renderflags)
1898#define IVMRImagePresenterConfig9_GetRenderingPrefs(This,renderflags) (This)->lpVtbl->GetRenderingPrefs(This,renderflags)
1899#else
1900/*** IUnknown methods ***/
1901static FORCEINLINE HRESULT IVMRImagePresenterConfig9_QueryInterface(IVMRImagePresenterConfig9* This,REFIID riid,void **ppvObject) {
1902    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1903}
1904static FORCEINLINE ULONG IVMRImagePresenterConfig9_AddRef(IVMRImagePresenterConfig9* This) {
1905    return This->lpVtbl->AddRef(This);
1906}
1907static FORCEINLINE ULONG IVMRImagePresenterConfig9_Release(IVMRImagePresenterConfig9* This) {
1908    return This->lpVtbl->Release(This);
1909}
1910/*** IVMRImagePresenterConfig9 methods ***/
1911static FORCEINLINE HRESULT IVMRImagePresenterConfig9_SetRenderingPrefs(IVMRImagePresenterConfig9* This,DWORD renderflags) {
1912    return This->lpVtbl->SetRenderingPrefs(This,renderflags);
1913}
1914static FORCEINLINE HRESULT IVMRImagePresenterConfig9_GetRenderingPrefs(IVMRImagePresenterConfig9* This,DWORD *renderflags) {
1915    return This->lpVtbl->GetRenderingPrefs(This,renderflags);
1916}
1917#endif
1918#endif
1919
1920#endif
1921
1922HRESULT STDMETHODCALLTYPE IVMRImagePresenterConfig9_SetRenderingPrefs_Proxy(
1923    IVMRImagePresenterConfig9* This,
1924    DWORD renderflags);
1925void __RPC_STUB IVMRImagePresenterConfig9_SetRenderingPrefs_Stub(
1926    IRpcStubBuffer* This,
1927    IRpcChannelBuffer* pRpcChannelBuffer,
1928    PRPC_MESSAGE pRpcMessage,
1929    DWORD* pdwStubPhase);
1930HRESULT STDMETHODCALLTYPE IVMRImagePresenterConfig9_GetRenderingPrefs_Proxy(
1931    IVMRImagePresenterConfig9* This,
1932    DWORD *renderflags);
1933void __RPC_STUB IVMRImagePresenterConfig9_GetRenderingPrefs_Stub(
1934    IRpcStubBuffer* This,
1935    IRpcChannelBuffer* pRpcChannelBuffer,
1936    PRPC_MESSAGE pRpcMessage,
1937    DWORD* pdwStubPhase);
1938
1939#endif  /* __IVMRImagePresenterConfig9_INTERFACE_DEFINED__ */
1940
1941/*****************************************************************************
1942 * IVMRVideoStreamControl9 interface
1943 */
1944#ifndef __IVMRVideoStreamControl9_INTERFACE_DEFINED__
1945#define __IVMRVideoStreamControl9_INTERFACE_DEFINED__
1946
1947DEFINE_GUID(IID_IVMRVideoStreamControl9, 0xd0cfe38b, 0x93e7, 0x4772, 0x89,0x57, 0x04,0x00,0xc4,0x9a,0x44,0x85);
1948#if defined(__cplusplus) && !defined(CINTERFACE)
1949MIDL_INTERFACE("d0cfe38b-93e7-4772-8957-0400c49a4485")
1950IVMRVideoStreamControl9 : public IUnknown
1951{
1952    virtual HRESULT STDMETHODCALLTYPE SetStreamActiveState(
1953        WINBOOL active) = 0;
1954
1955    virtual HRESULT STDMETHODCALLTYPE GetStreamActiveState(
1956        WINBOOL *active) = 0;
1957
1958};
1959#ifdef __CRT_UUID_DECL
1960__CRT_UUID_DECL(IVMRVideoStreamControl9, 0xd0cfe38b, 0x93e7, 0x4772, 0x89,0x57, 0x04,0x00,0xc4,0x9a,0x44,0x85)
1961#endif
1962#else
1963typedef struct IVMRVideoStreamControl9Vtbl {
1964    BEGIN_INTERFACE
1965
1966    /*** IUnknown methods ***/
1967    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1968        IVMRVideoStreamControl9* This,
1969        REFIID riid,
1970        void **ppvObject);
1971
1972    ULONG (STDMETHODCALLTYPE *AddRef)(
1973        IVMRVideoStreamControl9* This);
1974
1975    ULONG (STDMETHODCALLTYPE *Release)(
1976        IVMRVideoStreamControl9* This);
1977
1978    /*** IVMRVideoStreamControl9 methods ***/
1979    HRESULT (STDMETHODCALLTYPE *SetStreamActiveState)(
1980        IVMRVideoStreamControl9* This,
1981        WINBOOL active);
1982
1983    HRESULT (STDMETHODCALLTYPE *GetStreamActiveState)(
1984        IVMRVideoStreamControl9* This,
1985        WINBOOL *active);
1986
1987    END_INTERFACE
1988} IVMRVideoStreamControl9Vtbl;
1989interface IVMRVideoStreamControl9 {
1990    CONST_VTBL IVMRVideoStreamControl9Vtbl* lpVtbl;
1991};
1992
1993#ifdef COBJMACROS
1994#ifndef WIDL_C_INLINE_WRAPPERS
1995/*** IUnknown methods ***/
1996#define IVMRVideoStreamControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1997#define IVMRVideoStreamControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
1998#define IVMRVideoStreamControl9_Release(This) (This)->lpVtbl->Release(This)
1999/*** IVMRVideoStreamControl9 methods ***/
2000#define IVMRVideoStreamControl9_SetStreamActiveState(This,active) (This)->lpVtbl->SetStreamActiveState(This,active)
2001#define IVMRVideoStreamControl9_GetStreamActiveState(This,active) (This)->lpVtbl->GetStreamActiveState(This,active)
2002#else
2003/*** IUnknown methods ***/
2004static FORCEINLINE HRESULT IVMRVideoStreamControl9_QueryInterface(IVMRVideoStreamControl9* This,REFIID riid,void **ppvObject) {
2005    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2006}
2007static FORCEINLINE ULONG IVMRVideoStreamControl9_AddRef(IVMRVideoStreamControl9* This) {
2008    return This->lpVtbl->AddRef(This);
2009}
2010static FORCEINLINE ULONG IVMRVideoStreamControl9_Release(IVMRVideoStreamControl9* This) {
2011    return This->lpVtbl->Release(This);
2012}
2013/*** IVMRVideoStreamControl9 methods ***/
2014static FORCEINLINE HRESULT IVMRVideoStreamControl9_SetStreamActiveState(IVMRVideoStreamControl9* This,WINBOOL active) {
2015    return This->lpVtbl->SetStreamActiveState(This,active);
2016}
2017static FORCEINLINE HRESULT IVMRVideoStreamControl9_GetStreamActiveState(IVMRVideoStreamControl9* This,WINBOOL *active) {
2018    return This->lpVtbl->GetStreamActiveState(This,active);
2019}
2020#endif
2021#endif
2022
2023#endif
2024
2025HRESULT STDMETHODCALLTYPE IVMRVideoStreamControl9_SetStreamActiveState_Proxy(
2026    IVMRVideoStreamControl9* This,
2027    WINBOOL active);
2028void __RPC_STUB IVMRVideoStreamControl9_SetStreamActiveState_Stub(
2029    IRpcStubBuffer* This,
2030    IRpcChannelBuffer* pRpcChannelBuffer,
2031    PRPC_MESSAGE pRpcMessage,
2032    DWORD* pdwStubPhase);
2033HRESULT STDMETHODCALLTYPE IVMRVideoStreamControl9_GetStreamActiveState_Proxy(
2034    IVMRVideoStreamControl9* This,
2035    WINBOOL *active);
2036void __RPC_STUB IVMRVideoStreamControl9_GetStreamActiveState_Stub(
2037    IRpcStubBuffer* This,
2038    IRpcChannelBuffer* pRpcChannelBuffer,
2039    PRPC_MESSAGE pRpcMessage,
2040    DWORD* pdwStubPhase);
2041
2042#endif  /* __IVMRVideoStreamControl9_INTERFACE_DEFINED__ */
2043
2044typedef enum _VMR9Mode {
2045    VMR9Mode_Windowed = 0x1,
2046    VMR9Mode_Windowless = 0x2,
2047    VMR9Mode_Renderless = 0x4,
2048    VMR9Mode_Mask = 0x7
2049} VMR9Mode;
2050/*****************************************************************************
2051 * IVMRFilterConfig9 interface
2052 */
2053#ifndef __IVMRFilterConfig9_INTERFACE_DEFINED__
2054#define __IVMRFilterConfig9_INTERFACE_DEFINED__
2055
2056DEFINE_GUID(IID_IVMRFilterConfig9, 0x5a804648, 0x4f66, 0x4867, 0x9c,0x43, 0x4f,0x5c,0x82,0x2c,0xf1,0xb8);
2057#if defined(__cplusplus) && !defined(CINTERFACE)
2058MIDL_INTERFACE("5a804648-4f66-4867-9c43-4f5c822cf1b8")
2059IVMRFilterConfig9 : public IUnknown
2060{
2061    virtual HRESULT STDMETHODCALLTYPE SetImageCompositor(
2062        IVMRImageCompositor9 *compositor) = 0;
2063
2064    virtual HRESULT STDMETHODCALLTYPE SetNumberOfStreams(
2065        DWORD max) = 0;
2066
2067    virtual HRESULT STDMETHODCALLTYPE GetNumberOfStreams(
2068        DWORD *max) = 0;
2069
2070    virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs(
2071        DWORD renderflags) = 0;
2072
2073    virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs(
2074        DWORD *renderflags) = 0;
2075
2076    virtual HRESULT STDMETHODCALLTYPE SetRenderingMode(
2077        DWORD mode) = 0;
2078
2079    virtual HRESULT STDMETHODCALLTYPE GetRenderingMode(
2080        DWORD *mode) = 0;
2081
2082};
2083#ifdef __CRT_UUID_DECL
2084__CRT_UUID_DECL(IVMRFilterConfig9, 0x5a804648, 0x4f66, 0x4867, 0x9c,0x43, 0x4f,0x5c,0x82,0x2c,0xf1,0xb8)
2085#endif
2086#else
2087typedef struct IVMRFilterConfig9Vtbl {
2088    BEGIN_INTERFACE
2089
2090    /*** IUnknown methods ***/
2091    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2092        IVMRFilterConfig9* This,
2093        REFIID riid,
2094        void **ppvObject);
2095
2096    ULONG (STDMETHODCALLTYPE *AddRef)(
2097        IVMRFilterConfig9* This);
2098
2099    ULONG (STDMETHODCALLTYPE *Release)(
2100        IVMRFilterConfig9* This);
2101
2102    /*** IVMRFilterConfig9 methods ***/
2103    HRESULT (STDMETHODCALLTYPE *SetImageCompositor)(
2104        IVMRFilterConfig9* This,
2105        IVMRImageCompositor9 *compositor);
2106
2107    HRESULT (STDMETHODCALLTYPE *SetNumberOfStreams)(
2108        IVMRFilterConfig9* This,
2109        DWORD max);
2110
2111    HRESULT (STDMETHODCALLTYPE *GetNumberOfStreams)(
2112        IVMRFilterConfig9* This,
2113        DWORD *max);
2114
2115    HRESULT (STDMETHODCALLTYPE *SetRenderingPrefs)(
2116        IVMRFilterConfig9* This,
2117        DWORD renderflags);
2118
2119    HRESULT (STDMETHODCALLTYPE *GetRenderingPrefs)(
2120        IVMRFilterConfig9* This,
2121        DWORD *renderflags);
2122
2123    HRESULT (STDMETHODCALLTYPE *SetRenderingMode)(
2124        IVMRFilterConfig9* This,
2125        DWORD mode);
2126
2127    HRESULT (STDMETHODCALLTYPE *GetRenderingMode)(
2128        IVMRFilterConfig9* This,
2129        DWORD *mode);
2130
2131    END_INTERFACE
2132} IVMRFilterConfig9Vtbl;
2133interface IVMRFilterConfig9 {
2134    CONST_VTBL IVMRFilterConfig9Vtbl* lpVtbl;
2135};
2136
2137#ifdef COBJMACROS
2138#ifndef WIDL_C_INLINE_WRAPPERS
2139/*** IUnknown methods ***/
2140#define IVMRFilterConfig9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2141#define IVMRFilterConfig9_AddRef(This) (This)->lpVtbl->AddRef(This)
2142#define IVMRFilterConfig9_Release(This) (This)->lpVtbl->Release(This)
2143/*** IVMRFilterConfig9 methods ***/
2144#define IVMRFilterConfig9_SetImageCompositor(This,compositor) (This)->lpVtbl->SetImageCompositor(This,compositor)
2145#define IVMRFilterConfig9_SetNumberOfStreams(This,max) (This)->lpVtbl->SetNumberOfStreams(This,max)
2146#define IVMRFilterConfig9_GetNumberOfStreams(This,max) (This)->lpVtbl->GetNumberOfStreams(This,max)
2147#define IVMRFilterConfig9_SetRenderingPrefs(This,renderflags) (This)->lpVtbl->SetRenderingPrefs(This,renderflags)
2148#define IVMRFilterConfig9_GetRenderingPrefs(This,renderflags) (This)->lpVtbl->GetRenderingPrefs(This,renderflags)
2149#define IVMRFilterConfig9_SetRenderingMode(This,mode) (This)->lpVtbl->SetRenderingMode(This,mode)
2150#define IVMRFilterConfig9_GetRenderingMode(This,mode) (This)->lpVtbl->GetRenderingMode(This,mode)
2151#else
2152/*** IUnknown methods ***/
2153static FORCEINLINE HRESULT IVMRFilterConfig9_QueryInterface(IVMRFilterConfig9* This,REFIID riid,void **ppvObject) {
2154    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2155}
2156static FORCEINLINE ULONG IVMRFilterConfig9_AddRef(IVMRFilterConfig9* This) {
2157    return This->lpVtbl->AddRef(This);
2158}
2159static FORCEINLINE ULONG IVMRFilterConfig9_Release(IVMRFilterConfig9* This) {
2160    return This->lpVtbl->Release(This);
2161}
2162/*** IVMRFilterConfig9 methods ***/
2163static FORCEINLINE HRESULT IVMRFilterConfig9_SetImageCompositor(IVMRFilterConfig9* This,IVMRImageCompositor9 *compositor) {
2164    return This->lpVtbl->SetImageCompositor(This,compositor);
2165}
2166static FORCEINLINE HRESULT IVMRFilterConfig9_SetNumberOfStreams(IVMRFilterConfig9* This,DWORD max) {
2167    return This->lpVtbl->SetNumberOfStreams(This,max);
2168}
2169static FORCEINLINE HRESULT IVMRFilterConfig9_GetNumberOfStreams(IVMRFilterConfig9* This,DWORD *max) {
2170    return This->lpVtbl->GetNumberOfStreams(This,max);
2171}
2172static FORCEINLINE HRESULT IVMRFilterConfig9_SetRenderingPrefs(IVMRFilterConfig9* This,DWORD renderflags) {
2173    return This->lpVtbl->SetRenderingPrefs(This,renderflags);
2174}
2175static FORCEINLINE HRESULT IVMRFilterConfig9_GetRenderingPrefs(IVMRFilterConfig9* This,DWORD *renderflags) {
2176    return This->lpVtbl->GetRenderingPrefs(This,renderflags);
2177}
2178static FORCEINLINE HRESULT IVMRFilterConfig9_SetRenderingMode(IVMRFilterConfig9* This,DWORD mode) {
2179    return This->lpVtbl->SetRenderingMode(This,mode);
2180}
2181static FORCEINLINE HRESULT IVMRFilterConfig9_GetRenderingMode(IVMRFilterConfig9* This,DWORD *mode) {
2182    return This->lpVtbl->GetRenderingMode(This,mode);
2183}
2184#endif
2185#endif
2186
2187#endif
2188
2189HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetImageCompositor_Proxy(
2190    IVMRFilterConfig9* This,
2191    IVMRImageCompositor9 *compositor);
2192void __RPC_STUB IVMRFilterConfig9_SetImageCompositor_Stub(
2193    IRpcStubBuffer* This,
2194    IRpcChannelBuffer* pRpcChannelBuffer,
2195    PRPC_MESSAGE pRpcMessage,
2196    DWORD* pdwStubPhase);
2197HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetNumberOfStreams_Proxy(
2198    IVMRFilterConfig9* This,
2199    DWORD max);
2200void __RPC_STUB IVMRFilterConfig9_SetNumberOfStreams_Stub(
2201    IRpcStubBuffer* This,
2202    IRpcChannelBuffer* pRpcChannelBuffer,
2203    PRPC_MESSAGE pRpcMessage,
2204    DWORD* pdwStubPhase);
2205HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_GetNumberOfStreams_Proxy(
2206    IVMRFilterConfig9* This,
2207    DWORD *max);
2208void __RPC_STUB IVMRFilterConfig9_GetNumberOfStreams_Stub(
2209    IRpcStubBuffer* This,
2210    IRpcChannelBuffer* pRpcChannelBuffer,
2211    PRPC_MESSAGE pRpcMessage,
2212    DWORD* pdwStubPhase);
2213HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetRenderingPrefs_Proxy(
2214    IVMRFilterConfig9* This,
2215    DWORD renderflags);
2216void __RPC_STUB IVMRFilterConfig9_SetRenderingPrefs_Stub(
2217    IRpcStubBuffer* This,
2218    IRpcChannelBuffer* pRpcChannelBuffer,
2219    PRPC_MESSAGE pRpcMessage,
2220    DWORD* pdwStubPhase);
2221HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_GetRenderingPrefs_Proxy(
2222    IVMRFilterConfig9* This,
2223    DWORD *renderflags);
2224void __RPC_STUB IVMRFilterConfig9_GetRenderingPrefs_Stub(
2225    IRpcStubBuffer* This,
2226    IRpcChannelBuffer* pRpcChannelBuffer,
2227    PRPC_MESSAGE pRpcMessage,
2228    DWORD* pdwStubPhase);
2229HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetRenderingMode_Proxy(
2230    IVMRFilterConfig9* This,
2231    DWORD mode);
2232void __RPC_STUB IVMRFilterConfig9_SetRenderingMode_Stub(
2233    IRpcStubBuffer* This,
2234    IRpcChannelBuffer* pRpcChannelBuffer,
2235    PRPC_MESSAGE pRpcMessage,
2236    DWORD* pdwStubPhase);
2237HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_GetRenderingMode_Proxy(
2238    IVMRFilterConfig9* This,
2239    DWORD *mode);
2240void __RPC_STUB IVMRFilterConfig9_GetRenderingMode_Stub(
2241    IRpcStubBuffer* This,
2242    IRpcChannelBuffer* pRpcChannelBuffer,
2243    PRPC_MESSAGE pRpcMessage,
2244    DWORD* pdwStubPhase);
2245
2246#endif  /* __IVMRFilterConfig9_INTERFACE_DEFINED__ */
2247
2248/*****************************************************************************
2249 * IVMRAspectRatioControl9 interface
2250 */
2251#ifndef __IVMRAspectRatioControl9_INTERFACE_DEFINED__
2252#define __IVMRAspectRatioControl9_INTERFACE_DEFINED__
2253
2254DEFINE_GUID(IID_IVMRAspectRatioControl9, 0x00d96c29, 0xbbde, 0x4efc, 0x99,0x01, 0xbb,0x50,0x36,0x39,0x21,0x46);
2255#if defined(__cplusplus) && !defined(CINTERFACE)
2256MIDL_INTERFACE("00d96c29-bbde-4efc-9901-bb5036392146")
2257IVMRAspectRatioControl9 : public IUnknown
2258{
2259    virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode(
2260        DWORD *mode) = 0;
2261
2262    virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode(
2263        DWORD mode) = 0;
2264
2265};
2266#ifdef __CRT_UUID_DECL
2267__CRT_UUID_DECL(IVMRAspectRatioControl9, 0x00d96c29, 0xbbde, 0x4efc, 0x99,0x01, 0xbb,0x50,0x36,0x39,0x21,0x46)
2268#endif
2269#else
2270typedef struct IVMRAspectRatioControl9Vtbl {
2271    BEGIN_INTERFACE
2272
2273    /*** IUnknown methods ***/
2274    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2275        IVMRAspectRatioControl9* This,
2276        REFIID riid,
2277        void **ppvObject);
2278
2279    ULONG (STDMETHODCALLTYPE *AddRef)(
2280        IVMRAspectRatioControl9* This);
2281
2282    ULONG (STDMETHODCALLTYPE *Release)(
2283        IVMRAspectRatioControl9* This);
2284
2285    /*** IVMRAspectRatioControl9 methods ***/
2286    HRESULT (STDMETHODCALLTYPE *GetAspectRatioMode)(
2287        IVMRAspectRatioControl9* This,
2288        DWORD *mode);
2289
2290    HRESULT (STDMETHODCALLTYPE *SetAspectRatioMode)(
2291        IVMRAspectRatioControl9* This,
2292        DWORD mode);
2293
2294    END_INTERFACE
2295} IVMRAspectRatioControl9Vtbl;
2296interface IVMRAspectRatioControl9 {
2297    CONST_VTBL IVMRAspectRatioControl9Vtbl* lpVtbl;
2298};
2299
2300#ifdef COBJMACROS
2301#ifndef WIDL_C_INLINE_WRAPPERS
2302/*** IUnknown methods ***/
2303#define IVMRAspectRatioControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2304#define IVMRAspectRatioControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
2305#define IVMRAspectRatioControl9_Release(This) (This)->lpVtbl->Release(This)
2306/*** IVMRAspectRatioControl9 methods ***/
2307#define IVMRAspectRatioControl9_GetAspectRatioMode(This,mode) (This)->lpVtbl->GetAspectRatioMode(This,mode)
2308#define IVMRAspectRatioControl9_SetAspectRatioMode(This,mode) (This)->lpVtbl->SetAspectRatioMode(This,mode)
2309#else
2310/*** IUnknown methods ***/
2311static FORCEINLINE HRESULT IVMRAspectRatioControl9_QueryInterface(IVMRAspectRatioControl9* This,REFIID riid,void **ppvObject) {
2312    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2313}
2314static FORCEINLINE ULONG IVMRAspectRatioControl9_AddRef(IVMRAspectRatioControl9* This) {
2315    return This->lpVtbl->AddRef(This);
2316}
2317static FORCEINLINE ULONG IVMRAspectRatioControl9_Release(IVMRAspectRatioControl9* This) {
2318    return This->lpVtbl->Release(This);
2319}
2320/*** IVMRAspectRatioControl9 methods ***/
2321static FORCEINLINE HRESULT IVMRAspectRatioControl9_GetAspectRatioMode(IVMRAspectRatioControl9* This,DWORD *mode) {
2322    return This->lpVtbl->GetAspectRatioMode(This,mode);
2323}
2324static FORCEINLINE HRESULT IVMRAspectRatioControl9_SetAspectRatioMode(IVMRAspectRatioControl9* This,DWORD mode) {
2325    return This->lpVtbl->SetAspectRatioMode(This,mode);
2326}
2327#endif
2328#endif
2329
2330#endif
2331
2332HRESULT STDMETHODCALLTYPE IVMRAspectRatioControl9_GetAspectRatioMode_Proxy(
2333    IVMRAspectRatioControl9* This,
2334    DWORD *mode);
2335void __RPC_STUB IVMRAspectRatioControl9_GetAspectRatioMode_Stub(
2336    IRpcStubBuffer* This,
2337    IRpcChannelBuffer* pRpcChannelBuffer,
2338    PRPC_MESSAGE pRpcMessage,
2339    DWORD* pdwStubPhase);
2340HRESULT STDMETHODCALLTYPE IVMRAspectRatioControl9_SetAspectRatioMode_Proxy(
2341    IVMRAspectRatioControl9* This,
2342    DWORD mode);
2343void __RPC_STUB IVMRAspectRatioControl9_SetAspectRatioMode_Stub(
2344    IRpcStubBuffer* This,
2345    IRpcChannelBuffer* pRpcChannelBuffer,
2346    PRPC_MESSAGE pRpcMessage,
2347    DWORD* pdwStubPhase);
2348
2349#endif  /* __IVMRAspectRatioControl9_INTERFACE_DEFINED__ */
2350
2351typedef struct _VMR9MonitorInfo {
2352    UINT uDevID;
2353    RECT rcMonitor;
2354    HMONITOR hMon;
2355    DWORD dwFlags;
2356    WCHAR szDevice[32];
2357    WCHAR szDescription[512];
2358    LARGE_INTEGER liDriverVersion;
2359    DWORD dwVendorId;
2360    DWORD dwDeviceId;
2361    DWORD dwSubSysId;
2362    DWORD dwRevision;
2363} VMR9MonitorInfo;
2364/*****************************************************************************
2365 * IVMRMonitorConfig9 interface
2366 */
2367#ifndef __IVMRMonitorConfig9_INTERFACE_DEFINED__
2368#define __IVMRMonitorConfig9_INTERFACE_DEFINED__
2369
2370DEFINE_GUID(IID_IVMRMonitorConfig9, 0x46c2e457, 0x8ba0, 0x4eef, 0xb8,0x0b, 0x06,0x80,0xf0,0x97,0x87,0x49);
2371#if defined(__cplusplus) && !defined(CINTERFACE)
2372MIDL_INTERFACE("46c2e457-8ba0-4eef-b80b-0680f0978749")
2373IVMRMonitorConfig9 : public IUnknown
2374{
2375    virtual HRESULT STDMETHODCALLTYPE SetMonitor(
2376        UINT uDev) = 0;
2377
2378    virtual HRESULT STDMETHODCALLTYPE GetMonitor(
2379        UINT *uDev) = 0;
2380
2381    virtual HRESULT STDMETHODCALLTYPE SetDefaultMonitor(
2382        UINT uDev) = 0;
2383
2384    virtual HRESULT STDMETHODCALLTYPE GetDefaultMonitor(
2385        UINT *uDev) = 0;
2386
2387    virtual HRESULT STDMETHODCALLTYPE GetAvailableMonitors(
2388        VMR9MonitorInfo *info,
2389        DWORD arraysize,
2390        DWORD *numdev) = 0;
2391
2392};
2393#ifdef __CRT_UUID_DECL
2394__CRT_UUID_DECL(IVMRMonitorConfig9, 0x46c2e457, 0x8ba0, 0x4eef, 0xb8,0x0b, 0x06,0x80,0xf0,0x97,0x87,0x49)
2395#endif
2396#else
2397typedef struct IVMRMonitorConfig9Vtbl {
2398    BEGIN_INTERFACE
2399
2400    /*** IUnknown methods ***/
2401    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2402        IVMRMonitorConfig9* This,
2403        REFIID riid,
2404        void **ppvObject);
2405
2406    ULONG (STDMETHODCALLTYPE *AddRef)(
2407        IVMRMonitorConfig9* This);
2408
2409    ULONG (STDMETHODCALLTYPE *Release)(
2410        IVMRMonitorConfig9* This);
2411
2412    /*** IVMRMonitorConfig9 methods ***/
2413    HRESULT (STDMETHODCALLTYPE *SetMonitor)(
2414        IVMRMonitorConfig9* This,
2415        UINT uDev);
2416
2417    HRESULT (STDMETHODCALLTYPE *GetMonitor)(
2418        IVMRMonitorConfig9* This,
2419        UINT *uDev);
2420
2421    HRESULT (STDMETHODCALLTYPE *SetDefaultMonitor)(
2422        IVMRMonitorConfig9* This,
2423        UINT uDev);
2424
2425    HRESULT (STDMETHODCALLTYPE *GetDefaultMonitor)(
2426        IVMRMonitorConfig9* This,
2427        UINT *uDev);
2428
2429    HRESULT (STDMETHODCALLTYPE *GetAvailableMonitors)(
2430        IVMRMonitorConfig9* This,
2431        VMR9MonitorInfo *info,
2432        DWORD arraysize,
2433        DWORD *numdev);
2434
2435    END_INTERFACE
2436} IVMRMonitorConfig9Vtbl;
2437interface IVMRMonitorConfig9 {
2438    CONST_VTBL IVMRMonitorConfig9Vtbl* lpVtbl;
2439};
2440
2441#ifdef COBJMACROS
2442#ifndef WIDL_C_INLINE_WRAPPERS
2443/*** IUnknown methods ***/
2444#define IVMRMonitorConfig9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2445#define IVMRMonitorConfig9_AddRef(This) (This)->lpVtbl->AddRef(This)
2446#define IVMRMonitorConfig9_Release(This) (This)->lpVtbl->Release(This)
2447/*** IVMRMonitorConfig9 methods ***/
2448#define IVMRMonitorConfig9_SetMonitor(This,uDev) (This)->lpVtbl->SetMonitor(This,uDev)
2449#define IVMRMonitorConfig9_GetMonitor(This,uDev) (This)->lpVtbl->GetMonitor(This,uDev)
2450#define IVMRMonitorConfig9_SetDefaultMonitor(This,uDev) (This)->lpVtbl->SetDefaultMonitor(This,uDev)
2451#define IVMRMonitorConfig9_GetDefaultMonitor(This,uDev) (This)->lpVtbl->GetDefaultMonitor(This,uDev)
2452#define IVMRMonitorConfig9_GetAvailableMonitors(This,info,arraysize,numdev) (This)->lpVtbl->GetAvailableMonitors(This,info,arraysize,numdev)
2453#else
2454/*** IUnknown methods ***/
2455static FORCEINLINE HRESULT IVMRMonitorConfig9_QueryInterface(IVMRMonitorConfig9* This,REFIID riid,void **ppvObject) {
2456    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2457}
2458static FORCEINLINE ULONG IVMRMonitorConfig9_AddRef(IVMRMonitorConfig9* This) {
2459    return This->lpVtbl->AddRef(This);
2460}
2461static FORCEINLINE ULONG IVMRMonitorConfig9_Release(IVMRMonitorConfig9* This) {
2462    return This->lpVtbl->Release(This);
2463}
2464/*** IVMRMonitorConfig9 methods ***/
2465static FORCEINLINE HRESULT IVMRMonitorConfig9_SetMonitor(IVMRMonitorConfig9* This,UINT uDev) {
2466    return This->lpVtbl->SetMonitor(This,uDev);
2467}
2468static FORCEINLINE HRESULT IVMRMonitorConfig9_GetMonitor(IVMRMonitorConfig9* This,UINT *uDev) {
2469    return This->lpVtbl->GetMonitor(This,uDev);
2470}
2471static FORCEINLINE HRESULT IVMRMonitorConfig9_SetDefaultMonitor(IVMRMonitorConfig9* This,UINT uDev) {
2472    return This->lpVtbl->SetDefaultMonitor(This,uDev);
2473}
2474static FORCEINLINE HRESULT IVMRMonitorConfig9_GetDefaultMonitor(IVMRMonitorConfig9* This,UINT *uDev) {
2475    return This->lpVtbl->GetDefaultMonitor(This,uDev);
2476}
2477static FORCEINLINE HRESULT IVMRMonitorConfig9_GetAvailableMonitors(IVMRMonitorConfig9* This,VMR9MonitorInfo *info,DWORD arraysize,DWORD *numdev) {
2478    return This->lpVtbl->GetAvailableMonitors(This,info,arraysize,numdev);
2479}
2480#endif
2481#endif
2482
2483#endif
2484
2485HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_SetMonitor_Proxy(
2486    IVMRMonitorConfig9* This,
2487    UINT uDev);
2488void __RPC_STUB IVMRMonitorConfig9_SetMonitor_Stub(
2489    IRpcStubBuffer* This,
2490    IRpcChannelBuffer* pRpcChannelBuffer,
2491    PRPC_MESSAGE pRpcMessage,
2492    DWORD* pdwStubPhase);
2493HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_GetMonitor_Proxy(
2494    IVMRMonitorConfig9* This,
2495    UINT *uDev);
2496void __RPC_STUB IVMRMonitorConfig9_GetMonitor_Stub(
2497    IRpcStubBuffer* This,
2498    IRpcChannelBuffer* pRpcChannelBuffer,
2499    PRPC_MESSAGE pRpcMessage,
2500    DWORD* pdwStubPhase);
2501HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_SetDefaultMonitor_Proxy(
2502    IVMRMonitorConfig9* This,
2503    UINT uDev);
2504void __RPC_STUB IVMRMonitorConfig9_SetDefaultMonitor_Stub(
2505    IRpcStubBuffer* This,
2506    IRpcChannelBuffer* pRpcChannelBuffer,
2507    PRPC_MESSAGE pRpcMessage,
2508    DWORD* pdwStubPhase);
2509HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_GetDefaultMonitor_Proxy(
2510    IVMRMonitorConfig9* This,
2511    UINT *uDev);
2512void __RPC_STUB IVMRMonitorConfig9_GetDefaultMonitor_Stub(
2513    IRpcStubBuffer* This,
2514    IRpcChannelBuffer* pRpcChannelBuffer,
2515    PRPC_MESSAGE pRpcMessage,
2516    DWORD* pdwStubPhase);
2517HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_GetAvailableMonitors_Proxy(
2518    IVMRMonitorConfig9* This,
2519    VMR9MonitorInfo *info,
2520    DWORD arraysize,
2521    DWORD *numdev);
2522void __RPC_STUB IVMRMonitorConfig9_GetAvailableMonitors_Stub(
2523    IRpcStubBuffer* This,
2524    IRpcChannelBuffer* pRpcChannelBuffer,
2525    PRPC_MESSAGE pRpcMessage,
2526    DWORD* pdwStubPhase);
2527
2528#endif  /* __IVMRMonitorConfig9_INTERFACE_DEFINED__ */
2529
2530typedef enum _VMR9DeinterlacePrefs {
2531    DeinterlacePref9_NextBest = 0x1,
2532    DeinterlacePref9_BOB = 0x2,
2533    DeinterlacePref9_Weave = 0x4,
2534    DeinterlacePref9_Mask = 0x7
2535} VMR9DeinterlacePrefs;
2536typedef enum _VMR9DeinterlaceTech {
2537    DeinterlaceTech9_Unknown = 0,
2538    DeinterlaceTech9_BOBLineReplicate = 0x1,
2539    DeinterlaceTech9_BOBVerticalStretch = 0x2,
2540    DeinterlaceTech9_MedianFiltering = 0x4,
2541    DeinterlaceTech9_EdgeFiltering = 0x10,
2542    DeinterlaceTech9_FieldAdaptive = 0x20,
2543    DeinterlaceTech9_PixelAdaptive = 0x40,
2544    DeinterlaceTech9_MotionVectorSteered = 0x80
2545} VMR9DeinterlaceTech;
2546typedef struct _VMR9Frequency {
2547    DWORD dwNumerator;
2548    DWORD dwDenominator;
2549} VMR9Frequency;
2550typedef enum _VMR9_SampleFormat {
2551    VMR9_SampleReserved = 1,
2552    VMR9_SampleProgressiveFrame = 2,
2553    VMR9_SampleFieldInterleavedEvenFirst = 3,
2554    VMR9_SampleFieldInterleavedOddFirst = 4,
2555    VMR9_SampleFieldSingleEven = 5,
2556    VMR9_SampleFieldSingleOdd = 6
2557} VMR9_SampleFormat;
2558typedef struct _VMR9VideoDesc {
2559    DWORD dwSize;
2560    DWORD dwSampleWidth;
2561    DWORD dwSampleHeight;
2562    VMR9_SampleFormat SampleFormat;
2563    DWORD dwFourCC;
2564    VMR9Frequency InputSampleFreq;
2565    VMR9Frequency OutputFrameFreq;
2566} VMR9VideoDesc;
2567typedef struct _VMR9DeinterlaceCaps {
2568    DWORD dwSize;
2569    DWORD dwNumPreviousOutputFrames;
2570    DWORD dwNumForwardRefSamples;
2571    DWORD dwNumBackwardRefSamples;
2572    VMR9DeinterlaceTech DeinterlaceTechnology;
2573} VMR9DeinterlaceCaps;
2574/*****************************************************************************
2575 * IVMRDeinterlaceControl9 interface
2576 */
2577#ifndef __IVMRDeinterlaceControl9_INTERFACE_DEFINED__
2578#define __IVMRDeinterlaceControl9_INTERFACE_DEFINED__
2579
2580DEFINE_GUID(IID_IVMRDeinterlaceControl9, 0xa215fb8d, 0x13c2, 0x4f7f, 0x99,0x3c, 0x00,0x3d,0x62,0x71,0xa4,0x59);
2581#if defined(__cplusplus) && !defined(CINTERFACE)
2582MIDL_INTERFACE("a215fb8d-13c2-4f7f-993c-003d6271a459")
2583IVMRDeinterlaceControl9 : public IUnknown
2584{
2585    virtual HRESULT STDMETHODCALLTYPE GetNumberOfDeinterlaceModes(
2586        VMR9VideoDesc *desc,
2587        DWORD *nummodes,
2588        GUID *modes) = 0;
2589
2590    virtual HRESULT STDMETHODCALLTYPE GetDeinterlaceModeCaps(
2591        GUID *mode,
2592        VMR9VideoDesc *desc,
2593        VMR9DeinterlaceCaps *caps) = 0;
2594
2595    virtual HRESULT STDMETHODCALLTYPE GetDeinterlaceMode(
2596        DWORD streamid,
2597        GUID *mode) = 0;
2598
2599    virtual HRESULT STDMETHODCALLTYPE SetDeinterlaceMode(
2600        DWORD streamid,
2601        GUID *mode) = 0;
2602
2603    virtual HRESULT STDMETHODCALLTYPE GetDeinterlacePrefs(
2604        DWORD *prefs) = 0;
2605
2606    virtual HRESULT STDMETHODCALLTYPE SetDeinterlacePrefs(
2607        DWORD prefs) = 0;
2608
2609    virtual HRESULT STDMETHODCALLTYPE GetActualDeinterlaceMode(
2610        DWORD streamid,
2611        GUID *mode) = 0;
2612
2613};
2614#ifdef __CRT_UUID_DECL
2615__CRT_UUID_DECL(IVMRDeinterlaceControl9, 0xa215fb8d, 0x13c2, 0x4f7f, 0x99,0x3c, 0x00,0x3d,0x62,0x71,0xa4,0x59)
2616#endif
2617#else
2618typedef struct IVMRDeinterlaceControl9Vtbl {
2619    BEGIN_INTERFACE
2620
2621    /*** IUnknown methods ***/
2622    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2623        IVMRDeinterlaceControl9* This,
2624        REFIID riid,
2625        void **ppvObject);
2626
2627    ULONG (STDMETHODCALLTYPE *AddRef)(
2628        IVMRDeinterlaceControl9* This);
2629
2630    ULONG (STDMETHODCALLTYPE *Release)(
2631        IVMRDeinterlaceControl9* This);
2632
2633    /*** IVMRDeinterlaceControl9 methods ***/
2634    HRESULT (STDMETHODCALLTYPE *GetNumberOfDeinterlaceModes)(
2635        IVMRDeinterlaceControl9* This,
2636        VMR9VideoDesc *desc,
2637        DWORD *nummodes,
2638        GUID *modes);
2639
2640    HRESULT (STDMETHODCALLTYPE *GetDeinterlaceModeCaps)(
2641        IVMRDeinterlaceControl9* This,
2642        GUID *mode,
2643        VMR9VideoDesc *desc,
2644        VMR9DeinterlaceCaps *caps);
2645
2646    HRESULT (STDMETHODCALLTYPE *GetDeinterlaceMode)(
2647        IVMRDeinterlaceControl9* This,
2648        DWORD streamid,
2649        GUID *mode);
2650
2651    HRESULT (STDMETHODCALLTYPE *SetDeinterlaceMode)(
2652        IVMRDeinterlaceControl9* This,
2653        DWORD streamid,
2654        GUID *mode);
2655
2656    HRESULT (STDMETHODCALLTYPE *GetDeinterlacePrefs)(
2657        IVMRDeinterlaceControl9* This,
2658        DWORD *prefs);
2659
2660    HRESULT (STDMETHODCALLTYPE *SetDeinterlacePrefs)(
2661        IVMRDeinterlaceControl9* This,
2662        DWORD prefs);
2663
2664    HRESULT (STDMETHODCALLTYPE *GetActualDeinterlaceMode)(
2665        IVMRDeinterlaceControl9* This,
2666        DWORD streamid,
2667        GUID *mode);
2668
2669    END_INTERFACE
2670} IVMRDeinterlaceControl9Vtbl;
2671interface IVMRDeinterlaceControl9 {
2672    CONST_VTBL IVMRDeinterlaceControl9Vtbl* lpVtbl;
2673};
2674
2675#ifdef COBJMACROS
2676#ifndef WIDL_C_INLINE_WRAPPERS
2677/*** IUnknown methods ***/
2678#define IVMRDeinterlaceControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2679#define IVMRDeinterlaceControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
2680#define IVMRDeinterlaceControl9_Release(This) (This)->lpVtbl->Release(This)
2681/*** IVMRDeinterlaceControl9 methods ***/
2682#define IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes(This,desc,nummodes,modes) (This)->lpVtbl->GetNumberOfDeinterlaceModes(This,desc,nummodes,modes)
2683#define IVMRDeinterlaceControl9_GetDeinterlaceModeCaps(This,mode,desc,caps) (This)->lpVtbl->GetDeinterlaceModeCaps(This,mode,desc,caps)
2684#define IVMRDeinterlaceControl9_GetDeinterlaceMode(This,streamid,mode) (This)->lpVtbl->GetDeinterlaceMode(This,streamid,mode)
2685#define IVMRDeinterlaceControl9_SetDeinterlaceMode(This,streamid,mode) (This)->lpVtbl->SetDeinterlaceMode(This,streamid,mode)
2686#define IVMRDeinterlaceControl9_GetDeinterlacePrefs(This,prefs) (This)->lpVtbl->GetDeinterlacePrefs(This,prefs)
2687#define IVMRDeinterlaceControl9_SetDeinterlacePrefs(This,prefs) (This)->lpVtbl->SetDeinterlacePrefs(This,prefs)
2688#define IVMRDeinterlaceControl9_GetActualDeinterlaceMode(This,streamid,mode) (This)->lpVtbl->GetActualDeinterlaceMode(This,streamid,mode)
2689#else
2690/*** IUnknown methods ***/
2691static FORCEINLINE HRESULT IVMRDeinterlaceControl9_QueryInterface(IVMRDeinterlaceControl9* This,REFIID riid,void **ppvObject) {
2692    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2693}
2694static FORCEINLINE ULONG IVMRDeinterlaceControl9_AddRef(IVMRDeinterlaceControl9* This) {
2695    return This->lpVtbl->AddRef(This);
2696}
2697static FORCEINLINE ULONG IVMRDeinterlaceControl9_Release(IVMRDeinterlaceControl9* This) {
2698    return This->lpVtbl->Release(This);
2699}
2700/*** IVMRDeinterlaceControl9 methods ***/
2701static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes(IVMRDeinterlaceControl9* This,VMR9VideoDesc *desc,DWORD *nummodes,GUID *modes) {
2702    return This->lpVtbl->GetNumberOfDeinterlaceModes(This,desc,nummodes,modes);
2703}
2704static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlaceModeCaps(IVMRDeinterlaceControl9* This,GUID *mode,VMR9VideoDesc *desc,VMR9DeinterlaceCaps *caps) {
2705    return This->lpVtbl->GetDeinterlaceModeCaps(This,mode,desc,caps);
2706}
2707static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) {
2708    return This->lpVtbl->GetDeinterlaceMode(This,streamid,mode);
2709}
2710static FORCEINLINE HRESULT IVMRDeinterlaceControl9_SetDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) {
2711    return This->lpVtbl->SetDeinterlaceMode(This,streamid,mode);
2712}
2713static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlacePrefs(IVMRDeinterlaceControl9* This,DWORD *prefs) {
2714    return This->lpVtbl->GetDeinterlacePrefs(This,prefs);
2715}
2716static FORCEINLINE HRESULT IVMRDeinterlaceControl9_SetDeinterlacePrefs(IVMRDeinterlaceControl9* This,DWORD prefs) {
2717    return This->lpVtbl->SetDeinterlacePrefs(This,prefs);
2718}
2719static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetActualDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) {
2720    return This->lpVtbl->GetActualDeinterlaceMode(This,streamid,mode);
2721}
2722#endif
2723#endif
2724
2725#endif
2726
2727HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes_Proxy(
2728    IVMRDeinterlaceControl9* This,
2729    VMR9VideoDesc *desc,
2730    DWORD *nummodes,
2731    GUID *modes);
2732void __RPC_STUB IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes_Stub(
2733    IRpcStubBuffer* This,
2734    IRpcChannelBuffer* pRpcChannelBuffer,
2735    PRPC_MESSAGE pRpcMessage,
2736    DWORD* pdwStubPhase);
2737HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetDeinterlaceModeCaps_Proxy(
2738    IVMRDeinterlaceControl9* This,
2739    GUID *mode,
2740    VMR9VideoDesc *desc,
2741    VMR9DeinterlaceCaps *caps);
2742void __RPC_STUB IVMRDeinterlaceControl9_GetDeinterlaceModeCaps_Stub(
2743    IRpcStubBuffer* This,
2744    IRpcChannelBuffer* pRpcChannelBuffer,
2745    PRPC_MESSAGE pRpcMessage,
2746    DWORD* pdwStubPhase);
2747HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetDeinterlaceMode_Proxy(
2748    IVMRDeinterlaceControl9* This,
2749    DWORD streamid,
2750    GUID *mode);
2751void __RPC_STUB IVMRDeinterlaceControl9_GetDeinterlaceMode_Stub(
2752    IRpcStubBuffer* This,
2753    IRpcChannelBuffer* pRpcChannelBuffer,
2754    PRPC_MESSAGE pRpcMessage,
2755    DWORD* pdwStubPhase);
2756HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_SetDeinterlaceMode_Proxy(
2757    IVMRDeinterlaceControl9* This,
2758    DWORD streamid,
2759    GUID *mode);
2760void __RPC_STUB IVMRDeinterlaceControl9_SetDeinterlaceMode_Stub(
2761    IRpcStubBuffer* This,
2762    IRpcChannelBuffer* pRpcChannelBuffer,
2763    PRPC_MESSAGE pRpcMessage,
2764    DWORD* pdwStubPhase);
2765HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetDeinterlacePrefs_Proxy(
2766    IVMRDeinterlaceControl9* This,
2767    DWORD *prefs);
2768void __RPC_STUB IVMRDeinterlaceControl9_GetDeinterlacePrefs_Stub(
2769    IRpcStubBuffer* This,
2770    IRpcChannelBuffer* pRpcChannelBuffer,
2771    PRPC_MESSAGE pRpcMessage,
2772    DWORD* pdwStubPhase);
2773HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_SetDeinterlacePrefs_Proxy(
2774    IVMRDeinterlaceControl9* This,
2775    DWORD prefs);
2776void __RPC_STUB IVMRDeinterlaceControl9_SetDeinterlacePrefs_Stub(
2777    IRpcStubBuffer* This,
2778    IRpcChannelBuffer* pRpcChannelBuffer,
2779    PRPC_MESSAGE pRpcMessage,
2780    DWORD* pdwStubPhase);
2781HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetActualDeinterlaceMode_Proxy(
2782    IVMRDeinterlaceControl9* This,
2783    DWORD streamid,
2784    GUID *mode);
2785void __RPC_STUB IVMRDeinterlaceControl9_GetActualDeinterlaceMode_Stub(
2786    IRpcStubBuffer* This,
2787    IRpcChannelBuffer* pRpcChannelBuffer,
2788    PRPC_MESSAGE pRpcMessage,
2789    DWORD* pdwStubPhase);
2790
2791#endif  /* __IVMRDeinterlaceControl9_INTERFACE_DEFINED__ */
2792
2793typedef struct _VMR9VideoStreamInfo {
2794    IDirect3DSurface9 *pddsVideoSurface;
2795    DWORD dwWidth;
2796    DWORD dwHeight;
2797    DWORD dwStrmID;
2798    FLOAT fAlpha;
2799    VMR9NormalizedRect rNormal;
2800    REFERENCE_TIME rtStart;
2801    REFERENCE_TIME rtEnd;
2802    VMR9_SampleFormat SampleFormat;
2803} VMR9VideoStreamInfo;
2804/*****************************************************************************
2805 * IVMRImageCompositor9 interface
2806 */
2807#ifndef __IVMRImageCompositor9_INTERFACE_DEFINED__
2808#define __IVMRImageCompositor9_INTERFACE_DEFINED__
2809
2810DEFINE_GUID(IID_IVMRImageCompositor9, 0x4a5c89eb, 0xdf51, 0x4654, 0xac,0x2a, 0xe4,0x8e,0x02,0xbb,0xab,0xf6);
2811#if defined(__cplusplus) && !defined(CINTERFACE)
2812MIDL_INTERFACE("4a5c89eb-df51-4654-ac2a-e48e02bbabf6")
2813IVMRImageCompositor9 : public IUnknown
2814{
2815    virtual HRESULT STDMETHODCALLTYPE InitCompositionDevice(
2816        IUnknown *d3ddev) = 0;
2817
2818    virtual HRESULT STDMETHODCALLTYPE TermCompositionDevice(
2819        IUnknown *d3ddev) = 0;
2820
2821    virtual HRESULT STDMETHODCALLTYPE CompositeImage(
2822        IUnknown *d3ddev,
2823        IDirect3DSurface9 *d3dtarget,
2824        AM_MEDIA_TYPE *mttarget,
2825        REFERENCE_TIME start,
2826        REFERENCE_TIME stop,
2827        D3DCOLOR back,
2828        VMR9VideoStreamInfo *info,
2829        UINT streams) = 0;
2830
2831};
2832#ifdef __CRT_UUID_DECL
2833__CRT_UUID_DECL(IVMRImageCompositor9, 0x4a5c89eb, 0xdf51, 0x4654, 0xac,0x2a, 0xe4,0x8e,0x02,0xbb,0xab,0xf6)
2834#endif
2835#else
2836typedef struct IVMRImageCompositor9Vtbl {
2837    BEGIN_INTERFACE
2838
2839    /*** IUnknown methods ***/
2840    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2841        IVMRImageCompositor9* This,
2842        REFIID riid,
2843        void **ppvObject);
2844
2845    ULONG (STDMETHODCALLTYPE *AddRef)(
2846        IVMRImageCompositor9* This);
2847
2848    ULONG (STDMETHODCALLTYPE *Release)(
2849        IVMRImageCompositor9* This);
2850
2851    /*** IVMRImageCompositor9 methods ***/
2852    HRESULT (STDMETHODCALLTYPE *InitCompositionDevice)(
2853        IVMRImageCompositor9* This,
2854        IUnknown *d3ddev);
2855
2856    HRESULT (STDMETHODCALLTYPE *TermCompositionDevice)(
2857        IVMRImageCompositor9* This,
2858        IUnknown *d3ddev);
2859
2860    HRESULT (STDMETHODCALLTYPE *CompositeImage)(
2861        IVMRImageCompositor9* This,
2862        IUnknown *d3ddev,
2863        IDirect3DSurface9 *d3dtarget,
2864        AM_MEDIA_TYPE *mttarget,
2865        REFERENCE_TIME start,
2866        REFERENCE_TIME stop,
2867        D3DCOLOR back,
2868        VMR9VideoStreamInfo *info,
2869        UINT streams);
2870
2871    END_INTERFACE
2872} IVMRImageCompositor9Vtbl;
2873interface IVMRImageCompositor9 {
2874    CONST_VTBL IVMRImageCompositor9Vtbl* lpVtbl;
2875};
2876
2877#ifdef COBJMACROS
2878#ifndef WIDL_C_INLINE_WRAPPERS
2879/*** IUnknown methods ***/
2880#define IVMRImageCompositor9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2881#define IVMRImageCompositor9_AddRef(This) (This)->lpVtbl->AddRef(This)
2882#define IVMRImageCompositor9_Release(This) (This)->lpVtbl->Release(This)
2883/*** IVMRImageCompositor9 methods ***/
2884#define IVMRImageCompositor9_InitCompositionDevice(This,d3ddev) (This)->lpVtbl->InitCompositionDevice(This,d3ddev)
2885#define IVMRImageCompositor9_TermCompositionDevice(This,d3ddev) (This)->lpVtbl->TermCompositionDevice(This,d3ddev)
2886#define IVMRImageCompositor9_CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams) (This)->lpVtbl->CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams)
2887#else
2888/*** IUnknown methods ***/
2889static FORCEINLINE HRESULT IVMRImageCompositor9_QueryInterface(IVMRImageCompositor9* This,REFIID riid,void **ppvObject) {
2890    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2891}
2892static FORCEINLINE ULONG IVMRImageCompositor9_AddRef(IVMRImageCompositor9* This) {
2893    return This->lpVtbl->AddRef(This);
2894}
2895static FORCEINLINE ULONG IVMRImageCompositor9_Release(IVMRImageCompositor9* This) {
2896    return This->lpVtbl->Release(This);
2897}
2898/*** IVMRImageCompositor9 methods ***/
2899static FORCEINLINE HRESULT IVMRImageCompositor9_InitCompositionDevice(IVMRImageCompositor9* This,IUnknown *d3ddev) {
2900    return This->lpVtbl->InitCompositionDevice(This,d3ddev);
2901}
2902static FORCEINLINE HRESULT IVMRImageCompositor9_TermCompositionDevice(IVMRImageCompositor9* This,IUnknown *d3ddev) {
2903    return This->lpVtbl->TermCompositionDevice(This,d3ddev);
2904}
2905static FORCEINLINE HRESULT IVMRImageCompositor9_CompositeImage(IVMRImageCompositor9* This,IUnknown *d3ddev,IDirect3DSurface9 *d3dtarget,AM_MEDIA_TYPE *mttarget,REFERENCE_TIME start,REFERENCE_TIME stop,D3DCOLOR back,VMR9VideoStreamInfo *info,UINT streams) {
2906    return This->lpVtbl->CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams);
2907}
2908#endif
2909#endif
2910
2911#endif
2912
2913HRESULT STDMETHODCALLTYPE IVMRImageCompositor9_InitCompositionDevice_Proxy(
2914    IVMRImageCompositor9* This,
2915    IUnknown *d3ddev);
2916void __RPC_STUB IVMRImageCompositor9_InitCompositionDevice_Stub(
2917    IRpcStubBuffer* This,
2918    IRpcChannelBuffer* pRpcChannelBuffer,
2919    PRPC_MESSAGE pRpcMessage,
2920    DWORD* pdwStubPhase);
2921HRESULT STDMETHODCALLTYPE IVMRImageCompositor9_TermCompositionDevice_Proxy(
2922    IVMRImageCompositor9* This,
2923    IUnknown *d3ddev);
2924void __RPC_STUB IVMRImageCompositor9_TermCompositionDevice_Stub(
2925    IRpcStubBuffer* This,
2926    IRpcChannelBuffer* pRpcChannelBuffer,
2927    PRPC_MESSAGE pRpcMessage,
2928    DWORD* pdwStubPhase);
2929HRESULT STDMETHODCALLTYPE IVMRImageCompositor9_CompositeImage_Proxy(
2930    IVMRImageCompositor9* This,
2931    IUnknown *d3ddev,
2932    IDirect3DSurface9 *d3dtarget,
2933    AM_MEDIA_TYPE *mttarget,
2934    REFERENCE_TIME start,
2935    REFERENCE_TIME stop,
2936    D3DCOLOR back,
2937    VMR9VideoStreamInfo *info,
2938    UINT streams);
2939void __RPC_STUB IVMRImageCompositor9_CompositeImage_Stub(
2940    IRpcStubBuffer* This,
2941    IRpcChannelBuffer* pRpcChannelBuffer,
2942    PRPC_MESSAGE pRpcMessage,
2943    DWORD* pdwStubPhase);
2944
2945#endif  /* __IVMRImageCompositor9_INTERFACE_DEFINED__ */
2946
2947/* Begin additional prototypes for all interfaces */
2948
2949
2950/* End additional prototypes */
2951
2952#ifdef __cplusplus
2953}
2954#endif
2955
2956#endif /* __vmr9_h__ */
2957