/*** Autogenerated by WIDL 9.0 from include/wmcodecdsp.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 __wmcodecdsp_h__
#define __wmcodecdsp_h__

#ifndef __WIDL_INLINE
#if defined(__cplusplus) || defined(_MSC_VER)
#define __WIDL_INLINE inline
#elif defined(__GNUC__)
#define __WIDL_INLINE __inline__
#endif
#endif

/* Forward declarations */

#ifndef __CMP3DecMediaObject_FWD_DEFINED__
#define __CMP3DecMediaObject_FWD_DEFINED__
#ifdef __cplusplus
typedef class CMP3DecMediaObject CMP3DecMediaObject;
#else
typedef struct CMP3DecMediaObject CMP3DecMediaObject;
#endif /* defined __cplusplus */
#endif /* defined __CMP3DecMediaObject_FWD_DEFINED__ */

#ifndef __CResamplerMediaObject_FWD_DEFINED__
#define __CResamplerMediaObject_FWD_DEFINED__
#ifdef __cplusplus
typedef class CResamplerMediaObject CResamplerMediaObject;
#else
typedef struct CResamplerMediaObject CResamplerMediaObject;
#endif /* defined __cplusplus */
#endif /* defined __CResamplerMediaObject_FWD_DEFINED__ */

#ifndef __CMSH264DecoderMFT_FWD_DEFINED__
#define __CMSH264DecoderMFT_FWD_DEFINED__
#ifdef __cplusplus
typedef class CMSH264DecoderMFT CMSH264DecoderMFT;
#else
typedef struct CMSH264DecoderMFT CMSH264DecoderMFT;
#endif /* defined __cplusplus */
#endif /* defined __CMSH264DecoderMFT_FWD_DEFINED__ */

#ifndef __CMSMPEGDecoderMFT_FWD_DEFINED__
#define __CMSMPEGDecoderMFT_FWD_DEFINED__
#ifdef __cplusplus
typedef class CMSMPEGDecoderMFT CMSMPEGDecoderMFT;
#else
typedef struct CMSMPEGDecoderMFT CMSMPEGDecoderMFT;
#endif /* defined __cplusplus */
#endif /* defined __CMSMPEGDecoderMFT_FWD_DEFINED__ */

#ifndef __CWMADecMediaObject_FWD_DEFINED__
#define __CWMADecMediaObject_FWD_DEFINED__
#ifdef __cplusplus
typedef class CWMADecMediaObject CWMADecMediaObject;
#else
typedef struct CWMADecMediaObject CWMADecMediaObject;
#endif /* defined __cplusplus */
#endif /* defined __CWMADecMediaObject_FWD_DEFINED__ */

#ifndef __CWMAEncMediaObject_FWD_DEFINED__
#define __CWMAEncMediaObject_FWD_DEFINED__
#ifdef __cplusplus
typedef class CWMAEncMediaObject CWMAEncMediaObject;
#else
typedef struct CWMAEncMediaObject CWMAEncMediaObject;
#endif /* defined __cplusplus */
#endif /* defined __CWMAEncMediaObject_FWD_DEFINED__ */

#ifndef __AACMFTEncoder_FWD_DEFINED__
#define __AACMFTEncoder_FWD_DEFINED__
#ifdef __cplusplus
typedef class AACMFTEncoder AACMFTEncoder;
#else
typedef struct AACMFTEncoder AACMFTEncoder;
#endif /* defined __cplusplus */
#endif /* defined __AACMFTEncoder_FWD_DEFINED__ */

#ifndef __CColorConvertDMO_FWD_DEFINED__
#define __CColorConvertDMO_FWD_DEFINED__
#ifdef __cplusplus
typedef class CColorConvertDMO CColorConvertDMO;
#else
typedef struct CColorConvertDMO CColorConvertDMO;
#endif /* defined __cplusplus */
#endif /* defined __CColorConvertDMO_FWD_DEFINED__ */

#ifndef __CWMV9EncMediaObject_FWD_DEFINED__
#define __CWMV9EncMediaObject_FWD_DEFINED__
#ifdef __cplusplus
typedef class CWMV9EncMediaObject CWMV9EncMediaObject;
#else
typedef struct CWMV9EncMediaObject CWMV9EncMediaObject;
#endif /* defined __cplusplus */
#endif /* defined __CWMV9EncMediaObject_FWD_DEFINED__ */

#ifndef __CWMVDecMediaObject_FWD_DEFINED__
#define __CWMVDecMediaObject_FWD_DEFINED__
#ifdef __cplusplus
typedef class CWMVDecMediaObject CWMVDecMediaObject;
#else
typedef struct CWMVDecMediaObject CWMVDecMediaObject;
#endif /* defined __cplusplus */
#endif /* defined __CWMVDecMediaObject_FWD_DEFINED__ */

#ifndef __CWMVXEncMediaObject_FWD_DEFINED__
#define __CWMVXEncMediaObject_FWD_DEFINED__
#ifdef __cplusplus
typedef class CWMVXEncMediaObject CWMVXEncMediaObject;
#else
typedef struct CWMVXEncMediaObject CWMVXEncMediaObject;
#endif /* defined __cplusplus */
#endif /* defined __CWMVXEncMediaObject_FWD_DEFINED__ */

#ifndef __IWMResamplerProps_FWD_DEFINED__
#define __IWMResamplerProps_FWD_DEFINED__
typedef interface IWMResamplerProps IWMResamplerProps;
#ifdef __cplusplus
interface IWMResamplerProps;
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <mediaobj.h>
#include <strmif.h>

#ifdef __cplusplus
extern "C" {
#endif

DEFINE_GUID(MEDIASUBTYPE_I420,0x30323449,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_MSAUDIO1,0x00000160,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_WMAUDIO2,0x00000161,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_WMAUDIO3,0x00000162,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_WMAUDIO_LOSSLESS,0x00000163,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_V216,0x36313256,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_V410,0x30313456,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_Y41T,0x54313459,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_Y42T,0x54323459,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_WMV1,0x31564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_WMV2,0x32564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_WMV3,0x33564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_WMVA,0x41564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_WMVP,0x50564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_WMVR,0x52564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_WVC1,0x31435657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
DEFINE_GUID(MEDIASUBTYPE_WVP2,0x32505657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
/*****************************************************************************
 * CMP3DecMediaObject coclass
 */

DEFINE_GUID(CLSID_CMP3DecMediaObject, 0xbbeea841, 0x0a63, 0x4f52, 0xa7,0xab, 0xa9,0xb3,0xa8,0x4e,0xd3,0x8a);

#ifdef __cplusplus
class DECLSPEC_UUID("bbeea841-0a63-4f52-a7ab-a9b3a84ed38a") CMP3DecMediaObject;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(CMP3DecMediaObject, 0xbbeea841, 0x0a63, 0x4f52, 0xa7,0xab, 0xa9,0xb3,0xa8,0x4e,0xd3,0x8a)
#endif
#endif

/*****************************************************************************
 * CResamplerMediaObject coclass
 */

DEFINE_GUID(CLSID_CResamplerMediaObject, 0xf447b69e, 0x1884, 0x4a7e, 0x80,0x55, 0x34,0x6f,0x74,0xd6,0xed,0xb3);

#ifdef __cplusplus
class DECLSPEC_UUID("f447b69e-1884-4a7e-8055-346f74d6edb3") CResamplerMediaObject;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(CResamplerMediaObject, 0xf447b69e, 0x1884, 0x4a7e, 0x80,0x55, 0x34,0x6f,0x74,0xd6,0xed,0xb3)
#endif
#endif

/*****************************************************************************
 * CMSH264DecoderMFT coclass
 */

DEFINE_GUID(CLSID_CMSH264DecoderMFT, 0x62ce7e72, 0x4c71, 0x4d20, 0xb1,0x5d, 0x45,0x28,0x31,0xa8,0x7d,0x9d);

#ifdef __cplusplus
class DECLSPEC_UUID("62ce7e72-4c71-4d20-b15d-452831a87d9d") CMSH264DecoderMFT;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(CMSH264DecoderMFT, 0x62ce7e72, 0x4c71, 0x4d20, 0xb1,0x5d, 0x45,0x28,0x31,0xa8,0x7d,0x9d)
#endif
#endif

/*****************************************************************************
 * CMSMPEGDecoderMFT coclass
 */

DEFINE_GUID(CLSID_CMSMPEGDecoderMFT, 0x2d709e52, 0x123f, 0x49b5, 0x9c,0xbc, 0x9a,0xf5,0xcd,0xe2,0x8f,0xb9);

#ifdef __cplusplus
class DECLSPEC_UUID("2d709e52-123f-49b5-9cbc-9af5cde28fb9") CMSMPEGDecoderMFT;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(CMSMPEGDecoderMFT, 0x2d709e52, 0x123f, 0x49b5, 0x9c,0xbc, 0x9a,0xf5,0xcd,0xe2,0x8f,0xb9)
#endif
#endif

/*****************************************************************************
 * CWMADecMediaObject coclass
 */

DEFINE_GUID(CLSID_CWMADecMediaObject, 0x2eeb4adf, 0x4578, 0x4d10, 0xbc,0xa7, 0xbb,0x95,0x5f,0x56,0x32,0x0a);

#ifdef __cplusplus
class DECLSPEC_UUID("2eeb4adf-4578-4d10-bca7-bb955f56320a") CWMADecMediaObject;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(CWMADecMediaObject, 0x2eeb4adf, 0x4578, 0x4d10, 0xbc,0xa7, 0xbb,0x95,0x5f,0x56,0x32,0x0a)
#endif
#endif

/*****************************************************************************
 * CWMAEncMediaObject coclass
 */

DEFINE_GUID(CLSID_CWMAEncMediaObject, 0x70f598e9, 0xf4ab, 0x495a, 0x99,0xe2, 0xa7,0xc4,0xd3,0xd8,0x9a,0xbf);

#ifdef __cplusplus
class DECLSPEC_UUID("70f598e9-f4ab-495a-99e2-a7c4d3d89abf") CWMAEncMediaObject;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(CWMAEncMediaObject, 0x70f598e9, 0xf4ab, 0x495a, 0x99,0xe2, 0xa7,0xc4,0xd3,0xd8,0x9a,0xbf)
#endif
#endif

/*****************************************************************************
 * AACMFTEncoder coclass
 */

DEFINE_GUID(CLSID_AACMFTEncoder, 0x93af0c51, 0x2275, 0x45d2, 0xa3,0x5b, 0xf2,0xba,0x21,0xca,0xed,0x00);

#ifdef __cplusplus
class DECLSPEC_UUID("93af0c51-2275-45d2-a35b-f2ba21caed00") AACMFTEncoder;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(AACMFTEncoder, 0x93af0c51, 0x2275, 0x45d2, 0xa3,0x5b, 0xf2,0xba,0x21,0xca,0xed,0x00)
#endif
#endif

/*****************************************************************************
 * CColorConvertDMO coclass
 */

DEFINE_GUID(CLSID_CColorConvertDMO, 0x98230571, 0x0087, 0x4204, 0xb0,0x20, 0x32,0x82,0x53,0x8e,0x57,0xd3);

#ifdef __cplusplus
class DECLSPEC_UUID("98230571-0087-4204-b020-3282538e57d3") CColorConvertDMO;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(CColorConvertDMO, 0x98230571, 0x0087, 0x4204, 0xb0,0x20, 0x32,0x82,0x53,0x8e,0x57,0xd3)
#endif
#endif

/*****************************************************************************
 * CWMV9EncMediaObject coclass
 */

DEFINE_GUID(CLSID_CWMV9EncMediaObject, 0xd23b90d0, 0x144f, 0x46bd, 0x84,0x1d, 0x59,0xe4,0xeb,0x19,0xdc,0x59);

#ifdef __cplusplus
class DECLSPEC_UUID("d23b90d0-144f-46bd-841d-59e4eb19dc59") CWMV9EncMediaObject;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(CWMV9EncMediaObject, 0xd23b90d0, 0x144f, 0x46bd, 0x84,0x1d, 0x59,0xe4,0xeb,0x19,0xdc,0x59)
#endif
#endif

/*****************************************************************************
 * CWMVDecMediaObject coclass
 */

DEFINE_GUID(CLSID_CWMVDecMediaObject, 0x82d353df, 0x90bd, 0x4382, 0x8b,0xc2, 0x3f,0x61,0x92,0xb7,0x6e,0x34);

#ifdef __cplusplus
class DECLSPEC_UUID("82d353df-90bd-4382-8bc2-3f6192b76e34") CWMVDecMediaObject;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(CWMVDecMediaObject, 0x82d353df, 0x90bd, 0x4382, 0x8b,0xc2, 0x3f,0x61,0x92,0xb7,0x6e,0x34)
#endif
#endif

/*****************************************************************************
 * CWMVXEncMediaObject coclass
 */

DEFINE_GUID(CLSID_CWMVXEncMediaObject, 0x7e320092, 0x596a, 0x41b2, 0xbb,0xeb, 0x17,0x5d,0x10,0x50,0x4e,0xb6);

#ifdef __cplusplus
class DECLSPEC_UUID("7e320092-596a-41b2-bbeb-175d10504eb6") CWMVXEncMediaObject;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(CWMVXEncMediaObject, 0x7e320092, 0x596a, 0x41b2, 0xbb,0xeb, 0x17,0x5d,0x10,0x50,0x4e,0xb6)
#endif
#endif

typedef float ChMtxType;
/*****************************************************************************
 * IWMResamplerProps interface
 */
#ifndef __IWMResamplerProps_INTERFACE_DEFINED__
#define __IWMResamplerProps_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMResamplerProps, 0xe7e9984f, 0xf09f, 0x4da4, 0x90,0x3f, 0x6e,0x2e,0x0e,0xfe,0x56,0xb5);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("e7e9984f-f09f-4da4-903f-6e2e0efe56b5")
IWMResamplerProps : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE SetHalfFilterLength(
        LONG length) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetUserChannelMtx(
        ChMtxType *conversion_matrix) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMResamplerProps, 0xe7e9984f, 0xf09f, 0x4da4, 0x90,0x3f, 0x6e,0x2e,0x0e,0xfe,0x56,0xb5)
#endif
#else
typedef struct IWMResamplerPropsVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IWMResamplerProps methods ***/
    HRESULT (STDMETHODCALLTYPE *SetHalfFilterLength)(
        IWMResamplerProps *This,
        LONG length);

    HRESULT (STDMETHODCALLTYPE *SetUserChannelMtx)(
        IWMResamplerProps *This,
        ChMtxType *conversion_matrix);

    END_INTERFACE
} IWMResamplerPropsVtbl;

interface IWMResamplerProps {
    CONST_VTBL IWMResamplerPropsVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMResamplerProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMResamplerProps_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMResamplerProps_Release(This) (This)->lpVtbl->Release(This)
/*** IWMResamplerProps methods ***/
#define IWMResamplerProps_SetHalfFilterLength(This,length) (This)->lpVtbl->SetHalfFilterLength(This,length)
#define IWMResamplerProps_SetUserChannelMtx(This,conversion_matrix) (This)->lpVtbl->SetUserChannelMtx(This,conversion_matrix)
#else
/*** IUnknown methods ***/
static __WIDL_INLINE HRESULT IWMResamplerProps_QueryInterface(IWMResamplerProps* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static __WIDL_INLINE ULONG IWMResamplerProps_AddRef(IWMResamplerProps* This) {
    return This->lpVtbl->AddRef(This);
}
static __WIDL_INLINE ULONG IWMResamplerProps_Release(IWMResamplerProps* This) {
    return This->lpVtbl->Release(This);
}
/*** IWMResamplerProps methods ***/
static __WIDL_INLINE HRESULT IWMResamplerProps_SetHalfFilterLength(IWMResamplerProps* This,LONG length) {
    return This->lpVtbl->SetHalfFilterLength(This,length);
}
static __WIDL_INLINE HRESULT IWMResamplerProps_SetUserChannelMtx(IWMResamplerProps* This,ChMtxType *conversion_matrix) {
    return This->lpVtbl->SetUserChannelMtx(This,conversion_matrix);
}
#endif
#endif

#endif


#endif  /* __IWMResamplerProps_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __wmcodecdsp_h__ */
