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__
22 typedef interface IVMRImagePresenter9 IVMRImagePresenter9;
23 #endif
24 
25 #ifndef __IVMRSurfaceAllocator9_FWD_DEFINED__
26 #define __IVMRSurfaceAllocator9_FWD_DEFINED__
27 typedef interface IVMRSurfaceAllocator9 IVMRSurfaceAllocator9;
28 #endif
29 
30 #ifndef __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
31 #define __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
32 typedef interface IVMRSurfaceAllocatorEx9 IVMRSurfaceAllocatorEx9;
33 #endif
34 
35 #ifndef __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
36 #define __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
37 typedef interface IVMRSurfaceAllocatorNotify9 IVMRSurfaceAllocatorNotify9;
38 #endif
39 
40 #ifndef __IVMRWindowlessControl9_FWD_DEFINED__
41 #define __IVMRWindowlessControl9_FWD_DEFINED__
42 typedef interface IVMRWindowlessControl9 IVMRWindowlessControl9;
43 #endif
44 
45 #ifndef __IVMRMixerControl9_FWD_DEFINED__
46 #define __IVMRMixerControl9_FWD_DEFINED__
47 typedef interface IVMRMixerControl9 IVMRMixerControl9;
48 #endif
49 
50 #ifndef __IVMRMixerBitmap9_FWD_DEFINED__
51 #define __IVMRMixerBitmap9_FWD_DEFINED__
52 typedef interface IVMRMixerBitmap9 IVMRMixerBitmap9;
53 #endif
54 
55 #ifndef __IVMRSurface9_FWD_DEFINED__
56 #define __IVMRSurface9_FWD_DEFINED__
57 typedef interface IVMRSurface9 IVMRSurface9;
58 #endif
59 
60 #ifndef __IVMRImagePresenterConfig9_FWD_DEFINED__
61 #define __IVMRImagePresenterConfig9_FWD_DEFINED__
62 typedef interface IVMRImagePresenterConfig9 IVMRImagePresenterConfig9;
63 #endif
64 
65 #ifndef __IVMRVideoStreamControl9_FWD_DEFINED__
66 #define __IVMRVideoStreamControl9_FWD_DEFINED__
67 typedef interface IVMRVideoStreamControl9 IVMRVideoStreamControl9;
68 #endif
69 
70 #ifndef __IVMRFilterConfig9_FWD_DEFINED__
71 #define __IVMRFilterConfig9_FWD_DEFINED__
72 typedef interface IVMRFilterConfig9 IVMRFilterConfig9;
73 #endif
74 
75 #ifndef __IVMRAspectRatioControl9_FWD_DEFINED__
76 #define __IVMRAspectRatioControl9_FWD_DEFINED__
77 typedef interface IVMRAspectRatioControl9 IVMRAspectRatioControl9;
78 #endif
79 
80 #ifndef __IVMRMonitorConfig9_FWD_DEFINED__
81 #define __IVMRMonitorConfig9_FWD_DEFINED__
82 typedef interface IVMRMonitorConfig9 IVMRMonitorConfig9;
83 #endif
84 
85 #ifndef __IVMRDeinterlaceControl9_FWD_DEFINED__
86 #define __IVMRDeinterlaceControl9_FWD_DEFINED__
87 typedef interface IVMRDeinterlaceControl9 IVMRDeinterlaceControl9;
88 #endif
89 
90 #ifndef __IVMRImageCompositor9_FWD_DEFINED__
91 #define __IVMRImageCompositor9_FWD_DEFINED__
92 typedef interface IVMRImageCompositor9 IVMRImageCompositor9;
93 #endif
94 
95 /* Headers for imported files */
96 
97 #include <unknwn.h>
98 
99 #ifdef __cplusplus
100 extern "C" {
101 #endif
102 
103 #if 0
104 #ifndef __IDirect3DSurface9_FWD_DEFINED__
105 #define __IDirect3DSurface9_FWD_DEFINED__
106 typedef interface IDirect3DSurface9 IDirect3DSurface9;
107 #endif
108 
109 #ifndef __IDirect3DDevice9_FWD_DEFINED__
110 #define __IDirect3DDevice9_FWD_DEFINED__
111 typedef interface IDirect3DDevice9 IDirect3DDevice9;
112 #endif
113 
114 typedef LONGLONG REFERENCE_TIME;
115 typedef DWORD D3DFORMAT;
116 typedef DWORD D3DPOOL;
117 typedef HANDLE HMONITOR;
118 typedef struct __WIDL_vmr9_generated_name_00000002 {
119     char dummy;
120 } AM_MEDIA_TYPE;
121 typedef struct __WIDL_vmr9_generated_name_00000003 {
122     char dummy;
123 } D3DCOLOR;
124 #endif
125 #ifndef __IVMRSurface9_FWD_DEFINED__
126 #define __IVMRSurface9_FWD_DEFINED__
127 typedef interface IVMRSurface9 IVMRSurface9;
128 #endif
129 
130 #ifndef __IVMRSurfaceAllocator9_FWD_DEFINED__
131 #define __IVMRSurfaceAllocator9_FWD_DEFINED__
132 typedef interface IVMRSurfaceAllocator9 IVMRSurfaceAllocator9;
133 #endif
134 
135 #ifndef __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
136 #define __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
137 typedef interface IVMRSurfaceAllocatorEx9 IVMRSurfaceAllocatorEx9;
138 #endif
139 
140 #ifndef __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
141 #define __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
142 typedef interface IVMRSurfaceAllocatorNotify9 IVMRSurfaceAllocatorNotify9;
143 #endif
144 
145 #ifndef __IVMRImagePresenter9_FWD_DEFINED__
146 #define __IVMRImagePresenter9_FWD_DEFINED__
147 typedef interface IVMRImagePresenter9 IVMRImagePresenter9;
148 #endif
149 
150 #ifndef __IVMRImagePresenterConfig9_FWD_DEFINED__
151 #define __IVMRImagePresenterConfig9_FWD_DEFINED__
152 typedef interface IVMRImagePresenterConfig9 IVMRImagePresenterConfig9;
153 #endif
154 
155 #ifndef __IVMRMonitorConfig9_FWD_DEFINED__
156 #define __IVMRMonitorConfig9_FWD_DEFINED__
157 typedef interface IVMRMonitorConfig9 IVMRMonitorConfig9;
158 #endif
159 
160 #ifndef __IVMRWindowlessControl9_FWD_DEFINED__
161 #define __IVMRWindowlessControl9_FWD_DEFINED__
162 typedef interface IVMRWindowlessControl9 IVMRWindowlessControl9;
163 #endif
164 
165 #ifndef __IVMRMixerControl9_FWD_DEFINED__
166 #define __IVMRMixerControl9_FWD_DEFINED__
167 typedef interface IVMRMixerControl9 IVMRMixerControl9;
168 #endif
169 
170 #ifndef __IVMRImageCompositor9_FWD_DEFINED__
171 #define __IVMRImageCompositor9_FWD_DEFINED__
172 typedef interface IVMRImageCompositor9 IVMRImageCompositor9;
173 #endif
174 
175 #ifndef __IVMRMixerBitmap9_FWD_DEFINED__
176 #define __IVMRMixerBitmap9_FWD_DEFINED__
177 typedef interface IVMRMixerBitmap9 IVMRMixerBitmap9;
178 #endif
179 
180 #ifndef __IVMRFilterConfig9_FWD_DEFINED__
181 #define __IVMRFilterConfig9_FWD_DEFINED__
182 typedef interface IVMRFilterConfig9 IVMRFilterConfig9;
183 #endif
184 
185 #ifndef __IVMRAspectRatioControl9_FWD_DEFINED__
186 #define __IVMRAspectRatioControl9_FWD_DEFINED__
187 typedef interface IVMRAspectRatioControl9 IVMRAspectRatioControl9;
188 #endif
189 
190 #ifndef __IVMRVideoStreamControl9_FWD_DEFINED__
191 #define __IVMRVideoStreamControl9_FWD_DEFINED__
192 typedef interface IVMRVideoStreamControl9 IVMRVideoStreamControl9;
193 #endif
194 
195 typedef enum _VMR9PresentationFlags {
196     VMR9Sample_SyncPoint = 0x1,
197     VMR9Sample_Preroll = 0x2,
198     VMR9Sample_Discontinuity = 0x4,
199     VMR9Sample_TimeValid = 0x8,
200     VMR9Sample_SrcDstRectsValid = 0x10
201 } VMR9PresentationFlags;
202 typedef 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 
219 DEFINE_GUID(IID_IVMRImagePresenter9, 0x69188c61, 0x12a3, 0x40f0, 0x8f,0xfc, 0x34,0x2e,0x7b,0x43,0x3f,0xd7);
220 #if defined(__cplusplus) && !defined(CINTERFACE)
221 MIDL_INTERFACE("69188c61-12a3-40f0-8ffc-342e7b433fd7")
222 IVMRImagePresenter9 : 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
239 typedef 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;
270 interface 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 ***/
286 static FORCEINLINE HRESULT IVMRImagePresenter9_QueryInterface(IVMRImagePresenter9* This,REFIID riid,void **ppvObject) {
287     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
288 }
289 static FORCEINLINE ULONG IVMRImagePresenter9_AddRef(IVMRImagePresenter9* This) {
290     return This->lpVtbl->AddRef(This);
291 }
292 static FORCEINLINE ULONG IVMRImagePresenter9_Release(IVMRImagePresenter9* This) {
293     return This->lpVtbl->Release(This);
294 }
295 /*** IVMRImagePresenter9 methods ***/
296 static FORCEINLINE HRESULT IVMRImagePresenter9_StartPresenting(IVMRImagePresenter9* This,DWORD_PTR id) {
297     return This->lpVtbl->StartPresenting(This,id);
298 }
299 static FORCEINLINE HRESULT IVMRImagePresenter9_StopPresenting(IVMRImagePresenter9* This,DWORD_PTR id) {
300     return This->lpVtbl->StopPresenting(This,id);
301 }
302 static 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 
310 HRESULT STDMETHODCALLTYPE IVMRImagePresenter9_StartPresenting_Proxy(
311     IVMRImagePresenter9* This,
312     DWORD_PTR id);
313 void __RPC_STUB IVMRImagePresenter9_StartPresenting_Stub(
314     IRpcStubBuffer* This,
315     IRpcChannelBuffer* pRpcChannelBuffer,
316     PRPC_MESSAGE pRpcMessage,
317     DWORD* pdwStubPhase);
318 HRESULT STDMETHODCALLTYPE IVMRImagePresenter9_StopPresenting_Proxy(
319     IVMRImagePresenter9* This,
320     DWORD_PTR id);
321 void __RPC_STUB IVMRImagePresenter9_StopPresenting_Stub(
322     IRpcStubBuffer* This,
323     IRpcChannelBuffer* pRpcChannelBuffer,
324     PRPC_MESSAGE pRpcMessage,
325     DWORD* pdwStubPhase);
326 HRESULT STDMETHODCALLTYPE IVMRImagePresenter9_PresentImage_Proxy(
327     IVMRImagePresenter9* This,
328     DWORD_PTR id,
329     VMR9PresentationInfo *info);
330 void __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 
338 typedef 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;
347 typedef 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 
363 DEFINE_GUID(IID_IVMRSurfaceAllocator9, 0x8d5148ea, 0x3f5d, 0x46cf, 0x9d,0xf1, 0xd1,0xb8,0x96,0xee,0xdb,0x1f);
364 #if defined(__cplusplus) && !defined(CINTERFACE)
365 MIDL_INTERFACE("8d5148ea-3f5d-46cf-9df1-d1b896eedb1f")
366 IVMRSurfaceAllocator9 : 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
390 typedef 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;
429 interface 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 ***/
446 static FORCEINLINE HRESULT IVMRSurfaceAllocator9_QueryInterface(IVMRSurfaceAllocator9* This,REFIID riid,void **ppvObject) {
447     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
448 }
449 static FORCEINLINE ULONG IVMRSurfaceAllocator9_AddRef(IVMRSurfaceAllocator9* This) {
450     return This->lpVtbl->AddRef(This);
451 }
452 static FORCEINLINE ULONG IVMRSurfaceAllocator9_Release(IVMRSurfaceAllocator9* This) {
453     return This->lpVtbl->Release(This);
454 }
455 /*** IVMRSurfaceAllocator9 methods ***/
456 static FORCEINLINE HRESULT IVMRSurfaceAllocator9_InitializeDevice(IVMRSurfaceAllocator9* This,DWORD_PTR id,VMR9AllocationInfo *allocinfo,DWORD *numbuffers) {
457     return This->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers);
458 }
459 static FORCEINLINE HRESULT IVMRSurfaceAllocator9_TerminateDevice(IVMRSurfaceAllocator9* This,DWORD_PTR id) {
460     return This->lpVtbl->TerminateDevice(This,id);
461 }
462 static 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 }
465 static FORCEINLINE HRESULT IVMRSurfaceAllocator9_AdviseNotify(IVMRSurfaceAllocator9* This,IVMRSurfaceAllocatorNotify9 *allocnotify) {
466     return This->lpVtbl->AdviseNotify(This,allocnotify);
467 }
468 #endif
469 #endif
470 
471 #endif
472 
473 HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_InitializeDevice_Proxy(
474     IVMRSurfaceAllocator9* This,
475     DWORD_PTR id,
476     VMR9AllocationInfo *allocinfo,
477     DWORD *numbuffers);
478 void __RPC_STUB IVMRSurfaceAllocator9_InitializeDevice_Stub(
479     IRpcStubBuffer* This,
480     IRpcChannelBuffer* pRpcChannelBuffer,
481     PRPC_MESSAGE pRpcMessage,
482     DWORD* pdwStubPhase);
483 HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_TerminateDevice_Proxy(
484     IVMRSurfaceAllocator9* This,
485     DWORD_PTR id);
486 void __RPC_STUB IVMRSurfaceAllocator9_TerminateDevice_Stub(
487     IRpcStubBuffer* This,
488     IRpcChannelBuffer* pRpcChannelBuffer,
489     PRPC_MESSAGE pRpcMessage,
490     DWORD* pdwStubPhase);
491 HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_GetSurface_Proxy(
492     IVMRSurfaceAllocator9* This,
493     DWORD_PTR id,
494     DWORD surfaceindex,
495     DWORD flags,
496     IDirect3DSurface9 **surface);
497 void __RPC_STUB IVMRSurfaceAllocator9_GetSurface_Stub(
498     IRpcStubBuffer* This,
499     IRpcChannelBuffer* pRpcChannelBuffer,
500     PRPC_MESSAGE pRpcMessage,
501     DWORD* pdwStubPhase);
502 HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_AdviseNotify_Proxy(
503     IVMRSurfaceAllocator9* This,
504     IVMRSurfaceAllocatorNotify9 *allocnotify);
505 void __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 
519 DEFINE_GUID(IID_IVMRSurfaceAllocatorEx9, 0x6de9a68a, 0xa928, 0x4522, 0xbf,0x57, 0x65,0x5a,0xe3,0x86,0x64,0x56);
520 #if defined(__cplusplus) && !defined(CINTERFACE)
521 MIDL_INTERFACE("6de9a68a-a928-4522-bf57-655ae3866456")
522 IVMRSurfaceAllocatorEx9 : 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
536 typedef 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;
584 interface 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 ***/
603 static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_QueryInterface(IVMRSurfaceAllocatorEx9* This,REFIID riid,void **ppvObject) {
604     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
605 }
606 static FORCEINLINE ULONG IVMRSurfaceAllocatorEx9_AddRef(IVMRSurfaceAllocatorEx9* This) {
607     return This->lpVtbl->AddRef(This);
608 }
609 static FORCEINLINE ULONG IVMRSurfaceAllocatorEx9_Release(IVMRSurfaceAllocatorEx9* This) {
610     return This->lpVtbl->Release(This);
611 }
612 /*** IVMRSurfaceAllocator9 methods ***/
613 static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_InitializeDevice(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id,VMR9AllocationInfo *allocinfo,DWORD *numbuffers) {
614     return This->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers);
615 }
616 static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_TerminateDevice(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id) {
617     return This->lpVtbl->TerminateDevice(This,id);
618 }
619 static 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 }
622 static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_AdviseNotify(IVMRSurfaceAllocatorEx9* This,IVMRSurfaceAllocatorNotify9 *allocnotify) {
623     return This->lpVtbl->AdviseNotify(This,allocnotify);
624 }
625 /*** IVMRSurfaceAllocatorEx9 methods ***/
626 static 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 
634 HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorEx9_GetSurfaceEx_Proxy(
635     IVMRSurfaceAllocatorEx9* This,
636     DWORD_PTR id,
637     DWORD surfaceindex,
638     DWORD flags,
639     IDirect3DSurface9 **surface,
640     RECT *dest);
641 void __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 
655 DEFINE_GUID(IID_IVMRSurfaceAllocatorNotify9, 0xdca3f5df, 0xbb3a, 0x4d03, 0xbd,0x81, 0x84,0x61,0x4b,0xfb,0xfa,0x0c);
656 #if defined(__cplusplus) && !defined(CINTERFACE)
657 MIDL_INTERFACE("dca3f5df-bb3a-4d03-bd81-84614bfbfa0c")
658 IVMRSurfaceAllocatorNotify9 : 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
687 typedef 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;
732 interface 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 ***/
750 static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_QueryInterface(IVMRSurfaceAllocatorNotify9* This,REFIID riid,void **ppvObject) {
751     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
752 }
753 static FORCEINLINE ULONG IVMRSurfaceAllocatorNotify9_AddRef(IVMRSurfaceAllocatorNotify9* This) {
754     return This->lpVtbl->AddRef(This);
755 }
756 static FORCEINLINE ULONG IVMRSurfaceAllocatorNotify9_Release(IVMRSurfaceAllocatorNotify9* This) {
757     return This->lpVtbl->Release(This);
758 }
759 /*** IVMRSurfaceAllocatorNotify9 methods ***/
760 static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator(IVMRSurfaceAllocatorNotify9* This,DWORD_PTR id,IVMRSurfaceAllocator9 *alloc) {
761     return This->lpVtbl->AdviseSurfaceAllocator(This,id,alloc);
762 }
763 static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_SetD3DDevice(IVMRSurfaceAllocatorNotify9* This,IDirect3DDevice9 *device,HMONITOR monitor) {
764     return This->lpVtbl->SetD3DDevice(This,device,monitor);
765 }
766 static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_ChangeD3DDevice(IVMRSurfaceAllocatorNotify9* This,IDirect3DDevice9 *device,HMONITOR monitor) {
767     return This->lpVtbl->ChangeD3DDevice(This,device,monitor);
768 }
769 static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper(IVMRSurfaceAllocatorNotify9* This,VMR9AllocationInfo *allocinfo,DWORD *numbuffers,IDirect3DSurface9 **surface) {
770     return This->lpVtbl->AllocateSurfaceHelper(This,allocinfo,numbuffers,surface);
771 }
772 static 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 
780 HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator_Proxy(
781     IVMRSurfaceAllocatorNotify9* This,
782     DWORD_PTR id,
783     IVMRSurfaceAllocator9 *alloc);
784 void __RPC_STUB IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator_Stub(
785     IRpcStubBuffer* This,
786     IRpcChannelBuffer* pRpcChannelBuffer,
787     PRPC_MESSAGE pRpcMessage,
788     DWORD* pdwStubPhase);
789 HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_SetD3DDevice_Proxy(
790     IVMRSurfaceAllocatorNotify9* This,
791     IDirect3DDevice9 *device,
792     HMONITOR monitor);
793 void __RPC_STUB IVMRSurfaceAllocatorNotify9_SetD3DDevice_Stub(
794     IRpcStubBuffer* This,
795     IRpcChannelBuffer* pRpcChannelBuffer,
796     PRPC_MESSAGE pRpcMessage,
797     DWORD* pdwStubPhase);
798 HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_ChangeD3DDevice_Proxy(
799     IVMRSurfaceAllocatorNotify9* This,
800     IDirect3DDevice9 *device,
801     HMONITOR monitor);
802 void __RPC_STUB IVMRSurfaceAllocatorNotify9_ChangeD3DDevice_Stub(
803     IRpcStubBuffer* This,
804     IRpcChannelBuffer* pRpcChannelBuffer,
805     PRPC_MESSAGE pRpcMessage,
806     DWORD* pdwStubPhase);
807 HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper_Proxy(
808     IVMRSurfaceAllocatorNotify9* This,
809     VMR9AllocationInfo *allocinfo,
810     DWORD *numbuffers,
811     IDirect3DSurface9 **surface);
812 void __RPC_STUB IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper_Stub(
813     IRpcStubBuffer* This,
814     IRpcChannelBuffer* pRpcChannelBuffer,
815     PRPC_MESSAGE pRpcMessage,
816     DWORD* pdwStubPhase);
817 HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_NotifyEvent_Proxy(
818     IVMRSurfaceAllocatorNotify9* This,
819     LONG code,
820     LONG_PTR param1,
821     LONG_PTR param2);
822 void __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 
830 typedef 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 
840 DEFINE_GUID(IID_IVMRWindowlessControl9, 0x8f537d09, 0xf85e, 0x4414, 0xb2,0x3b, 0x50,0x2e,0x54,0xc7,0x99,0x27);
841 #if defined(__cplusplus) && !defined(CINTERFACE)
842 MIDL_INTERFACE("8f537d09-f85e-4414-b23b-502e54c79927")
843 IVMRWindowlessControl9 : 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
897 typedef 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;
974 interface 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 ***/
1000 static FORCEINLINE HRESULT IVMRWindowlessControl9_QueryInterface(IVMRWindowlessControl9* This,REFIID riid,void **ppvObject) {
1001     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1002 }
1003 static FORCEINLINE ULONG IVMRWindowlessControl9_AddRef(IVMRWindowlessControl9* This) {
1004     return This->lpVtbl->AddRef(This);
1005 }
1006 static FORCEINLINE ULONG IVMRWindowlessControl9_Release(IVMRWindowlessControl9* This) {
1007     return This->lpVtbl->Release(This);
1008 }
1009 /*** IVMRWindowlessControl9 methods ***/
1010 static 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 }
1013 static FORCEINLINE HRESULT IVMRWindowlessControl9_GetMinIdealVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height) {
1014     return This->lpVtbl->GetMinIdealVideoSize(This,width,height);
1015 }
1016 static FORCEINLINE HRESULT IVMRWindowlessControl9_GetMaxIdealVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height) {
1017     return This->lpVtbl->GetMaxIdealVideoSize(This,width,height);
1018 }
1019 static FORCEINLINE HRESULT IVMRWindowlessControl9_SetVideoPosition(IVMRWindowlessControl9* This,const RECT *source,const RECT *dest) {
1020     return This->lpVtbl->SetVideoPosition(This,source,dest);
1021 }
1022 static FORCEINLINE HRESULT IVMRWindowlessControl9_GetVideoPosition(IVMRWindowlessControl9* This,RECT *source,RECT *dest) {
1023     return This->lpVtbl->GetVideoPosition(This,source,dest);
1024 }
1025 static FORCEINLINE HRESULT IVMRWindowlessControl9_GetAspectRatioMode(IVMRWindowlessControl9* This,DWORD *mode) {
1026     return This->lpVtbl->GetAspectRatioMode(This,mode);
1027 }
1028 static FORCEINLINE HRESULT IVMRWindowlessControl9_SetAspectRatioMode(IVMRWindowlessControl9* This,DWORD mode) {
1029     return This->lpVtbl->SetAspectRatioMode(This,mode);
1030 }
1031 static FORCEINLINE HRESULT IVMRWindowlessControl9_SetVideoClippingWindow(IVMRWindowlessControl9* This,HWND hwnd) {
1032     return This->lpVtbl->SetVideoClippingWindow(This,hwnd);
1033 }
1034 static FORCEINLINE HRESULT IVMRWindowlessControl9_RepaintVideo(IVMRWindowlessControl9* This,HWND hwnd,HDC hdc) {
1035     return This->lpVtbl->RepaintVideo(This,hwnd,hdc);
1036 }
1037 static FORCEINLINE HRESULT IVMRWindowlessControl9_DisplayModeChanged(IVMRWindowlessControl9* This) {
1038     return This->lpVtbl->DisplayModeChanged(This);
1039 }
1040 static FORCEINLINE HRESULT IVMRWindowlessControl9_GetCurrentImage(IVMRWindowlessControl9* This,BYTE **dib) {
1041     return This->lpVtbl->GetCurrentImage(This,dib);
1042 }
1043 static FORCEINLINE HRESULT IVMRWindowlessControl9_SetBorderColor(IVMRWindowlessControl9* This,COLORREF color) {
1044     return This->lpVtbl->SetBorderColor(This,color);
1045 }
1046 static FORCEINLINE HRESULT IVMRWindowlessControl9_GetBorderColor(IVMRWindowlessControl9* This,COLORREF *color) {
1047     return This->lpVtbl->GetBorderColor(This,color);
1048 }
1049 #endif
1050 #endif
1051 
1052 #endif
1053 
1054 HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetNativeVideoSize_Proxy(
1055     IVMRWindowlessControl9* This,
1056     LONG *width,
1057     LONG *height,
1058     LONG *arwidth,
1059     LONG *arheight);
1060 void __RPC_STUB IVMRWindowlessControl9_GetNativeVideoSize_Stub(
1061     IRpcStubBuffer* This,
1062     IRpcChannelBuffer* pRpcChannelBuffer,
1063     PRPC_MESSAGE pRpcMessage,
1064     DWORD* pdwStubPhase);
1065 HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetMinIdealVideoSize_Proxy(
1066     IVMRWindowlessControl9* This,
1067     LONG *width,
1068     LONG *height);
1069 void __RPC_STUB IVMRWindowlessControl9_GetMinIdealVideoSize_Stub(
1070     IRpcStubBuffer* This,
1071     IRpcChannelBuffer* pRpcChannelBuffer,
1072     PRPC_MESSAGE pRpcMessage,
1073     DWORD* pdwStubPhase);
1074 HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetMaxIdealVideoSize_Proxy(
1075     IVMRWindowlessControl9* This,
1076     LONG *width,
1077     LONG *height);
1078 void __RPC_STUB IVMRWindowlessControl9_GetMaxIdealVideoSize_Stub(
1079     IRpcStubBuffer* This,
1080     IRpcChannelBuffer* pRpcChannelBuffer,
1081     PRPC_MESSAGE pRpcMessage,
1082     DWORD* pdwStubPhase);
1083 HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetVideoPosition_Proxy(
1084     IVMRWindowlessControl9* This,
1085     const RECT *source,
1086     const RECT *dest);
1087 void __RPC_STUB IVMRWindowlessControl9_SetVideoPosition_Stub(
1088     IRpcStubBuffer* This,
1089     IRpcChannelBuffer* pRpcChannelBuffer,
1090     PRPC_MESSAGE pRpcMessage,
1091     DWORD* pdwStubPhase);
1092 HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetVideoPosition_Proxy(
1093     IVMRWindowlessControl9* This,
1094     RECT *source,
1095     RECT *dest);
1096 void __RPC_STUB IVMRWindowlessControl9_GetVideoPosition_Stub(
1097     IRpcStubBuffer* This,
1098     IRpcChannelBuffer* pRpcChannelBuffer,
1099     PRPC_MESSAGE pRpcMessage,
1100     DWORD* pdwStubPhase);
1101 HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetAspectRatioMode_Proxy(
1102     IVMRWindowlessControl9* This,
1103     DWORD *mode);
1104 void __RPC_STUB IVMRWindowlessControl9_GetAspectRatioMode_Stub(
1105     IRpcStubBuffer* This,
1106     IRpcChannelBuffer* pRpcChannelBuffer,
1107     PRPC_MESSAGE pRpcMessage,
1108     DWORD* pdwStubPhase);
1109 HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetAspectRatioMode_Proxy(
1110     IVMRWindowlessControl9* This,
1111     DWORD mode);
1112 void __RPC_STUB IVMRWindowlessControl9_SetAspectRatioMode_Stub(
1113     IRpcStubBuffer* This,
1114     IRpcChannelBuffer* pRpcChannelBuffer,
1115     PRPC_MESSAGE pRpcMessage,
1116     DWORD* pdwStubPhase);
1117 HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetVideoClippingWindow_Proxy(
1118     IVMRWindowlessControl9* This,
1119     HWND hwnd);
1120 void __RPC_STUB IVMRWindowlessControl9_SetVideoClippingWindow_Stub(
1121     IRpcStubBuffer* This,
1122     IRpcChannelBuffer* pRpcChannelBuffer,
1123     PRPC_MESSAGE pRpcMessage,
1124     DWORD* pdwStubPhase);
1125 HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_RepaintVideo_Proxy(
1126     IVMRWindowlessControl9* This,
1127     HWND hwnd,
1128     HDC hdc);
1129 void __RPC_STUB IVMRWindowlessControl9_RepaintVideo_Stub(
1130     IRpcStubBuffer* This,
1131     IRpcChannelBuffer* pRpcChannelBuffer,
1132     PRPC_MESSAGE pRpcMessage,
1133     DWORD* pdwStubPhase);
1134 HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_DisplayModeChanged_Proxy(
1135     IVMRWindowlessControl9* This);
1136 void __RPC_STUB IVMRWindowlessControl9_DisplayModeChanged_Stub(
1137     IRpcStubBuffer* This,
1138     IRpcChannelBuffer* pRpcChannelBuffer,
1139     PRPC_MESSAGE pRpcMessage,
1140     DWORD* pdwStubPhase);
1141 HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetCurrentImage_Proxy(
1142     IVMRWindowlessControl9* This,
1143     BYTE **dib);
1144 void __RPC_STUB IVMRWindowlessControl9_GetCurrentImage_Stub(
1145     IRpcStubBuffer* This,
1146     IRpcChannelBuffer* pRpcChannelBuffer,
1147     PRPC_MESSAGE pRpcMessage,
1148     DWORD* pdwStubPhase);
1149 HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetBorderColor_Proxy(
1150     IVMRWindowlessControl9* This,
1151     COLORREF color);
1152 void __RPC_STUB IVMRWindowlessControl9_SetBorderColor_Stub(
1153     IRpcStubBuffer* This,
1154     IRpcChannelBuffer* pRpcChannelBuffer,
1155     PRPC_MESSAGE pRpcMessage,
1156     DWORD* pdwStubPhase);
1157 HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetBorderColor_Proxy(
1158     IVMRWindowlessControl9* This,
1159     COLORREF *color);
1160 void __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 
1168 typedef 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;
1189 typedef struct _VMR9NormalizedRect {
1190     FLOAT left;
1191     FLOAT top;
1192     FLOAT right;
1193     FLOAT bottom;
1194 } VMR9NormalizedRect;
1195 typedef enum _VMR9ProcAmpControlFlags {
1196     ProcAmpControl9_Brightness = 0x1,
1197     ProcAmpControl9_Contrast = 0x2,
1198     ProcAmpControl9_Hue = 0x4,
1199     ProcAmpControl9_Saturation = 0x8,
1200     ProcAmpControl9_Mask = 0xf
1201 } VMR9ProcAmpControlFlags;
1202 typedef struct _VMR9ProcAmpControl {
1203     DWORD dwSize;
1204     DWORD dwFlags;
1205     FLOAT Brightness;
1206     FLOAT Contrast;
1207     FLOAT Hue;
1208     FLOAT Saturation;
1209 } VMR9ProcAmpControl;
1210 typedef 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 
1224 DEFINE_GUID(IID_IVMRMixerControl9, 0x1a777eaa, 0x47c8, 0x4930, 0xb2,0xc9, 0x8f,0xee,0x1c,0x1b,0x0f,0x3b);
1225 #if defined(__cplusplus) && !defined(CINTERFACE)
1226 MIDL_INTERFACE("1a777eaa-47c8-4930-b2c9-8fee1c1b0f3b")
1227 IVMRMixerControl9 : 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
1282 typedef 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;
1361 interface 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 ***/
1387 static FORCEINLINE HRESULT IVMRMixerControl9_QueryInterface(IVMRMixerControl9* This,REFIID riid,void **ppvObject) {
1388     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1389 }
1390 static FORCEINLINE ULONG IVMRMixerControl9_AddRef(IVMRMixerControl9* This) {
1391     return This->lpVtbl->AddRef(This);
1392 }
1393 static FORCEINLINE ULONG IVMRMixerControl9_Release(IVMRMixerControl9* This) {
1394     return This->lpVtbl->Release(This);
1395 }
1396 /*** IVMRMixerControl9 methods ***/
1397 static FORCEINLINE HRESULT IVMRMixerControl9_SetAlpha(IVMRMixerControl9* This,DWORD streamid,FLOAT alpha) {
1398     return This->lpVtbl->SetAlpha(This,streamid,alpha);
1399 }
1400 static FORCEINLINE HRESULT IVMRMixerControl9_GetAlpha(IVMRMixerControl9* This,DWORD streamid,FLOAT *alpha) {
1401     return This->lpVtbl->GetAlpha(This,streamid,alpha);
1402 }
1403 static FORCEINLINE HRESULT IVMRMixerControl9_SetZOrder(IVMRMixerControl9* This,DWORD streamid,DWORD zorder) {
1404     return This->lpVtbl->SetZOrder(This,streamid,zorder);
1405 }
1406 static FORCEINLINE HRESULT IVMRMixerControl9_GetZOrder(IVMRMixerControl9* This,DWORD streamid,DWORD *zorder) {
1407     return This->lpVtbl->GetZOrder(This,streamid,zorder);
1408 }
1409 static FORCEINLINE HRESULT IVMRMixerControl9_SetOutputRect(IVMRMixerControl9* This,DWORD streamid,const VMR9NormalizedRect *rect) {
1410     return This->lpVtbl->SetOutputRect(This,streamid,rect);
1411 }
1412 static FORCEINLINE HRESULT IVMRMixerControl9_GetOutputRect(IVMRMixerControl9* This,DWORD streamid,VMR9NormalizedRect *rect) {
1413     return This->lpVtbl->GetOutputRect(This,streamid,rect);
1414 }
1415 static FORCEINLINE HRESULT IVMRMixerControl9_SetBackgroundClr(IVMRMixerControl9* This,COLORREF back) {
1416     return This->lpVtbl->SetBackgroundClr(This,back);
1417 }
1418 static FORCEINLINE HRESULT IVMRMixerControl9_GetBackgroundClr(IVMRMixerControl9* This,COLORREF *back) {
1419     return This->lpVtbl->GetBackgroundClr(This,back);
1420 }
1421 static FORCEINLINE HRESULT IVMRMixerControl9_SetMixingPrefs(IVMRMixerControl9* This,DWORD mixingprefs) {
1422     return This->lpVtbl->SetMixingPrefs(This,mixingprefs);
1423 }
1424 static FORCEINLINE HRESULT IVMRMixerControl9_GetMixingPrefs(IVMRMixerControl9* This,DWORD *mixingprefs) {
1425     return This->lpVtbl->GetMixingPrefs(This,mixingprefs);
1426 }
1427 static FORCEINLINE HRESULT IVMRMixerControl9_SetProcAmpControl(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControl *control) {
1428     return This->lpVtbl->SetProcAmpControl(This,streamid,control);
1429 }
1430 static FORCEINLINE HRESULT IVMRMixerControl9_GetProcAmpControl(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControl *control) {
1431     return This->lpVtbl->GetProcAmpControl(This,streamid,control);
1432 }
1433 static 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 
1441 HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetAlpha_Proxy(
1442     IVMRMixerControl9* This,
1443     DWORD streamid,
1444     FLOAT alpha);
1445 void __RPC_STUB IVMRMixerControl9_SetAlpha_Stub(
1446     IRpcStubBuffer* This,
1447     IRpcChannelBuffer* pRpcChannelBuffer,
1448     PRPC_MESSAGE pRpcMessage,
1449     DWORD* pdwStubPhase);
1450 HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetAlpha_Proxy(
1451     IVMRMixerControl9* This,
1452     DWORD streamid,
1453     FLOAT *alpha);
1454 void __RPC_STUB IVMRMixerControl9_GetAlpha_Stub(
1455     IRpcStubBuffer* This,
1456     IRpcChannelBuffer* pRpcChannelBuffer,
1457     PRPC_MESSAGE pRpcMessage,
1458     DWORD* pdwStubPhase);
1459 HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetZOrder_Proxy(
1460     IVMRMixerControl9* This,
1461     DWORD streamid,
1462     DWORD zorder);
1463 void __RPC_STUB IVMRMixerControl9_SetZOrder_Stub(
1464     IRpcStubBuffer* This,
1465     IRpcChannelBuffer* pRpcChannelBuffer,
1466     PRPC_MESSAGE pRpcMessage,
1467     DWORD* pdwStubPhase);
1468 HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetZOrder_Proxy(
1469     IVMRMixerControl9* This,
1470     DWORD streamid,
1471     DWORD *zorder);
1472 void __RPC_STUB IVMRMixerControl9_GetZOrder_Stub(
1473     IRpcStubBuffer* This,
1474     IRpcChannelBuffer* pRpcChannelBuffer,
1475     PRPC_MESSAGE pRpcMessage,
1476     DWORD* pdwStubPhase);
1477 HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetOutputRect_Proxy(
1478     IVMRMixerControl9* This,
1479     DWORD streamid,
1480     const VMR9NormalizedRect *rect);
1481 void __RPC_STUB IVMRMixerControl9_SetOutputRect_Stub(
1482     IRpcStubBuffer* This,
1483     IRpcChannelBuffer* pRpcChannelBuffer,
1484     PRPC_MESSAGE pRpcMessage,
1485     DWORD* pdwStubPhase);
1486 HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetOutputRect_Proxy(
1487     IVMRMixerControl9* This,
1488     DWORD streamid,
1489     VMR9NormalizedRect *rect);
1490 void __RPC_STUB IVMRMixerControl9_GetOutputRect_Stub(
1491     IRpcStubBuffer* This,
1492     IRpcChannelBuffer* pRpcChannelBuffer,
1493     PRPC_MESSAGE pRpcMessage,
1494     DWORD* pdwStubPhase);
1495 HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetBackgroundClr_Proxy(
1496     IVMRMixerControl9* This,
1497     COLORREF back);
1498 void __RPC_STUB IVMRMixerControl9_SetBackgroundClr_Stub(
1499     IRpcStubBuffer* This,
1500     IRpcChannelBuffer* pRpcChannelBuffer,
1501     PRPC_MESSAGE pRpcMessage,
1502     DWORD* pdwStubPhase);
1503 HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetBackgroundClr_Proxy(
1504     IVMRMixerControl9* This,
1505     COLORREF *back);
1506 void __RPC_STUB IVMRMixerControl9_GetBackgroundClr_Stub(
1507     IRpcStubBuffer* This,
1508     IRpcChannelBuffer* pRpcChannelBuffer,
1509     PRPC_MESSAGE pRpcMessage,
1510     DWORD* pdwStubPhase);
1511 HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetMixingPrefs_Proxy(
1512     IVMRMixerControl9* This,
1513     DWORD mixingprefs);
1514 void __RPC_STUB IVMRMixerControl9_SetMixingPrefs_Stub(
1515     IRpcStubBuffer* This,
1516     IRpcChannelBuffer* pRpcChannelBuffer,
1517     PRPC_MESSAGE pRpcMessage,
1518     DWORD* pdwStubPhase);
1519 HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetMixingPrefs_Proxy(
1520     IVMRMixerControl9* This,
1521     DWORD *mixingprefs);
1522 void __RPC_STUB IVMRMixerControl9_GetMixingPrefs_Stub(
1523     IRpcStubBuffer* This,
1524     IRpcChannelBuffer* pRpcChannelBuffer,
1525     PRPC_MESSAGE pRpcMessage,
1526     DWORD* pdwStubPhase);
1527 HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetProcAmpControl_Proxy(
1528     IVMRMixerControl9* This,
1529     DWORD streamid,
1530     VMR9ProcAmpControl *control);
1531 void __RPC_STUB IVMRMixerControl9_SetProcAmpControl_Stub(
1532     IRpcStubBuffer* This,
1533     IRpcChannelBuffer* pRpcChannelBuffer,
1534     PRPC_MESSAGE pRpcMessage,
1535     DWORD* pdwStubPhase);
1536 HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetProcAmpControl_Proxy(
1537     IVMRMixerControl9* This,
1538     DWORD streamid,
1539     VMR9ProcAmpControl *control);
1540 void __RPC_STUB IVMRMixerControl9_GetProcAmpControl_Stub(
1541     IRpcStubBuffer* This,
1542     IRpcChannelBuffer* pRpcChannelBuffer,
1543     PRPC_MESSAGE pRpcMessage,
1544     DWORD* pdwStubPhase);
1545 HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetProcAmpControlRange_Proxy(
1546     IVMRMixerControl9* This,
1547     DWORD streamid,
1548     VMR9ProcAmpControlRange *controlrange);
1549 void __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 
1557 typedef 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;
1567 typedef 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 
1581 DEFINE_GUID(IID_IVMRMixerBitmap9, 0xced175e5, 0x1935, 0x4820, 0x81,0xbd, 0xff,0x6a,0xd0,0x0c,0x91,0x08);
1582 #if defined(__cplusplus) && !defined(CINTERFACE)
1583 MIDL_INTERFACE("ced175e5-1935-4820-81bd-ff6ad00c9108")
1584 IVMRMixerBitmap9 : 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
1600 typedef 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;
1630 interface 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 ***/
1646 static FORCEINLINE HRESULT IVMRMixerBitmap9_QueryInterface(IVMRMixerBitmap9* This,REFIID riid,void **ppvObject) {
1647     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1648 }
1649 static FORCEINLINE ULONG IVMRMixerBitmap9_AddRef(IVMRMixerBitmap9* This) {
1650     return This->lpVtbl->AddRef(This);
1651 }
1652 static FORCEINLINE ULONG IVMRMixerBitmap9_Release(IVMRMixerBitmap9* This) {
1653     return This->lpVtbl->Release(This);
1654 }
1655 /*** IVMRMixerBitmap9 methods ***/
1656 static FORCEINLINE HRESULT IVMRMixerBitmap9_SetAlphaBitmap(IVMRMixerBitmap9* This,const VMR9AlphaBitmap *bitmap) {
1657     return This->lpVtbl->SetAlphaBitmap(This,bitmap);
1658 }
1659 static FORCEINLINE HRESULT IVMRMixerBitmap9_UpdateAlphaBitmapParameters(IVMRMixerBitmap9* This,const VMR9AlphaBitmap *bitmap) {
1660     return This->lpVtbl->UpdateAlphaBitmapParameters(This,bitmap);
1661 }
1662 static FORCEINLINE HRESULT IVMRMixerBitmap9_GetAlphaBitmapParameters(IVMRMixerBitmap9* This,VMR9AlphaBitmap *bitmap) {
1663     return This->lpVtbl->GetAlphaBitmapParameters(This,bitmap);
1664 }
1665 #endif
1666 #endif
1667 
1668 #endif
1669 
1670 HRESULT STDMETHODCALLTYPE IVMRMixerBitmap9_SetAlphaBitmap_Proxy(
1671     IVMRMixerBitmap9* This,
1672     const VMR9AlphaBitmap *bitmap);
1673 void __RPC_STUB IVMRMixerBitmap9_SetAlphaBitmap_Stub(
1674     IRpcStubBuffer* This,
1675     IRpcChannelBuffer* pRpcChannelBuffer,
1676     PRPC_MESSAGE pRpcMessage,
1677     DWORD* pdwStubPhase);
1678 HRESULT STDMETHODCALLTYPE IVMRMixerBitmap9_UpdateAlphaBitmapParameters_Proxy(
1679     IVMRMixerBitmap9* This,
1680     const VMR9AlphaBitmap *bitmap);
1681 void __RPC_STUB IVMRMixerBitmap9_UpdateAlphaBitmapParameters_Stub(
1682     IRpcStubBuffer* This,
1683     IRpcChannelBuffer* pRpcChannelBuffer,
1684     PRPC_MESSAGE pRpcMessage,
1685     DWORD* pdwStubPhase);
1686 HRESULT STDMETHODCALLTYPE IVMRMixerBitmap9_GetAlphaBitmapParameters_Proxy(
1687     IVMRMixerBitmap9* This,
1688     VMR9AlphaBitmap *bitmap);
1689 void __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 
1703 DEFINE_GUID(IID_IVMRSurface9, 0xdfc581a1, 0x6e1f, 0x4c3a, 0x8d,0x0a, 0x5e,0x97,0x92,0xea,0x2a,0xfc);
1704 #if defined(__cplusplus) && !defined(CINTERFACE)
1705 MIDL_INTERFACE("dfc581a1-6e1f-4c3a-8d0a-5e9792ea2afc")
1706 IVMRSurface9 : 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
1725 typedef 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;
1757 interface 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 ***/
1774 static FORCEINLINE HRESULT IVMRSurface9_QueryInterface(IVMRSurface9* This,REFIID riid,void **ppvObject) {
1775     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1776 }
1777 static FORCEINLINE ULONG IVMRSurface9_AddRef(IVMRSurface9* This) {
1778     return This->lpVtbl->AddRef(This);
1779 }
1780 static FORCEINLINE ULONG IVMRSurface9_Release(IVMRSurface9* This) {
1781     return This->lpVtbl->Release(This);
1782 }
1783 /*** IVMRSurface9 methods ***/
1784 static FORCEINLINE HRESULT IVMRSurface9_IsSurfaceLocked(IVMRSurface9* This) {
1785     return This->lpVtbl->IsSurfaceLocked(This);
1786 }
1787 static FORCEINLINE HRESULT IVMRSurface9_LockSurface(IVMRSurface9* This,BYTE **surface) {
1788     return This->lpVtbl->LockSurface(This,surface);
1789 }
1790 static FORCEINLINE HRESULT IVMRSurface9_UnlockSurface(IVMRSurface9* This) {
1791     return This->lpVtbl->UnlockSurface(This);
1792 }
1793 static FORCEINLINE HRESULT IVMRSurface9_GetSurface(IVMRSurface9* This,IDirect3DSurface9 **surface) {
1794     return This->lpVtbl->GetSurface(This,surface);
1795 }
1796 #endif
1797 #endif
1798 
1799 #endif
1800 
1801 HRESULT STDMETHODCALLTYPE IVMRSurface9_IsSurfaceLocked_Proxy(
1802     IVMRSurface9* This);
1803 void __RPC_STUB IVMRSurface9_IsSurfaceLocked_Stub(
1804     IRpcStubBuffer* This,
1805     IRpcChannelBuffer* pRpcChannelBuffer,
1806     PRPC_MESSAGE pRpcMessage,
1807     DWORD* pdwStubPhase);
1808 HRESULT STDMETHODCALLTYPE IVMRSurface9_LockSurface_Proxy(
1809     IVMRSurface9* This,
1810     BYTE **surface);
1811 void __RPC_STUB IVMRSurface9_LockSurface_Stub(
1812     IRpcStubBuffer* This,
1813     IRpcChannelBuffer* pRpcChannelBuffer,
1814     PRPC_MESSAGE pRpcMessage,
1815     DWORD* pdwStubPhase);
1816 HRESULT STDMETHODCALLTYPE IVMRSurface9_UnlockSurface_Proxy(
1817     IVMRSurface9* This);
1818 void __RPC_STUB IVMRSurface9_UnlockSurface_Stub(
1819     IRpcStubBuffer* This,
1820     IRpcChannelBuffer* pRpcChannelBuffer,
1821     PRPC_MESSAGE pRpcMessage,
1822     DWORD* pdwStubPhase);
1823 HRESULT STDMETHODCALLTYPE IVMRSurface9_GetSurface_Proxy(
1824     IVMRSurface9* This,
1825     IDirect3DSurface9 **surface);
1826 void __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 
1834 typedef 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 
1844 DEFINE_GUID(IID_IVMRImagePresenterConfig9, 0x45c15cab, 0x6e22, 0x420a, 0x80,0x43, 0xae,0x1f,0x0a,0xc0,0x2c,0x7d);
1845 #if defined(__cplusplus) && !defined(CINTERFACE)
1846 MIDL_INTERFACE("45c15cab-6e22-420a-8043-ae1f0ac02c7d")
1847 IVMRImagePresenterConfig9 : 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
1860 typedef 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;
1886 interface 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 ***/
1901 static FORCEINLINE HRESULT IVMRImagePresenterConfig9_QueryInterface(IVMRImagePresenterConfig9* This,REFIID riid,void **ppvObject) {
1902     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1903 }
1904 static FORCEINLINE ULONG IVMRImagePresenterConfig9_AddRef(IVMRImagePresenterConfig9* This) {
1905     return This->lpVtbl->AddRef(This);
1906 }
1907 static FORCEINLINE ULONG IVMRImagePresenterConfig9_Release(IVMRImagePresenterConfig9* This) {
1908     return This->lpVtbl->Release(This);
1909 }
1910 /*** IVMRImagePresenterConfig9 methods ***/
1911 static FORCEINLINE HRESULT IVMRImagePresenterConfig9_SetRenderingPrefs(IVMRImagePresenterConfig9* This,DWORD renderflags) {
1912     return This->lpVtbl->SetRenderingPrefs(This,renderflags);
1913 }
1914 static FORCEINLINE HRESULT IVMRImagePresenterConfig9_GetRenderingPrefs(IVMRImagePresenterConfig9* This,DWORD *renderflags) {
1915     return This->lpVtbl->GetRenderingPrefs(This,renderflags);
1916 }
1917 #endif
1918 #endif
1919 
1920 #endif
1921 
1922 HRESULT STDMETHODCALLTYPE IVMRImagePresenterConfig9_SetRenderingPrefs_Proxy(
1923     IVMRImagePresenterConfig9* This,
1924     DWORD renderflags);
1925 void __RPC_STUB IVMRImagePresenterConfig9_SetRenderingPrefs_Stub(
1926     IRpcStubBuffer* This,
1927     IRpcChannelBuffer* pRpcChannelBuffer,
1928     PRPC_MESSAGE pRpcMessage,
1929     DWORD* pdwStubPhase);
1930 HRESULT STDMETHODCALLTYPE IVMRImagePresenterConfig9_GetRenderingPrefs_Proxy(
1931     IVMRImagePresenterConfig9* This,
1932     DWORD *renderflags);
1933 void __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 
1947 DEFINE_GUID(IID_IVMRVideoStreamControl9, 0xd0cfe38b, 0x93e7, 0x4772, 0x89,0x57, 0x04,0x00,0xc4,0x9a,0x44,0x85);
1948 #if defined(__cplusplus) && !defined(CINTERFACE)
1949 MIDL_INTERFACE("d0cfe38b-93e7-4772-8957-0400c49a4485")
1950 IVMRVideoStreamControl9 : 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
1963 typedef 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;
1989 interface 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 ***/
2004 static FORCEINLINE HRESULT IVMRVideoStreamControl9_QueryInterface(IVMRVideoStreamControl9* This,REFIID riid,void **ppvObject) {
2005     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2006 }
2007 static FORCEINLINE ULONG IVMRVideoStreamControl9_AddRef(IVMRVideoStreamControl9* This) {
2008     return This->lpVtbl->AddRef(This);
2009 }
2010 static FORCEINLINE ULONG IVMRVideoStreamControl9_Release(IVMRVideoStreamControl9* This) {
2011     return This->lpVtbl->Release(This);
2012 }
2013 /*** IVMRVideoStreamControl9 methods ***/
2014 static FORCEINLINE HRESULT IVMRVideoStreamControl9_SetStreamActiveState(IVMRVideoStreamControl9* This,WINBOOL active) {
2015     return This->lpVtbl->SetStreamActiveState(This,active);
2016 }
2017 static FORCEINLINE HRESULT IVMRVideoStreamControl9_GetStreamActiveState(IVMRVideoStreamControl9* This,WINBOOL *active) {
2018     return This->lpVtbl->GetStreamActiveState(This,active);
2019 }
2020 #endif
2021 #endif
2022 
2023 #endif
2024 
2025 HRESULT STDMETHODCALLTYPE IVMRVideoStreamControl9_SetStreamActiveState_Proxy(
2026     IVMRVideoStreamControl9* This,
2027     WINBOOL active);
2028 void __RPC_STUB IVMRVideoStreamControl9_SetStreamActiveState_Stub(
2029     IRpcStubBuffer* This,
2030     IRpcChannelBuffer* pRpcChannelBuffer,
2031     PRPC_MESSAGE pRpcMessage,
2032     DWORD* pdwStubPhase);
2033 HRESULT STDMETHODCALLTYPE IVMRVideoStreamControl9_GetStreamActiveState_Proxy(
2034     IVMRVideoStreamControl9* This,
2035     WINBOOL *active);
2036 void __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 
2044 typedef 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 
2056 DEFINE_GUID(IID_IVMRFilterConfig9, 0x5a804648, 0x4f66, 0x4867, 0x9c,0x43, 0x4f,0x5c,0x82,0x2c,0xf1,0xb8);
2057 #if defined(__cplusplus) && !defined(CINTERFACE)
2058 MIDL_INTERFACE("5a804648-4f66-4867-9c43-4f5c822cf1b8")
2059 IVMRFilterConfig9 : 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
2087 typedef 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;
2133 interface 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 ***/
2153 static FORCEINLINE HRESULT IVMRFilterConfig9_QueryInterface(IVMRFilterConfig9* This,REFIID riid,void **ppvObject) {
2154     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2155 }
2156 static FORCEINLINE ULONG IVMRFilterConfig9_AddRef(IVMRFilterConfig9* This) {
2157     return This->lpVtbl->AddRef(This);
2158 }
2159 static FORCEINLINE ULONG IVMRFilterConfig9_Release(IVMRFilterConfig9* This) {
2160     return This->lpVtbl->Release(This);
2161 }
2162 /*** IVMRFilterConfig9 methods ***/
2163 static FORCEINLINE HRESULT IVMRFilterConfig9_SetImageCompositor(IVMRFilterConfig9* This,IVMRImageCompositor9 *compositor) {
2164     return This->lpVtbl->SetImageCompositor(This,compositor);
2165 }
2166 static FORCEINLINE HRESULT IVMRFilterConfig9_SetNumberOfStreams(IVMRFilterConfig9* This,DWORD max) {
2167     return This->lpVtbl->SetNumberOfStreams(This,max);
2168 }
2169 static FORCEINLINE HRESULT IVMRFilterConfig9_GetNumberOfStreams(IVMRFilterConfig9* This,DWORD *max) {
2170     return This->lpVtbl->GetNumberOfStreams(This,max);
2171 }
2172 static FORCEINLINE HRESULT IVMRFilterConfig9_SetRenderingPrefs(IVMRFilterConfig9* This,DWORD renderflags) {
2173     return This->lpVtbl->SetRenderingPrefs(This,renderflags);
2174 }
2175 static FORCEINLINE HRESULT IVMRFilterConfig9_GetRenderingPrefs(IVMRFilterConfig9* This,DWORD *renderflags) {
2176     return This->lpVtbl->GetRenderingPrefs(This,renderflags);
2177 }
2178 static FORCEINLINE HRESULT IVMRFilterConfig9_SetRenderingMode(IVMRFilterConfig9* This,DWORD mode) {
2179     return This->lpVtbl->SetRenderingMode(This,mode);
2180 }
2181 static FORCEINLINE HRESULT IVMRFilterConfig9_GetRenderingMode(IVMRFilterConfig9* This,DWORD *mode) {
2182     return This->lpVtbl->GetRenderingMode(This,mode);
2183 }
2184 #endif
2185 #endif
2186 
2187 #endif
2188 
2189 HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetImageCompositor_Proxy(
2190     IVMRFilterConfig9* This,
2191     IVMRImageCompositor9 *compositor);
2192 void __RPC_STUB IVMRFilterConfig9_SetImageCompositor_Stub(
2193     IRpcStubBuffer* This,
2194     IRpcChannelBuffer* pRpcChannelBuffer,
2195     PRPC_MESSAGE pRpcMessage,
2196     DWORD* pdwStubPhase);
2197 HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetNumberOfStreams_Proxy(
2198     IVMRFilterConfig9* This,
2199     DWORD max);
2200 void __RPC_STUB IVMRFilterConfig9_SetNumberOfStreams_Stub(
2201     IRpcStubBuffer* This,
2202     IRpcChannelBuffer* pRpcChannelBuffer,
2203     PRPC_MESSAGE pRpcMessage,
2204     DWORD* pdwStubPhase);
2205 HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_GetNumberOfStreams_Proxy(
2206     IVMRFilterConfig9* This,
2207     DWORD *max);
2208 void __RPC_STUB IVMRFilterConfig9_GetNumberOfStreams_Stub(
2209     IRpcStubBuffer* This,
2210     IRpcChannelBuffer* pRpcChannelBuffer,
2211     PRPC_MESSAGE pRpcMessage,
2212     DWORD* pdwStubPhase);
2213 HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetRenderingPrefs_Proxy(
2214     IVMRFilterConfig9* This,
2215     DWORD renderflags);
2216 void __RPC_STUB IVMRFilterConfig9_SetRenderingPrefs_Stub(
2217     IRpcStubBuffer* This,
2218     IRpcChannelBuffer* pRpcChannelBuffer,
2219     PRPC_MESSAGE pRpcMessage,
2220     DWORD* pdwStubPhase);
2221 HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_GetRenderingPrefs_Proxy(
2222     IVMRFilterConfig9* This,
2223     DWORD *renderflags);
2224 void __RPC_STUB IVMRFilterConfig9_GetRenderingPrefs_Stub(
2225     IRpcStubBuffer* This,
2226     IRpcChannelBuffer* pRpcChannelBuffer,
2227     PRPC_MESSAGE pRpcMessage,
2228     DWORD* pdwStubPhase);
2229 HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetRenderingMode_Proxy(
2230     IVMRFilterConfig9* This,
2231     DWORD mode);
2232 void __RPC_STUB IVMRFilterConfig9_SetRenderingMode_Stub(
2233     IRpcStubBuffer* This,
2234     IRpcChannelBuffer* pRpcChannelBuffer,
2235     PRPC_MESSAGE pRpcMessage,
2236     DWORD* pdwStubPhase);
2237 HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_GetRenderingMode_Proxy(
2238     IVMRFilterConfig9* This,
2239     DWORD *mode);
2240 void __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 
2254 DEFINE_GUID(IID_IVMRAspectRatioControl9, 0x00d96c29, 0xbbde, 0x4efc, 0x99,0x01, 0xbb,0x50,0x36,0x39,0x21,0x46);
2255 #if defined(__cplusplus) && !defined(CINTERFACE)
2256 MIDL_INTERFACE("00d96c29-bbde-4efc-9901-bb5036392146")
2257 IVMRAspectRatioControl9 : 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
2270 typedef 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;
2296 interface 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 ***/
2311 static FORCEINLINE HRESULT IVMRAspectRatioControl9_QueryInterface(IVMRAspectRatioControl9* This,REFIID riid,void **ppvObject) {
2312     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2313 }
2314 static FORCEINLINE ULONG IVMRAspectRatioControl9_AddRef(IVMRAspectRatioControl9* This) {
2315     return This->lpVtbl->AddRef(This);
2316 }
2317 static FORCEINLINE ULONG IVMRAspectRatioControl9_Release(IVMRAspectRatioControl9* This) {
2318     return This->lpVtbl->Release(This);
2319 }
2320 /*** IVMRAspectRatioControl9 methods ***/
2321 static FORCEINLINE HRESULT IVMRAspectRatioControl9_GetAspectRatioMode(IVMRAspectRatioControl9* This,DWORD *mode) {
2322     return This->lpVtbl->GetAspectRatioMode(This,mode);
2323 }
2324 static FORCEINLINE HRESULT IVMRAspectRatioControl9_SetAspectRatioMode(IVMRAspectRatioControl9* This,DWORD mode) {
2325     return This->lpVtbl->SetAspectRatioMode(This,mode);
2326 }
2327 #endif
2328 #endif
2329 
2330 #endif
2331 
2332 HRESULT STDMETHODCALLTYPE IVMRAspectRatioControl9_GetAspectRatioMode_Proxy(
2333     IVMRAspectRatioControl9* This,
2334     DWORD *mode);
2335 void __RPC_STUB IVMRAspectRatioControl9_GetAspectRatioMode_Stub(
2336     IRpcStubBuffer* This,
2337     IRpcChannelBuffer* pRpcChannelBuffer,
2338     PRPC_MESSAGE pRpcMessage,
2339     DWORD* pdwStubPhase);
2340 HRESULT STDMETHODCALLTYPE IVMRAspectRatioControl9_SetAspectRatioMode_Proxy(
2341     IVMRAspectRatioControl9* This,
2342     DWORD mode);
2343 void __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 
2351 typedef 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 
2370 DEFINE_GUID(IID_IVMRMonitorConfig9, 0x46c2e457, 0x8ba0, 0x4eef, 0xb8,0x0b, 0x06,0x80,0xf0,0x97,0x87,0x49);
2371 #if defined(__cplusplus) && !defined(CINTERFACE)
2372 MIDL_INTERFACE("46c2e457-8ba0-4eef-b80b-0680f0978749")
2373 IVMRMonitorConfig9 : 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
2397 typedef 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;
2437 interface 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 ***/
2455 static FORCEINLINE HRESULT IVMRMonitorConfig9_QueryInterface(IVMRMonitorConfig9* This,REFIID riid,void **ppvObject) {
2456     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2457 }
2458 static FORCEINLINE ULONG IVMRMonitorConfig9_AddRef(IVMRMonitorConfig9* This) {
2459     return This->lpVtbl->AddRef(This);
2460 }
2461 static FORCEINLINE ULONG IVMRMonitorConfig9_Release(IVMRMonitorConfig9* This) {
2462     return This->lpVtbl->Release(This);
2463 }
2464 /*** IVMRMonitorConfig9 methods ***/
2465 static FORCEINLINE HRESULT IVMRMonitorConfig9_SetMonitor(IVMRMonitorConfig9* This,UINT uDev) {
2466     return This->lpVtbl->SetMonitor(This,uDev);
2467 }
2468 static FORCEINLINE HRESULT IVMRMonitorConfig9_GetMonitor(IVMRMonitorConfig9* This,UINT *uDev) {
2469     return This->lpVtbl->GetMonitor(This,uDev);
2470 }
2471 static FORCEINLINE HRESULT IVMRMonitorConfig9_SetDefaultMonitor(IVMRMonitorConfig9* This,UINT uDev) {
2472     return This->lpVtbl->SetDefaultMonitor(This,uDev);
2473 }
2474 static FORCEINLINE HRESULT IVMRMonitorConfig9_GetDefaultMonitor(IVMRMonitorConfig9* This,UINT *uDev) {
2475     return This->lpVtbl->GetDefaultMonitor(This,uDev);
2476 }
2477 static 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 
2485 HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_SetMonitor_Proxy(
2486     IVMRMonitorConfig9* This,
2487     UINT uDev);
2488 void __RPC_STUB IVMRMonitorConfig9_SetMonitor_Stub(
2489     IRpcStubBuffer* This,
2490     IRpcChannelBuffer* pRpcChannelBuffer,
2491     PRPC_MESSAGE pRpcMessage,
2492     DWORD* pdwStubPhase);
2493 HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_GetMonitor_Proxy(
2494     IVMRMonitorConfig9* This,
2495     UINT *uDev);
2496 void __RPC_STUB IVMRMonitorConfig9_GetMonitor_Stub(
2497     IRpcStubBuffer* This,
2498     IRpcChannelBuffer* pRpcChannelBuffer,
2499     PRPC_MESSAGE pRpcMessage,
2500     DWORD* pdwStubPhase);
2501 HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_SetDefaultMonitor_Proxy(
2502     IVMRMonitorConfig9* This,
2503     UINT uDev);
2504 void __RPC_STUB IVMRMonitorConfig9_SetDefaultMonitor_Stub(
2505     IRpcStubBuffer* This,
2506     IRpcChannelBuffer* pRpcChannelBuffer,
2507     PRPC_MESSAGE pRpcMessage,
2508     DWORD* pdwStubPhase);
2509 HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_GetDefaultMonitor_Proxy(
2510     IVMRMonitorConfig9* This,
2511     UINT *uDev);
2512 void __RPC_STUB IVMRMonitorConfig9_GetDefaultMonitor_Stub(
2513     IRpcStubBuffer* This,
2514     IRpcChannelBuffer* pRpcChannelBuffer,
2515     PRPC_MESSAGE pRpcMessage,
2516     DWORD* pdwStubPhase);
2517 HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_GetAvailableMonitors_Proxy(
2518     IVMRMonitorConfig9* This,
2519     VMR9MonitorInfo *info,
2520     DWORD arraysize,
2521     DWORD *numdev);
2522 void __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 
2530 typedef enum _VMR9DeinterlacePrefs {
2531     DeinterlacePref9_NextBest = 0x1,
2532     DeinterlacePref9_BOB = 0x2,
2533     DeinterlacePref9_Weave = 0x4,
2534     DeinterlacePref9_Mask = 0x7
2535 } VMR9DeinterlacePrefs;
2536 typedef 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;
2546 typedef struct _VMR9Frequency {
2547     DWORD dwNumerator;
2548     DWORD dwDenominator;
2549 } VMR9Frequency;
2550 typedef 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;
2558 typedef 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;
2567 typedef 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 
2580 DEFINE_GUID(IID_IVMRDeinterlaceControl9, 0xa215fb8d, 0x13c2, 0x4f7f, 0x99,0x3c, 0x00,0x3d,0x62,0x71,0xa4,0x59);
2581 #if defined(__cplusplus) && !defined(CINTERFACE)
2582 MIDL_INTERFACE("a215fb8d-13c2-4f7f-993c-003d6271a459")
2583 IVMRDeinterlaceControl9 : 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
2618 typedef 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;
2671 interface 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 ***/
2691 static FORCEINLINE HRESULT IVMRDeinterlaceControl9_QueryInterface(IVMRDeinterlaceControl9* This,REFIID riid,void **ppvObject) {
2692     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2693 }
2694 static FORCEINLINE ULONG IVMRDeinterlaceControl9_AddRef(IVMRDeinterlaceControl9* This) {
2695     return This->lpVtbl->AddRef(This);
2696 }
2697 static FORCEINLINE ULONG IVMRDeinterlaceControl9_Release(IVMRDeinterlaceControl9* This) {
2698     return This->lpVtbl->Release(This);
2699 }
2700 /*** IVMRDeinterlaceControl9 methods ***/
2701 static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes(IVMRDeinterlaceControl9* This,VMR9VideoDesc *desc,DWORD *nummodes,GUID *modes) {
2702     return This->lpVtbl->GetNumberOfDeinterlaceModes(This,desc,nummodes,modes);
2703 }
2704 static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlaceModeCaps(IVMRDeinterlaceControl9* This,GUID *mode,VMR9VideoDesc *desc,VMR9DeinterlaceCaps *caps) {
2705     return This->lpVtbl->GetDeinterlaceModeCaps(This,mode,desc,caps);
2706 }
2707 static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) {
2708     return This->lpVtbl->GetDeinterlaceMode(This,streamid,mode);
2709 }
2710 static FORCEINLINE HRESULT IVMRDeinterlaceControl9_SetDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) {
2711     return This->lpVtbl->SetDeinterlaceMode(This,streamid,mode);
2712 }
2713 static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlacePrefs(IVMRDeinterlaceControl9* This,DWORD *prefs) {
2714     return This->lpVtbl->GetDeinterlacePrefs(This,prefs);
2715 }
2716 static FORCEINLINE HRESULT IVMRDeinterlaceControl9_SetDeinterlacePrefs(IVMRDeinterlaceControl9* This,DWORD prefs) {
2717     return This->lpVtbl->SetDeinterlacePrefs(This,prefs);
2718 }
2719 static 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 
2727 HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes_Proxy(
2728     IVMRDeinterlaceControl9* This,
2729     VMR9VideoDesc *desc,
2730     DWORD *nummodes,
2731     GUID *modes);
2732 void __RPC_STUB IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes_Stub(
2733     IRpcStubBuffer* This,
2734     IRpcChannelBuffer* pRpcChannelBuffer,
2735     PRPC_MESSAGE pRpcMessage,
2736     DWORD* pdwStubPhase);
2737 HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetDeinterlaceModeCaps_Proxy(
2738     IVMRDeinterlaceControl9* This,
2739     GUID *mode,
2740     VMR9VideoDesc *desc,
2741     VMR9DeinterlaceCaps *caps);
2742 void __RPC_STUB IVMRDeinterlaceControl9_GetDeinterlaceModeCaps_Stub(
2743     IRpcStubBuffer* This,
2744     IRpcChannelBuffer* pRpcChannelBuffer,
2745     PRPC_MESSAGE pRpcMessage,
2746     DWORD* pdwStubPhase);
2747 HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetDeinterlaceMode_Proxy(
2748     IVMRDeinterlaceControl9* This,
2749     DWORD streamid,
2750     GUID *mode);
2751 void __RPC_STUB IVMRDeinterlaceControl9_GetDeinterlaceMode_Stub(
2752     IRpcStubBuffer* This,
2753     IRpcChannelBuffer* pRpcChannelBuffer,
2754     PRPC_MESSAGE pRpcMessage,
2755     DWORD* pdwStubPhase);
2756 HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_SetDeinterlaceMode_Proxy(
2757     IVMRDeinterlaceControl9* This,
2758     DWORD streamid,
2759     GUID *mode);
2760 void __RPC_STUB IVMRDeinterlaceControl9_SetDeinterlaceMode_Stub(
2761     IRpcStubBuffer* This,
2762     IRpcChannelBuffer* pRpcChannelBuffer,
2763     PRPC_MESSAGE pRpcMessage,
2764     DWORD* pdwStubPhase);
2765 HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetDeinterlacePrefs_Proxy(
2766     IVMRDeinterlaceControl9* This,
2767     DWORD *prefs);
2768 void __RPC_STUB IVMRDeinterlaceControl9_GetDeinterlacePrefs_Stub(
2769     IRpcStubBuffer* This,
2770     IRpcChannelBuffer* pRpcChannelBuffer,
2771     PRPC_MESSAGE pRpcMessage,
2772     DWORD* pdwStubPhase);
2773 HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_SetDeinterlacePrefs_Proxy(
2774     IVMRDeinterlaceControl9* This,
2775     DWORD prefs);
2776 void __RPC_STUB IVMRDeinterlaceControl9_SetDeinterlacePrefs_Stub(
2777     IRpcStubBuffer* This,
2778     IRpcChannelBuffer* pRpcChannelBuffer,
2779     PRPC_MESSAGE pRpcMessage,
2780     DWORD* pdwStubPhase);
2781 HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetActualDeinterlaceMode_Proxy(
2782     IVMRDeinterlaceControl9* This,
2783     DWORD streamid,
2784     GUID *mode);
2785 void __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 
2793 typedef 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 
2810 DEFINE_GUID(IID_IVMRImageCompositor9, 0x4a5c89eb, 0xdf51, 0x4654, 0xac,0x2a, 0xe4,0x8e,0x02,0xbb,0xab,0xf6);
2811 #if defined(__cplusplus) && !defined(CINTERFACE)
2812 MIDL_INTERFACE("4a5c89eb-df51-4654-ac2a-e48e02bbabf6")
2813 IVMRImageCompositor9 : 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
2836 typedef 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;
2873 interface 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 ***/
2889 static FORCEINLINE HRESULT IVMRImageCompositor9_QueryInterface(IVMRImageCompositor9* This,REFIID riid,void **ppvObject) {
2890     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2891 }
2892 static FORCEINLINE ULONG IVMRImageCompositor9_AddRef(IVMRImageCompositor9* This) {
2893     return This->lpVtbl->AddRef(This);
2894 }
2895 static FORCEINLINE ULONG IVMRImageCompositor9_Release(IVMRImageCompositor9* This) {
2896     return This->lpVtbl->Release(This);
2897 }
2898 /*** IVMRImageCompositor9 methods ***/
2899 static FORCEINLINE HRESULT IVMRImageCompositor9_InitCompositionDevice(IVMRImageCompositor9* This,IUnknown *d3ddev) {
2900     return This->lpVtbl->InitCompositionDevice(This,d3ddev);
2901 }
2902 static FORCEINLINE HRESULT IVMRImageCompositor9_TermCompositionDevice(IVMRImageCompositor9* This,IUnknown *d3ddev) {
2903     return This->lpVtbl->TermCompositionDevice(This,d3ddev);
2904 }
2905 static 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 
2913 HRESULT STDMETHODCALLTYPE IVMRImageCompositor9_InitCompositionDevice_Proxy(
2914     IVMRImageCompositor9* This,
2915     IUnknown *d3ddev);
2916 void __RPC_STUB IVMRImageCompositor9_InitCompositionDevice_Stub(
2917     IRpcStubBuffer* This,
2918     IRpcChannelBuffer* pRpcChannelBuffer,
2919     PRPC_MESSAGE pRpcMessage,
2920     DWORD* pdwStubPhase);
2921 HRESULT STDMETHODCALLTYPE IVMRImageCompositor9_TermCompositionDevice_Proxy(
2922     IVMRImageCompositor9* This,
2923     IUnknown *d3ddev);
2924 void __RPC_STUB IVMRImageCompositor9_TermCompositionDevice_Stub(
2925     IRpcStubBuffer* This,
2926     IRpcChannelBuffer* pRpcChannelBuffer,
2927     PRPC_MESSAGE pRpcMessage,
2928     DWORD* pdwStubPhase);
2929 HRESULT 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);
2939 void __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