ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/vmr9.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 88638 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
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__
23 typedef interface IVMRImagePresenter9 IVMRImagePresenter9;
24 #ifdef __cplusplus
25 interface IVMRImagePresenter9;
26 #endif /* __cplusplus */
27 #endif
28
29 #ifndef __IVMRSurfaceAllocator9_FWD_DEFINED__
30 #define __IVMRSurfaceAllocator9_FWD_DEFINED__
31 typedef interface IVMRSurfaceAllocator9 IVMRSurfaceAllocator9;
32 #ifdef __cplusplus
33 interface IVMRSurfaceAllocator9;
34 #endif /* __cplusplus */
35 #endif
36
37 #ifndef __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
38 #define __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
39 typedef interface IVMRSurfaceAllocatorEx9 IVMRSurfaceAllocatorEx9;
40 #ifdef __cplusplus
41 interface IVMRSurfaceAllocatorEx9;
42 #endif /* __cplusplus */
43 #endif
44
45 #ifndef __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
46 #define __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
47 typedef interface IVMRSurfaceAllocatorNotify9 IVMRSurfaceAllocatorNotify9;
48 #ifdef __cplusplus
49 interface IVMRSurfaceAllocatorNotify9;
50 #endif /* __cplusplus */
51 #endif
52
53 #ifndef __IVMRWindowlessControl9_FWD_DEFINED__
54 #define __IVMRWindowlessControl9_FWD_DEFINED__
55 typedef interface IVMRWindowlessControl9 IVMRWindowlessControl9;
56 #ifdef __cplusplus
57 interface IVMRWindowlessControl9;
58 #endif /* __cplusplus */
59 #endif
60
61 #ifndef __IVMRMixerControl9_FWD_DEFINED__
62 #define __IVMRMixerControl9_FWD_DEFINED__
63 typedef interface IVMRMixerControl9 IVMRMixerControl9;
64 #ifdef __cplusplus
65 interface IVMRMixerControl9;
66 #endif /* __cplusplus */
67 #endif
68
69 #ifndef __IVMRMixerBitmap9_FWD_DEFINED__
70 #define __IVMRMixerBitmap9_FWD_DEFINED__
71 typedef interface IVMRMixerBitmap9 IVMRMixerBitmap9;
72 #ifdef __cplusplus
73 interface IVMRMixerBitmap9;
74 #endif /* __cplusplus */
75 #endif
76
77 #ifndef __IVMRSurface9_FWD_DEFINED__
78 #define __IVMRSurface9_FWD_DEFINED__
79 typedef interface IVMRSurface9 IVMRSurface9;
80 #ifdef __cplusplus
81 interface IVMRSurface9;
82 #endif /* __cplusplus */
83 #endif
84
85 #ifndef __IVMRImagePresenterConfig9_FWD_DEFINED__
86 #define __IVMRImagePresenterConfig9_FWD_DEFINED__
87 typedef interface IVMRImagePresenterConfig9 IVMRImagePresenterConfig9;
88 #ifdef __cplusplus
89 interface IVMRImagePresenterConfig9;
90 #endif /* __cplusplus */
91 #endif
92
93 #ifndef __IVMRVideoStreamControl9_FWD_DEFINED__
94 #define __IVMRVideoStreamControl9_FWD_DEFINED__
95 typedef interface IVMRVideoStreamControl9 IVMRVideoStreamControl9;
96 #ifdef __cplusplus
97 interface IVMRVideoStreamControl9;
98 #endif /* __cplusplus */
99 #endif
100
101 #ifndef __IVMRFilterConfig9_FWD_DEFINED__
102 #define __IVMRFilterConfig9_FWD_DEFINED__
103 typedef interface IVMRFilterConfig9 IVMRFilterConfig9;
104 #ifdef __cplusplus
105 interface IVMRFilterConfig9;
106 #endif /* __cplusplus */
107 #endif
108
109 #ifndef __IVMRAspectRatioControl9_FWD_DEFINED__
110 #define __IVMRAspectRatioControl9_FWD_DEFINED__
111 typedef interface IVMRAspectRatioControl9 IVMRAspectRatioControl9;
112 #ifdef __cplusplus
113 interface IVMRAspectRatioControl9;
114 #endif /* __cplusplus */
115 #endif
116
117 #ifndef __IVMRMonitorConfig9_FWD_DEFINED__
118 #define __IVMRMonitorConfig9_FWD_DEFINED__
119 typedef interface IVMRMonitorConfig9 IVMRMonitorConfig9;
120 #ifdef __cplusplus
121 interface IVMRMonitorConfig9;
122 #endif /* __cplusplus */
123 #endif
124
125 #ifndef __IVMRDeinterlaceControl9_FWD_DEFINED__
126 #define __IVMRDeinterlaceControl9_FWD_DEFINED__
127 typedef interface IVMRDeinterlaceControl9 IVMRDeinterlaceControl9;
128 #ifdef __cplusplus
129 interface IVMRDeinterlaceControl9;
130 #endif /* __cplusplus */
131 #endif
132
133 #ifndef __IVMRImageCompositor9_FWD_DEFINED__
134 #define __IVMRImageCompositor9_FWD_DEFINED__
135 typedef interface IVMRImageCompositor9 IVMRImageCompositor9;
136 #ifdef __cplusplus
137 interface IVMRImageCompositor9;
138 #endif /* __cplusplus */
139 #endif
140
141 /* Headers for imported files */
142
143 #include <unknwn.h>
144
145 #ifdef __cplusplus
146 extern "C" {
147 #endif
148
149 #if 0
150 #ifndef __IDirect3DSurface9_FWD_DEFINED__
151 #define __IDirect3DSurface9_FWD_DEFINED__
152 typedef interface IDirect3DSurface9 IDirect3DSurface9;
153 #ifdef __cplusplus
154 interface IDirect3DSurface9;
155 #endif /* __cplusplus */
156 #endif
157
158 #ifndef __IDirect3DDevice9_FWD_DEFINED__
159 #define __IDirect3DDevice9_FWD_DEFINED__
160 typedef interface IDirect3DDevice9 IDirect3DDevice9;
161 #ifdef __cplusplus
162 interface IDirect3DDevice9;
163 #endif /* __cplusplus */
164 #endif
165
166 typedef LONGLONG REFERENCE_TIME;
167 typedef DWORD D3DFORMAT;
168 typedef DWORD D3DPOOL;
169 typedef HANDLE HMONITOR;
170 typedef struct __WIDL_vmr9_generated_name_0000000C {
171 char dummy;
172 } AM_MEDIA_TYPE;
173 typedef struct __WIDL_vmr9_generated_name_0000000D {
174 char dummy;
175 } D3DCOLOR;
176 #endif
177 #ifndef __IVMRSurface9_FWD_DEFINED__
178 #define __IVMRSurface9_FWD_DEFINED__
179 typedef interface IVMRSurface9 IVMRSurface9;
180 #ifdef __cplusplus
181 interface IVMRSurface9;
182 #endif /* __cplusplus */
183 #endif
184
185 #ifndef __IVMRSurfaceAllocator9_FWD_DEFINED__
186 #define __IVMRSurfaceAllocator9_FWD_DEFINED__
187 typedef interface IVMRSurfaceAllocator9 IVMRSurfaceAllocator9;
188 #ifdef __cplusplus
189 interface IVMRSurfaceAllocator9;
190 #endif /* __cplusplus */
191 #endif
192
193 #ifndef __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
194 #define __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
195 typedef interface IVMRSurfaceAllocatorEx9 IVMRSurfaceAllocatorEx9;
196 #ifdef __cplusplus
197 interface IVMRSurfaceAllocatorEx9;
198 #endif /* __cplusplus */
199 #endif
200
201 #ifndef __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
202 #define __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
203 typedef interface IVMRSurfaceAllocatorNotify9 IVMRSurfaceAllocatorNotify9;
204 #ifdef __cplusplus
205 interface IVMRSurfaceAllocatorNotify9;
206 #endif /* __cplusplus */
207 #endif
208
209 #ifndef __IVMRImagePresenter9_FWD_DEFINED__
210 #define __IVMRImagePresenter9_FWD_DEFINED__
211 typedef interface IVMRImagePresenter9 IVMRImagePresenter9;
212 #ifdef __cplusplus
213 interface IVMRImagePresenter9;
214 #endif /* __cplusplus */
215 #endif
216
217 #ifndef __IVMRImagePresenterConfig9_FWD_DEFINED__
218 #define __IVMRImagePresenterConfig9_FWD_DEFINED__
219 typedef interface IVMRImagePresenterConfig9 IVMRImagePresenterConfig9;
220 #ifdef __cplusplus
221 interface IVMRImagePresenterConfig9;
222 #endif /* __cplusplus */
223 #endif
224
225 #ifndef __IVMRMonitorConfig9_FWD_DEFINED__
226 #define __IVMRMonitorConfig9_FWD_DEFINED__
227 typedef interface IVMRMonitorConfig9 IVMRMonitorConfig9;
228 #ifdef __cplusplus
229 interface IVMRMonitorConfig9;
230 #endif /* __cplusplus */
231 #endif
232
233 #ifndef __IVMRWindowlessControl9_FWD_DEFINED__
234 #define __IVMRWindowlessControl9_FWD_DEFINED__
235 typedef interface IVMRWindowlessControl9 IVMRWindowlessControl9;
236 #ifdef __cplusplus
237 interface IVMRWindowlessControl9;
238 #endif /* __cplusplus */
239 #endif
240
241 #ifndef __IVMRMixerControl9_FWD_DEFINED__
242 #define __IVMRMixerControl9_FWD_DEFINED__
243 typedef interface IVMRMixerControl9 IVMRMixerControl9;
244 #ifdef __cplusplus
245 interface IVMRMixerControl9;
246 #endif /* __cplusplus */
247 #endif
248
249 #ifndef __IVMRImageCompositor9_FWD_DEFINED__
250 #define __IVMRImageCompositor9_FWD_DEFINED__
251 typedef interface IVMRImageCompositor9 IVMRImageCompositor9;
252 #ifdef __cplusplus
253 interface IVMRImageCompositor9;
254 #endif /* __cplusplus */
255 #endif
256
257 #ifndef __IVMRMixerBitmap9_FWD_DEFINED__
258 #define __IVMRMixerBitmap9_FWD_DEFINED__
259 typedef interface IVMRMixerBitmap9 IVMRMixerBitmap9;
260 #ifdef __cplusplus
261 interface IVMRMixerBitmap9;
262 #endif /* __cplusplus */
263 #endif
264
265 #ifndef __IVMRFilterConfig9_FWD_DEFINED__
266 #define __IVMRFilterConfig9_FWD_DEFINED__
267 typedef interface IVMRFilterConfig9 IVMRFilterConfig9;
268 #ifdef __cplusplus
269 interface IVMRFilterConfig9;
270 #endif /* __cplusplus */
271 #endif
272
273 #ifndef __IVMRAspectRatioControl9_FWD_DEFINED__
274 #define __IVMRAspectRatioControl9_FWD_DEFINED__
275 typedef interface IVMRAspectRatioControl9 IVMRAspectRatioControl9;
276 #ifdef __cplusplus
277 interface IVMRAspectRatioControl9;
278 #endif /* __cplusplus */
279 #endif
280
281 #ifndef __IVMRVideoStreamControl9_FWD_DEFINED__
282 #define __IVMRVideoStreamControl9_FWD_DEFINED__
283 typedef interface IVMRVideoStreamControl9 IVMRVideoStreamControl9;
284 #ifdef __cplusplus
285 interface IVMRVideoStreamControl9;
286 #endif /* __cplusplus */
287 #endif
288
289 typedef enum _VMR9PresentationFlags {
290 VMR9Sample_SyncPoint = 0x1,
291 VMR9Sample_Preroll = 0x2,
292 VMR9Sample_Discontinuity = 0x4,
293 VMR9Sample_TimeValid = 0x8,
294 VMR9Sample_SrcDstRectsValid = 0x10
295 } VMR9PresentationFlags;
296 typedef 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
313 DEFINE_GUID(IID_IVMRImagePresenter9, 0x69188c61, 0x12a3, 0x40f0, 0x8f,0xfc, 0x34,0x2e,0x7b,0x43,0x3f,0xd7);
314 #if defined(__cplusplus) && !defined(CINTERFACE)
315 MIDL_INTERFACE("69188c61-12a3-40f0-8ffc-342e7b433fd7")
316 IVMRImagePresenter9 : 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
333 typedef 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
365 interface 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 ***/
381 static FORCEINLINE HRESULT IVMRImagePresenter9_QueryInterface(IVMRImagePresenter9* This,REFIID riid,void **ppvObject) {
382 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
383 }
384 static FORCEINLINE ULONG IVMRImagePresenter9_AddRef(IVMRImagePresenter9* This) {
385 return This->lpVtbl->AddRef(This);
386 }
387 static FORCEINLINE ULONG IVMRImagePresenter9_Release(IVMRImagePresenter9* This) {
388 return This->lpVtbl->Release(This);
389 }
390 /*** IVMRImagePresenter9 methods ***/
391 static FORCEINLINE HRESULT IVMRImagePresenter9_StartPresenting(IVMRImagePresenter9* This,DWORD_PTR id) {
392 return This->lpVtbl->StartPresenting(This,id);
393 }
394 static FORCEINLINE HRESULT IVMRImagePresenter9_StopPresenting(IVMRImagePresenter9* This,DWORD_PTR id) {
395 return This->lpVtbl->StopPresenting(This,id);
396 }
397 static 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
408 typedef 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;
417 typedef 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
433 DEFINE_GUID(IID_IVMRSurfaceAllocator9, 0x8d5148ea, 0x3f5d, 0x46cf, 0x9d,0xf1, 0xd1,0xb8,0x96,0xee,0xdb,0x1f);
434 #if defined(__cplusplus) && !defined(CINTERFACE)
435 MIDL_INTERFACE("8d5148ea-3f5d-46cf-9df1-d1b896eedb1f")
436 IVMRSurfaceAllocator9 : 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
460 typedef 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
500 interface 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 ***/
517 static FORCEINLINE HRESULT IVMRSurfaceAllocator9_QueryInterface(IVMRSurfaceAllocator9* This,REFIID riid,void **ppvObject) {
518 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
519 }
520 static FORCEINLINE ULONG IVMRSurfaceAllocator9_AddRef(IVMRSurfaceAllocator9* This) {
521 return This->lpVtbl->AddRef(This);
522 }
523 static FORCEINLINE ULONG IVMRSurfaceAllocator9_Release(IVMRSurfaceAllocator9* This) {
524 return This->lpVtbl->Release(This);
525 }
526 /*** IVMRSurfaceAllocator9 methods ***/
527 static FORCEINLINE HRESULT IVMRSurfaceAllocator9_InitializeDevice(IVMRSurfaceAllocator9* This,DWORD_PTR id,VMR9AllocationInfo *allocinfo,DWORD *numbuffers) {
528 return This->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers);
529 }
530 static FORCEINLINE HRESULT IVMRSurfaceAllocator9_TerminateDevice(IVMRSurfaceAllocator9* This,DWORD_PTR id) {
531 return This->lpVtbl->TerminateDevice(This,id);
532 }
533 static 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 }
536 static 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
553 DEFINE_GUID(IID_IVMRSurfaceAllocatorEx9, 0x6de9a68a, 0xa928, 0x4522, 0xbf,0x57, 0x65,0x5a,0xe3,0x86,0x64,0x56);
554 #if defined(__cplusplus) && !defined(CINTERFACE)
555 MIDL_INTERFACE("6de9a68a-a928-4522-bf57-655ae3866456")
556 IVMRSurfaceAllocatorEx9 : 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
570 typedef 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
619 interface 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 ***/
638 static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_QueryInterface(IVMRSurfaceAllocatorEx9* This,REFIID riid,void **ppvObject) {
639 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
640 }
641 static FORCEINLINE ULONG IVMRSurfaceAllocatorEx9_AddRef(IVMRSurfaceAllocatorEx9* This) {
642 return This->lpVtbl->AddRef(This);
643 }
644 static FORCEINLINE ULONG IVMRSurfaceAllocatorEx9_Release(IVMRSurfaceAllocatorEx9* This) {
645 return This->lpVtbl->Release(This);
646 }
647 /*** IVMRSurfaceAllocator9 methods ***/
648 static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_InitializeDevice(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id,VMR9AllocationInfo *allocinfo,DWORD *numbuffers) {
649 return This->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers);
650 }
651 static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_TerminateDevice(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id) {
652 return This->lpVtbl->TerminateDevice(This,id);
653 }
654 static 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 }
657 static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_AdviseNotify(IVMRSurfaceAllocatorEx9* This,IVMRSurfaceAllocatorNotify9 *allocnotify) {
658 return This->lpVtbl->AdviseNotify(This,allocnotify);
659 }
660 /*** IVMRSurfaceAllocatorEx9 methods ***/
661 static 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
678 DEFINE_GUID(IID_IVMRSurfaceAllocatorNotify9, 0xdca3f5df, 0xbb3a, 0x4d03, 0xbd,0x81, 0x84,0x61,0x4b,0xfb,0xfa,0x0c);
679 #if defined(__cplusplus) && !defined(CINTERFACE)
680 MIDL_INTERFACE("dca3f5df-bb3a-4d03-bd81-84614bfbfa0c")
681 IVMRSurfaceAllocatorNotify9 : 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
710 typedef 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
756 interface 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 ***/
774 static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_QueryInterface(IVMRSurfaceAllocatorNotify9* This,REFIID riid,void **ppvObject) {
775 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
776 }
777 static FORCEINLINE ULONG IVMRSurfaceAllocatorNotify9_AddRef(IVMRSurfaceAllocatorNotify9* This) {
778 return This->lpVtbl->AddRef(This);
779 }
780 static FORCEINLINE ULONG IVMRSurfaceAllocatorNotify9_Release(IVMRSurfaceAllocatorNotify9* This) {
781 return This->lpVtbl->Release(This);
782 }
783 /*** IVMRSurfaceAllocatorNotify9 methods ***/
784 static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator(IVMRSurfaceAllocatorNotify9* This,DWORD_PTR id,IVMRSurfaceAllocator9 *alloc) {
785 return This->lpVtbl->AdviseSurfaceAllocator(This,id,alloc);
786 }
787 static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_SetD3DDevice(IVMRSurfaceAllocatorNotify9* This,IDirect3DDevice9 *device,HMONITOR monitor) {
788 return This->lpVtbl->SetD3DDevice(This,device,monitor);
789 }
790 static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_ChangeD3DDevice(IVMRSurfaceAllocatorNotify9* This,IDirect3DDevice9 *device,HMONITOR monitor) {
791 return This->lpVtbl->ChangeD3DDevice(This,device,monitor);
792 }
793 static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper(IVMRSurfaceAllocatorNotify9* This,VMR9AllocationInfo *allocinfo,DWORD *numbuffers,IDirect3DSurface9 **surface) {
794 return This->lpVtbl->AllocateSurfaceHelper(This,allocinfo,numbuffers,surface);
795 }
796 static 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
807 typedef 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
817 DEFINE_GUID(IID_IVMRWindowlessControl9, 0x8f537d09, 0xf85e, 0x4414, 0xb2,0x3b, 0x50,0x2e,0x54,0xc7,0x99,0x27);
818 #if defined(__cplusplus) && !defined(CINTERFACE)
819 MIDL_INTERFACE("8f537d09-f85e-4414-b23b-502e54c79927")
820 IVMRWindowlessControl9 : 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
874 typedef 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
952 interface 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 ***/
978 static FORCEINLINE HRESULT IVMRWindowlessControl9_QueryInterface(IVMRWindowlessControl9* This,REFIID riid,void **ppvObject) {
979 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
980 }
981 static FORCEINLINE ULONG IVMRWindowlessControl9_AddRef(IVMRWindowlessControl9* This) {
982 return This->lpVtbl->AddRef(This);
983 }
984 static FORCEINLINE ULONG IVMRWindowlessControl9_Release(IVMRWindowlessControl9* This) {
985 return This->lpVtbl->Release(This);
986 }
987 /*** IVMRWindowlessControl9 methods ***/
988 static 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 }
991 static FORCEINLINE HRESULT IVMRWindowlessControl9_GetMinIdealVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height) {
992 return This->lpVtbl->GetMinIdealVideoSize(This,width,height);
993 }
994 static FORCEINLINE HRESULT IVMRWindowlessControl9_GetMaxIdealVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height) {
995 return This->lpVtbl->GetMaxIdealVideoSize(This,width,height);
996 }
997 static FORCEINLINE HRESULT IVMRWindowlessControl9_SetVideoPosition(IVMRWindowlessControl9* This,const RECT *source,const RECT *dest) {
998 return This->lpVtbl->SetVideoPosition(This,source,dest);
999 }
1000 static FORCEINLINE HRESULT IVMRWindowlessControl9_GetVideoPosition(IVMRWindowlessControl9* This,RECT *source,RECT *dest) {
1001 return This->lpVtbl->GetVideoPosition(This,source,dest);
1002 }
1003 static FORCEINLINE HRESULT IVMRWindowlessControl9_GetAspectRatioMode(IVMRWindowlessControl9* This,DWORD *mode) {
1004 return This->lpVtbl->GetAspectRatioMode(This,mode);
1005 }
1006 static FORCEINLINE HRESULT IVMRWindowlessControl9_SetAspectRatioMode(IVMRWindowlessControl9* This,DWORD mode) {
1007 return This->lpVtbl->SetAspectRatioMode(This,mode);
1008 }
1009 static FORCEINLINE HRESULT IVMRWindowlessControl9_SetVideoClippingWindow(IVMRWindowlessControl9* This,HWND hwnd) {
1010 return This->lpVtbl->SetVideoClippingWindow(This,hwnd);
1011 }
1012 static FORCEINLINE HRESULT IVMRWindowlessControl9_RepaintVideo(IVMRWindowlessControl9* This,HWND hwnd,HDC hdc) {
1013 return This->lpVtbl->RepaintVideo(This,hwnd,hdc);
1014 }
1015 static FORCEINLINE HRESULT IVMRWindowlessControl9_DisplayModeChanged(IVMRWindowlessControl9* This) {
1016 return This->lpVtbl->DisplayModeChanged(This);
1017 }
1018 static FORCEINLINE HRESULT IVMRWindowlessControl9_GetCurrentImage(IVMRWindowlessControl9* This,BYTE **dib) {
1019 return This->lpVtbl->GetCurrentImage(This,dib);
1020 }
1021 static FORCEINLINE HRESULT IVMRWindowlessControl9_SetBorderColor(IVMRWindowlessControl9* This,COLORREF color) {
1022 return This->lpVtbl->SetBorderColor(This,color);
1023 }
1024 static 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
1035 typedef 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;
1056 typedef struct _VMR9NormalizedRect {
1057 FLOAT left;
1058 FLOAT top;
1059 FLOAT right;
1060 FLOAT bottom;
1061 } VMR9NormalizedRect;
1062 typedef enum _VMR9ProcAmpControlFlags {
1063 ProcAmpControl9_Brightness = 0x1,
1064 ProcAmpControl9_Contrast = 0x2,
1065 ProcAmpControl9_Hue = 0x4,
1066 ProcAmpControl9_Saturation = 0x8,
1067 ProcAmpControl9_Mask = 0xf
1068 } VMR9ProcAmpControlFlags;
1069 typedef struct _VMR9ProcAmpControl {
1070 DWORD dwSize;
1071 DWORD dwFlags;
1072 FLOAT Brightness;
1073 FLOAT Contrast;
1074 FLOAT Hue;
1075 FLOAT Saturation;
1076 } VMR9ProcAmpControl;
1077 typedef 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
1091 DEFINE_GUID(IID_IVMRMixerControl9, 0x1a777eaa, 0x47c8, 0x4930, 0xb2,0xc9, 0x8f,0xee,0x1c,0x1b,0x0f,0x3b);
1092 #if defined(__cplusplus) && !defined(CINTERFACE)
1093 MIDL_INTERFACE("1a777eaa-47c8-4930-b2c9-8fee1c1b0f3b")
1094 IVMRMixerControl9 : 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
1149 typedef 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
1229 interface 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 ***/
1255 static FORCEINLINE HRESULT IVMRMixerControl9_QueryInterface(IVMRMixerControl9* This,REFIID riid,void **ppvObject) {
1256 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1257 }
1258 static FORCEINLINE ULONG IVMRMixerControl9_AddRef(IVMRMixerControl9* This) {
1259 return This->lpVtbl->AddRef(This);
1260 }
1261 static FORCEINLINE ULONG IVMRMixerControl9_Release(IVMRMixerControl9* This) {
1262 return This->lpVtbl->Release(This);
1263 }
1264 /*** IVMRMixerControl9 methods ***/
1265 static FORCEINLINE HRESULT IVMRMixerControl9_SetAlpha(IVMRMixerControl9* This,DWORD streamid,FLOAT alpha) {
1266 return This->lpVtbl->SetAlpha(This,streamid,alpha);
1267 }
1268 static FORCEINLINE HRESULT IVMRMixerControl9_GetAlpha(IVMRMixerControl9* This,DWORD streamid,FLOAT *alpha) {
1269 return This->lpVtbl->GetAlpha(This,streamid,alpha);
1270 }
1271 static FORCEINLINE HRESULT IVMRMixerControl9_SetZOrder(IVMRMixerControl9* This,DWORD streamid,DWORD zorder) {
1272 return This->lpVtbl->SetZOrder(This,streamid,zorder);
1273 }
1274 static FORCEINLINE HRESULT IVMRMixerControl9_GetZOrder(IVMRMixerControl9* This,DWORD streamid,DWORD *zorder) {
1275 return This->lpVtbl->GetZOrder(This,streamid,zorder);
1276 }
1277 static FORCEINLINE HRESULT IVMRMixerControl9_SetOutputRect(IVMRMixerControl9* This,DWORD streamid,const VMR9NormalizedRect *rect) {
1278 return This->lpVtbl->SetOutputRect(This,streamid,rect);
1279 }
1280 static FORCEINLINE HRESULT IVMRMixerControl9_GetOutputRect(IVMRMixerControl9* This,DWORD streamid,VMR9NormalizedRect *rect) {
1281 return This->lpVtbl->GetOutputRect(This,streamid,rect);
1282 }
1283 static FORCEINLINE HRESULT IVMRMixerControl9_SetBackgroundClr(IVMRMixerControl9* This,COLORREF back) {
1284 return This->lpVtbl->SetBackgroundClr(This,back);
1285 }
1286 static FORCEINLINE HRESULT IVMRMixerControl9_GetBackgroundClr(IVMRMixerControl9* This,COLORREF *back) {
1287 return This->lpVtbl->GetBackgroundClr(This,back);
1288 }
1289 static FORCEINLINE HRESULT IVMRMixerControl9_SetMixingPrefs(IVMRMixerControl9* This,DWORD mixingprefs) {
1290 return This->lpVtbl->SetMixingPrefs(This,mixingprefs);
1291 }
1292 static FORCEINLINE HRESULT IVMRMixerControl9_GetMixingPrefs(IVMRMixerControl9* This,DWORD *mixingprefs) {
1293 return This->lpVtbl->GetMixingPrefs(This,mixingprefs);
1294 }
1295 static FORCEINLINE HRESULT IVMRMixerControl9_SetProcAmpControl(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControl *control) {
1296 return This->lpVtbl->SetProcAmpControl(This,streamid,control);
1297 }
1298 static FORCEINLINE HRESULT IVMRMixerControl9_GetProcAmpControl(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControl *control) {
1299 return This->lpVtbl->GetProcAmpControl(This,streamid,control);
1300 }
1301 static 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
1312 typedef 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;
1322 typedef 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
1336 DEFINE_GUID(IID_IVMRMixerBitmap9, 0xced175e5, 0x1935, 0x4820, 0x81,0xbd, 0xff,0x6a,0xd0,0x0c,0x91,0x08);
1337 #if defined(__cplusplus) && !defined(CINTERFACE)
1338 MIDL_INTERFACE("ced175e5-1935-4820-81bd-ff6ad00c9108")
1339 IVMRMixerBitmap9 : 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
1355 typedef 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
1386 interface 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 ***/
1402 static FORCEINLINE HRESULT IVMRMixerBitmap9_QueryInterface(IVMRMixerBitmap9* This,REFIID riid,void **ppvObject) {
1403 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1404 }
1405 static FORCEINLINE ULONG IVMRMixerBitmap9_AddRef(IVMRMixerBitmap9* This) {
1406 return This->lpVtbl->AddRef(This);
1407 }
1408 static FORCEINLINE ULONG IVMRMixerBitmap9_Release(IVMRMixerBitmap9* This) {
1409 return This->lpVtbl->Release(This);
1410 }
1411 /*** IVMRMixerBitmap9 methods ***/
1412 static FORCEINLINE HRESULT IVMRMixerBitmap9_SetAlphaBitmap(IVMRMixerBitmap9* This,const VMR9AlphaBitmap *bitmap) {
1413 return This->lpVtbl->SetAlphaBitmap(This,bitmap);
1414 }
1415 static FORCEINLINE HRESULT IVMRMixerBitmap9_UpdateAlphaBitmapParameters(IVMRMixerBitmap9* This,const VMR9AlphaBitmap *bitmap) {
1416 return This->lpVtbl->UpdateAlphaBitmapParameters(This,bitmap);
1417 }
1418 static 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
1435 DEFINE_GUID(IID_IVMRSurface9, 0xdfc581a1, 0x6e1f, 0x4c3a, 0x8d,0x0a, 0x5e,0x97,0x92,0xea,0x2a,0xfc);
1436 #if defined(__cplusplus) && !defined(CINTERFACE)
1437 MIDL_INTERFACE("dfc581a1-6e1f-4c3a-8d0a-5e9792ea2afc")
1438 IVMRSurface9 : 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
1457 typedef 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
1490 interface 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 ***/
1507 static FORCEINLINE HRESULT IVMRSurface9_QueryInterface(IVMRSurface9* This,REFIID riid,void **ppvObject) {
1508 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1509 }
1510 static FORCEINLINE ULONG IVMRSurface9_AddRef(IVMRSurface9* This) {
1511 return This->lpVtbl->AddRef(This);
1512 }
1513 static FORCEINLINE ULONG IVMRSurface9_Release(IVMRSurface9* This) {
1514 return This->lpVtbl->Release(This);
1515 }
1516 /*** IVMRSurface9 methods ***/
1517 static FORCEINLINE HRESULT IVMRSurface9_IsSurfaceLocked(IVMRSurface9* This) {
1518 return This->lpVtbl->IsSurfaceLocked(This);
1519 }
1520 static FORCEINLINE HRESULT IVMRSurface9_LockSurface(IVMRSurface9* This,BYTE **surface) {
1521 return This->lpVtbl->LockSurface(This,surface);
1522 }
1523 static FORCEINLINE HRESULT IVMRSurface9_UnlockSurface(IVMRSurface9* This) {
1524 return This->lpVtbl->UnlockSurface(This);
1525 }
1526 static 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
1537 typedef 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
1547 DEFINE_GUID(IID_IVMRImagePresenterConfig9, 0x45c15cab, 0x6e22, 0x420a, 0x80,0x43, 0xae,0x1f,0x0a,0xc0,0x2c,0x7d);
1548 #if defined(__cplusplus) && !defined(CINTERFACE)
1549 MIDL_INTERFACE("45c15cab-6e22-420a-8043-ae1f0ac02c7d")
1550 IVMRImagePresenterConfig9 : 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
1563 typedef 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
1590 interface 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 ***/
1605 static FORCEINLINE HRESULT IVMRImagePresenterConfig9_QueryInterface(IVMRImagePresenterConfig9* This,REFIID riid,void **ppvObject) {
1606 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1607 }
1608 static FORCEINLINE ULONG IVMRImagePresenterConfig9_AddRef(IVMRImagePresenterConfig9* This) {
1609 return This->lpVtbl->AddRef(This);
1610 }
1611 static FORCEINLINE ULONG IVMRImagePresenterConfig9_Release(IVMRImagePresenterConfig9* This) {
1612 return This->lpVtbl->Release(This);
1613 }
1614 /*** IVMRImagePresenterConfig9 methods ***/
1615 static FORCEINLINE HRESULT IVMRImagePresenterConfig9_SetRenderingPrefs(IVMRImagePresenterConfig9* This,DWORD renderflags) {
1616 return This->lpVtbl->SetRenderingPrefs(This,renderflags);
1617 }
1618 static 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
1635 DEFINE_GUID(IID_IVMRVideoStreamControl9, 0xd0cfe38b, 0x93e7, 0x4772, 0x89,0x57, 0x04,0x00,0xc4,0x9a,0x44,0x85);
1636 #if defined(__cplusplus) && !defined(CINTERFACE)
1637 MIDL_INTERFACE("d0cfe38b-93e7-4772-8957-0400c49a4485")
1638 IVMRVideoStreamControl9 : 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
1651 typedef 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
1678 interface 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 ***/
1693 static FORCEINLINE HRESULT IVMRVideoStreamControl9_QueryInterface(IVMRVideoStreamControl9* This,REFIID riid,void **ppvObject) {
1694 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1695 }
1696 static FORCEINLINE ULONG IVMRVideoStreamControl9_AddRef(IVMRVideoStreamControl9* This) {
1697 return This->lpVtbl->AddRef(This);
1698 }
1699 static FORCEINLINE ULONG IVMRVideoStreamControl9_Release(IVMRVideoStreamControl9* This) {
1700 return This->lpVtbl->Release(This);
1701 }
1702 /*** IVMRVideoStreamControl9 methods ***/
1703 static FORCEINLINE HRESULT IVMRVideoStreamControl9_SetStreamActiveState(IVMRVideoStreamControl9* This,WINBOOL active) {
1704 return This->lpVtbl->SetStreamActiveState(This,active);
1705 }
1706 static 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
1717 typedef 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
1729 DEFINE_GUID(IID_IVMRFilterConfig9, 0x5a804648, 0x4f66, 0x4867, 0x9c,0x43, 0x4f,0x5c,0x82,0x2c,0xf1,0xb8);
1730 #if defined(__cplusplus) && !defined(CINTERFACE)
1731 MIDL_INTERFACE("5a804648-4f66-4867-9c43-4f5c822cf1b8")
1732 IVMRFilterConfig9 : 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
1760 typedef 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
1807 interface 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 ***/
1827 static FORCEINLINE HRESULT IVMRFilterConfig9_QueryInterface(IVMRFilterConfig9* This,REFIID riid,void **ppvObject) {
1828 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1829 }
1830 static FORCEINLINE ULONG IVMRFilterConfig9_AddRef(IVMRFilterConfig9* This) {
1831 return This->lpVtbl->AddRef(This);
1832 }
1833 static FORCEINLINE ULONG IVMRFilterConfig9_Release(IVMRFilterConfig9* This) {
1834 return This->lpVtbl->Release(This);
1835 }
1836 /*** IVMRFilterConfig9 methods ***/
1837 static FORCEINLINE HRESULT IVMRFilterConfig9_SetImageCompositor(IVMRFilterConfig9* This,IVMRImageCompositor9 *compositor) {
1838 return This->lpVtbl->SetImageCompositor(This,compositor);
1839 }
1840 static FORCEINLINE HRESULT IVMRFilterConfig9_SetNumberOfStreams(IVMRFilterConfig9* This,DWORD max) {
1841 return This->lpVtbl->SetNumberOfStreams(This,max);
1842 }
1843 static FORCEINLINE HRESULT IVMRFilterConfig9_GetNumberOfStreams(IVMRFilterConfig9* This,DWORD *max) {
1844 return This->lpVtbl->GetNumberOfStreams(This,max);
1845 }
1846 static FORCEINLINE HRESULT IVMRFilterConfig9_SetRenderingPrefs(IVMRFilterConfig9* This,DWORD renderflags) {
1847 return This->lpVtbl->SetRenderingPrefs(This,renderflags);
1848 }
1849 static FORCEINLINE HRESULT IVMRFilterConfig9_GetRenderingPrefs(IVMRFilterConfig9* This,DWORD *renderflags) {
1850 return This->lpVtbl->GetRenderingPrefs(This,renderflags);
1851 }
1852 static FORCEINLINE HRESULT IVMRFilterConfig9_SetRenderingMode(IVMRFilterConfig9* This,DWORD mode) {
1853 return This->lpVtbl->SetRenderingMode(This,mode);
1854 }
1855 static 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
1872 DEFINE_GUID(IID_IVMRAspectRatioControl9, 0x00d96c29, 0xbbde, 0x4efc, 0x99,0x01, 0xbb,0x50,0x36,0x39,0x21,0x46);
1873 #if defined(__cplusplus) && !defined(CINTERFACE)
1874 MIDL_INTERFACE("00d96c29-bbde-4efc-9901-bb5036392146")
1875 IVMRAspectRatioControl9 : 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
1888 typedef 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
1915 interface 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 ***/
1930 static FORCEINLINE HRESULT IVMRAspectRatioControl9_QueryInterface(IVMRAspectRatioControl9* This,REFIID riid,void **ppvObject) {
1931 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1932 }
1933 static FORCEINLINE ULONG IVMRAspectRatioControl9_AddRef(IVMRAspectRatioControl9* This) {
1934 return This->lpVtbl->AddRef(This);
1935 }
1936 static FORCEINLINE ULONG IVMRAspectRatioControl9_Release(IVMRAspectRatioControl9* This) {
1937 return This->lpVtbl->Release(This);
1938 }
1939 /*** IVMRAspectRatioControl9 methods ***/
1940 static FORCEINLINE HRESULT IVMRAspectRatioControl9_GetAspectRatioMode(IVMRAspectRatioControl9* This,DWORD *mode) {
1941 return This->lpVtbl->GetAspectRatioMode(This,mode);
1942 }
1943 static 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
1954 typedef 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
1973 DEFINE_GUID(IID_IVMRMonitorConfig9, 0x46c2e457, 0x8ba0, 0x4eef, 0xb8,0x0b, 0x06,0x80,0xf0,0x97,0x87,0x49);
1974 #if defined(__cplusplus) && !defined(CINTERFACE)
1975 MIDL_INTERFACE("46c2e457-8ba0-4eef-b80b-0680f0978749")
1976 IVMRMonitorConfig9 : 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
2000 typedef 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
2041 interface 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 ***/
2059 static FORCEINLINE HRESULT IVMRMonitorConfig9_QueryInterface(IVMRMonitorConfig9* This,REFIID riid,void **ppvObject) {
2060 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2061 }
2062 static FORCEINLINE ULONG IVMRMonitorConfig9_AddRef(IVMRMonitorConfig9* This) {
2063 return This->lpVtbl->AddRef(This);
2064 }
2065 static FORCEINLINE ULONG IVMRMonitorConfig9_Release(IVMRMonitorConfig9* This) {
2066 return This->lpVtbl->Release(This);
2067 }
2068 /*** IVMRMonitorConfig9 methods ***/
2069 static FORCEINLINE HRESULT IVMRMonitorConfig9_SetMonitor(IVMRMonitorConfig9* This,UINT uDev) {
2070 return This->lpVtbl->SetMonitor(This,uDev);
2071 }
2072 static FORCEINLINE HRESULT IVMRMonitorConfig9_GetMonitor(IVMRMonitorConfig9* This,UINT *uDev) {
2073 return This->lpVtbl->GetMonitor(This,uDev);
2074 }
2075 static FORCEINLINE HRESULT IVMRMonitorConfig9_SetDefaultMonitor(IVMRMonitorConfig9* This,UINT uDev) {
2076 return This->lpVtbl->SetDefaultMonitor(This,uDev);
2077 }
2078 static FORCEINLINE HRESULT IVMRMonitorConfig9_GetDefaultMonitor(IVMRMonitorConfig9* This,UINT *uDev) {
2079 return This->lpVtbl->GetDefaultMonitor(This,uDev);
2080 }
2081 static 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
2092 typedef enum _VMR9DeinterlacePrefs {
2093 DeinterlacePref9_NextBest = 0x1,
2094 DeinterlacePref9_BOB = 0x2,
2095 DeinterlacePref9_Weave = 0x4,
2096 DeinterlacePref9_Mask = 0x7
2097 } VMR9DeinterlacePrefs;
2098 typedef 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;
2108 typedef struct _VMR9Frequency {
2109 DWORD dwNumerator;
2110 DWORD dwDenominator;
2111 } VMR9Frequency;
2112 typedef 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;
2120 typedef 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;
2129 typedef 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
2142 DEFINE_GUID(IID_IVMRDeinterlaceControl9, 0xa215fb8d, 0x13c2, 0x4f7f, 0x99,0x3c, 0x00,0x3d,0x62,0x71,0xa4,0x59);
2143 #if defined(__cplusplus) && !defined(CINTERFACE)
2144 MIDL_INTERFACE("a215fb8d-13c2-4f7f-993c-003d6271a459")
2145 IVMRDeinterlaceControl9 : 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
2180 typedef 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
2234 interface 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 ***/
2254 static FORCEINLINE HRESULT IVMRDeinterlaceControl9_QueryInterface(IVMRDeinterlaceControl9* This,REFIID riid,void **ppvObject) {
2255 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2256 }
2257 static FORCEINLINE ULONG IVMRDeinterlaceControl9_AddRef(IVMRDeinterlaceControl9* This) {
2258 return This->lpVtbl->AddRef(This);
2259 }
2260 static FORCEINLINE ULONG IVMRDeinterlaceControl9_Release(IVMRDeinterlaceControl9* This) {
2261 return This->lpVtbl->Release(This);
2262 }
2263 /*** IVMRDeinterlaceControl9 methods ***/
2264 static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes(IVMRDeinterlaceControl9* This,VMR9VideoDesc *desc,DWORD *nummodes,GUID *modes) {
2265 return This->lpVtbl->GetNumberOfDeinterlaceModes(This,desc,nummodes,modes);
2266 }
2267 static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlaceModeCaps(IVMRDeinterlaceControl9* This,GUID *mode,VMR9VideoDesc *desc,VMR9DeinterlaceCaps *caps) {
2268 return This->lpVtbl->GetDeinterlaceModeCaps(This,mode,desc,caps);
2269 }
2270 static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) {
2271 return This->lpVtbl->GetDeinterlaceMode(This,streamid,mode);
2272 }
2273 static FORCEINLINE HRESULT IVMRDeinterlaceControl9_SetDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) {
2274 return This->lpVtbl->SetDeinterlaceMode(This,streamid,mode);
2275 }
2276 static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlacePrefs(IVMRDeinterlaceControl9* This,DWORD *prefs) {
2277 return This->lpVtbl->GetDeinterlacePrefs(This,prefs);
2278 }
2279 static FORCEINLINE HRESULT IVMRDeinterlaceControl9_SetDeinterlacePrefs(IVMRDeinterlaceControl9* This,DWORD prefs) {
2280 return This->lpVtbl->SetDeinterlacePrefs(This,prefs);
2281 }
2282 static 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
2293 typedef 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
2310 DEFINE_GUID(IID_IVMRImageCompositor9, 0x4a5c89eb, 0xdf51, 0x4654, 0xac,0x2a, 0xe4,0x8e,0x02,0xbb,0xab,0xf6);
2311 #if defined(__cplusplus) && !defined(CINTERFACE)
2312 MIDL_INTERFACE("4a5c89eb-df51-4654-ac2a-e48e02bbabf6")
2313 IVMRImageCompositor9 : 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
2341 typedef 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
2385 interface 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 ***/
2402 static FORCEINLINE HRESULT IVMRImageCompositor9_QueryInterface(IVMRImageCompositor9* This,REFIID riid,void **ppvObject) {
2403 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2404 }
2405 static FORCEINLINE ULONG IVMRImageCompositor9_AddRef(IVMRImageCompositor9* This) {
2406 return This->lpVtbl->AddRef(This);
2407 }
2408 static FORCEINLINE ULONG IVMRImageCompositor9_Release(IVMRImageCompositor9* This) {
2409 return This->lpVtbl->Release(This);
2410 }
2411 /*** IVMRImageCompositor9 methods ***/
2412 static FORCEINLINE HRESULT IVMRImageCompositor9_InitCompositionDevice(IVMRImageCompositor9* This,IUnknown *d3ddev) {
2413 return This->lpVtbl->InitCompositionDevice(This,d3ddev);
2414 }
2415 static FORCEINLINE HRESULT IVMRImageCompositor9_TermCompositionDevice(IVMRImageCompositor9* This,IUnknown *d3ddev) {
2416 return This->lpVtbl->TermCompositionDevice(This,d3ddev);
2417 }
2418 static FORCEINLINE HRESULT IVMRImageCompositor9_SetStreamMediaType(IVMRImageCompositor9* This,DWORD stream,AM_MEDIA_TYPE *mt,WINBOOL texture) {
2419 return This->lpVtbl->SetStreamMediaType(This,stream,mt,texture);
2420 }
2421 static FORCEINLINE HRESULT IVMRImageCompositor9_CompositeImage(IVMRImageCompositor9* This,IUnknown *d3ddev,IDirect3DSurface9 *d3dtarget,AM_MEDIA_TYPE *mttarget,REFERENCE_TIME start,REFERENCE_TIME stop,D3DCOLOR back,VMR9VideoStreamInfo *info,UINT streams) {
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__ */