/* * vmr9.h DirectX 9 Video Mixing Renderer (VMR) interfaces * * ========================================================================= * * Open Watcom Project * * Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved. * * This file is automatically generated. Do not edit directly. * * ========================================================================= */ #include #include #ifndef COM_NO_WINDOWS_H #include #include #endif #ifndef __vmr9_h__ #define __vmr9_h__ #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #ifdef __cplusplus extern "C" { #endif /* Forward declarations */ typedef interface IVMRSurfaceAllocatorNotify9 IVMRSurfaceAllocatorNotify9; typedef interface IVMRImageCompositor9 IVMRImageCompositor9; /* VMR string lengths */ #define VMR9DEVICENAMELEN 32 #define VMR9DEVICEDESCRIPTIONLEN 512 /* VMR presentation flags */ typedef enum { VMR9Sample_SyncPoint = 0x00000001, VMR9Sample_Preroll = 0x00000002, VMR9Sample_Discontinuity = 0x00000004, VMR9Sample_TimeValid = 0x00000008, VMR9Sample_SrcDstRectsValid = 0x00000010 } VMR9PresentationFlags; /* VMR presentation information */ typedef struct _VMR9PresentationInfo { DWORD dwFlags; IDirect3DSurface9 *lpSurf; REFERENCE_TIME rtStart; REFERENCE_TIME rtEnd; SIZE szAspectRatio; RECT rcSrc; RECT rcDst; DWORD dwReserved1; DWORD dwReserved2; } VMR9PresentationInfo; /* VMR surface allocation flags */ typedef enum { VMR9AllocFlag_3DRenderTarget = 0x00000001, VMR9AllocFlag_DXVATarget = 0x00000002, VMR9AllocFlag_TextureSurface = 0x00000004, VMR9AllocFlag_OffscreenSurface = 0x00000008, VMR9AllocFlag_RGBDynamicSwitch = 0x00000010, VMR9AllocFlag_UsageMask = 0x000000FF } VMR9SurfaceAllocationFlags; /* VMR allocation information */ typedef struct _VMR9AllocationInfo { DWORD dwFlags; DWORD dwWidth; DWORD dwHeight; D3DFORMAT Format; D3DPOOL Pool; DWORD MinBuffers; SIZE szAspectRatio; SIZE szNativeSize; } VMR9AllocationInfo; /* VMR aspect ratio modes */ typedef enum { VMR9ARMode_None = 0, VMR9ARMode_LetterBox = 1 } VMR9AspectRatioMode; /* VMR mixer preferences */ typedef enum { MixerPref9_NoDecimation = 0x00000001, MixerPref9_DecimateOutput = 0x00000002, MixerPref9_ARAdjustXorY = 0x00000004, MixerPref9_NonSquareMixing = 0x00000008, MixerPref9_DecimateMask = 0x0000000F, MixerPref9_BiLinearFiltering = 0x00000010, MixerPref9_PointFiltering = 0x00000020, MixerPref9_AnisotropicFiltering = 0x00000040, MixerPref9_PyramidalQuadFiltering = 0x00000080, MixerPref9_GaussianQuadFiltering = 0x00000100, MixerPref9_FilteringMask = 0x00000FF0, MixerPref9_RenderTargetRGB = 0x00001000, MixerPref9_RenderTargetYUV = 0x00002000, MixerPref9_RenderTargerMask = 0x000FF000, MixerPref9_DynamicSwitchToBOB = 0x00100000, MixerPref9_DyanmicDecimateBy2 = 0x00200000, MixerPref9_DynamicMask = 0x00F00000 } VMR9MixerPrefs; /* VMR normalized rectangle */ typedef struct _VMR9NormalizedRect { float left; float top; float right; float bottom; } VMR9NormalizedRect; /* VMR process amplificiation control flags */ typedef enum { ProcAmpControl9_Brightness = 0x00000001, ProcAmpControl9_Contrast = 0x00000002, ProcAmpControl9_Hue = 0x00000004, ProcAmpContorl9_Saturation = 0x00000008, ProcAmpControl9_Mask = 0x0000000F } VMR9ProcAmpControlFlags; /* VMR process amplification control information */ typedef struct _VMR9ProcAmpControl { DWORD dwSize; DWORD dwFlags; float Brightness; float Contrast; float Hue; float Saturation; } VMR9ProcAmpControl; /* VMR process amplification control range */ typedef struct _VMR9ProcAmpControlRange { DWORD dwSize; VMR9ProcAmpControlFlags dwProperty; float MinValue; float MaxValue; float DefaultValue; float StepSize; } VMR9ProcAmpControlRange; /* VMR alpha bitmap */ typedef struct _VMR9AlphaBitmap { DWORD dwFlags; HDC hdc; IDirect3DSurface9 *pDDS; RECT rSrc; VMR9NormalizedRect rDest; FLOAT fAlpha; COLORREF clrSrcKey; DWORD dwFilterMode; } VMR9AlphaBitmap; /* VMR alpha bitmap flags */ typedef enum { VMR9AlphaBitmap_Disable = 0x00000001, VMR9AlphaBitmap_hDC = 0x00000002, VMR9AlphaBitmap_EntireDDS = 0x00000004, VMR9AlphaBitmap_SrcColorKey = 0x00000008, VMR9AlphaBitmap_SrcRect = 0x00000010, VMR9AlphaBitmap_FilterMode = 0x00000020 } VMR9AlphaBitmapFlags; /* VMR render preferences */ typedef enum { RenderPrefs9_DoNotRenderBorder = 0x00000001, RenderPrefs9_Mask = 0x00000001 } VMR9RenderPrefs; /* VMR modes */ typedef enum { VMR9Mode_Windowed = 0x00000001, VMR9Mode_Windowless = 0x00000002, VMR9Mode_Renderless = 0x00000004, VMR9Mode_Mask = 0x00000007 } VMR9Mode; /* VMR monitor information */ typedef struct _VMR9MonitorInfo { UINT uDevID; RECT rcMonitor; HMONITOR hMon; DWORD dwFlags; wchar_t szDevice[VMR9DEVICENAMELEN]; wchar_t szDescription[VMR9DEVICEDESCRIPTIONLEN]; LARGE_INTEGER liDriverVersion; DWORD dwVendorId; DWORD dwDeviceId; DWORD dwSubSysId; DWORD dwRevision; } VMR9MonitorInfo; /* VMR deinterlace preferences */ typedef enum { DeinterlacePref9_NextBest = 0x01, DeinterlacePref9_BOB = 0x02, DeinterlacePref9_Weave = 0x04, DeinterlacePref9_Mask = 0x07 } VMR9DeinterlacePrefs; /* VMR deinterlace technologies */ typedef enum { DeinterlaceTech9_Unknown = 0x0000, DeinterlaceTech9_BOBLineReplicate = 0x0001, DeinterlaceTech9_BOBVerticalStretch = 0x0002, DeinterlaceTech9_MedianFiltering = 0x0004, DeinterlaceTech9_EdgeFiltering = 0x0010, DeinterlaceTech9_FieldAdaptive = 0x0020, DeinterlaceTech9_PixelAdaptive = 0x0040, DeinterlaceTech9_MotionVectorSteered = 0x0080 } VMR9DeinterlaceTech; /* VMR frequency */ typedef struct _VMR9Frequency { DWORD dwNumerator; DWORD dwDenominator; } VMR9Frequency; /* VMR sample formats */ typedef enum _VMR9_SampleFormat { VMR9_SampleProgressiveFormat = 2, VMR9_SampleFieldInterleavedEvenFirst = 3, VMR9_SampleFieldInterleavedOddFirst = 4, VMR9_SampleFieldSingleEven = 5, VMR9_SampleFieldSingleOdd = 6 } VMR9_SampleFormat; /* VMR video description */ typedef struct _VMR9VideoDesc { DWORD dwSize; DWORD dwSampleWidth; DWORD dwSampleHeight; VMR9_SampleFormat SampleFormat; DWORD dwFourCC; VMR9Frequency InputSampleFreq; VMR9Frequency OutputFrameFreq; } VMR9VideoDesc; /* VMR deinterlace capabilities */ typedef struct _VMR9DeinterlaceCaps { DWORD dwSize; DWORD dwNumPreviousOutputFrames; DWORD dwNumForwardRefSamples; DWORD dwNumBackwardRefSamples; VMR9DeinterlaceTech DeinterlaceTechnology; } VMR9DeinterlaceCaps; /* VMR video stream information */ typedef struct _VMR9VideoStreamInfo { IDirect3DSurface9 *pddsVideoSurface; DWORD dwWidth; DWORD dwHeight; DWORD dwStrmID; FLOAT fAlpha; VMR9NormalizedRect rNormal; REFERENCE_TIME rtStart; REFERENCE_TIME rtEnd; VMR9_SampleFormat SampleFormat; } VMR9VideoStreamInfo; /* GUIDs */ EXTERN_C const IID IID_IVMRImagePresenter9; EXTERN_C const IID IID_IVMRSurfaceAllocator9; EXTERN_C const IID IID_IVMRSurfaceAllocatorEx9; EXTERN_C const IID IID_IVMRSurfaceAllocatorNotify9; EXTERN_C const IID IID_IVMRWindowlessControl9; EXTERN_C const IID IID_IVMRMixerControl9; EXTERN_C const IID IID_IVMRMixerBitmap9; EXTERN_C const IID IID_IVMRSurface9; EXTERN_C const IID IID_IVMRImagePresenterConfig9; EXTERN_C const IID IID_IVMRVideoStreamControl9; EXTERN_C const IID IID_IVMRFilterConfig9; EXTERN_C const IID IID_IVMRAspectRatioControl9; EXTERN_C const IID IID_IVMRMonitorConfig9; EXTERN_C const IID IID_IVMRDeinterlaceControl9; EXTERN_C const IID IID_IVMRImageCompositor9; /* IVMRImagePresenter9 interface */ #undef INTERFACE #define INTERFACE IVMRImagePresenter9 DECLARE_INTERFACE_( IVMRImagePresenter9, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRImagePresenter9 methods */ STDMETHOD( StartPresenting )( THIS_ DWORD_PTR ) PURE; STDMETHOD( StopPresenting )( THIS_ DWORD_PTR ) PURE; STDMETHOD( PresentImage )( THIS_ DWORD_PTR, VMR9PresentationInfo * ) PURE; }; /* IVMRSurfaceAllocator9 interface */ #undef INTERFACE #define INTERFACE IVMRSurfaceAllocator9 DECLARE_INTERFACE_( IVMRSurfaceAllocator9, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRSurfaceAllocator9 methods */ STDMETHOD( InitializeDevice )( THIS_ DWORD_PTR, VMR9AllocationInfo *, DWORD * ) PURE; STDMETHOD( TerminateDevice )( THIS_ DWORD_PTR ) PURE; STDMETHOD( GetSurface )( THIS_ DWORD_PTR, DWORD, DWORD, IDirect3DSurface9 ** ) PURE; STDMETHOD( AdviseNotify )( THIS_ IVMRSurfaceAllocatorNotify9 * ) PURE; }; /* IVMRSurfaceAllocatorEx9 interface */ #undef INTERFACE #define INTERFACE IVMRSurfaceAllocatorEx9 DECLARE_INTERFACE_( IVMRSurfaceAllocatorEx9, IVMRSurfaceAllocator9 ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRSurfaceAllocator9 methods */ STDMETHOD( InitializeDevice )( THIS_ DWORD_PTR, VMR9AllocationInfo *, DWORD * ) PURE; STDMETHOD( TerminateDevice )( THIS_ DWORD_PTR ) PURE; STDMETHOD( GetSurface )( THIS_ DWORD_PTR, DWORD, DWORD, IDirect3DSurface9 ** ) PURE; STDMETHOD( AdviseNotify )( THIS_ IVMRSurfaceAllocatorNotify9 * ) PURE; /* IVMRSurfaceAllocatorEx9 methods */ STDMETHOD( GetSurfaceEx )( THIS_ DWORD_PTR, DWORD, DWORD, IDirect3DSurface9 **, RECT * ) PURE; }; /* IVMRSurfaceAllocatorNotify9 interface */ #undef INTERFACE #define INTERFACE IVMRSurfaceAllocatorNotify9 DECLARE_INTERFACE_( IVMRSurfaceAllocatorNotify9, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRSurfaceAllocator9 methods */ STDMETHOD( AdviseSurfaceAllocator )( THIS_ DWORD_PTR, IVMRSurfaceAllocator9 * ) PURE; STDMETHOD( SetD3DDevice )( THIS_ IDirect3DDevice9 *, HMONITOR ) PURE; STDMETHOD( ChangeD3DDevice )( THIS_ IDirect3DDevice9 *, HMONITOR ) PURE; STDMETHOD( AllocateSurfaceHelper )( THIS_ VMR9AllocationInfo *, DWORD *, IDirect3DDevice9 ** ) PURE; STDMETHOD( NotifyEvent )( THIS_ LONG, LONG_PTR, LONG_PTR ) PURE; }; /* IVMRWindowslessControl9 interface */ #undef INTERFACE #define INTERFACE IVMRWindowlessControl9 DECLARE_INTERFACE_( IVMRWindowlessControl9, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRWindowlessControl9 methods */ STDMETHOD( GetNativeVideoSize )( THIS_ LONG *, LONG *, LONG *, LONG * ) PURE; STDMETHOD( GetMinIdealVideoSize )( THIS_ LONG *, LONG * ) PURE; STDMETHOD( GetMaxIdealVideoSize )( THIS_ LONG *, LONG * ) PURE; STDMETHOD( SetVideoPosition )( THIS_ LPRECT, LPRECT ) PURE; STDMETHOD( GetVideoPosition )( THIS_ LPRECT, LPRECT ) PURE; STDMETHOD( GetAspectRatioMode )( THIS_ DWORD * ) PURE; STDMETHOD( SetAspectRatioMode )( THIS_ DWORD ) PURE; STDMETHOD( SetVideoClippingWindow )( THIS_ HWND ) PURE; STDMETHOD( RepaintVideo )( THIS_ HWND, HDC ) PURE; STDMETHOD( DisplayModeChanged )( THIS ) PURE; STDMETHOD( GetCurrentImage )( THIS_ BYTE ** ) PURE; STDMETHOD( SetBorderColor )( THIS_ COLORREF ) PURE; STDMETHOD( GetBorderColor )( THIS_ COLORREF * ) PURE; }; /* IVMRMixerControl9 interface */ #undef INTERFACE #define INTERFACE IVMRMixerControl9 DECLARE_INTERFACE_( IVMRMixerControl9, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRMixerControl9 methods */ STDMETHOD( SetAlpha )( THIS_ DWORD, float ) PURE; STDMETHOD( GetAlpha )( THIS_ DWORD, float * ) PURE; STDMETHOD( SetZOrder )( THIS_ DWORD, DWORD ) PURE; STDMETHOD( GetZOrder )( THIS_ DWORD, DWORD * ) PURE; STDMETHOD( SetOutputRect )( THIS_ DWORD, const VMR9NormalizedRect * ) PURE; STDMETHOD( GetOutputRect )( THIS_ DWORD, VMR9NormalizedRect * ) PURE; STDMETHOD( SetBackgroundClr )( THIS_ COLORREF ) PURE; STDMETHOD( GetBackgroundClr )( THIS_ COLORREF * ) PURE; STDMETHOD( SetMixingPrefs )( THIS_ DWORD ) PURE; STDMETHOD( GetMixingPrefs )( THIS_ DWORD * ) PURE; STDMETHOD( SetProcAmpControl )( THIS_ DWORD, VMR9ProcAmpControl * ) PURE; STDMETHOD( GetProcAmpControl )( THIS_ DWORD, VMR9ProcAmpControl * ) PURE; STDMETHOD( GetProcAmpControlRange )( THIS_ DWORD, VMR9ProcAmpControlRange * ) PURE; }; /* IVMRMixerBitmap9 interface */ #undef INTERFACE #define INTERFACE IVMRMixerBitmap9 DECLARE_INTERFACE_( IVMRMixerBitmap9, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRMixerBitmap9 methods */ STDMETHOD( SetAlphaBitmap )( THIS_ const VMR9AlphaBitmap * ) PURE; STDMETHOD( UpdateAlphaBitmapParameters )( THIS_ const VMR9AlphaBitmap * ) PURE; STDMETHOD( GetAlphaBitmapParameters )( THIS_ VMR9AlphaBitmap * ) PURE; }; /* IVMRSurface9 interface */ #undef INTERFACE #define INTERFACE IVMRSurface9 DECLARE_INTERFACE_( IVMRSurface9, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRSurface9 methods */ STDMETHOD( IsSurfaceLocked )( THIS ) PURE; STDMETHOD( LockSurface )( THIS_ BYTE ** ) PURE; STDMETHOD( UnlockSurface )( THIS ) PURE; STDMETHOD( GetSurface )( THIS_ IDirect3DSurface9 ** ) PURE; }; /* IVMRImagePresenterConfig9 interface */ #undef INTERFACE #define INTERFACE IVMRImagePresenterConfig9 DECLARE_INTERFACE_( IVMRImagePresenterConfig9, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRImagePresenterConfig9 methods */ STDMETHOD( SetRenderingPrefs )( THIS_ DWORD ) PURE; STDMETHOD( GetRenderingPrefs )( THIS_ DWORD * ) PURE; }; /* IVMRVideoStreamControl9 interface */ #undef INTERFACE #define INTERFACE IVMRVideoStreamControl9 DECLARE_INTERFACE_( IVMRVideoStreamControl9, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRVideoStreamControl9 methods */ STDMETHOD( SetStreamActiveState )( THIS_ BOOL ) PURE; STDMETHOD( GetStreamActiveState )( THIS_ BOOL * ) PURE; }; /* IVMRFilterConfig9 interface */ #undef INTERFACE #define INTERFACE IVMRFilterConfig9 DECLARE_INTERFACE_( IVMRFilterConfig9, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRFilterConfig9 methods */ STDMETHOD( SetImageCompositor )( THIS_ IVMRImageCompositor9 * ) PURE; STDMETHOD( SetNumberOfStreams )( THIS_ DWORD ) PURE; STDMETHOD( GetNumberOfStreams )( THIS_ DWORD * ) PURE; STDMETHOD( SetRenderingPrefs )( THIS_ DWORD ) PURE; STDMETHOD( GetRenderingPrefs )( THIS_ DWORD * ) PURE; STDMETHOD( SetRenderingMode )( THIS_ DWORD ) PURE; STDMETHOD( GetRenderingMode )( THIS_ DWORD * ) PURE; }; /* IVMRAspectRatioControl9 interface */ #undef INTERFACE #define INTERFACE IVMRAspectRatioControl9 DECLARE_INTERFACE_( IVMRAspectRatioControl9, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRAspectRatioControl9 methods */ STDMETHOD( GetAspectRatioMode )( THIS_ LPDWORD ) PURE; STDMETHOD( SetAspectRatioMode )( THIS_ DWORD ) PURE; }; /* IVMRMonitorConfig9 interface */ #undef INTERFACE #define INTERFACE IVMRMonitorConfig9 DECLARE_INTERFACE_( IVMRMonitorConfig9, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRMonitorConfig9 methods */ STDMETHOD( SetMonitor )( THIS_ UINT ) PURE; STDMETHOD( GetMonitor )( THIS_ UINT * ) PURE; STDMETHOD( SetDefaultMonitor )( THIS_ UINT ) PURE; STDMETHOD( GetDefaultMonitor )( THIS_ UINT * ) PURE; STDMETHOD( GetAvailableMonitors )( THIS_ VMR9MonitorInfo *, DWORD, DWORD * ) PURE; }; /* IVMRDeinterlaceControl9 interface */ #undef INTERFACE #define INTERFACE IVMRDeinterlaceControl9 DECLARE_INTERFACE_( IVMRDeinterlaceControl9, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRDeinterlaceControl9 methods */ STDMETHOD( GetNumberOfDeinterlaceModes )( THIS_ VMR9VideoDesc *, LPDWORD, LPGUID ) PURE; STDMETHOD( GetDeinterlaceModeCaps )( THIS_ LPGUID, VMR9VideoDesc *, VMR9DeinterlaceCaps * ) PURE; STDMETHOD( GetDeinterlaceMode )( THIS_ DWORD, LPGUID ) PURE; STDMETHOD( SetDeinterlaceMode )( THIS_ DWORD, LPGUID ) PURE; STDMETHOD( GetDeinterlacePrefs )( THIS_ LPDWORD ) PURE; STDMETHOD( SetDeinterlacePrefs )( THIS_ DWORD ) PURE; STDMETHOD( GetActualDeinterlaceMode )( THIS_ DWORD, LPGUID ) PURE; }; /* IVMRImageCompositor9 interface */ #undef INTERFACE #define INTERFACE IVMRImageCompositor9 DECLARE_INTERFACE_( IVMRImageCompositor9, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IVMRImageCompositor9 methods */ STDMETHOD( InitCompositionDevice )( THIS_ IUnknown * ) PURE; STDMETHOD( TermCompositionDevice )( THIS_ IUnknown * ) PURE; STDMETHOD( SetStreamMediaType )( THIS_ DWORD, AM_MEDIA_TYPE *, BOOL ) PURE; STDMETHOD( CompositeImage )( THIS_ IUnknown *, IDirect3DSurface9 *, AM_MEDIA_TYPE *, REFERENCE_TIME, REFERENCE_TIME, D3DCOLOR, VMR9VideoStreamInfo *, UINT ) PURE; }; /* C object macros */ #if (!defined( __cplusplus ) || defined( CINTERFACE )) && defined( COBJMACROS ) #define IVMRImagePresenter9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRImagePresenter9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRImagePresenter9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRImagePresenter9_StartPresenting( x, p ) \ (x)->lpVtbl->StartPresenting( x, p ) #define IVMRImagePresenter9_StopPresenting( x, p ) \ (x)->lpVtbl->StopPresenting( x, p ) #define IVMRImagePresenter9_PresentImage( x, p1, p2 ) \ (x)->lpVtbl->PresentImage( x, p1, p2 ) #define IVMRSurfaceAllocator9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRSurfaceAllocator9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRSurfaceAllocator9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRSurfaceAllocator9_InitializeDevice( x, p1, p2, p3 ) \ (x)->lpVtbl->InitializeDevice( x, p1, p2, p3 ) #define IVMRSurfaceAllocator9_TerminateDevice( x, p ) \ (x)->lpVtbl->TerminateDevice( x, p ) #define IVMRSurfaceAllocator9_GetSurface( x, p1, p2, p3, p4 ) \ (x)->lpVtbl->GetSurface( x, p1, p2, p3, p4 ) #define IVMRSurfaceAllocator9_AdviseNotify( x, p ) \ (x)->lpVtbl->AdviseNotify( x, p ) #define IVMRSurfaceAllocatorEx9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRSurfaceAllocatorEx9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRSurfaceAllocatorEx9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRSurfaceAllocatorEx9_InitializeDevice( x, p1, p2, p3 ) \ (x)->lpVtbl->InitializeDevice( x, p1, p2, p3 ) #define IVMRSurfaceAllocatorEx9_TerminateDevice( x, p ) \ (x)->lpVtbl->TerminateDevice( x, p ) #define IVMRSurfaceAllocatorEx9_GetSurface( x, p1, p2, p3, p4 ) \ (x)->lpVtbl->GetSurface( x, p1, p2, p3, p4 ) #define IVMRSurfaceAllocatorEx9_AdviseNotify( x, p ) \ (x)->lpVtbl->AdviseNotify( x, p ) #define IVMRSurfaceAllocatorEx9_GetSurfaceEx( x, p1, p2, p3, p4, p5 ) \ (x)->lpVtbl->GetSurfaceEx( x, p1, p2, p3, p4, p5 ) #define IVMRSurfaceAllocatorNotify9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRSurfaceAllocatorNotify9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRSurfaceAllocatorNotify9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator( x, p1, p2 ) \ (x)->lpVtbl->AdviseSurfaceAllocator( x, p1, p2 ) #define IVMRSurfaceAllocatorNotify9_SetD3DDevice( x, p1, p2 ) \ (x)->lpVtbl->SetD3DDevice( x, p1, p2 ) #define IVMRSurfaceAllocatorNotify9_ChangeD3DDevice( x, p1, p2 ) \ (x)->lpVtbl->ChangeD3DDevice( x, p1, p2 ) #define IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper( x, p1, p2, p3 ) \ (x)->lpVtbl->AllocateSurfaceHelper( x, p1, p2, p3 ) #define IVMRSurfaceAllocatorNotify9_NotifyEvent( x, p1, p2, p3 ) \ (x)->lpVtbl->NotifyEvent( x, p1, p2, p3 ) #define IVMRWindowlessControl9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRWindowlessControl9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRWindowlessControl9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRWindowlessControl9_GetNativeVideoSize( x, p1, p2, p3, p4 ) \ (x)->lpVtbl->GetNativeVideoSize( x, p1, p2, p3, p4 ) #define IVMRWindowlessControl9_GetMinIdealVideoSize( x, p1, p2 ) \ (x)->lpVtbl->GetMinIdealVideoSize( x, p1, p2 ) #define IVMRWindowlessControl9_GetMaxIdealVideoSize( x, p1, p2 ) \ (x)->lpVtbl->GetMaxIdealVideoSize( x, p1, p2 ) #define IVMRWindowlessControl9_SetVideoPosition( x, p1, p2 ) \ (x)->lpVtbl->SetVideoPosition( x, p1, p2 ) #define IVMRWindowlessControl9_GetVideoPosition( x, p1, p2 ) \ (x)->lpVtbl->GetVideoPosition( x, p1, p2 ) #define IVMRWindowlessControl9_GetAspectRatioMode( x, p ) \ (x)->lpVtbl->GetAspectRatioMode( x, p ) #define IVMRWindowlessControl9_SetAspectRatioMode( x, p ) \ (x)->lpVtbl->SetAspectRatioMode( x, p ) #define IVMRWindowlessControl9_SetVideoClippingWindow( x, p ) \ (x)->lpVtbl->SetVideoClippingWindow( x, p ) #define IVMRWindowlessControl9_RepaintVideo( x, p1, p2 ) \ (x)->lpVtbl->RepaintVideo( x, p1, p2 ) #define IVMRWindowlessControl9_DisplayModeChanged( x ) \ (x)->lpVtbl->DisplayModeChanged( x ) #define IVMRWindowlessControl9_GetCurrentImage( x, p ) \ (x)->lpVtbl->GetCurrentImage( x, p ) #define IVMRWindowlessControl9_SetBorderColor( x, p ) \ (x)->lpVtbl->SetBorderColor( x, p ) #define IVMRWindowlessControl9_GetBorderColor( x, p ) \ (x)->lpVtbl->GetBorderColor( x, p ) #define IVMRMixerControl9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRMixerControl9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRMixerControl9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRMixerControl9_SetAlpha( x, p1, p2 ) \ (x)->lpVtbl->SetAlpha( x, p1, p2 ) #define IVMRMixerControl9_GetAlpha( x, p1, p2 ) \ (x)->lpVtbl->GetAlpha( x, p1, p2 ) #define IVMRMixerControl9_SetZOrder( x, p1, p2 ) \ (x)->lpVtbl->SetZOrder( x, p1, p2 ) #define IVMRMixerControl9_GetZOrder( x, p1, p2 ) \ (x)->lpVtbl->GetZOrder( x, p1, p2 ) #define IVMRMixerControl9_SetOutputRect( x, p1, p2 ) \ (x)->lpVtbl->SetOutputRect( x, p1, p2 ) #define IVMRMixerControl9_GetOutputRect( x, p1, p2 ) \ (x)->lpVtbl->GetOutputRect( x, p1, p2 ) #define IVMRMixerControl9_SetBackgroundClr( x, p ) \ (x)->lpVtbl->SetBackgroundClr( x, p ) #define IVMRMixerContorl9_GetBackgroundClr( x, p ) \ (x)->lpVtbl->GetBackgroundClr( x, p ) #define IVMRMixerControl9_SetMixingPrefs( x, p ) \ (x)->lpVtbl->SetMixingPrefs( x, p ) #define IVMRMixerControl9_GetMixingPrefs( x, p ) \ (x)->lpVtbl->GetMixingPrefs( x, p ) #define IVMRMixerControl9_SetProcAmpControl( x, p1, p2 ) \ (x)->lpVtbl->SetProcAmpControl( x, p1, p2 ) #define IVMRMixerControl9_GetProcAmpControl( x, p1, p2 ) \ (x)->lpVtbl->GetProcAmpControl( x, p1, p2 ) #define IVMRMixerControl9_GetProcAmpControlRange( x, p1, p2 ) \ (x)->lpVtbl->GetProcAmpControlRange( x, p1, p2 ) #define IVMRMixerBitmap9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRMixerBitmap9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRMixerBitmap9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRMixerBitmap9_SetAlphaBitmap( x, p ) \ (x)->lpVtbl->SetAlphaBitmap( x, p ) #define IVMRMixerBitmap9_UpdateAlphaBitmapParameters( x, p ) \ (x)->lpVtbl->UpdateAlphaBitmapParameters( x, p ) #define IVMRMixerBitmap9_GetAlphaBitmapParameters( x, p ) \ (x)->lpVtbl->GetAlphaBitmapParameters( x, p ) #define IVMRSurface9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRSurface9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRSurface9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRSurface9_IsSurfaceLocked( x ) \ (x)->lpVtbl->IsSurfaceLocked( x ) #define IVMRSurface9_LockSurface( x, p ) \ (x)->lpVtbl->LockSurface( x, p ) #define IVMRSurface9_UnlockSurface( x ) \ (x)->lpVtbl->UnlockSurface( x ) #define IVMRSurface9_GetSurface( x, p ) \ (x)->lpVtbl->GetSurface( x, p ) #define IVMRImagePresenterConfig9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRImagePresenterConfig9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRImagePresenterConfig9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRImagePresenterConfig9_SetRenderingPrefs( x, p ) \ (x)->lpVtbl->SetRenderingPrefs( x, p ) #define IVMRImagePresenterConfig9_GetRenderingPrefs( x, p ) \ (x)->lpVtbl->GetRenderingPrefs( x, p ) #define IVMRVideoStreamControl9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRVideoStreamControl9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRVideoStreamControl9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRVideoStreamControl9_SetStreamActiveState( x, p ) \ (x)->lpVtbl->SetStreamActiveState( x, p ) #define IVMRVideoStreamControl9_GetStreamActiveState( x, p ) \ (x)->lpVtbl->GetStreamActiveState( x, p ) #define IVMRFilterConfig9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRFilterConfig9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRFilterConfig9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRFilterConfig9_SetImageCompositor( x, p ) \ (x)->lpVtbl->SetImageCompositor( x, p ) #define IVMRFilterConfig9_SetNumberOfStreams( x, p ) \ (x)->lpVtbl->SetNumberOfStreams( x, p ) #define IVMRFilterConfig9_GetNumberOfStreams( x, p ) \ (x)->lpVtbl->GetNumberOfStreams( x, p ) #define IVMRFilterConfig9_SetRenderingPrefs( x, p ) \ (x)->lpVtbl->SetRenderingPrefs( x, p ) #define IVMRFilterConfig9_GetRenderingPrefs( x, p ) \ (x)->lpVtbl->GetRenderingPrefs( x, p ) #define IVMRFilterConfig9_SetRenderingMode( x, p ) \ (x)->lpVtbl->SetRenderingMode( x, p ) #define IVMRFilterConfig9_GetRenderingMode( x, p ) \ (x)->lpVtbl->GetRenderingMode( x, p ) #define IVMRAspectRatioControl9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRAspectRatioControl9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRAspectRatioControl9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRAspectRatioControl9_GetAspectRatioMode( x, p ) \ (x)->lpVtbl->GetAspectRatioMode( x, p ) #define IVMRAspectRatioControl9_SetAspectRatioMode( x, p ) \ (x)->lpVtbl->SetAspectRatioMode( x, p ) #define IVMRMonitorConfig9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRMonitorConfig9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRMonitorConfig9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRMonitorConfig9_SetMonitor( x, p ) \ (x)->lpVtbl->SetMonitor( x, p ) #define IVMRMonitorConfig9_GetMonitor( x, p ) \ (x)->lpVtbl->GetMonitor( x, p ) #define IVMRMonitorConfig9_SetDefaultMonitor( x, p ) \ (x)->lpVtbl->SetDefaultMonitor( x, p ) #define IVMRMonitorConfig9_GetDefaultMonitor( x, p ) \ (x)->lpVtbl->GetDefaultMonitor( x, p ) #define IVMRMonitorConfig9_GetAvailableMonitors( x, p1, p2, p3 ) \ (x)->lpVtbl->GetAvailableMonitors( x, p1, p2, p3 ) #define IVMRDeinterlaceControl9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRDeinterlaceControl9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRDeinterlaceControl9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes( x, p1, p2, p3 ) \ (x)->lpVtbl->GetNumberOfDeinterlaceModes( x, p1, p2, p3 ) #define IVMRDeinterlaceControl9_GetDeinterlaceModeCaps( x, p1, p2, p3 ) \ (x)->lpVtbl->GetDeinterlaceModeCaps( x, p1, p2, p3 ) #define IVMRDeinterlaceControl9_GetDeinterlaceMode( x, p1, p2 ) \ (x)->lpVtbl->GetDeinterlaceMode( x, p1, p2 ) #define IVMRDeinterlaceControl9_SetDeinterlaceMode( x, p1, p2 ) \ (x)->lpVtbl->SetDeinterlaceMode( x, p1, p2 ) #define IVMRDeinterlaceControl9_GetDeinterlacePrefs( x, p ) \ (x)->lpVtbl->GetDeinterlacePrefs( x, p ) #define IVMRDeinterlaceControl9_SetDeinterlacePrefs( x, p ) \ (x)->lpVtbl->SetDeinterlacePrefs( x, p ) #define IVMRDeinterlaceControl9_GetActualDeinterlaceMode( x, p1, p2 ) \ (x)->lpVtbl->GetActualDeinterlaceMode( x, p1, p2 ) #define IVMRImageCompositor9_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IVMRImageCompositor9_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IVMRImageCompositor9_Release( x ) \ (x)->lpVtbl->Release( x ) #define IVMRImageCompositor9_InitCompositionDevice( x, p ) \ (x)->lpVtbl->InitCompositionDevice( x, p ) #define IVMRImageCompositor9_TermCompositionDevice( x, p ) \ (x)->lpVtbl->TermCompositionDevice( x, p ) #define IVMRImageCompositor9_SetStreamMediaType( x, p1, p2, p3 ) \ (x)->lpVtbl->SetStreamMediaType( x, p1, p2, p3 ) #define IVMRImageCompositor9_CompositeImage( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \ (x)->lpVtbl->CompositeImage( x, p1, p2, p3, p4, p5, p6, p7, p8 ) #endif #ifdef __cplusplus } /* extern "C" */ #endif #endif /* __vmr9_h__ */