📄 cmimestring.cpp
字号:
#include "stdafx.h"
#include "CMimeString.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
#include "CBase64Algo.h"
//-------------------------------------------------------------
//con de
CMimeString::CMimeString(PROCESSTYPE inProcessType, ENCODETYPE inEncodeType, CString & inStr)
{
Init(inProcessType, inEncodeType,
(unsigned char *)(inStr.operator LPCTSTR()),
inStr.GetLength() );
}
CMimeString::CMimeString(PROCESSTYPE inProcessType, ENCODETYPE inEncodeType, unsigned char * inBuf, int inBufLen)
{
Init(inProcessType, inEncodeType, inBuf, inBufLen);
}
CMimeString::~CMimeString()
{
if( mBuf )
{
delete [] mBuf;
mBuf = 0;
}
mBufLen = 0;
}
//-------------------------------------------------------------
//interface
unsigned char * CMimeString::GetBuf(void)
{
return mBuf;
}
int CMimeString::GetBufLen(void)
{
return mBufLen;
}
CMimeString::operator LPCTSTR() const
{
return (LPCTSTR)mBuf;
}
unsigned char * CMimeString::GetFirstPart(int inPartLen)
{
mPartLen = inPartLen;
mNextPart = 0;
return GetNextPart();
}
unsigned char * CMimeString::GetNextPart(void)
{
if( ( mBufLen - mNextPart * mPartLen ) > 0 )
{
if( mNextPart != 0)
{
mBuf[mNextPart * mPartLen] = mSaveCut;//
}
unsigned char * p = mBuf + mPartLen * mNextPart;
mNextPart ++;
if( ( mBufLen - mNextPart * mPartLen ) > 0 )
{
mSaveCut = mBuf[mPartLen * mNextPart];//
mBuf[mPartLen * mNextPart] = '\0';//
}
return p;
}
else
{
return 0;
}
}
//-------------------------------------------------------------
//helper
void CMimeString::Init(PROCESSTYPE inProcessType, ENCODETYPE inEncodeType, unsigned char * inBuf, int inBufLen)
{
mBuf = 0;
mBufLen = 0;
if( inEncodeType == WYMIME )
{
mAlgo = new CMimeAlgo();
}
else if( inEncodeType == BASE64 )
{
mAlgo = new CBase64Algo();
}
if( inProcessType == ENCODING )
{
mAlgo->Encode(&mBuf, mBufLen, inBuf, inBufLen);
}
else if( inProcessType == DECODING )
{
mAlgo->Decode(&mBuf, mBufLen, inBuf, inBufLen);
}
}
//-------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -