MailSaveMngr.cpp
上传用户:weimei12
上传日期:2022-08-11
资源大小:185k
文件大小:1k
源码类别:

Email客户端

开发平台:

Visual C++

  1. #include "StdAfx.h"
  2. #include "MailSaveMngr.h"
  3. #include <Shlwapi.h>
  4. #include <windows.h>
  5. CMailSaveMngr::CMailSaveMngr(void)
  6. {
  7. }
  8. CMailSaveMngr::~CMailSaveMngr(void)
  9. {
  10. }
  11. ///<summary>
  12. ///   Save the mails and return the mail position
  13. ///</summary>
  14. BOOL CMailSaveMngr::SaveMail(LPCTSTR szMail, const int nMailLen, MAILPOS& sMailPos)
  15. {
  16. sMailPos.nBlockIndex = m_MailTmpFile.ApplyMailBlocks(1);
  17. m_MailTmpFile.WriteMailBlock(sMailPos.nBlockIndex, (void*)szMail, nMailLen);
  18. return TRUE;
  19. }
  20. ///<summary>
  21. ///   load the mail content
  22. ///</summary>
  23. BOOL CMailSaveMngr::LoadMail(MAILPOS sMailPos, LPCTSTR szMail, int nMailLen)
  24. {
  25. m_MailTmpFile.ReadMailBlock(sMailPos.nBlockIndex, nMailLen, (void*)szMail);
  26. return TRUE;
  27. }
  28. ///<summary>
  29. ///   delete the certain mail from the database
  30. ///</summary>
  31. void CMailSaveMngr::DelMail(MAILPOS sMailPos)
  32. {
  33. m_MailTmpFile.ReleaseMailBlocks(sMailPos.nBlockIndex, 1);
  34. }
  35. ///<summary>
  36. ///   initial the database to save the mails
  37. ///</summary>
  38. BOOL CMailSaveMngr::InitMailTmpFile()
  39. {
  40. TCHAR szDatabase[_MAX_PATH] = {0};
  41. GetModuleFileName(NULL, szDatabase, _MAX_PATH);
  42. PathRemoveFileSpec(szDatabase);
  43. _tcscat_s(szDatabase, _MAX_PATH, MAIL_FILE_NAME);
  44. if (PathFileExists(szDatabase))
  45. {
  46. m_MailTmpFile.Open(szDatabase, TRUE);
  47. return TRUE;
  48. }
  49. else
  50. {
  51. m_MailTmpFile.CreateEmptyFile(szDatabase);
  52. return FALSE;
  53. }
  54. }