www.pudn.com > mime.rar > CBase64Algo.h
#ifndef _H_CBase64Algo_
#define _H_CBase64Algo_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "CMimeAlgo.h"
#include <afxtempl.h>
class CBase64Algo : public CMimeAlgo
{
//con de
public:
CBase64Algo();
~CBase64Algo();
//overrided
public:
virtual void Encode( unsigned char ** outBuf, int &amt; outBufLen, unsigned char * inSrcBuf, int inSrcLen );
virtual void Decode( unsigned char ** outBuf, int &amt; outBufLen, unsigned char * inSrcBuf, int inSrcLen );
//implement
protected:
unsigned char mArr[64]; //to help find char from xxxxxx
CMap<unsigned char, unsigned char, unsigned char, unsigned char> mMap; //to help find xxxxxx from char
void EncodeEvery3Byte(unsigned char * outBuf, const unsigned char * const inBuf, int inRest = 0);
unsigned char Get6Bits(const unsigned char * const inBase, int inOffset);
void DecodeEvery4Byte(unsigned char * outBuf, const unsigned char * const inBuf);
void Set6Bits(unsigned char * outBuf, int inOffset, unsigned char in6Bits);
};
#endif