epoc32/include/app/miutmsg.h
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
--- a/epoc32/include/app/miutmsg.h	Wed Mar 31 12:27:01 2010 +0100
+++ b/epoc32/include/app/miutmsg.h	Wed Mar 31 12:33:34 2010 +0100
@@ -1,9 +1,9 @@
 // Copyright (c) 2003-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
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
-// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
@@ -11,6 +11,7 @@
 // Contributors:
 //
 // Description:
+// MIUTMSG.H
 //
 
 #ifndef __MIUTMSG_H__
@@ -33,8 +34,6 @@
 
 #include <txtmrtsr.h>
 
-
-
 //#include <mmsvattachmentmanager.h>
 #include <s32mem.h>
 
@@ -86,25 +85,16 @@
 _LIT(KMiutMsgDefaultHtmlFileName, "attachment.html");
 const TUid KUidMimeHeaders = {0x10204281};
 
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS  
+#include "cimmessagepart.h"
+#endif
+
 class CImHtmlConverter;
 
 class CImAttachmentManager;
 class CMsvMimeHeaders;
-class CMsvPlainBodyText;
 class CImPlainBodyText;
 
-class TImCreateMessageOptions
-/**
-@internalComponent
-@released
-*/
-	{
-public:
-	TMsvPartList		iMsvPartList;
-	TMsvEmailTypeList	iMsvEmailTypeList;
-	TUid				iMessageType;
-	};
-
 // Mixin provides interface to Browser control to resolve MHTML URIs.
 
 class MImURITranslator
@@ -401,261 +391,6 @@
 	
 	};
 
-class CImRemoveMessagePart : public CMsvOperation
-/**
-@internalComponent
-@released
-*/
-	{
-public:
-	static CImRemoveMessagePart* DeleteAttachmentL(TRequestStatus &aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, TMsvId aAttachmentId);
-	static CImRemoveMessagePart* DeleteAttachedMessageL(TRequestStatus &aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, TMsvId aAttachedMessageId);
-	~CImRemoveMessagePart();
-	const TDesC8& FinalProgress();
-	void DoCancel();
-	void RunL();
-	const TDesC8& ProgressL();		// returns NULL until operation completed - then returns MessageId
-	TMsvId RemovedAttachmentId();	
-private:
-	CImRemoveMessagePart(TRequestStatus& aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId);
-	void ConstructL(TMsvId aAttachmentId);
-	void ErrorRecovery(TInt aError);
-	void SelectNextStateL();					// selects next state to go to
-	void ChangeStateL();					// initiates the next state operation
-	void SelectAndChangeToNextStateL();
-	void RequestComplete(TInt aError);
-	void Recover();							// leave message in a 'good' state
-
-	void CheckAttachmentParentTypeL();
-	void MoveOtherEntryToParentOfFolderL();
-	void DeleteAttachmentEntryL();
-	void DeleteFolderEntryL();
-	void CompleteRemoveMessagePartL();
-private:
-	enum TImRemoveMessagePartState
-		{
-		ECheckAttachmentParentType,
-		EMoveOtherEntryToParentOfFolder,
-		EDeleteAttachmentEntry,
-		EDeleteFolderEntry,
-		ECompleteRemoveMessagePart,
-		EFinished
-		};
-	CMsvEntry&			iMsvEntry;
-	CMsvOperation*		iMsvOperation;
-
-	CMsvEntrySelection*	iMessageEntrySelection;
-	CImEmailMessage*	iEmailMessage;
-
-	TInt				iState;
-	TPckgBuf<TMsvId>	iDataMember;
-	TMsvId				iMessageId;
-	TMsvId				iFolderToDeleteId;
-	TInt				iAttachmentSize;
-	TMsvId				iAttachmentId;
-	TMsvId				iEntryToMoveId;
-	};
-
-class CImStoreMessagePart : public CMsvOperation
-/**
-@internalComponent
-@released
-*/
-	{
-public:
-	static CImStoreMessagePart* AddAttachmentL(TMsvId aMessageId, const TDesC& aFilePath, CMsvEntry& aMsvEntry,CMsvAttachment* aAttachmentInfo,TRequestStatus& aStatus );
-	static CImStoreMessagePart* AddEntryAsAttachmentL(TMsvId aMessageId,TMsvId aAttachmentMessageId, CMsvEntry& aMsvEntry, CMsvAttachment* aAttachmentInfo,TRequestStatus& aStatus);
-	static CImStoreMessagePart* AddAttachmentL(TMsvId aMessageId,RFile& aFile, CMsvEntry& aMsvEntry, CMsvAttachment* aAttachmentInfo, TRequestStatus& aStatus);
-	static CImStoreMessagePart* AddLinkedAttachmentL(TMsvId aMessageId,const TDesC& aFilePath, CMsvEntry& aMsvEntry,CMsvAttachment* aAttachmentInfo,TRequestStatus& aStatus );	
-	static CImStoreMessagePart* CreateAttachmentL(TMsvId aMessageId,const TDesC& aFileName, RFile& aAttachmentFile,CMsvEntry& aMsvEntry, CMsvAttachment* aAttachmentInfo, TRequestStatus& aStatus);
-	static CImStoreMessagePart* AddRelatedPartL(TRequestStatus &aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, const TDesC& aAttachmentFullName, TMsvId aRelatedPartId, const TDesC8& aContentId);
-	static CImStoreMessagePart* StoreBodyTextL(TRequestStatus& aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, CRichText& aRichText, TBool aUsePlainTextStorage = EFalse);
-	static CImStoreMessagePart* StoreBodyTextWithMimeHeaderL(TRequestStatus& aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, CRichText& aRichText, const CImMimeHeader& aMimeHeader, TBool aUsePlainTextStorage = EFalse);
-	static CImStoreMessagePart* StorePlainBodyTextL(TRequestStatus& aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, TBool aUsePlainTextStorage = ETrue);
-	static CImStoreMessagePart* StorePlainBodyTextL(TRequestStatus& aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, CImMimeHeader& aMimeHeader, TBool aUsePlainTextStorage = ETrue);
-	~CImStoreMessagePart();
-	const TDesC8& FinalProgress();
-	void DoCancel();
-	void RunL();
-	const TDesC8& ProgressL();
-private:
-	enum TImMessagePart
-		{
-		EMessagePartAttachment,
-		EMessagePartBody,
-		EMessagePartMessageAttachment
-		};
-	void ConstructL(RFile& aFile);
-	void ConstructL(RFile& aFile,const TDesC& aAttachmentName);
-	void ConstructL(const TDesC& aAttachmentFullName, const TDesC8& aContentId);
-	void ConstructAttachmentInfo(CMsvAttachment* aAttachmentInfo,TInt aAttachmentCreationState);
-	CImStoreMessagePart(TRequestStatus& aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, TBool aUsePlainTextStorage = EFalse);
-	
-	void ConstructL();
-	void ConstructL(const TDesC& aAttachmentFullName);
-	void ConstructL(TMsvId aAttachmentMessageId);
-	void ConstructL(const TDesC& aAttachmentFullName, TMsvId aRelatedPartId, const TDesC8& aContentId);
-	void ConstructL(CRichText& aRichText);
-	void ConstructL(CRichText& aRichText, const CImMimeHeader& aMimeHeader);
-	void ConstructL(CImMimeHeader& aMimeHeader);
-	void ConstructL(TImMessagePart aMessagePart);
-	void ErrorRecovery(TInt error);
-	void SelectNextStateL();				// selects next state to go to
-	void ChangeStateL();					// initiates the next state operation
-	void SelectAndChangeToNextStateL();
-	void RequestComplete(TInt aError);
-	void Recover();
-
-	TBool HTMLMessage() const;
-	void SetHTMLMessage(TBool aFlag);
-	TBool MultipartMixedExists() const;
-	void SetMultipartMixedExists(TBool aFlag);
-	TBool MultipartMixedCreated() const;
-	void SetMultipartMixedCreated(TBool aFlag);
-	TBool MultipartAlternativeExists() const;
-	void SetMultipartAlternativeExists(TBool aFlag);
-	TBool MultipartAlternativeCreated() const;
-	void SetMultipartAlternativeCreated(TBool aFlag);
-	TBool MultipartRelatedExists() const;
-	void SetMultipartRelatedExists(TBool aFlag);
-	TBool MultipartRelatedCreated() const;
-	void SetMultipartRelatedCreated(TBool aFlag);
-	TBool TextPartExists() const;
-	void SetTextPartExists(TBool aFlag);
-	TBool TextPartCreated() const;
-	void SetTextPartCreated(TBool aFlag);
- 	TBool AttachmentEntryCreated() const;
-	void SetAttachmentEntryCreated(TBool aFlag);
-
-	void FindMultipartRelatedFolderL();
-	void CheckForSubfolderL();
-	void CreateAttachmentEntryL();
-	void CopyOrigMessageToMessageL();
-	void CreateMultipartMixedFolderEntryL();
-	void CreateMultipartAlternativeFolderEntryL();
-	void CreateMultipartRelatedFolderEntryL();
-	void MoveOriginalMessageEntryChildrenToNewFolderL();
-	void CreateTextEntryL();
-	void StoreRichTextL();
-	void CompleteStoreMessagePartL();
-	void CreateHTMLEntryL();
-	void PrepareToStoreHTMLEntryTextL();
-	void StoreHTMLEntryTextL();
-	void RemoveHTMLEntryL();
-	void MoveTextEntryToAltFolderL();
-	TPtrC GetDefaultAttachmentName();
-	void OpenAndReadResourceFileL();
-	void StoreMimeHeaderL();
-	TBool CreateAttachmentMimeHeaderL(CImMimeHeader& aMimeHeader, const TDesC& aDetails);
-	void CreateFolderMimeHeaderL(CImMimeHeader& aMimeHeader);
-	void CreateMessageMimeHeaderL(CImMimeHeader& aMimeHeader);
-	void AddAttachmentL();
-	void AddAttachmentUsingFileHandleL();
-	void AddLinkedAttachmentL();
-	void AddEntryAsAttachmentL();	
-	void CreateAttachmentL();
-	void DoAttachmentStoreL();
-	TInt CheckMimeInAttachmentInfoL(CMsvMimeHeaders& aMsvMimeHeaders);
-	CImMimeHeader* ProcessAttachmentMimeHeadersL();
-	void SetEntryDetailsL(TMsvEntry& aEntry);
-	void StorePlainTextL();
-private:
-	enum TImStoreMessagePartState
-		{
-		EFindMultipartRelatedFolder,
-		ECheckForSubfolder,
-		ECreateAttachmentEntry,
-		EStoreAttachment,
-		ECopyOrigMessageToMessage,
-		ECreateMultipartMixedFolderEntry,
-		ECreateMultipartRelatedFolderEntry,
-		ECreateMultipartAlternativeFolderEntry,
-		EMoveOriginalMessageEntryChildrenToNewFolder,
-		ECreateTextEntry,
-		EStoreRichText,
-		ERemoveHTMLEntry,
-		EMoveTextToAlternativeFolder,
-		ECreateHTMLEntry,
-		EPrepareToStoreHTMLEntryText,
-		EStoreHTMLEntryText,
-		ECompleteStoreMessage,
-		EFinished
-		,EStoreHTMLTextInEntry,
-		EAddEntryAttachment	
-		};
-
-	enum TImStoreMessagePartFlags
-		{
-		KStoreMessagePartClearFlag							= 0x00000000,
-		KStoreMessagePartHTMLMessage						= 0x00000001,
-		KStoreMessagePartMultipartMixedExists				= 0x00000002,
-		KStoreMessagePartMultipartMixedCreated				= 0x00000004,
-		KStoreMessagePartMultipartAlternativeExists			= 0x00000008,
-		KStoreMessagePartMultipartAlternativeCreated		= 0x00000010,
-		KStoreMessagePartTextPartExists						= 0x00000020,
-		KStoreMessagePartTextPartCreated					= 0x00000040,
-		KStoreMessagePartAttachmentEntryCreated				= 0x00000080,
-		KStoreMessagePartOrigMessageEntryChildrenCopied		= 0x00000100,
-		KStoreMessagePartOrigMessageEntryChildrenDeleted	= 0x00000200,
-		KStoreMessagePartMultipartRelatedExists				= 0x00000400,
-		KStoreMessagePartMultipartRelatedCreated			= 0x00000800
-		};
-	CMsvEntry&			iMsvEntry;
-	CMsvOperation*		iMsvOperation;
-	
-	CRichText*			iRichTextToStore; // I don't own this object!
-	CImMimeHeader*		iMimeHeaderOfBodyText;
-	CRichText*			iRichText;
-	CFileMan*			iFileMan;
-	CMsvEntrySelection* iMessageEntrySelection;
-
-	TInt				iState;
-	TPckgBuf<TMsvId>	iDataMember;
-	TMsvId				iMessageId;
-	TImMessagePart		iMessagePart;
-	TMsvId				iMixFolderId;
-	TMsvId				iAltFolderId;
-	TMsvId				iRelFolderId;
-	HBufC*				iAttachmentFullName;
-	TInt				iAttachmentSize;
-	TMsvId				iAttachmentId;
-	TMsvId				iTextId;
-	TMsvId				iHtmlId;
-	TMsvId				iRelatedPartId;
-	TMsvId				iAttachmentMessageId;
-	TUint32				iFlags;
-	HBufC8*				iContentId;
-	CImEmailMessage*	iEmailMessage;
-
-	// Used when converting rich text to html
-	CParaFormatLayer*	iParaLayer;
-	CCharFormatLayer*	iCharLayer;
-	CImHtmlConverter* 	iHtmlConverter;
-	TBool iFinishedConvertingHTML;
-	CMsvAttachment*		iAttachmentInfo;
-	CMsvStore* 			iStore;
-	TInt 				iAttachmentCreateState;
-	TBool				iIsAddByFileHandle;
-	RFile*				iFileHandle;
-	RFile               iFile;
-	// Indicates whether to store message body as CRichText or plaintext.
-	TBool 				iUsePlainTextStorage;
-	// Size of the plain text body.
-	TInt				iSizeOfBody;
-	// Size of the Fwd'ed/ReplyTo plaintext body part.
-	TInt				iSizeFwdReplyBody;
-	// The error value returned when CRichText is populated with message body text.
-	TInt 				iRestoreErr;
-	enum TImAttachmentCreation
-		{
-		EAddAttachment,
-		EAddAttachmentUsingFileHandle,
-		EAddLinkedAttachment,
-		EAddEntryAsAttachment,
-		ECreateAttachment
-		};
-	};
-
 class CImEmailOperation : public CMsvOperation
 /** Provides simple email messages creation functions, including creation of new 
 messages, replies, forwarded messages, and receipts.
@@ -882,69 +617,4 @@
 	TInt iRestoreErr;
 	};
 
-
-class CImHtmlConverter : public CBase
-/**
-@internalComponent
-@released
-*/
-	{
-public:
-	static CImHtmlConverter* CImHtmlConverter::NewL(CMsvEntry& aMsvEntry, 
-								   CParaFormatLayer& aParaLayer, CCharFormatLayer& aCharLayer);
-	~CImHtmlConverter();
-	void PrepareToStoreHTMLEntryTextL(TMsvId& aHtmlId, const TMsvId aTextId);
-	void ResetStoreL();
-	void ResetStoreWithoutCommit();
-	TBool StoreHTMLEntryTextAL(TRequestStatus& aStatus);
-	CMsvOperation* ChangeHTMLTextInEnrtyL(TRequestStatus& aStatus);
-	
-	void ReadDefaultAttachmentNameL( RResourceFile& resourceFile);
-	TInt Size() const;
-
-private:
-	CImHtmlConverter(CMsvEntry&	aMsvEntry, CParaFormatLayer& aParaLayer, CCharFormatLayer& aCharLayer);
-	TFileName HtmlFilename(CMsvEntry& aEntry, TPtrC aFileName);
-	TPtrC GetDefaultAttachmentName();
-	void ConstructL();
-
-private:
-	CMsvEntry&			iMsvEntry;
-	CParaFormatLayer&	iParaLayer;
-	CCharFormatLayer&	iCharLayer;
-
-	CConverterBase*		iToHTMLConverter;
-	CCnaConverterList*	iConverterList;
-
-	TMsvId				iTextId;
-	TMsvId				iHtmlId;
-	TInt				iSize;
-	HBufC*				iDefaultAttachmentName;
-	CRichText*			iRichText;
-	RDesReadStream 		iSourceStream;
-	RFileWriteStream	iTargetStream;
-	CMsvStore*			iStore;
-	RFile 				iFile;
-	};
-
-class CImStoreResolver : public CBase, public MRichTextStoreResolver
-/**
-@internalComponent
-@released
-*/
-	{
-public:
-	CImStoreResolver(CStreamStore* aStore);
-	~CImStoreResolver();
-	//
-private:
-	const CStreamStore& StreamStoreL(TInt aPos)const;
-	//
-private:
-	CStreamStore* iStore;
-	};
-
-
-
-
 #endif // __MIUTMSG_H__