diff -r 6a20128ce557 -r ebfee66fde93 mmsengine/inc/cimconvertcharconv.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsengine/inc/cimconvertcharconv.h Fri Jun 04 10:25:39 2010 +0100 @@ -0,0 +1,114 @@ +// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// cimconvertcharconv.h +// + +/** + * @file + * @internal + * @released + */ + +#ifndef __CIMCONVERTCHARCONV_H__ +#define __CIMCONVERTCHARCONV_H__ + + +#include +#include + +/** + * IMail-specific stream type within an IMail file store for TImEmailTransformingInfo + * @internalTechnology + * @released + */ +const TUint KUidMsvCharsetNone = {0x10003C7F}; // 268450943 + +/** + * IMail-specific stream type within an IMail file store for TImEmailTransformingInfo + * @internalComponent + * @released + */ +const TUid KUidMsgFileTransformingInfo = {0x100094A5}; // 268473509 +const TUid KUidMsgEmailGeneralCenRep = {0x10285A25}; // 271079973 + +/** + * Default Sending Charset/Encoding Values + * @internalComponent + * @released + */ +_LIT8(KMiutUndisplayableChar, "?"); +#define KDefaultPlainCharset KCharacterSetIdentifierIso88591 +const TImEncodingType KDefaultMIMEHeaderEncoding = EEncodingTypeBASE64; // MIME +const TImEncodingType KDefaultMIMEBodyTextEncoding = EEncodingTypeQP; +const TImEncodingType KDefaultMIMEHTMLEncoding = EEncodingTypeBASE64; +const TImEncodingType KDefaultMIMEAttachmentEncoding = EEncodingTypeBASE64; +const TImEncodingType KDefaultPlainHeaderEncoding = EEncodingTypeNone; // Non-MIME or Plain +const TImEncodingType KDefaultPlainBodyTextEncoding = EEncodingTypeNone; +const TImEncodingType KDefaultPlainAttachmentEncoding = EEncodingTypeUU; + +// Wrapper class for CHARCONV. +// 'Our' charset dependant on build, UNICODE or CodePage 1252. +// +class CImConvertCharconv : public CBase +/** +@internalTechnology +@released +*/ + { +public: + IMPORT_C static CImConvertCharconv* NewL(CCnvCharacterSetConverter& aConverter, RFs& anFs); + ~CImConvertCharconv(); + + // MUST call prepare function first. + IMPORT_C TInt ConvertToOurCharsetL( const TDesC8& aBufIn, TDes& rBufOut, + TInt& rNumUnconvertedChars, + TInt& rIndexOfFirstUnconvertedChar); + IMPORT_C TInt ConvertFromOurCharsetL(const TDesC& aBufIn, TDes8& rBufOut, + TInt& rNumUnconvertedChars, + TInt& rIndexOfFirstUnconvertedChar); + + // MUST be called prior to calling above two functions. + IMPORT_C TInt PrepareToConvertToFromOurCharsetL(const TUint aUid); + + IMPORT_C TUint GetMimeCharsetUidL(const TDesC8& aBufIn) const; + IMPORT_C HBufC8* GetMimeCharsetTextStringL(const TUint& aUid) const; + IMPORT_C TUint DefaultCharset() const; + IMPORT_C TUint SystemDefaultCharset() const; + + static TInt StraightCopy( const TDesC8& aBufIn, TDes& rBufOut); + static TInt StraightCopy( const TDesC& aBufIn, TDes8& rBufOut); +private: + void ConstructL(); + CImConvertCharconv(CCnvCharacterSetConverter& aConverter, RFs& anFs); + TBool CharsetAvailable(const TUint aUid); + void SetSystemDefaultCharsetL(); + + TInt GetSystemCharsetFromCenRepL(TDes8& aMimeCharSet); + + enum TEmailGeneralSettingsCenRepId + { + EEmailGeneralCharSetId = 0x00000000 + }; + +private: + CCnvCharacterSetConverter& iConverter; + CArrayFix* iCharsetsAvailable; + + RFs& iFs; + TUint iCharsetUid; + TUint iSystemDefaultCharset; // Value obtained from .ini file + TInt iCharconvState; + }; + +#endif //__CIMCONVERTCHARCONV_H__