www.pudn.com > ZJMailer > TextBuffer.h
// TextBuffer.h: interface for the CTextBuffer class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_TEXTBUFFER_H__59994FFA_0312_4A4A_9986_244CDAC6C748__INCLUDED_)
#define AFX_TEXTBUFFER_H__59994FFA_0312_4A4A_9986_244CDAC6C748__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXPRIV_H__
#pragma message("SMTP classes requires afxpriv.h in your PCH")
#endif
//===========================================================
// class name: CTextBuffer
//
// 功能:
// CBase64Buffer 基类,处理基本的数据操作。
// 自动管理缓冲区,包括自动分配,自动释放。
class CTextBuffer
{
public:
// 获取缓冲区字符长度
int GetBufferLength() const;
// 分配缓冲区
bool AllocBuffer(int size);
// 获取缓冲区地址
char * GetBuffer();
// 释放缓冲区
void ReleaseBuffer();
// 设置缓冲区字符
bool SetBuffer(TCHAR * text);
// 构造/析构
CTextBuffer(TCHAR * text);
CTextBuffer();
virtual ~CTextBuffer();
// 纯虚函数,加码/解码 接口
// 由派生类实现
virtual bool Encode() = 0;
virtual bool Decode() = 0;
protected:
// 缓冲区长度
int m_innerLength;
// 缓冲区指针
char * m_innerBuffer;
};
//=============================================================
// class name: CBase64Buffer
//
// 功能:
// 由 CTextBuffer 基类派生,实现了接口 Decode/Encode
// 用来实现 Base64 编码
class CBase64Buffer : public CTextBuffer
{
public:
virtual bool Encode();
virtual bool Decode();
CBase64Buffer(TCHAR * text);
CBase64Buffer();
virtual ~CBase64Buffer();
protected:
BYTE FindTab(char ch);
BYTE EncodeChar(int idx, int subIdx);
};
#endif // !defined(AFX_TEXTBUFFER_H__59994FFA_0312_4A4A_9986_244CDAC6C748__INCLUDED_)