--- 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__