diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/cmsvmimeheaders.h --- a/epoc32/include/cmsvmimeheaders.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/cmsvmimeheaders.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,180 @@ -cmsvmimeheaders.h +// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#ifndef __CMSVMIMEHEADERS_H__ +#define __CMSVMIMEHEADERS_H__ + +#include + +class CDesC8ArrayFlat; +class CMsvAttachment; +class CDesC8Array; + +/** +String literal for Base64 encoding. +@publishedAll +@released +*/ +_LIT8(KMsvBase64String, "Base64"); + +/** +String literal for Quoted-Printable encoding. +@publishedAll +@released +*/ +_LIT8(KMsvQPString, "quoted-printable"); + +/** +String literal for 7 bit encoding. +@publishedAll +@released +*/ +_LIT8(KMsv7BitString, "7bit"); + +/** +String literal for 8 bit encoding. +@publishedAll +@released +*/ +_LIT8(KMsv8BitString, "8bit"); + +/** +String literal for binary encoding. +@publishedAll +@released +*/ +_LIT8(KMsvBinaryString, "binary"); + +/** +String literal for UU encoding. +@publishedAll +@released +*/ +_LIT8(KMsvUUString, "uuencode"); + +/** +Utility class to represent commonly used Mime Headers. This object represents a number +of common Mime Headers into a single class. It is intended that this class is used to +represent the Mime Headers for an attachment represented by the CMsvAttachment class when +using the Attachment API. The Mime header data can be associated with an attachment and +stored and restored using the StoreL and RestoreL methods. +@publishedAll +@released +*/ +class CMsvMimeHeaders : public CBase + { +public: + +/** Messaging encoding types. +@publishedAll +@released +*/ +enum TMsvEncodingType + { + /** Unknown. */ + EEncodingTypeUnknown, + /** None. */ + EEncodingTypeNone, + /** 7-bit. */ + EEncodingType7Bit, + /** 8-bit. */ + EEncodingType8Bit, // ie lines still <1000 chars and terminated by CRLF + /** Binary. */ + EEncodingTypeBinary, // ie any length of data, not terminated by CRLF + /** QP. */ + EEncodingTypeQP, + /** Base64. */ + EEncodingTypeBASE64, + /** UU. */ + EEncodingTypeUU + }; + +public: + IMPORT_C static CMsvMimeHeaders* NewL(); + IMPORT_C static CMsvMimeHeaders* NewLC(); + IMPORT_C ~CMsvMimeHeaders(); + + IMPORT_C void StoreL(CMsvAttachment& aAttachment) const; + IMPORT_C void RestoreL(CMsvAttachment& aAttachment); + + IMPORT_C void SetContentDescriptionL(const TDesC8& aContentDescription); + IMPORT_C const TDesC8& ContentDescription() const; + + IMPORT_C void SetContentBaseL(const TDesC8& aContentBase); + IMPORT_C const TDesC8& ContentBase() const; + + IMPORT_C void SetContentLocationL(const TDesC16& aContentLocation); + IMPORT_C const TDesC16& ContentLocation() const; + + IMPORT_C void SetContentIdL(const TDesC8& aContentId); + IMPORT_C const TDesC8& ContentId() const; + + IMPORT_C void SetContentTypeL(const TDesC8& aContentType); + IMPORT_C const TDesC8& ContentType() const; + + IMPORT_C void SetContentSubTypeL(const TDesC8& aSubContentType); + IMPORT_C const TDesC8& ContentSubType() const; + + IMPORT_C void SetContentDispositionL(const TDesC8& aContentDisposition); + IMPORT_C const TDesC8& ContentDisposition() const; + + IMPORT_C CDesC8Array& ContentTypeParams(); + IMPORT_C CDesC8Array& ContentDispositionParams(); + IMPORT_C CDesC8Array& XTypeParams(); + + IMPORT_C const CDesC8Array& ContentTypeParams() const; + IMPORT_C const CDesC8Array& ContentDispositionParams() const; + IMPORT_C const CDesC8Array& XTypeParams() const; + + IMPORT_C void SetMimeCharset(TUint aMimeCharset); + IMPORT_C TUint MimeCharset() const; + + IMPORT_C void SetSuggestedFilenameL(const TDesC16& aSuggestedFilename); + IMPORT_C const TDesC16& SuggestedFilename() const; + + IMPORT_C void SetRelativePathL(const TDesC8& aRelativePath); + IMPORT_C const TDesC8& RelativePath() const; + + IMPORT_C void SetContentTransferEncoding(const TDesC8& aEncodingType); + IMPORT_C TMsvEncodingType ContentTransferEncoding() const; + IMPORT_C TMsvEncodingType ContentTransferEncoding(TPtrC8& aEncodingType) const; + IMPORT_C const TPtrC8 GetContentTypeValue(const TDesC8& aContentTypeParameter) const; + + IMPORT_C void Reset(); + IMPORT_C TInt Size() const; + IMPORT_C TBool ContainsMimeHeaders(const CMsvAttachment& aAttachment); + +private: + CMsvMimeHeaders(); + void ConstructL(); + +private: + HBufC8* iContentDescription; + HBufC8* iContentBase; + HBufC16* iContentLocation; + HBufC8* iContentId; + HBufC8* iContentType; + HBufC8* iContentSubType; + HBufC8* iContentDisposition; + CDesC8ArrayFlat* iContentTypeParams; // zero or more "parameter" + CDesC8ArrayFlat* iContentDispositionParams; // zero or more "parameters" + CDesC8ArrayFlat* iXTypeParams; // zero or more X-Type "parameters" + TUint iMimeCharset; + HBufC16* iSuggestedFilename; + HBufC8* iRelativePath; + TMsvEncodingType iContentTransferEncoding; + }; + +#endif // __CMSVMIMEHEADERS_H__