#if ! defined( BASE_64_CODING_CLASS_HEADER ) /* ** Author: Samuel R. Blackburn ** Internet: wfc@pobox.com ** ** You can use it any way you like as long as you don't try to sell it. ** ** Any attempt to sell WFC in source code form must have the permission ** of the original author. You can produce commercial executables with ** WFC but you can't sell WFC. ** ** Copyright, 2000, Samuel R. Blackburn ** ** $Workfile: CBase64Coding.hpp $ ** $Revision: 3 $ ** $Modtime: 1/04/00 4:39a $ */ #define BASE_64_CODING_CLASS_HEADER class CBase64Coding { private: // Don't allow canonical behavior (i.e. don't allow this class // to be passed by value) CBase64Coding( const CBase64Coding& ) {}; CBase64Coding& operator=( const CBase64Coding& ) { return( *this ); }; protected: BYTE m_DecoderTable[ 256 ]; virtual void m_InitializeDecoderTable( void ); public: // Construction CBase64Coding(); /* ** Destructor should be virtual according to MSJ article in Sept 1992 ** "Do More with Less Code:..." */ virtual ~CBase64Coding(); virtual BOOL Decode( const CByteArray& source, CByteArray& destination ); virtual BOOL Decode( const CString& source, CByteArray& destination ); virtual BOOL Encode( const CByteArray& source, CByteArray& destination ); virtual BOOL Encode( const CByteArray& source, CString& destination ); }; #endif // BASE_64_CODING_CLASS_HEADER