00001 /* 00002 Free Download Manager Copyright (c) 2003-2007 FreeDownloadManager.ORG 00003 Open Download Manager Copyright (c) 2008-2010 OpenDownloadManager.ORG 00004 */ 00005 00006 #ifndef __MTYPE__ 00007 #define __MTYPE__ 00008 00009 class CMediaType : public _AMMediaType { 00010 00011 public: 00012 00013 ~CMediaType(); 00014 CMediaType(); 00015 CMediaType(const GUID * majortype); 00016 CMediaType(const AM_MEDIA_TYPE&); 00017 CMediaType(const CMediaType&); 00018 00019 CMediaType& operator=(const CMediaType&); 00020 CMediaType& operator=(const AM_MEDIA_TYPE&); 00021 00022 BOOL operator == (const CMediaType&) const; 00023 BOOL operator != (const CMediaType&) const; 00024 00025 BOOL IsValid() const; 00026 00027 const GUID *Type() const { return &majortype;} ; 00028 void SetType(const GUID *); 00029 const GUID *Subtype() const { return &subtype;} ; 00030 void SetSubtype(const GUID *); 00031 00032 BOOL IsFixedSize() const {return bFixedSizeSamples; }; 00033 BOOL IsTemporalCompressed() const {return bTemporalCompression; }; 00034 ULONG GetSampleSize() const; 00035 00036 void SetSampleSize(ULONG sz); 00037 void SetVariableSize(); 00038 void SetTemporalCompression(BOOL bCompressed); 00039 00040 00041 00042 00043 BYTE* Format() const {return pbFormat; }; 00044 ULONG FormatLength() const { return cbFormat; }; 00045 00046 void SetFormatType(const GUID *); 00047 const GUID *FormatType() const {return &formattype; }; 00048 BOOL SetFormat(BYTE *pFormat, ULONG length); 00049 void ResetFormatBuffer(); 00050 BYTE* AllocFormatBuffer(ULONG length); 00051 BYTE* ReallocFormatBuffer(ULONG length); 00052 00053 void InitMediaType(); 00054 00055 BOOL MatchesPartial(const CMediaType* ppartial) const; 00056 BOOL IsPartiallySpecified(void) const; 00057 }; 00058 00059 void WINAPI DeleteMediaType(AM_MEDIA_TYPE *pmt); 00060 AM_MEDIA_TYPE * WINAPI CreateMediaType(AM_MEDIA_TYPE const *pSrc); 00061 void WINAPI CopyMediaType(AM_MEDIA_TYPE *pmtTarget, const AM_MEDIA_TYPE *pmtSource); 00062 void WINAPI FreeMediaType(AM_MEDIA_TYPE& mt); 00063 00064 STDAPI CreateAudioMediaType( 00065 const WAVEFORMATEX *pwfx, 00066 AM_MEDIA_TYPE *pmt, 00067 BOOL bSetFormat); 00068 00069 #endif 00070
1.5.6