/*** Autogenerated by WIDL 11.0 from ../wine-11.0/include/dxvahd.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __dxvahd_h__
#define __dxvahd_h__

/* Forward declarations */

#ifndef __IDXVAHD_VideoProcessor_FWD_DEFINED__
#define __IDXVAHD_VideoProcessor_FWD_DEFINED__
typedef interface IDXVAHD_VideoProcessor IDXVAHD_VideoProcessor;
#ifdef __cplusplus
interface IDXVAHD_VideoProcessor;
#endif /* __cplusplus */
#endif

#ifndef __IDXVAHD_Device_FWD_DEFINED__
#define __IDXVAHD_Device_FWD_DEFINED__
typedef interface IDXVAHD_Device IDXVAHD_Device;
#ifdef __cplusplus
interface IDXVAHD_Device;
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <unknwn.h>

#ifdef __cplusplus
extern "C" {
#endif

#if 0
typedef DWORD IDirect3DDevice9Ex;
typedef DWORD IDirect3DSurface9;
typedef DWORD D3DFORMAT;
typedef DWORD D3DPOOL;
#endif
typedef enum _DXVAHD_BLT_STATE {
    DXVAHD_BLT_STATE_TARGET_RECT = 0,
    DXVAHD_BLT_STATE_BACKGROUND_COLOR = 1,
    DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE = 2,
    DXVAHD_BLT_STATE_ALPHA_FILL = 3,
    DXVAHD_BLT_STATE_CONSTRICTION = 4,
    DXVAHD_BLT_STATE_PRIVATE = 1000
} DXVAHD_BLT_STATE;
typedef enum _DXVAHD_DEVICE_TYPE {
    DXVAHD_DEVICE_TYPE_HARDWARE = 0,
    DXVAHD_DEVICE_TYPE_SOFTWARE = 1,
    DXVAHD_DEVICE_TYPE_REFERENCE = 2,
    DXVAHD_DEVICE_TYPE_OTHER = 3
} DXVAHD_DEVICE_TYPE;
typedef enum _DXVAHD_DEVICE_USAGE {
    DXVAHD_DEVICE_USAGE_PLAYBACK_NORMAL = 0,
    DXVAHD_DEVICE_USAGE_OPTIMAL_SPEED = 1,
    DXVAHD_DEVICE_USAGE_OPTIMAL_QUALITY = 2
} DXVAHD_DEVICE_USAGE;
typedef enum _DXVAHD_FILTER {
    DXVAHD_FILTER_BRIGHTNESS = 0,
    DXVAHD_FILTER_CONTRAST = 1,
    DXVAHD_FILTER_HUE = 2,
    DXVAHD_FILTER_SATURATION = 3,
    DXVAHD_FILTER_NOISE_REDUCTION = 4,
    DXVAHD_FILTER_EDGE_ENHANCEMENT = 5,
    DXVAHD_FILTER_ANAMORPHIC_SCALING = 6
} DXVAHD_FILTER;
typedef enum _DXVAHD_FRAME_FORMAT {
    DXVAHD_FRAME_FORMAT_PROGRESSIVE = 0,
    DXVAHD_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1,
    DXVAHD_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2
} DXVAHD_FRAME_FORMAT;
typedef enum _DXVAHD_STREAM_STATE {
    DXVAHD_STREAM_STATE_D3DFORMAT = 0,
    DXVAHD_STREAM_STATE_FRAME_FORMAT = 1,
    DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE = 2,
    DXVAHD_STREAM_STATE_OUTPUT_RATE = 3,
    DXVAHD_STREAM_STATE_SOURCE_RECT = 4,
    DXVAHD_STREAM_STATE_DESTINATION_RECT = 5,
    DXVAHD_STREAM_STATE_ALPHA = 6,
    DXVAHD_STREAM_STATE_PALETTE = 7,
    DXVAHD_STREAM_STATE_LUMA_KEY = 8,
    DXVAHD_STREAM_STATE_ASPECT_RATIO = 9,
    DXVAHD_STREAM_STATE_FILTER_BRIGHTNESS = 100,
    DXVAHD_STREAM_STATE_FILTER_CONTRAST = 101,
    DXVAHD_STREAM_STATE_FILTER_HUE = 102,
    DXVAHD_STREAM_STATE_FILTER_SATURATION = 103,
    DXVAHD_STREAM_STATE_FILTER_NOISE_REDUCTION = 104,
    DXVAHD_STREAM_STATE_FILTER_EDGE_ENHANCEMENT = 105,
    DXVAHD_STREAM_STATE_FILTER_ANAMORPHIC_SCALING = 106,
    DXVAHD_STREAM_STATE_PRIVATE = 1000
} DXVAHD_STREAM_STATE;
typedef enum _DXVAHD_SURFACE_TYPE {
    DXVAHD_SURFACE_TYPE_VIDEO_INPUT = 0,
    DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE = 1,
    DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT = 2
} DXVAHD_SURFACE_TYPE;
typedef struct _DXVAHD_RATIONAL {
    UINT Numerator;
    UINT Denominator;
} DXVAHD_RATIONAL;
typedef struct _DXVAHD_CONTENT_DESC {
    DXVAHD_FRAME_FORMAT InputFrameFormat;
    DXVAHD_RATIONAL InputFrameRate;
    UINT InputWidth;
    UINT InputHeight;
    DXVAHD_RATIONAL OutputFrameRate;
    UINT OutputWidth;
    UINT OutputHeight;
} DXVAHD_CONTENT_DESC;
typedef struct _DXVAHD_CUSTOM_RATE_DATA {
    DXVAHD_RATIONAL CustomRate;
    UINT OutputFrames;
    BOOL InputInterlaced;
    UINT InputFramesOrFields;
} DXVAHD_CUSTOM_RATE_DATA;
typedef struct _DXVAHD_FILTER_RANGE_DATA {
    INT Minimum;
    INT Maximum;
    INT Default;
    FLOAT Multiplier;
} DXVAHD_FILTER_RANGE_DATA;
typedef struct _DXVAHD_STREAM_DATA {
    BOOL Enable;
    UINT OutputIndex;
    UINT InputFrameOrField;
    UINT PastFrames;
    UINT FutureFrames;
    IDirect3DSurface9 **ppPastSurfaces;
    IDirect3DSurface9 *pInputSurface;
    IDirect3DSurface9 **ppFutureSurfaces;
} DXVAHD_STREAM_DATA;
typedef struct _DXVAHD_VPDEVCAPS {
    DXVAHD_DEVICE_TYPE DeviceType;
    UINT DeviceCaps;
    UINT FeatureCaps;
    UINT FilterCaps;
    UINT InputFormatCaps;
    D3DPOOL InputPool;
    UINT OutputFormatCount;
    UINT InputFormatCount;
    UINT VideoProcessorCount;
    UINT MaxInputStreams;
    UINT MaxStreamStates;
} DXVAHD_VPDEVCAPS;
typedef struct _DXVAHD_VPCAPS {
    GUID VPGuid;
    UINT PastFrames;
    UINT FutureFrames;
    UINT ProcessorCaps;
    UINT ITelecineCaps;
    UINT CustomRateCount;
} DXVAHD_VPCAPS;
typedef HRESULT (__stdcall *PDXVAHDSW_Plugin)(UINT size,void *callbacks);
/*****************************************************************************
 * IDXVAHD_VideoProcessor interface
 */
#ifndef __IDXVAHD_VideoProcessor_INTERFACE_DEFINED__
#define __IDXVAHD_VideoProcessor_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDXVAHD_VideoProcessor, 0x95f4edf4, 0x6e03, 0x4cd7, 0xbe,0x1b, 0x30,0x75,0xd6,0x65,0xaa,0x52);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("95f4edf4-6e03-4cd7-be1b-3075d665aa52")
IDXVAHD_VideoProcessor : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE SetVideoProcessBltState(
        DXVAHD_BLT_STATE state,
        UINT size,
        const void *data) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetVideoProcessBltState(
        DXVAHD_BLT_STATE state,
        UINT size,
        void *data) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetVideoProcessStreamState(
        UINT stream_idx,
        DXVAHD_STREAM_STATE state,
        UINT size,
        const void *data) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetVideoProcessStreamState(
        UINT stream_idx,
        DXVAHD_STREAM_STATE state,
        UINT size,
        void *data) = 0;

    virtual HRESULT STDMETHODCALLTYPE VideoProcessBltHD(
        IDirect3DSurface9 *surface,
        UINT frame_idx,
        UINT stream_count,
        const DXVAHD_STREAM_DATA *streams) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDXVAHD_VideoProcessor, 0x95f4edf4, 0x6e03, 0x4cd7, 0xbe,0x1b, 0x30,0x75,0xd6,0x65,0xaa,0x52)
#endif
#else
typedef struct IDXVAHD_VideoProcessorVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDXVAHD_VideoProcessor *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDXVAHD_VideoProcessor *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDXVAHD_VideoProcessor *This);

    /*** IDXVAHD_VideoProcessor methods ***/
    HRESULT (STDMETHODCALLTYPE *SetVideoProcessBltState)(
        IDXVAHD_VideoProcessor *This,
        DXVAHD_BLT_STATE state,
        UINT size,
        const void *data);

    HRESULT (STDMETHODCALLTYPE *GetVideoProcessBltState)(
        IDXVAHD_VideoProcessor *This,
        DXVAHD_BLT_STATE state,
        UINT size,
        void *data);

    HRESULT (STDMETHODCALLTYPE *SetVideoProcessStreamState)(
        IDXVAHD_VideoProcessor *This,
        UINT stream_idx,
        DXVAHD_STREAM_STATE state,
        UINT size,
        const void *data);

    HRESULT (STDMETHODCALLTYPE *GetVideoProcessStreamState)(
        IDXVAHD_VideoProcessor *This,
        UINT stream_idx,
        DXVAHD_STREAM_STATE state,
        UINT size,
        void *data);

    HRESULT (STDMETHODCALLTYPE *VideoProcessBltHD)(
        IDXVAHD_VideoProcessor *This,
        IDirect3DSurface9 *surface,
        UINT frame_idx,
        UINT stream_count,
        const DXVAHD_STREAM_DATA *streams);

    END_INTERFACE
} IDXVAHD_VideoProcessorVtbl;

interface IDXVAHD_VideoProcessor {
    CONST_VTBL IDXVAHD_VideoProcessorVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDXVAHD_VideoProcessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDXVAHD_VideoProcessor_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDXVAHD_VideoProcessor_Release(This) (This)->lpVtbl->Release(This)
/*** IDXVAHD_VideoProcessor methods ***/
#define IDXVAHD_VideoProcessor_SetVideoProcessBltState(This,state,size,data) (This)->lpVtbl->SetVideoProcessBltState(This,state,size,data)
#define IDXVAHD_VideoProcessor_GetVideoProcessBltState(This,state,size,data) (This)->lpVtbl->GetVideoProcessBltState(This,state,size,data)
#define IDXVAHD_VideoProcessor_SetVideoProcessStreamState(This,stream_idx,state,size,data) (This)->lpVtbl->SetVideoProcessStreamState(This,stream_idx,state,size,data)
#define IDXVAHD_VideoProcessor_GetVideoProcessStreamState(This,stream_idx,state,size,data) (This)->lpVtbl->GetVideoProcessStreamState(This,stream_idx,state,size,data)
#define IDXVAHD_VideoProcessor_VideoProcessBltHD(This,surface,frame_idx,stream_count,streams) (This)->lpVtbl->VideoProcessBltHD(This,surface,frame_idx,stream_count,streams)
#else
/*** IUnknown methods ***/
static inline HRESULT IDXVAHD_VideoProcessor_QueryInterface(IDXVAHD_VideoProcessor* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDXVAHD_VideoProcessor_AddRef(IDXVAHD_VideoProcessor* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDXVAHD_VideoProcessor_Release(IDXVAHD_VideoProcessor* This) {
    return This->lpVtbl->Release(This);
}
/*** IDXVAHD_VideoProcessor methods ***/
static inline HRESULT IDXVAHD_VideoProcessor_SetVideoProcessBltState(IDXVAHD_VideoProcessor* This,DXVAHD_BLT_STATE state,UINT size,const void *data) {
    return This->lpVtbl->SetVideoProcessBltState(This,state,size,data);
}
static inline HRESULT IDXVAHD_VideoProcessor_GetVideoProcessBltState(IDXVAHD_VideoProcessor* This,DXVAHD_BLT_STATE state,UINT size,void *data) {
    return This->lpVtbl->GetVideoProcessBltState(This,state,size,data);
}
static inline HRESULT IDXVAHD_VideoProcessor_SetVideoProcessStreamState(IDXVAHD_VideoProcessor* This,UINT stream_idx,DXVAHD_STREAM_STATE state,UINT size,const void *data) {
    return This->lpVtbl->SetVideoProcessStreamState(This,stream_idx,state,size,data);
}
static inline HRESULT IDXVAHD_VideoProcessor_GetVideoProcessStreamState(IDXVAHD_VideoProcessor* This,UINT stream_idx,DXVAHD_STREAM_STATE state,UINT size,void *data) {
    return This->lpVtbl->GetVideoProcessStreamState(This,stream_idx,state,size,data);
}
static inline HRESULT IDXVAHD_VideoProcessor_VideoProcessBltHD(IDXVAHD_VideoProcessor* This,IDirect3DSurface9 *surface,UINT frame_idx,UINT stream_count,const DXVAHD_STREAM_DATA *streams) {
    return This->lpVtbl->VideoProcessBltHD(This,surface,frame_idx,stream_count,streams);
}
#endif
#endif

#endif


#endif  /* __IDXVAHD_VideoProcessor_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDXVAHD_Device interface
 */
#ifndef __IDXVAHD_Device_INTERFACE_DEFINED__
#define __IDXVAHD_Device_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDXVAHD_Device, 0x95f12dfd, 0xd77e, 0x49be, 0x81,0x5f, 0x57,0xd5,0x79,0x63,0x4d,0x6d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("95f12dfd-d77e-49be-815f-57d579634d6d")
IDXVAHD_Device : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE CreateVideoSurface(
        UINT width,
        UINT height,
        D3DFORMAT format,
        D3DPOOL pool,
        DWORD usage,
        DXVAHD_SURFACE_TYPE type,
        UINT count,
        IDirect3DSurface9 **surfaces,
        HANDLE *shared_handle) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorDeviceCaps(
        DXVAHD_VPDEVCAPS *caps) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorOutputFormats(
        UINT count,
        D3DFORMAT *formats) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorInputFormats(
        UINT count,
        D3DFORMAT *formats) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps(
        UINT count,
        DXVAHD_VPCAPS *caps) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCustomRates(
        const GUID *guid,
        UINT count,
        DXVAHD_CUSTOM_RATE_DATA *rates) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorFilterRange(
        DXVAHD_FILTER filter,
        DXVAHD_FILTER_RANGE_DATA *range) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor(
        const GUID *guid,
        IDXVAHD_VideoProcessor **processor) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDXVAHD_Device, 0x95f12dfd, 0xd77e, 0x49be, 0x81,0x5f, 0x57,0xd5,0x79,0x63,0x4d,0x6d)
#endif
#else
typedef struct IDXVAHD_DeviceVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDXVAHD_Device *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDXVAHD_Device *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDXVAHD_Device *This);

    /*** IDXVAHD_Device methods ***/
    HRESULT (STDMETHODCALLTYPE *CreateVideoSurface)(
        IDXVAHD_Device *This,
        UINT width,
        UINT height,
        D3DFORMAT format,
        D3DPOOL pool,
        DWORD usage,
        DXVAHD_SURFACE_TYPE type,
        UINT count,
        IDirect3DSurface9 **surfaces,
        HANDLE *shared_handle);

    HRESULT (STDMETHODCALLTYPE *GetVideoProcessorDeviceCaps)(
        IDXVAHD_Device *This,
        DXVAHD_VPDEVCAPS *caps);

    HRESULT (STDMETHODCALLTYPE *GetVideoProcessorOutputFormats)(
        IDXVAHD_Device *This,
        UINT count,
        D3DFORMAT *formats);

    HRESULT (STDMETHODCALLTYPE *GetVideoProcessorInputFormats)(
        IDXVAHD_Device *This,
        UINT count,
        D3DFORMAT *formats);

    HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCaps)(
        IDXVAHD_Device *This,
        UINT count,
        DXVAHD_VPCAPS *caps);

    HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCustomRates)(
        IDXVAHD_Device *This,
        const GUID *guid,
        UINT count,
        DXVAHD_CUSTOM_RATE_DATA *rates);

    HRESULT (STDMETHODCALLTYPE *GetVideoProcessorFilterRange)(
        IDXVAHD_Device *This,
        DXVAHD_FILTER filter,
        DXVAHD_FILTER_RANGE_DATA *range);

    HRESULT (STDMETHODCALLTYPE *CreateVideoProcessor)(
        IDXVAHD_Device *This,
        const GUID *guid,
        IDXVAHD_VideoProcessor **processor);

    END_INTERFACE
} IDXVAHD_DeviceVtbl;

interface IDXVAHD_Device {
    CONST_VTBL IDXVAHD_DeviceVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDXVAHD_Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDXVAHD_Device_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDXVAHD_Device_Release(This) (This)->lpVtbl->Release(This)
/*** IDXVAHD_Device methods ***/
#define IDXVAHD_Device_CreateVideoSurface(This,width,height,format,pool,usage,type,count,surfaces,shared_handle) (This)->lpVtbl->CreateVideoSurface(This,width,height,format,pool,usage,type,count,surfaces,shared_handle)
#define IDXVAHD_Device_GetVideoProcessorDeviceCaps(This,caps) (This)->lpVtbl->GetVideoProcessorDeviceCaps(This,caps)
#define IDXVAHD_Device_GetVideoProcessorOutputFormats(This,count,formats) (This)->lpVtbl->GetVideoProcessorOutputFormats(This,count,formats)
#define IDXVAHD_Device_GetVideoProcessorInputFormats(This,count,formats) (This)->lpVtbl->GetVideoProcessorInputFormats(This,count,formats)
#define IDXVAHD_Device_GetVideoProcessorCaps(This,count,caps) (This)->lpVtbl->GetVideoProcessorCaps(This,count,caps)
#define IDXVAHD_Device_GetVideoProcessorCustomRates(This,guid,count,rates) (This)->lpVtbl->GetVideoProcessorCustomRates(This,guid,count,rates)
#define IDXVAHD_Device_GetVideoProcessorFilterRange(This,filter,range) (This)->lpVtbl->GetVideoProcessorFilterRange(This,filter,range)
#define IDXVAHD_Device_CreateVideoProcessor(This,guid,processor) (This)->lpVtbl->CreateVideoProcessor(This,guid,processor)
#else
/*** IUnknown methods ***/
static inline HRESULT IDXVAHD_Device_QueryInterface(IDXVAHD_Device* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDXVAHD_Device_AddRef(IDXVAHD_Device* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDXVAHD_Device_Release(IDXVAHD_Device* This) {
    return This->lpVtbl->Release(This);
}
/*** IDXVAHD_Device methods ***/
static inline HRESULT IDXVAHD_Device_CreateVideoSurface(IDXVAHD_Device* This,UINT width,UINT height,D3DFORMAT format,D3DPOOL pool,DWORD usage,DXVAHD_SURFACE_TYPE type,UINT count,IDirect3DSurface9 **surfaces,HANDLE *shared_handle) {
    return This->lpVtbl->CreateVideoSurface(This,width,height,format,pool,usage,type,count,surfaces,shared_handle);
}
static inline HRESULT IDXVAHD_Device_GetVideoProcessorDeviceCaps(IDXVAHD_Device* This,DXVAHD_VPDEVCAPS *caps) {
    return This->lpVtbl->GetVideoProcessorDeviceCaps(This,caps);
}
static inline HRESULT IDXVAHD_Device_GetVideoProcessorOutputFormats(IDXVAHD_Device* This,UINT count,D3DFORMAT *formats) {
    return This->lpVtbl->GetVideoProcessorOutputFormats(This,count,formats);
}
static inline HRESULT IDXVAHD_Device_GetVideoProcessorInputFormats(IDXVAHD_Device* This,UINT count,D3DFORMAT *formats) {
    return This->lpVtbl->GetVideoProcessorInputFormats(This,count,formats);
}
static inline HRESULT IDXVAHD_Device_GetVideoProcessorCaps(IDXVAHD_Device* This,UINT count,DXVAHD_VPCAPS *caps) {
    return This->lpVtbl->GetVideoProcessorCaps(This,count,caps);
}
static inline HRESULT IDXVAHD_Device_GetVideoProcessorCustomRates(IDXVAHD_Device* This,const GUID *guid,UINT count,DXVAHD_CUSTOM_RATE_DATA *rates) {
    return This->lpVtbl->GetVideoProcessorCustomRates(This,guid,count,rates);
}
static inline HRESULT IDXVAHD_Device_GetVideoProcessorFilterRange(IDXVAHD_Device* This,DXVAHD_FILTER filter,DXVAHD_FILTER_RANGE_DATA *range) {
    return This->lpVtbl->GetVideoProcessorFilterRange(This,filter,range);
}
static inline HRESULT IDXVAHD_Device_CreateVideoProcessor(IDXVAHD_Device* This,const GUID *guid,IDXVAHD_VideoProcessor **processor) {
    return This->lpVtbl->CreateVideoProcessor(This,guid,processor);
}
#endif
#endif

#endif


#endif  /* __IDXVAHD_Device_INTERFACE_DEFINED__ */

HRESULT __stdcall  DXVAHD_CreateDevice(IDirect3DDevice9Ex *d3d9_device,const DXVAHD_CONTENT_DESC *desc,DXVAHD_DEVICE_USAGE usage,PDXVAHDSW_Plugin plugin,IDXVAHD_Device **device);

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __dxvahd_h__ */
