Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

206 lines
3.8 KiB

//
// FORMATS.H
//
#ifndef __STREAM_FORMATS__
#define __STREAM_FORMATS__
#include <amvideo.h>
class CTAudioFormat :
public CComObjectRootEx<CComMultiThreadModel>,
public IDispatchImpl<ITScriptableAudioFormat, &IID_ITScriptableAudioFormat, &LIBID_TAPI3Lib>,
public CMSPObjectSafetyImpl
{
public:
CTAudioFormat();
~CTAudioFormat();
DECLARE_GET_CONTROLLING_UNKNOWN()
virtual HRESULT FinalConstruct(void);
public:
BEGIN_COM_MAP(CTAudioFormat)
COM_INTERFACE_ENTRY(ITScriptableAudioFormat)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IObjectSafety)
END_COM_MAP()
public:
STDMETHOD(get_Channels)(
OUT long* pVal
);
STDMETHOD(put_Channels)(
IN const long nNewVal
);
STDMETHOD(get_SamplesPerSec)(
OUT long* pVal
);
STDMETHOD(put_SamplesPerSec)(
IN const long nNewVal
);
STDMETHOD(get_AvgBytesPerSec)(
OUT long* pVal
);
STDMETHOD(put_AvgBytesPerSec)(
IN const long nNewVal
);
STDMETHOD(get_BlockAlign)(
OUT long* pVal
);
STDMETHOD(put_BlockAlign)(
IN const long nNewVal
);
STDMETHOD(get_BitsPerSample)(
OUT long* pVal
);
STDMETHOD(put_BitsPerSample)(
IN const long nNewVal
);
STDMETHOD(get_FormatTag)(
OUT long* pVal
);
STDMETHOD(put_FormatTag)(
IN const long nNewVal
);
private:
WAVEFORMATEX m_wfx; // Waveformat structure
CMSPCritSection m_Lock; // Critical section
IUnknown* m_pFTM; // pointer to the free threaded marshaler
public:
HRESULT Initialize(
IN const WAVEFORMATEX* pwfx
)
{
//
// Don't care right now for the buffer
//
m_wfx = *pwfx;
m_wfx.cbSize = 0;
return S_OK;
}
};
/*
class CTVideoFormat :
public CComObjectRootEx<CComMultiThreadModel>,
public IDispatchImpl<ITScriptableVideoFormat, &IID_ITScriptableVideoFormat, &LIBID_TAPI3Lib>,
public CMSPObjectSafetyImpl
{
public:
CTVideoFormat();
~CTVideoFormat();
DECLARE_GET_CONTROLLING_UNKNOWN()
virtual HRESULT FinalConstruct(void);
public:
BEGIN_COM_MAP(CTVideoFormat)
COM_INTERFACE_ENTRY(ITScriptableVideoFormat)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IObjectSafety)
END_COM_MAP()
public:
STDMETHOD(get_BitRate)(
OUT long* pVal
);
STDMETHOD(put_BitRate)(
IN const long nNewVal
);
STDMETHOD(get_BitErrorRate)(
OUT long* pVal
);
STDMETHOD(put_BitErrorRate)(
IN const long nNewVal
);
STDMETHOD(get_AvgTimePerFrame)(
OUT double* pVal
);
STDMETHOD(put_AvgTimePerFrame)(
IN const double nNewVal
);
STDMETHOD(get_Width)(
OUT long* pVal
);
STDMETHOD(put_Width)(
IN const long nNewVal
);
STDMETHOD(get_Height)(
OUT long* pVal
);
STDMETHOD(put_Height)(
IN const long nNewVal
);
STDMETHOD(get_BitCount)(
OUT long* pVal
);
STDMETHOD(put_BitCount)(
IN const long nNewVal
);
STDMETHOD(get_Compression)(
OUT long* pVal
);
STDMETHOD(put_Compression)(
IN const long nNewVal
);
STDMETHOD(get_SizeImage)(
OUT long* pVal
);
STDMETHOD(put_SizeImage)(
IN const long nNewVal
);
private:
VIDEOINFOHEADER m_vih; // Video structure
CMSPCritSection m_Lock; // Critical section
IUnknown* m_pFTM; // pointer to the free threaded marshaler
public:
HRESULT Initialize(
IN const VIDEOINFOHEADER* pvih
)
{
m_vih = *pvih;
return S_OK;
}
};
*/
#endif
// eof