1.1 --- a/epoc32/include/app/miutmsg.h Wed Mar 31 12:27:01 2010 +0100
1.2 +++ b/epoc32/include/app/miutmsg.h Wed Mar 31 12:33:34 2010 +0100
1.3 @@ -1,9 +1,9 @@
1.4 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 // All rights reserved.
1.6 // This component and the accompanying materials are made available
1.7 -// 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
1.8 +// under the terms of "Eclipse Public License v1.0"
1.9 // which accompanies this distribution, and is available
1.10 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.11 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.12 //
1.13 // Initial Contributors:
1.14 // Nokia Corporation - initial contribution.
1.15 @@ -11,6 +11,7 @@
1.16 // Contributors:
1.17 //
1.18 // Description:
1.19 +// MIUTMSG.H
1.20 //
1.21
1.22 #ifndef __MIUTMSG_H__
1.23 @@ -33,8 +34,6 @@
1.24
1.25 #include <txtmrtsr.h>
1.26
1.27 -
1.28 -
1.29 //#include <mmsvattachmentmanager.h>
1.30 #include <s32mem.h>
1.31
1.32 @@ -86,25 +85,16 @@
1.33 _LIT(KMiutMsgDefaultHtmlFileName, "attachment.html");
1.34 const TUid KUidMimeHeaders = {0x10204281};
1.35
1.36 +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
1.37 +#include "cimmessagepart.h"
1.38 +#endif
1.39 +
1.40 class CImHtmlConverter;
1.41
1.42 class CImAttachmentManager;
1.43 class CMsvMimeHeaders;
1.44 -class CMsvPlainBodyText;
1.45 class CImPlainBodyText;
1.46
1.47 -class TImCreateMessageOptions
1.48 -/**
1.49 -@internalComponent
1.50 -@released
1.51 -*/
1.52 - {
1.53 -public:
1.54 - TMsvPartList iMsvPartList;
1.55 - TMsvEmailTypeList iMsvEmailTypeList;
1.56 - TUid iMessageType;
1.57 - };
1.58 -
1.59 // Mixin provides interface to Browser control to resolve MHTML URIs.
1.60
1.61 class MImURITranslator
1.62 @@ -401,261 +391,6 @@
1.63
1.64 };
1.65
1.66 -class CImRemoveMessagePart : public CMsvOperation
1.67 -/**
1.68 -@internalComponent
1.69 -@released
1.70 -*/
1.71 - {
1.72 -public:
1.73 - static CImRemoveMessagePart* DeleteAttachmentL(TRequestStatus &aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, TMsvId aAttachmentId);
1.74 - static CImRemoveMessagePart* DeleteAttachedMessageL(TRequestStatus &aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, TMsvId aAttachedMessageId);
1.75 - ~CImRemoveMessagePart();
1.76 - const TDesC8& FinalProgress();
1.77 - void DoCancel();
1.78 - void RunL();
1.79 - const TDesC8& ProgressL(); // returns NULL until operation completed - then returns MessageId
1.80 - TMsvId RemovedAttachmentId();
1.81 -private:
1.82 - CImRemoveMessagePart(TRequestStatus& aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId);
1.83 - void ConstructL(TMsvId aAttachmentId);
1.84 - void ErrorRecovery(TInt aError);
1.85 - void SelectNextStateL(); // selects next state to go to
1.86 - void ChangeStateL(); // initiates the next state operation
1.87 - void SelectAndChangeToNextStateL();
1.88 - void RequestComplete(TInt aError);
1.89 - void Recover(); // leave message in a 'good' state
1.90 -
1.91 - void CheckAttachmentParentTypeL();
1.92 - void MoveOtherEntryToParentOfFolderL();
1.93 - void DeleteAttachmentEntryL();
1.94 - void DeleteFolderEntryL();
1.95 - void CompleteRemoveMessagePartL();
1.96 -private:
1.97 - enum TImRemoveMessagePartState
1.98 - {
1.99 - ECheckAttachmentParentType,
1.100 - EMoveOtherEntryToParentOfFolder,
1.101 - EDeleteAttachmentEntry,
1.102 - EDeleteFolderEntry,
1.103 - ECompleteRemoveMessagePart,
1.104 - EFinished
1.105 - };
1.106 - CMsvEntry& iMsvEntry;
1.107 - CMsvOperation* iMsvOperation;
1.108 -
1.109 - CMsvEntrySelection* iMessageEntrySelection;
1.110 - CImEmailMessage* iEmailMessage;
1.111 -
1.112 - TInt iState;
1.113 - TPckgBuf<TMsvId> iDataMember;
1.114 - TMsvId iMessageId;
1.115 - TMsvId iFolderToDeleteId;
1.116 - TInt iAttachmentSize;
1.117 - TMsvId iAttachmentId;
1.118 - TMsvId iEntryToMoveId;
1.119 - };
1.120 -
1.121 -class CImStoreMessagePart : public CMsvOperation
1.122 -/**
1.123 -@internalComponent
1.124 -@released
1.125 -*/
1.126 - {
1.127 -public:
1.128 - static CImStoreMessagePart* AddAttachmentL(TMsvId aMessageId, const TDesC& aFilePath, CMsvEntry& aMsvEntry,CMsvAttachment* aAttachmentInfo,TRequestStatus& aStatus );
1.129 - static CImStoreMessagePart* AddEntryAsAttachmentL(TMsvId aMessageId,TMsvId aAttachmentMessageId, CMsvEntry& aMsvEntry, CMsvAttachment* aAttachmentInfo,TRequestStatus& aStatus);
1.130 - static CImStoreMessagePart* AddAttachmentL(TMsvId aMessageId,RFile& aFile, CMsvEntry& aMsvEntry, CMsvAttachment* aAttachmentInfo, TRequestStatus& aStatus);
1.131 - static CImStoreMessagePart* AddLinkedAttachmentL(TMsvId aMessageId,const TDesC& aFilePath, CMsvEntry& aMsvEntry,CMsvAttachment* aAttachmentInfo,TRequestStatus& aStatus );
1.132 - static CImStoreMessagePart* CreateAttachmentL(TMsvId aMessageId,const TDesC& aFileName, RFile& aAttachmentFile,CMsvEntry& aMsvEntry, CMsvAttachment* aAttachmentInfo, TRequestStatus& aStatus);
1.133 - static CImStoreMessagePart* AddRelatedPartL(TRequestStatus &aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, const TDesC& aAttachmentFullName, TMsvId aRelatedPartId, const TDesC8& aContentId);
1.134 - static CImStoreMessagePart* StoreBodyTextL(TRequestStatus& aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, CRichText& aRichText, TBool aUsePlainTextStorage = EFalse);
1.135 - static CImStoreMessagePart* StoreBodyTextWithMimeHeaderL(TRequestStatus& aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, CRichText& aRichText, const CImMimeHeader& aMimeHeader, TBool aUsePlainTextStorage = EFalse);
1.136 - static CImStoreMessagePart* StorePlainBodyTextL(TRequestStatus& aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, TBool aUsePlainTextStorage = ETrue);
1.137 - static CImStoreMessagePart* StorePlainBodyTextL(TRequestStatus& aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, CImMimeHeader& aMimeHeader, TBool aUsePlainTextStorage = ETrue);
1.138 - ~CImStoreMessagePart();
1.139 - const TDesC8& FinalProgress();
1.140 - void DoCancel();
1.141 - void RunL();
1.142 - const TDesC8& ProgressL();
1.143 -private:
1.144 - enum TImMessagePart
1.145 - {
1.146 - EMessagePartAttachment,
1.147 - EMessagePartBody,
1.148 - EMessagePartMessageAttachment
1.149 - };
1.150 - void ConstructL(RFile& aFile);
1.151 - void ConstructL(RFile& aFile,const TDesC& aAttachmentName);
1.152 - void ConstructL(const TDesC& aAttachmentFullName, const TDesC8& aContentId);
1.153 - void ConstructAttachmentInfo(CMsvAttachment* aAttachmentInfo,TInt aAttachmentCreationState);
1.154 - CImStoreMessagePart(TRequestStatus& aStatus, CMsvEntry& aMsvEntry, TMsvId aMessageId, TBool aUsePlainTextStorage = EFalse);
1.155 -
1.156 - void ConstructL();
1.157 - void ConstructL(const TDesC& aAttachmentFullName);
1.158 - void ConstructL(TMsvId aAttachmentMessageId);
1.159 - void ConstructL(const TDesC& aAttachmentFullName, TMsvId aRelatedPartId, const TDesC8& aContentId);
1.160 - void ConstructL(CRichText& aRichText);
1.161 - void ConstructL(CRichText& aRichText, const CImMimeHeader& aMimeHeader);
1.162 - void ConstructL(CImMimeHeader& aMimeHeader);
1.163 - void ConstructL(TImMessagePart aMessagePart);
1.164 - void ErrorRecovery(TInt error);
1.165 - void SelectNextStateL(); // selects next state to go to
1.166 - void ChangeStateL(); // initiates the next state operation
1.167 - void SelectAndChangeToNextStateL();
1.168 - void RequestComplete(TInt aError);
1.169 - void Recover();
1.170 -
1.171 - TBool HTMLMessage() const;
1.172 - void SetHTMLMessage(TBool aFlag);
1.173 - TBool MultipartMixedExists() const;
1.174 - void SetMultipartMixedExists(TBool aFlag);
1.175 - TBool MultipartMixedCreated() const;
1.176 - void SetMultipartMixedCreated(TBool aFlag);
1.177 - TBool MultipartAlternativeExists() const;
1.178 - void SetMultipartAlternativeExists(TBool aFlag);
1.179 - TBool MultipartAlternativeCreated() const;
1.180 - void SetMultipartAlternativeCreated(TBool aFlag);
1.181 - TBool MultipartRelatedExists() const;
1.182 - void SetMultipartRelatedExists(TBool aFlag);
1.183 - TBool MultipartRelatedCreated() const;
1.184 - void SetMultipartRelatedCreated(TBool aFlag);
1.185 - TBool TextPartExists() const;
1.186 - void SetTextPartExists(TBool aFlag);
1.187 - TBool TextPartCreated() const;
1.188 - void SetTextPartCreated(TBool aFlag);
1.189 - TBool AttachmentEntryCreated() const;
1.190 - void SetAttachmentEntryCreated(TBool aFlag);
1.191 -
1.192 - void FindMultipartRelatedFolderL();
1.193 - void CheckForSubfolderL();
1.194 - void CreateAttachmentEntryL();
1.195 - void CopyOrigMessageToMessageL();
1.196 - void CreateMultipartMixedFolderEntryL();
1.197 - void CreateMultipartAlternativeFolderEntryL();
1.198 - void CreateMultipartRelatedFolderEntryL();
1.199 - void MoveOriginalMessageEntryChildrenToNewFolderL();
1.200 - void CreateTextEntryL();
1.201 - void StoreRichTextL();
1.202 - void CompleteStoreMessagePartL();
1.203 - void CreateHTMLEntryL();
1.204 - void PrepareToStoreHTMLEntryTextL();
1.205 - void StoreHTMLEntryTextL();
1.206 - void RemoveHTMLEntryL();
1.207 - void MoveTextEntryToAltFolderL();
1.208 - TPtrC GetDefaultAttachmentName();
1.209 - void OpenAndReadResourceFileL();
1.210 - void StoreMimeHeaderL();
1.211 - TBool CreateAttachmentMimeHeaderL(CImMimeHeader& aMimeHeader, const TDesC& aDetails);
1.212 - void CreateFolderMimeHeaderL(CImMimeHeader& aMimeHeader);
1.213 - void CreateMessageMimeHeaderL(CImMimeHeader& aMimeHeader);
1.214 - void AddAttachmentL();
1.215 - void AddAttachmentUsingFileHandleL();
1.216 - void AddLinkedAttachmentL();
1.217 - void AddEntryAsAttachmentL();
1.218 - void CreateAttachmentL();
1.219 - void DoAttachmentStoreL();
1.220 - TInt CheckMimeInAttachmentInfoL(CMsvMimeHeaders& aMsvMimeHeaders);
1.221 - CImMimeHeader* ProcessAttachmentMimeHeadersL();
1.222 - void SetEntryDetailsL(TMsvEntry& aEntry);
1.223 - void StorePlainTextL();
1.224 -private:
1.225 - enum TImStoreMessagePartState
1.226 - {
1.227 - EFindMultipartRelatedFolder,
1.228 - ECheckForSubfolder,
1.229 - ECreateAttachmentEntry,
1.230 - EStoreAttachment,
1.231 - ECopyOrigMessageToMessage,
1.232 - ECreateMultipartMixedFolderEntry,
1.233 - ECreateMultipartRelatedFolderEntry,
1.234 - ECreateMultipartAlternativeFolderEntry,
1.235 - EMoveOriginalMessageEntryChildrenToNewFolder,
1.236 - ECreateTextEntry,
1.237 - EStoreRichText,
1.238 - ERemoveHTMLEntry,
1.239 - EMoveTextToAlternativeFolder,
1.240 - ECreateHTMLEntry,
1.241 - EPrepareToStoreHTMLEntryText,
1.242 - EStoreHTMLEntryText,
1.243 - ECompleteStoreMessage,
1.244 - EFinished
1.245 - ,EStoreHTMLTextInEntry,
1.246 - EAddEntryAttachment
1.247 - };
1.248 -
1.249 - enum TImStoreMessagePartFlags
1.250 - {
1.251 - KStoreMessagePartClearFlag = 0x00000000,
1.252 - KStoreMessagePartHTMLMessage = 0x00000001,
1.253 - KStoreMessagePartMultipartMixedExists = 0x00000002,
1.254 - KStoreMessagePartMultipartMixedCreated = 0x00000004,
1.255 - KStoreMessagePartMultipartAlternativeExists = 0x00000008,
1.256 - KStoreMessagePartMultipartAlternativeCreated = 0x00000010,
1.257 - KStoreMessagePartTextPartExists = 0x00000020,
1.258 - KStoreMessagePartTextPartCreated = 0x00000040,
1.259 - KStoreMessagePartAttachmentEntryCreated = 0x00000080,
1.260 - KStoreMessagePartOrigMessageEntryChildrenCopied = 0x00000100,
1.261 - KStoreMessagePartOrigMessageEntryChildrenDeleted = 0x00000200,
1.262 - KStoreMessagePartMultipartRelatedExists = 0x00000400,
1.263 - KStoreMessagePartMultipartRelatedCreated = 0x00000800
1.264 - };
1.265 - CMsvEntry& iMsvEntry;
1.266 - CMsvOperation* iMsvOperation;
1.267 -
1.268 - CRichText* iRichTextToStore; // I don't own this object!
1.269 - CImMimeHeader* iMimeHeaderOfBodyText;
1.270 - CRichText* iRichText;
1.271 - CFileMan* iFileMan;
1.272 - CMsvEntrySelection* iMessageEntrySelection;
1.273 -
1.274 - TInt iState;
1.275 - TPckgBuf<TMsvId> iDataMember;
1.276 - TMsvId iMessageId;
1.277 - TImMessagePart iMessagePart;
1.278 - TMsvId iMixFolderId;
1.279 - TMsvId iAltFolderId;
1.280 - TMsvId iRelFolderId;
1.281 - HBufC* iAttachmentFullName;
1.282 - TInt iAttachmentSize;
1.283 - TMsvId iAttachmentId;
1.284 - TMsvId iTextId;
1.285 - TMsvId iHtmlId;
1.286 - TMsvId iRelatedPartId;
1.287 - TMsvId iAttachmentMessageId;
1.288 - TUint32 iFlags;
1.289 - HBufC8* iContentId;
1.290 - CImEmailMessage* iEmailMessage;
1.291 -
1.292 - // Used when converting rich text to html
1.293 - CParaFormatLayer* iParaLayer;
1.294 - CCharFormatLayer* iCharLayer;
1.295 - CImHtmlConverter* iHtmlConverter;
1.296 - TBool iFinishedConvertingHTML;
1.297 - CMsvAttachment* iAttachmentInfo;
1.298 - CMsvStore* iStore;
1.299 - TInt iAttachmentCreateState;
1.300 - TBool iIsAddByFileHandle;
1.301 - RFile* iFileHandle;
1.302 - RFile iFile;
1.303 - // Indicates whether to store message body as CRichText or plaintext.
1.304 - TBool iUsePlainTextStorage;
1.305 - // Size of the plain text body.
1.306 - TInt iSizeOfBody;
1.307 - // Size of the Fwd'ed/ReplyTo plaintext body part.
1.308 - TInt iSizeFwdReplyBody;
1.309 - // The error value returned when CRichText is populated with message body text.
1.310 - TInt iRestoreErr;
1.311 - enum TImAttachmentCreation
1.312 - {
1.313 - EAddAttachment,
1.314 - EAddAttachmentUsingFileHandle,
1.315 - EAddLinkedAttachment,
1.316 - EAddEntryAsAttachment,
1.317 - ECreateAttachment
1.318 - };
1.319 - };
1.320 -
1.321 class CImEmailOperation : public CMsvOperation
1.322 /** Provides simple email messages creation functions, including creation of new
1.323 messages, replies, forwarded messages, and receipts.
1.324 @@ -882,69 +617,4 @@
1.325 TInt iRestoreErr;
1.326 };
1.327
1.328 -
1.329 -class CImHtmlConverter : public CBase
1.330 -/**
1.331 -@internalComponent
1.332 -@released
1.333 -*/
1.334 - {
1.335 -public:
1.336 - static CImHtmlConverter* CImHtmlConverter::NewL(CMsvEntry& aMsvEntry,
1.337 - CParaFormatLayer& aParaLayer, CCharFormatLayer& aCharLayer);
1.338 - ~CImHtmlConverter();
1.339 - void PrepareToStoreHTMLEntryTextL(TMsvId& aHtmlId, const TMsvId aTextId);
1.340 - void ResetStoreL();
1.341 - void ResetStoreWithoutCommit();
1.342 - TBool StoreHTMLEntryTextAL(TRequestStatus& aStatus);
1.343 - CMsvOperation* ChangeHTMLTextInEnrtyL(TRequestStatus& aStatus);
1.344 -
1.345 - void ReadDefaultAttachmentNameL( RResourceFile& resourceFile);
1.346 - TInt Size() const;
1.347 -
1.348 -private:
1.349 - CImHtmlConverter(CMsvEntry& aMsvEntry, CParaFormatLayer& aParaLayer, CCharFormatLayer& aCharLayer);
1.350 - TFileName HtmlFilename(CMsvEntry& aEntry, TPtrC aFileName);
1.351 - TPtrC GetDefaultAttachmentName();
1.352 - void ConstructL();
1.353 -
1.354 -private:
1.355 - CMsvEntry& iMsvEntry;
1.356 - CParaFormatLayer& iParaLayer;
1.357 - CCharFormatLayer& iCharLayer;
1.358 -
1.359 - CConverterBase* iToHTMLConverter;
1.360 - CCnaConverterList* iConverterList;
1.361 -
1.362 - TMsvId iTextId;
1.363 - TMsvId iHtmlId;
1.364 - TInt iSize;
1.365 - HBufC* iDefaultAttachmentName;
1.366 - CRichText* iRichText;
1.367 - RDesReadStream iSourceStream;
1.368 - RFileWriteStream iTargetStream;
1.369 - CMsvStore* iStore;
1.370 - RFile iFile;
1.371 - };
1.372 -
1.373 -class CImStoreResolver : public CBase, public MRichTextStoreResolver
1.374 -/**
1.375 -@internalComponent
1.376 -@released
1.377 -*/
1.378 - {
1.379 -public:
1.380 - CImStoreResolver(CStreamStore* aStore);
1.381 - ~CImStoreResolver();
1.382 - //
1.383 -private:
1.384 - const CStreamStore& StreamStoreL(TInt aPos)const;
1.385 - //
1.386 -private:
1.387 - CStreamStore* iStore;
1.388 - };
1.389 -
1.390 -
1.391 -
1.392 -
1.393 #endif // __MIUTMSG_H__