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