vmr9.h (88019B) - Raw
1 /*** Autogenerated by WIDL 10.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 inline HRESULT IVMRImagePresenter9_QueryInterface(IVMRImagePresenter9* This,REFIID riid,void **ppvObject) { 382 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 383 } 384 static inline ULONG IVMRImagePresenter9_AddRef(IVMRImagePresenter9* This) { 385 return This->lpVtbl->AddRef(This); 386 } 387 static inline ULONG IVMRImagePresenter9_Release(IVMRImagePresenter9* This) { 388 return This->lpVtbl->Release(This); 389 } 390 /*** IVMRImagePresenter9 methods ***/ 391 static inline HRESULT IVMRImagePresenter9_StartPresenting(IVMRImagePresenter9* This,DWORD_PTR id) { 392 return This->lpVtbl->StartPresenting(This,id); 393 } 394 static inline HRESULT IVMRImagePresenter9_StopPresenting(IVMRImagePresenter9* This,DWORD_PTR id) { 395 return This->lpVtbl->StopPresenting(This,id); 396 } 397 static inline 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 inline HRESULT IVMRSurfaceAllocator9_QueryInterface(IVMRSurfaceAllocator9* This,REFIID riid,void **ppvObject) { 518 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 519 } 520 static inline ULONG IVMRSurfaceAllocator9_AddRef(IVMRSurfaceAllocator9* This) { 521 return This->lpVtbl->AddRef(This); 522 } 523 static inline ULONG IVMRSurfaceAllocator9_Release(IVMRSurfaceAllocator9* This) { 524 return This->lpVtbl->Release(This); 525 } 526 /*** IVMRSurfaceAllocator9 methods ***/ 527 static inline HRESULT IVMRSurfaceAllocator9_InitializeDevice(IVMRSurfaceAllocator9* This,DWORD_PTR id,VMR9AllocationInfo *allocinfo,DWORD *numbuffers) { 528 return This->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers); 529 } 530 static inline HRESULT IVMRSurfaceAllocator9_TerminateDevice(IVMRSurfaceAllocator9* This,DWORD_PTR id) { 531 return This->lpVtbl->TerminateDevice(This,id); 532 } 533 static inline 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 inline 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 inline HRESULT IVMRSurfaceAllocatorEx9_QueryInterface(IVMRSurfaceAllocatorEx9* This,REFIID riid,void **ppvObject) { 639 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 640 } 641 static inline ULONG IVMRSurfaceAllocatorEx9_AddRef(IVMRSurfaceAllocatorEx9* This) { 642 return This->lpVtbl->AddRef(This); 643 } 644 static inline ULONG IVMRSurfaceAllocatorEx9_Release(IVMRSurfaceAllocatorEx9* This) { 645 return This->lpVtbl->Release(This); 646 } 647 /*** IVMRSurfaceAllocator9 methods ***/ 648 static inline HRESULT IVMRSurfaceAllocatorEx9_InitializeDevice(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id,VMR9AllocationInfo *allocinfo,DWORD *numbuffers) { 649 return This->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers); 650 } 651 static inline HRESULT IVMRSurfaceAllocatorEx9_TerminateDevice(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id) { 652 return This->lpVtbl->TerminateDevice(This,id); 653 } 654 static inline 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 inline HRESULT IVMRSurfaceAllocatorEx9_AdviseNotify(IVMRSurfaceAllocatorEx9* This,IVMRSurfaceAllocatorNotify9 *allocnotify) { 658 return This->lpVtbl->AdviseNotify(This,allocnotify); 659 } 660 /*** IVMRSurfaceAllocatorEx9 methods ***/ 661 static inline 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 inline HRESULT IVMRSurfaceAllocatorNotify9_QueryInterface(IVMRSurfaceAllocatorNotify9* This,REFIID riid,void **ppvObject) { 775 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 776 } 777 static inline ULONG IVMRSurfaceAllocatorNotify9_AddRef(IVMRSurfaceAllocatorNotify9* This) { 778 return This->lpVtbl->AddRef(This); 779 } 780 static inline ULONG IVMRSurfaceAllocatorNotify9_Release(IVMRSurfaceAllocatorNotify9* This) { 781 return This->lpVtbl->Release(This); 782 } 783 /*** IVMRSurfaceAllocatorNotify9 methods ***/ 784 static inline HRESULT IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator(IVMRSurfaceAllocatorNotify9* This,DWORD_PTR id,IVMRSurfaceAllocator9 *alloc) { 785 return This->lpVtbl->AdviseSurfaceAllocator(This,id,alloc); 786 } 787 static inline HRESULT IVMRSurfaceAllocatorNotify9_SetD3DDevice(IVMRSurfaceAllocatorNotify9* This,IDirect3DDevice9 *device,HMONITOR monitor) { 788 return This->lpVtbl->SetD3DDevice(This,device,monitor); 789 } 790 static inline HRESULT IVMRSurfaceAllocatorNotify9_ChangeD3DDevice(IVMRSurfaceAllocatorNotify9* This,IDirect3DDevice9 *device,HMONITOR monitor) { 791 return This->lpVtbl->ChangeD3DDevice(This,device,monitor); 792 } 793 static inline HRESULT IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper(IVMRSurfaceAllocatorNotify9* This,VMR9AllocationInfo *allocinfo,DWORD *numbuffers,IDirect3DSurface9 **surface) { 794 return This->lpVtbl->AllocateSurfaceHelper(This,allocinfo,numbuffers,surface); 795 } 796 static inline 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 inline HRESULT IVMRWindowlessControl9_QueryInterface(IVMRWindowlessControl9* This,REFIID riid,void **ppvObject) { 979 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 980 } 981 static inline ULONG IVMRWindowlessControl9_AddRef(IVMRWindowlessControl9* This) { 982 return This->lpVtbl->AddRef(This); 983 } 984 static inline ULONG IVMRWindowlessControl9_Release(IVMRWindowlessControl9* This) { 985 return This->lpVtbl->Release(This); 986 } 987 /*** IVMRWindowlessControl9 methods ***/ 988 static inline 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 inline HRESULT IVMRWindowlessControl9_GetMinIdealVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height) { 992 return This->lpVtbl->GetMinIdealVideoSize(This,width,height); 993 } 994 static inline HRESULT IVMRWindowlessControl9_GetMaxIdealVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height) { 995 return This->lpVtbl->GetMaxIdealVideoSize(This,width,height); 996 } 997 static inline HRESULT IVMRWindowlessControl9_SetVideoPosition(IVMRWindowlessControl9* This,const RECT *source,const RECT *dest) { 998 return This->lpVtbl->SetVideoPosition(This,source,dest); 999 } 1000 static inline HRESULT IVMRWindowlessControl9_GetVideoPosition(IVMRWindowlessControl9* This,RECT *source,RECT *dest) { 1001 return This->lpVtbl->GetVideoPosition(This,source,dest); 1002 } 1003 static inline HRESULT IVMRWindowlessControl9_GetAspectRatioMode(IVMRWindowlessControl9* This,DWORD *mode) { 1004 return This->lpVtbl->GetAspectRatioMode(This,mode); 1005 } 1006 static inline HRESULT IVMRWindowlessControl9_SetAspectRatioMode(IVMRWindowlessControl9* This,DWORD mode) { 1007 return This->lpVtbl->SetAspectRatioMode(This,mode); 1008 } 1009 static inline HRESULT IVMRWindowlessControl9_SetVideoClippingWindow(IVMRWindowlessControl9* This,HWND hwnd) { 1010 return This->lpVtbl->SetVideoClippingWindow(This,hwnd); 1011 } 1012 static inline HRESULT IVMRWindowlessControl9_RepaintVideo(IVMRWindowlessControl9* This,HWND hwnd,HDC hdc) { 1013 return This->lpVtbl->RepaintVideo(This,hwnd,hdc); 1014 } 1015 static inline HRESULT IVMRWindowlessControl9_DisplayModeChanged(IVMRWindowlessControl9* This) { 1016 return This->lpVtbl->DisplayModeChanged(This); 1017 } 1018 static inline HRESULT IVMRWindowlessControl9_GetCurrentImage(IVMRWindowlessControl9* This,BYTE **dib) { 1019 return This->lpVtbl->GetCurrentImage(This,dib); 1020 } 1021 static inline HRESULT IVMRWindowlessControl9_SetBorderColor(IVMRWindowlessControl9* This,COLORREF color) { 1022 return This->lpVtbl->SetBorderColor(This,color); 1023 } 1024 static inline 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 inline HRESULT IVMRMixerControl9_QueryInterface(IVMRMixerControl9* This,REFIID riid,void **ppvObject) { 1256 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1257 } 1258 static inline ULONG IVMRMixerControl9_AddRef(IVMRMixerControl9* This) { 1259 return This->lpVtbl->AddRef(This); 1260 } 1261 static inline ULONG IVMRMixerControl9_Release(IVMRMixerControl9* This) { 1262 return This->lpVtbl->Release(This); 1263 } 1264 /*** IVMRMixerControl9 methods ***/ 1265 static inline HRESULT IVMRMixerControl9_SetAlpha(IVMRMixerControl9* This,DWORD streamid,FLOAT alpha) { 1266 return This->lpVtbl->SetAlpha(This,streamid,alpha); 1267 } 1268 static inline HRESULT IVMRMixerControl9_GetAlpha(IVMRMixerControl9* This,DWORD streamid,FLOAT *alpha) { 1269 return This->lpVtbl->GetAlpha(This,streamid,alpha); 1270 } 1271 static inline HRESULT IVMRMixerControl9_SetZOrder(IVMRMixerControl9* This,DWORD streamid,DWORD zorder) { 1272 return This->lpVtbl->SetZOrder(This,streamid,zorder); 1273 } 1274 static inline HRESULT IVMRMixerControl9_GetZOrder(IVMRMixerControl9* This,DWORD streamid,DWORD *zorder) { 1275 return This->lpVtbl->GetZOrder(This,streamid,zorder); 1276 } 1277 static inline HRESULT IVMRMixerControl9_SetOutputRect(IVMRMixerControl9* This,DWORD streamid,const VMR9NormalizedRect *rect) { 1278 return This->lpVtbl->SetOutputRect(This,streamid,rect); 1279 } 1280 static inline HRESULT IVMRMixerControl9_GetOutputRect(IVMRMixerControl9* This,DWORD streamid,VMR9NormalizedRect *rect) { 1281 return This->lpVtbl->GetOutputRect(This,streamid,rect); 1282 } 1283 static inline HRESULT IVMRMixerControl9_SetBackgroundClr(IVMRMixerControl9* This,COLORREF back) { 1284 return This->lpVtbl->SetBackgroundClr(This,back); 1285 } 1286 static inline HRESULT IVMRMixerControl9_GetBackgroundClr(IVMRMixerControl9* This,COLORREF *back) { 1287 return This->lpVtbl->GetBackgroundClr(This,back); 1288 } 1289 static inline HRESULT IVMRMixerControl9_SetMixingPrefs(IVMRMixerControl9* This,DWORD mixingprefs) { 1290 return This->lpVtbl->SetMixingPrefs(This,mixingprefs); 1291 } 1292 static inline HRESULT IVMRMixerControl9_GetMixingPrefs(IVMRMixerControl9* This,DWORD *mixingprefs) { 1293 return This->lpVtbl->GetMixingPrefs(This,mixingprefs); 1294 } 1295 static inline HRESULT IVMRMixerControl9_SetProcAmpControl(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControl *control) { 1296 return This->lpVtbl->SetProcAmpControl(This,streamid,control); 1297 } 1298 static inline HRESULT IVMRMixerControl9_GetProcAmpControl(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControl *control) { 1299 return This->lpVtbl->GetProcAmpControl(This,streamid,control); 1300 } 1301 static inline 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 inline HRESULT IVMRMixerBitmap9_QueryInterface(IVMRMixerBitmap9* This,REFIID riid,void **ppvObject) { 1403 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1404 } 1405 static inline ULONG IVMRMixerBitmap9_AddRef(IVMRMixerBitmap9* This) { 1406 return This->lpVtbl->AddRef(This); 1407 } 1408 static inline ULONG IVMRMixerBitmap9_Release(IVMRMixerBitmap9* This) { 1409 return This->lpVtbl->Release(This); 1410 } 1411 /*** IVMRMixerBitmap9 methods ***/ 1412 static inline HRESULT IVMRMixerBitmap9_SetAlphaBitmap(IVMRMixerBitmap9* This,const VMR9AlphaBitmap *bitmap) { 1413 return This->lpVtbl->SetAlphaBitmap(This,bitmap); 1414 } 1415 static inline HRESULT IVMRMixerBitmap9_UpdateAlphaBitmapParameters(IVMRMixerBitmap9* This,const VMR9AlphaBitmap *bitmap) { 1416 return This->lpVtbl->UpdateAlphaBitmapParameters(This,bitmap); 1417 } 1418 static inline 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 inline HRESULT IVMRSurface9_QueryInterface(IVMRSurface9* This,REFIID riid,void **ppvObject) { 1508 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1509 } 1510 static inline ULONG IVMRSurface9_AddRef(IVMRSurface9* This) { 1511 return This->lpVtbl->AddRef(This); 1512 } 1513 static inline ULONG IVMRSurface9_Release(IVMRSurface9* This) { 1514 return This->lpVtbl->Release(This); 1515 } 1516 /*** IVMRSurface9 methods ***/ 1517 static inline HRESULT IVMRSurface9_IsSurfaceLocked(IVMRSurface9* This) { 1518 return This->lpVtbl->IsSurfaceLocked(This); 1519 } 1520 static inline HRESULT IVMRSurface9_LockSurface(IVMRSurface9* This,BYTE **surface) { 1521 return This->lpVtbl->LockSurface(This,surface); 1522 } 1523 static inline HRESULT IVMRSurface9_UnlockSurface(IVMRSurface9* This) { 1524 return This->lpVtbl->UnlockSurface(This); 1525 } 1526 static inline 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 inline HRESULT IVMRImagePresenterConfig9_QueryInterface(IVMRImagePresenterConfig9* This,REFIID riid,void **ppvObject) { 1606 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1607 } 1608 static inline ULONG IVMRImagePresenterConfig9_AddRef(IVMRImagePresenterConfig9* This) { 1609 return This->lpVtbl->AddRef(This); 1610 } 1611 static inline ULONG IVMRImagePresenterConfig9_Release(IVMRImagePresenterConfig9* This) { 1612 return This->lpVtbl->Release(This); 1613 } 1614 /*** IVMRImagePresenterConfig9 methods ***/ 1615 static inline HRESULT IVMRImagePresenterConfig9_SetRenderingPrefs(IVMRImagePresenterConfig9* This,DWORD renderflags) { 1616 return This->lpVtbl->SetRenderingPrefs(This,renderflags); 1617 } 1618 static inline 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 inline HRESULT IVMRVideoStreamControl9_QueryInterface(IVMRVideoStreamControl9* This,REFIID riid,void **ppvObject) { 1694 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1695 } 1696 static inline ULONG IVMRVideoStreamControl9_AddRef(IVMRVideoStreamControl9* This) { 1697 return This->lpVtbl->AddRef(This); 1698 } 1699 static inline ULONG IVMRVideoStreamControl9_Release(IVMRVideoStreamControl9* This) { 1700 return This->lpVtbl->Release(This); 1701 } 1702 /*** IVMRVideoStreamControl9 methods ***/ 1703 static inline HRESULT IVMRVideoStreamControl9_SetStreamActiveState(IVMRVideoStreamControl9* This,WINBOOL active) { 1704 return This->lpVtbl->SetStreamActiveState(This,active); 1705 } 1706 static inline 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 inline HRESULT IVMRFilterConfig9_QueryInterface(IVMRFilterConfig9* This,REFIID riid,void **ppvObject) { 1828 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1829 } 1830 static inline ULONG IVMRFilterConfig9_AddRef(IVMRFilterConfig9* This) { 1831 return This->lpVtbl->AddRef(This); 1832 } 1833 static inline ULONG IVMRFilterConfig9_Release(IVMRFilterConfig9* This) { 1834 return This->lpVtbl->Release(This); 1835 } 1836 /*** IVMRFilterConfig9 methods ***/ 1837 static inline HRESULT IVMRFilterConfig9_SetImageCompositor(IVMRFilterConfig9* This,IVMRImageCompositor9 *compositor) { 1838 return This->lpVtbl->SetImageCompositor(This,compositor); 1839 } 1840 static inline HRESULT IVMRFilterConfig9_SetNumberOfStreams(IVMRFilterConfig9* This,DWORD max) { 1841 return This->lpVtbl->SetNumberOfStreams(This,max); 1842 } 1843 static inline HRESULT IVMRFilterConfig9_GetNumberOfStreams(IVMRFilterConfig9* This,DWORD *max) { 1844 return This->lpVtbl->GetNumberOfStreams(This,max); 1845 } 1846 static inline HRESULT IVMRFilterConfig9_SetRenderingPrefs(IVMRFilterConfig9* This,DWORD renderflags) { 1847 return This->lpVtbl->SetRenderingPrefs(This,renderflags); 1848 } 1849 static inline HRESULT IVMRFilterConfig9_GetRenderingPrefs(IVMRFilterConfig9* This,DWORD *renderflags) { 1850 return This->lpVtbl->GetRenderingPrefs(This,renderflags); 1851 } 1852 static inline HRESULT IVMRFilterConfig9_SetRenderingMode(IVMRFilterConfig9* This,DWORD mode) { 1853 return This->lpVtbl->SetRenderingMode(This,mode); 1854 } 1855 static inline 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 inline HRESULT IVMRAspectRatioControl9_QueryInterface(IVMRAspectRatioControl9* This,REFIID riid,void **ppvObject) { 1931 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1932 } 1933 static inline ULONG IVMRAspectRatioControl9_AddRef(IVMRAspectRatioControl9* This) { 1934 return This->lpVtbl->AddRef(This); 1935 } 1936 static inline ULONG IVMRAspectRatioControl9_Release(IVMRAspectRatioControl9* This) { 1937 return This->lpVtbl->Release(This); 1938 } 1939 /*** IVMRAspectRatioControl9 methods ***/ 1940 static inline HRESULT IVMRAspectRatioControl9_GetAspectRatioMode(IVMRAspectRatioControl9* This,DWORD *mode) { 1941 return This->lpVtbl->GetAspectRatioMode(This,mode); 1942 } 1943 static inline 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 inline HRESULT IVMRMonitorConfig9_QueryInterface(IVMRMonitorConfig9* This,REFIID riid,void **ppvObject) { 2060 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2061 } 2062 static inline ULONG IVMRMonitorConfig9_AddRef(IVMRMonitorConfig9* This) { 2063 return This->lpVtbl->AddRef(This); 2064 } 2065 static inline ULONG IVMRMonitorConfig9_Release(IVMRMonitorConfig9* This) { 2066 return This->lpVtbl->Release(This); 2067 } 2068 /*** IVMRMonitorConfig9 methods ***/ 2069 static inline HRESULT IVMRMonitorConfig9_SetMonitor(IVMRMonitorConfig9* This,UINT uDev) { 2070 return This->lpVtbl->SetMonitor(This,uDev); 2071 } 2072 static inline HRESULT IVMRMonitorConfig9_GetMonitor(IVMRMonitorConfig9* This,UINT *uDev) { 2073 return This->lpVtbl->GetMonitor(This,uDev); 2074 } 2075 static inline HRESULT IVMRMonitorConfig9_SetDefaultMonitor(IVMRMonitorConfig9* This,UINT uDev) { 2076 return This->lpVtbl->SetDefaultMonitor(This,uDev); 2077 } 2078 static inline HRESULT IVMRMonitorConfig9_GetDefaultMonitor(IVMRMonitorConfig9* This,UINT *uDev) { 2079 return This->lpVtbl->GetDefaultMonitor(This,uDev); 2080 } 2081 static inline 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 inline HRESULT IVMRDeinterlaceControl9_QueryInterface(IVMRDeinterlaceControl9* This,REFIID riid,void **ppvObject) { 2255 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2256 } 2257 static inline ULONG IVMRDeinterlaceControl9_AddRef(IVMRDeinterlaceControl9* This) { 2258 return This->lpVtbl->AddRef(This); 2259 } 2260 static inline ULONG IVMRDeinterlaceControl9_Release(IVMRDeinterlaceControl9* This) { 2261 return This->lpVtbl->Release(This); 2262 } 2263 /*** IVMRDeinterlaceControl9 methods ***/ 2264 static inline HRESULT IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes(IVMRDeinterlaceControl9* This,VMR9VideoDesc *desc,DWORD *nummodes,GUID *modes) { 2265 return This->lpVtbl->GetNumberOfDeinterlaceModes(This,desc,nummodes,modes); 2266 } 2267 static inline HRESULT IVMRDeinterlaceControl9_GetDeinterlaceModeCaps(IVMRDeinterlaceControl9* This,GUID *mode,VMR9VideoDesc *desc,VMR9DeinterlaceCaps *caps) { 2268 return This->lpVtbl->GetDeinterlaceModeCaps(This,mode,desc,caps); 2269 } 2270 static inline HRESULT IVMRDeinterlaceControl9_GetDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) { 2271 return This->lpVtbl->GetDeinterlaceMode(This,streamid,mode); 2272 } 2273 static inline HRESULT IVMRDeinterlaceControl9_SetDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) { 2274 return This->lpVtbl->SetDeinterlaceMode(This,streamid,mode); 2275 } 2276 static inline HRESULT IVMRDeinterlaceControl9_GetDeinterlacePrefs(IVMRDeinterlaceControl9* This,DWORD *prefs) { 2277 return This->lpVtbl->GetDeinterlacePrefs(This,prefs); 2278 } 2279 static inline HRESULT IVMRDeinterlaceControl9_SetDeinterlacePrefs(IVMRDeinterlaceControl9* This,DWORD prefs) { 2280 return This->lpVtbl->SetDeinterlacePrefs(This,prefs); 2281 } 2282 static inline 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 inline HRESULT IVMRImageCompositor9_QueryInterface(IVMRImageCompositor9* This,REFIID riid,void **ppvObject) { 2403 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2404 } 2405 static inline ULONG IVMRImageCompositor9_AddRef(IVMRImageCompositor9* This) { 2406 return This->lpVtbl->AddRef(This); 2407 } 2408 static inline ULONG IVMRImageCompositor9_Release(IVMRImageCompositor9* This) { 2409 return This->lpVtbl->Release(This); 2410 } 2411 /*** IVMRImageCompositor9 methods ***/ 2412 static inline HRESULT IVMRImageCompositor9_InitCompositionDevice(IVMRImageCompositor9* This,IUnknown *d3ddev) { 2413 return This->lpVtbl->InitCompositionDevice(This,d3ddev); 2414 } 2415 static inline HRESULT IVMRImageCompositor9_TermCompositionDevice(IVMRImageCompositor9* This,IUnknown *d3ddev) { 2416 return This->lpVtbl->TermCompositionDevice(This,d3ddev); 2417 } 2418 static inline 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 inline 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__ */