diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/app/miutmsg.h --- 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 - - //#include #include @@ -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 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 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__