SendEmailView.cpp
上传用户:jpdph_love
上传日期:2013-04-11
资源大小:116k
文件大小:3k
源码类别:

Email服务器

开发平台:

Visual C++

  1. // SendEmailView.cpp : implementation of the CSendEmailView class
  2. //
  3. #include "stdafx.h"
  4. #include "SendEmail.h"
  5. #include "SendEmailDoc.h"
  6. #include "SendEmailView.h"
  7. #include "Email.h"
  8. #include "EmailParams.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CSendEmailView
  16. IMPLEMENT_DYNCREATE(CSendEmailView, CView)
  17. BEGIN_MESSAGE_MAP(CSendEmailView, CView)
  18. //{{AFX_MSG_MAP(CSendEmailView)
  19. ON_COMMAND(ID_EMAIL_SENDEMAIL, OnEmailSendemail)
  20. ON_WM_CREATE()
  21. ON_WM_TIMER()
  22. ON_UPDATE_COMMAND_UI(ID_EMAIL_SENDEMAIL, OnUpdateEmailSendemail)
  23. //}}AFX_MSG_MAP
  24. END_MESSAGE_MAP()
  25. /////////////////////////////////////////////////////////////////////////////
  26. // CSendEmailView construction/destruction
  27. CSendEmailView::CSendEmailView()
  28. {
  29. m_pEmail = NULL;
  30. }
  31. CSendEmailView::~CSendEmailView()
  32. {
  33. if( m_pEmail != NULL )
  34. delete m_pEmail;
  35. }
  36. BOOL CSendEmailView::PreCreateWindow(CREATESTRUCT& cs)
  37. {
  38. return CView::PreCreateWindow(cs);
  39. }
  40. /////////////////////////////////////////////////////////////////////////////
  41. // CSendEmailView drawing
  42. void CSendEmailView::OnDraw(CDC* pDC)
  43. {
  44. CSendEmailDoc* pDoc = GetDocument();
  45. ASSERT_VALID(pDoc);
  46. }
  47. /////////////////////////////////////////////////////////////////////////////
  48. // CSendEmailView diagnostics
  49. #ifdef _DEBUG
  50. void CSendEmailView::AssertValid() const
  51. {
  52. CView::AssertValid();
  53. }
  54. void CSendEmailView::Dump(CDumpContext& dc) const
  55. {
  56. CView::Dump(dc);
  57. }
  58. CSendEmailDoc* CSendEmailView::GetDocument() // non-debug version is inline
  59. {
  60. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSendEmailDoc)));
  61. return (CSendEmailDoc*)m_pDocument;
  62. }
  63. #endif //_DEBUG
  64. /////////////////////////////////////////////////////////////////////////////
  65. // CSendEmailView message handlers
  66. void CSendEmailView::OnEmailSendemail() 
  67. {
  68. CEmailParams Params;
  69. if( Params.DoModal() == IDOK ){
  70. m_pEmail = new CEmail();
  71. if( m_pEmail != NULL )
  72. m_pEmail->Send( Params.m_strAddr,
  73. Params.m_strMessage, Params.m_strFrom,
  74. Params.m_strServer, Params.m_strSubject );
  75. }
  76. }
  77. int CSendEmailView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  78. {
  79. if (CView::OnCreate(lpCreateStruct) == -1)
  80. return -1;
  81. // Kick off the timer.
  82. SetTimer( 1, 500, NULL );
  83. return 0;
  84. }
  85. void CSendEmailView::OnTimer(UINT nIDEvent) 
  86. {
  87. if( m_pEmail != NULL &&
  88. m_pEmail->m_Info.bCompleted ){
  89. Sleep( 250 );
  90. DWORD dwLastError =
  91. m_pEmail->m_Info.dwLastError;
  92. delete m_pEmail;
  93. m_pEmail = NULL;
  94. if( dwLastError == 0 )
  95. AfxMessageBox( "You email was sent." );
  96. else
  97. AfxMessageBox( "There was an error." );
  98. }
  99. CView::OnTimer(nIDEvent);
  100. }
  101. void CSendEmailView::OnUpdateEmailSendemail(CCmdUI* pCmdUI) 
  102. {
  103. // Only enable the sending of email if
  104. // the email class is NULL.
  105. pCmdUI->Enable( m_pEmail == NULL );
  106. }