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

Email客户端

开发平台:

Visual C++

  1. #pragma once
  2. /********************************************************************
  3. created: 2008:10:29   11:02
  4. author: 李欣
  5. filename: c:MyProjectSimpleMailSimpleMailBase64.h
  6. classname:  CBase64
  7. purpose: implement the base64 encoding mechanism
  8. *********************************************************************/
  9. class CBase64 : public CMIMECode  
  10. {
  11. public:
  12. CBase64();
  13. virtual ~CBase64();
  14. ///<summary>
  15. ///   decode the string
  16. ///</summary>
  17. ///<param name = >
  18. ///   the string to be decoded
  19. ///</param>
  20. /// <returns>
  21. ///    the decoding result
  22. /// </returns>
  23. virtual CString Decode(IN LPCTSTR szDecoding);
  24. ///<summary>
  25. ///   encode the string   
  26. ///</summary>
  27. ///<param name = szEncoding>
  28. ///   the string to be encoded
  29. ///</param>
  30. ///<param name = nSize>
  31. ///   the size of szEncoding
  32. ///</param>
  33. /// <returns>
  34. ///    the encoding result
  35. /// </returns>
  36. virtual CString Encode(IN LPCTSTR szEncoding, IN int nSize);
  37. protected:
  38. ///<summary>
  39. ///   Encode the string 3 byte one time
  40. ///</summary>
  41. ///<param name = szInBuf>
  42. ///   the buffer to be encoded
  43. ///</param>
  44. ///<param name = szOutBuf>
  45. ///   the result buffer 
  46. ///</param>
  47. ///<param name = nRest>
  48. ///   the remainder that is divided by 3
  49. ///</param>
  50. void EncodeEvery3Byte(IN LPCTSTR szInBuf, OUT LPTSTR szOutBuf, IN const int nRest = 0);
  51. ///<summary>
  52. ///   Get 6 bits from the origin string
  53. ///</summary>
  54. ///<param name = szInBase>
  55. ///   the origin string
  56. ///</param>
  57. ///<param name = nOffset>
  58. ///   the index dictating which part to be processed
  59. ///</param>
  60. /// <returns>
  61. ///    the result string
  62. /// </returns>
  63. char Get6Bits(IN LPCTSTR szInBase, IN const int nOffset);
  64. ///<summary>
  65. ///   decode the string 4 byte one time
  66. ///</summary>
  67. ///<param name = szInBuf>
  68. ///   the buffer to be decoded
  69. ///</param>
  70. ///<param name = szOutBuf>
  71. ///   the result buffer 
  72. ///</param>
  73. void DecodeEvery4Byte(IN LPCTSTR szInBuf, OUT LPTSTR szOutBuf);
  74. ///<summary>
  75. ///   Set 6 bits to the destination string
  76. ///</summary>
  77. ///<param name = nOffset>
  78. ///   the index dictating which part to be processed
  79. ///</param>
  80. ///<param name = n6Bits>
  81. ///   the char to be processed
  82. ///</param>
  83. ///<param name = szOutBuf>
  84. ///   the result buffer 
  85. ///</param>
  86. void Set6Bits(IN const int nOffset, IN char n6Bits, OUT LPTSTR szOutBuf);
  87. ///<summary>
  88. ///   a array for encoding, to help find char from xxxxxx
  89. ///</summary>
  90. char m_Arr[64]; 
  91. ///<summary>
  92. ///   a Map for decoding,to help find xxxxxx from char
  93. ///</summary>
  94. CMap<char, char, char, char> m_Map; 
  95. };