source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/vmr9.h@ 1170

Last change on this file since 1170 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

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