echotool.h
上传用户:tuheem
上传日期:2007-05-01
资源大小:21889k
文件大小:1k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. #ifndef _ECHOTOOL_H
  2. #define _ECHOTOOL_H
  3. #include <dmusici.h>
  4. #define MAX_ECHOES 4
  5. class CEchoTool : public IDirectMusicTool
  6. {
  7. public:
  8. CEchoTool();
  9.     ~CEchoTool();
  10. public:
  11.     virtual STDMETHODIMP QueryInterface(const IID &iid, void **ppv);
  12.     virtual STDMETHODIMP_(ULONG) AddRef();
  13.     virtual STDMETHODIMP_(ULONG) Release();
  14. HRESULT STDMETHODCALLTYPE Init( IDirectMusicGraph* pGraph );
  15. HRESULT STDMETHODCALLTYPE GetMsgDeliveryType( DWORD* pdwDeliveryType );
  16. HRESULT STDMETHODCALLTYPE GetMediaTypeArraySize( DWORD* pdwNumElements );
  17. HRESULT STDMETHODCALLTYPE GetMediaTypes( DWORD** padwMediaTypes, DWORD dwNumElements) ;
  18. HRESULT STDMETHODCALLTYPE ProcessPMsg( IDirectMusicPerformance* pPerf, DMUS_PMSG* pDMUS_PMSG );
  19. HRESULT STDMETHODCALLTYPE Flush( IDirectMusicPerformance* pPerf, DMUS_PMSG* pDMUS_PMSG, REFERENCE_TIME rt );
  20. private:
  21. long m_cRef;     
  22. DWORD m_dwEchoNum;     
  23. MUSIC_TIME m_mtDelay;    
  24. CRITICAL_SECTION m_CrSec;
  25. public:
  26. void SetEchoNum( DWORD dwEchoNum );
  27. void SetDelay( MUSIC_TIME mtDelay );
  28. };
  29. #endif // _ECHOTOOL_H