Buffer.cpp
上传用户:zjb_0001
上传日期:2007-01-11
资源大小:154k
文件大小:1k
源码类别:

Audio

开发平台:

Visual C++

  1. // Buffer.cpp: implementation of the CBuffer class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "Buffer.h"
  6. #ifdef _DEBUG
  7. #undef THIS_FILE
  8. static char THIS_FILE[]=__FILE__;
  9. #define new DEBUG_NEW
  10. #endif
  11. //////////////////////////////////////////////////////////////////////
  12. // Construction/Destruction
  13. //////////////////////////////////////////////////////////////////////
  14. CBuffer::CBuffer(DWORD size, bool AutoDelete)
  15. {
  16. m_bAutoDelete = AutoDelete;
  17. try
  18. {
  19. ptr.b = new BYTE[size];
  20. if(ptr.b) ByteLen = size;
  21. }
  22. catch(...)
  23. {
  24. ErrorMsg("Out of memory!");
  25. }
  26. }
  27. CBuffer::CBuffer(void* buffer, DWORD length)
  28. {
  29. m_bAutoDelete = false;
  30. if(buffer)
  31. {
  32. ptr.v = buffer;
  33. ByteLen = length;
  34. }
  35. else
  36. {
  37. ptr.b = NULL;
  38. ByteLen = 0;
  39. }
  40. }
  41. CBuffer::~CBuffer()
  42. {
  43. // remember to delete the memory
  44. if(m_bAutoDelete && ptr.b != NULL)  delete ptr.b;
  45. }
  46. void CBuffer::Erase()
  47. {
  48. if(ptr.b) ZeroMemory(ptr.b,ByteLen);
  49. }