cWavFile.h
上传用户:sycq158
上传日期:2008-10-22
资源大小:15361k
文件大小:2k
源码类别:

游戏

开发平台:

Visual C++

  1. // cWavFile.h: interface for the cWavFile class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_CWAVFILE_H__0E167DB5_3E6F_4805_8CB7_7D28193DABD1__INCLUDED_)
  5. #define AFX_CWAVFILE_H__0E167DB5_3E6F_4805_8CB7_7D28193DABD1__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include <mmsystem.h>
  10. #include <dxerr8.h>
  11. #include <dsound.h>
  12. #define WAVEFILE_READ   1
  13. #define WAVEFILE_WRITE  2
  14. class cWavFile
  15. {
  16. public:
  17.     WAVEFORMATEX* m_pwfx;        // Pointer to WAVEFORMATEX structure
  18.     HMMIO         m_hmmio;       // MM I/O handle for the WAVE
  19.     MMCKINFO      m_ck;          // Multimedia RIFF chunk
  20.     MMCKINFO      m_ckRiff;      // Use in opening a WAVE file
  21.     DWORD         m_dwSize;      // The size of the wave file
  22.     MMIOINFO      m_mmioinfoOut;
  23.     DWORD         m_dwFlags;
  24.     BOOL          m_bIsReadingFromMemory;
  25.     BYTE*         m_pbData;
  26.     BYTE*         m_pbDataCur;
  27.     ULONG         m_ulDataSize;
  28.     CHAR*         m_pResourceBuffer;
  29. protected:
  30.     HRESULT ReadMMIO();
  31.     HRESULT WriteMMIO( WAVEFORMATEX *pwfxDest );
  32. public:
  33.     cWavFile();
  34.     ~cWavFile();
  35.     HRESULT Open( LPTSTR strFileName, WAVEFORMATEX* pwfx, DWORD dwFlags );
  36.     HRESULT OpenFromMemory( BYTE* pbData, ULONG ulDataSize, WAVEFORMATEX* pwfx, DWORD dwFlags );
  37.     HRESULT Close();
  38.     HRESULT Read( BYTE* pBuffer, DWORD dwSizeToRead, DWORD* pdwSizeRead );
  39.     HRESULT Write( UINT nSizeToWrite, BYTE* pbData, UINT* pnSizeWrote );
  40.     DWORD   GetSize();
  41.     HRESULT ResetFile();
  42.     WAVEFORMATEX* GetFormat() { return m_pwfx; };
  43. };
  44. #endif // !defined(AFX_CWAVFILE_H__0E167DB5_3E6F_4805_8CB7_7D28193DABD1__INCLUDED_)