WaveEditDoc.cpp
上传用户:samlee1007
上传日期:2007-01-02
资源大小:123k
文件大小:4k
源码类别:

文件操作

开发平台:

Visual C++

  1. // WaveEditDoc.cpp : implementation of the CWaveEditDoc class
  2. //
  3. #include "stdafx.h"
  4. #include "WaveEdit.h"
  5. #include "WaveEditDoc.h"
  6. #include "WaveEditView.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CWaveEditDoc
  14. IMPLEMENT_DYNCREATE(CWaveEditDoc, CDocument)
  15. BEGIN_MESSAGE_MAP(CWaveEditDoc, CDocument)
  16. //{{AFX_MSG_MAP(CWaveEditDoc)
  17. //}}AFX_MSG_MAP
  18. END_MESSAGE_MAP()
  19. BEGIN_DISPATCH_MAP(CWaveEditDoc, CDocument)
  20. //{{AFX_DISPATCH_MAP(CWaveEditDoc)
  21. DISP_FUNCTION(CWaveEditDoc, "ShowApp", ShowApp, VT_EMPTY, VTS_NONE)
  22. DISP_FUNCTION(CWaveEditDoc, "HideApp", HideApp, VT_EMPTY, VTS_NONE)
  23. DISP_FUNCTION(CWaveEditDoc, "ShowWindow", ShowWindow, VT_EMPTY, VTS_NONE)
  24. DISP_FUNCTION(CWaveEditDoc, "SetCursor", SetCursor, VT_EMPTY, VTS_NONE)
  25. DISP_FUNCTION(CWaveEditDoc, "SetPlay", SetPlay, VT_EMPTY, VTS_NONE)
  26. DISP_FUNCTION(CWaveEditDoc, "SetPause", SetPause, VT_EMPTY, VTS_NONE)
  27. DISP_FUNCTION(CWaveEditDoc, "SetStop", SetStop, VT_EMPTY, VTS_NONE)
  28. DISP_FUNCTION(CWaveEditDoc, "IsWaveEnd", IsWaveEnd, VT_BOOL, VTS_NONE)
  29. //}}AFX_DISPATCH_MAP
  30. END_DISPATCH_MAP()
  31. static const IID IID_IWaveEdit =
  32. { 0x618031a7, 0x6a68, 0x11d2, { 0xb4, 0xad, 0xde, 0xc1, 0xca, 0xfe, 0x5b, 0x54 } };
  33. BEGIN_INTERFACE_MAP(CWaveEditDoc, CDocument)
  34. INTERFACE_PART(CWaveEditDoc, IID_IWaveEdit, Dispatch)
  35. END_INTERFACE_MAP()
  36. /////////////////////////////////////////////////////////////////////////////
  37. // CWaveEditDoc construction/destruction
  38. CWaveEditDoc::CWaveEditDoc()
  39. {
  40. EnableAutomation();
  41. AfxOleLockApp();
  42. m_bSvrTimerStopped = FALSE;
  43. m_bAppClosed = FALSE;
  44. }
  45. CWaveEditDoc::~CWaveEditDoc()
  46. {
  47. AfxOleUnlockApp();
  48. }
  49. BOOL CWaveEditDoc::OnNewDocument()
  50. {
  51. if (!CDocument::OnNewDocument())
  52. return FALSE;
  53. return TRUE;
  54. }
  55. /////////////////////////////////////////////////////////////////////////////
  56. // CWaveEditDoc serialization
  57. void CWaveEditDoc::Serialize(CArchive& ar)
  58. {
  59. if (ar.IsStoring())
  60. {
  61. }
  62. else
  63. {
  64. }
  65. }
  66. /////////////////////////////////////////////////////////////////////////////
  67. // CWaveEditDoc diagnostics
  68. #ifdef _DEBUG
  69. void CWaveEditDoc::AssertValid() const
  70. {
  71. CDocument::AssertValid();
  72. }
  73. void CWaveEditDoc::Dump(CDumpContext& dc) const
  74. {
  75. CDocument::Dump(dc);
  76. }
  77. #endif //_DEBUG
  78. /////////////////////////////////////////////////////////////////////////////
  79. // CWaveEditDoc commands
  80. void CWaveEditDoc::ShowApp() 
  81. {
  82. CWaveEditApp* pApp = (CWaveEditApp*)AfxGetApp();
  83. pApp->ShowApp(SW_SHOW);
  84. }
  85. void CWaveEditDoc::HideApp() 
  86. {
  87. CWaveEditApp* pApp = (CWaveEditApp*)AfxGetApp();
  88. pApp->ShowApp(SW_HIDE);
  89. }
  90. void CWaveEditDoc::ShowWindow() 
  91. {
  92. // Display the view
  93.    POSITION pos = GetFirstViewPosition();
  94.    CView* pV = GetNextView(pos);
  95.    if (pV != NULL)
  96.    {
  97.       CFrameWnd* pFrame = pV->GetParentFrame();
  98.       if (pFrame != NULL)
  99.          pFrame->ActivateFrame(SW_SHOW);
  100.    }
  101.    UpdateAllViews(NULL);
  102. }
  103. void CWaveEditDoc::SetCursor() 
  104. {
  105. POSITION pos = GetFirstViewPosition();
  106. CWaveEditView* pView = (CWaveEditView*)GetNextView(pos);
  107. pView->SetCursor();
  108. }
  109. void CWaveEditDoc::SetPlay() 
  110. {
  111. POSITION pos = GetFirstViewPosition();
  112. CWaveEditView* pView = (CWaveEditView*)GetNextView(pos);
  113. m_bSvrTimerStopped = FALSE;
  114. pView->SetPlay();
  115. }
  116. void CWaveEditDoc::SetPause() 
  117. {
  118. POSITION pos = GetFirstViewPosition();
  119. CWaveEditView* pView = (CWaveEditView*)GetNextView(pos);
  120. pView->SetPause();
  121. }
  122. void CWaveEditDoc::SetStop() 
  123. {
  124. POSITION pos = GetFirstViewPosition();
  125. CWaveEditView* pView = (CWaveEditView*)GetNextView(pos);
  126. pView->SetStop();
  127. }
  128. BOOL CWaveEditDoc::IsWaveEnd() 
  129. {
  130. if (m_bSvrTimerStopped || m_bAppClosed)
  131. return TRUE;
  132. else
  133. return FALSE;
  134. }