epoc32/include/app/miutmsg.h
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
     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__