williamr@2
|
1 |
// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
|
williamr@2
|
2 |
// All rights reserved.
|
williamr@2
|
3 |
// This component and the accompanying materials are made available
|
williamr@4
|
4 |
// under the terms of "Eclipse Public License v1.0"
|
williamr@2
|
5 |
// which accompanies this distribution, and is available
|
williamr@4
|
6 |
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
williamr@2
|
7 |
//
|
williamr@2
|
8 |
// Initial Contributors:
|
williamr@2
|
9 |
// Nokia Corporation - initial contribution.
|
williamr@2
|
10 |
//
|
williamr@2
|
11 |
// Contributors:
|
williamr@2
|
12 |
//
|
williamr@2
|
13 |
// Description:
|
williamr@4
|
14 |
// MIUTMSG.H
|
williamr@2
|
15 |
//
|
williamr@2
|
16 |
|
williamr@2
|
17 |
#ifndef __MIUTMSG_H__
|
williamr@2
|
18 |
#define __MIUTMSG_H__
|
williamr@2
|
19 |
|
williamr@2
|
20 |
#include <msvstd.h>
|
williamr@2
|
21 |
#include <msvapi.h> // TMsvEntry, CMsvOperation etc
|
williamr@2
|
22 |
#include <mentact.h> // CMsgActive
|
williamr@2
|
23 |
#include <miuthdr.h> // CImHeader, CImMimeHeader
|
williamr@2
|
24 |
#include <txtrich.h> // CRichText etc
|
williamr@2
|
25 |
#include <miutdef.h> // CImHeader, CImMimeHeader
|
williamr@2
|
26 |
#include <mtmdef.h>
|
williamr@2
|
27 |
#include <miutatch.h>
|
williamr@2
|
28 |
#include <smtpset.h>
|
williamr@2
|
29 |
#include <miutpars.h> // TImMessageField
|
williamr@2
|
30 |
|
williamr@2
|
31 |
#include <barsc.h> // RResourceFile
|
williamr@2
|
32 |
#include <conarc.h>
|
williamr@2
|
33 |
#include <conlist.h>
|
williamr@2
|
34 |
|
williamr@2
|
35 |
#include <txtmrtsr.h>
|
williamr@2
|
36 |
|
williamr@2
|
37 |
//#include <mmsvattachmentmanager.h>
|
williamr@2
|
38 |
#include <s32mem.h>
|
williamr@2
|
39 |
|
williamr@2
|
40 |
//Content-Transfer-Encoding: types
|
williamr@2
|
41 |
_LIT8(KMimeQuotedPrintable, " quoted-printable");
|
williamr@2
|
42 |
_LIT8(KMimeApplOctet, " application/octet-stream");
|
williamr@2
|
43 |
_LIT8(KMime7Bit, " 7-bit");
|
williamr@2
|
44 |
_LIT8(KMimeBase64, " base64");
|
williamr@2
|
45 |
_LIT8(KMimeMime, "MIME*");
|
williamr@2
|
46 |
// Content-Disposition: types
|
williamr@2
|
47 |
_LIT8(KMimeInline, "inline");
|
williamr@2
|
48 |
_LIT8(KMimeAttachment, "attachment");
|
williamr@2
|
49 |
// Content-Type: types
|
williamr@2
|
50 |
_LIT8(KMimeMultipart, "multipart");
|
williamr@2
|
51 |
_LIT8(KMimeText, "text");
|
williamr@2
|
52 |
_LIT8(KMimeImage, "image");
|
williamr@2
|
53 |
_LIT8(KMimeAudio, "audio");
|
williamr@2
|
54 |
_LIT8(KMimeVideo, "video");
|
williamr@2
|
55 |
_LIT8(KMimeApplication, "application");
|
williamr@2
|
56 |
_LIT8(KMimeMessage, "message");
|
williamr@2
|
57 |
// Content-Type: Multipart types
|
williamr@2
|
58 |
_LIT8(KMimeMixed, "mixed");
|
williamr@2
|
59 |
_LIT8(KMimeRelated, "related");
|
williamr@2
|
60 |
_LIT8(KMimeAlternative, "alternative");
|
williamr@2
|
61 |
_LIT8(KMimeEncrypted, "encrypted");
|
williamr@2
|
62 |
_LIT8(KMimeParallel, "parallel");
|
williamr@2
|
63 |
_LIT8(KMimeDigest, "digest");
|
williamr@2
|
64 |
_LIT8(KMimeSigned, "signed");
|
williamr@2
|
65 |
// Content-Type: Text types
|
williamr@2
|
66 |
_LIT8(KMimeHtml, "html");
|
williamr@2
|
67 |
_LIT8(KMimePlain, "plain");
|
williamr@2
|
68 |
_LIT8(KMimeDirectory, "directory");
|
williamr@2
|
69 |
// Content-Type: Message types
|
williamr@2
|
70 |
_LIT8(KMimePartial, "partial");
|
williamr@2
|
71 |
_LIT8(KMimeExternal, "external-body");
|
williamr@2
|
72 |
_LIT8(KMimeRfc822, "rfc822");
|
williamr@2
|
73 |
// Content-Type: Directory types
|
williamr@2
|
74 |
_LIT8(KMimeProfile, "profile");
|
williamr@2
|
75 |
_LIT(KMimeVCardExtension, ".vcf");
|
williamr@2
|
76 |
_LIT8(KMimeVCalender, "vcalendar");
|
williamr@2
|
77 |
// Content-Type: Image, Audio, Video, Application types
|
williamr@2
|
78 |
_LIT8(KMimeBmp, "bmp");
|
williamr@2
|
79 |
_LIT8(KMimeGif, "gif");
|
williamr@2
|
80 |
_LIT8(KMimeJpeg, "jpeg");
|
williamr@2
|
81 |
_LIT8(KMimeTiff, "tiff");
|
williamr@2
|
82 |
_LIT8(KMimeWav, "wav");
|
williamr@2
|
83 |
_LIT8(KMimeZip, "x-gzip");
|
williamr@2
|
84 |
_LIT(KMimeHtmlExtension, ".html");
|
williamr@2
|
85 |
_LIT(KMiutMsgDefaultHtmlFileName, "attachment.html");
|
williamr@2
|
86 |
const TUid KUidMimeHeaders = {0x10204281};
|
williamr@2
|
87 |
|
williamr@4
|
88 |
#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
|
williamr@4
|
89 |
#include "cimmessagepart.h"
|
williamr@4
|
90 |
#endif
|
williamr@4
|
91 |
|
williamr@2
|
92 |
class CImHtmlConverter;
|
williamr@2
|
93 |
|
williamr@2
|
94 |
class CImAttachmentManager;
|
williamr@2
|
95 |
class CMsvMimeHeaders;
|
williamr@2
|
96 |
class CImPlainBodyText;
|
williamr@2
|
97 |
|
williamr@2
|
98 |
// Mixin provides interface to Browser control to resolve MHTML URIs.
|
williamr@2
|
99 |
|
williamr@2
|
100 |
class MImURITranslator
|
williamr@2
|
101 |
/** Translates a URI in an MHTML message into a message body part file name.
|
williamr@2
|
102 |
|
williamr@2
|
103 |
MHTML messages may contain multiple HTML body parts. Each of these body parts
|
williamr@2
|
104 |
is able to reference another body part within the same multipart structure,
|
williamr@2
|
105 |
or a body part within a parent multipart structure [RFC2110]. These references
|
williamr@2
|
106 |
are called URI's.
|
williamr@2
|
107 |
|
williamr@2
|
108 |
When an MHTML message is parsed by the message engine, the HTML body of each
|
williamr@2
|
109 |
part is stored as a binary file. This interface provides a means of finding
|
williamr@2
|
110 |
the file name of the body part that corresponds to a given a URI.
|
williamr@2
|
111 |
|
williamr@2
|
112 |
The URI resolving process has the potential to become time consuming, therefore
|
williamr@2
|
113 |
it is broken into two steps:
|
williamr@2
|
114 |
|
williamr@2
|
115 |
Resolve asynchronously the relative URI into an absolute URI. The message
|
williamr@2
|
116 |
body parts are recursively searched in order to find an absolute base for
|
williamr@2
|
117 |
the relative URI [RFC2110, RFC1808].
|
williamr@2
|
118 |
|
williamr@2
|
119 |
Once a relative URI has been resolved in to an absolute URI, then the message
|
williamr@2
|
120 |
is searched for a body part that corresponds to it [RFC2110].
|
williamr@2
|
121 |
|
williamr@2
|
122 |
If no matching body part can be found, then the absolute URI is returned to
|
williamr@2
|
123 |
the caller in place of the filename. This absolute URI should be used to search
|
williamr@2
|
124 |
for the required data externally, for example by using HTTP.
|
williamr@2
|
125 |
|
williamr@2
|
126 |
@see CImEmailMessage
|
williamr@2
|
127 |
@publishedAll
|
williamr@2
|
128 |
@released
|
williamr@2
|
129 |
*/
|
williamr@2
|
130 |
{
|
williamr@2
|
131 |
public:
|
williamr@2
|
132 |
/** Starts an asynchronous operation to resolve a specified URI.
|
williamr@2
|
133 |
|
williamr@2
|
134 |
@param aMessageId The ID of the body part containing the URI which is to be
|
williamr@2
|
135 |
resolved. CImEmailMessage::FindFirstHTMLPageL() can be used to find the aMessageId
|
williamr@2
|
136 |
parameter for the first HTML page in a message.
|
williamr@2
|
137 |
@param rBase The base parameter from the HTML part that contains the URI to
|
williamr@2
|
138 |
be resolved. If there is no base parameter in the HTML, then an empty descriptor
|
williamr@2
|
139 |
should be passed in.
|
williamr@2
|
140 |
@param rURI The URI to be resolved.
|
williamr@2
|
141 |
@param aStatus Asynchronous status word */
|
williamr@2
|
142 |
virtual void FindUniversalResourceIdentifierL(TMsvId aMessageId, const TDesC& rBase, const TDesC& rURI, TRequestStatus &aStatus) = 0;
|
williamr@2
|
143 |
|
williamr@2
|
144 |
/** Gets the results after a search.
|
williamr@2
|
145 |
|
williamr@2
|
146 |
@param aLinkedEntryId On return, the message ID of the linked body part, providing
|
williamr@2
|
147 |
one is found. Note that you should keep a record of the returned message ID
|
williamr@2
|
148 |
as it is required for resolving any URI's that may be found in the linked
|
williamr@2
|
149 |
body part.
|
williamr@2
|
150 |
@param aFileFound On return, true if a linked body part has been found. It
|
williamr@2
|
151 |
is set to false otherwise.
|
williamr@2
|
152 |
@return If successful, the filename that corresponds to the URI, or the absolute
|
williamr@2
|
153 |
URI if no matching file can be found. If failed, NULL. */
|
williamr@2
|
154 |
virtual HBufC* GetUniversalResourceIdentifierL(TMsvId& aLinkedEntryId, TBool& aFileFound) const = 0;
|
williamr@2
|
155 |
|
williamr@2
|
156 |
/** Starts an asynchronous operation to resolve a specified URI.
|
williamr@2
|
157 |
|
williamr@2
|
158 |
@param aMessageId The ID of the body part containing the URI which is to be
|
williamr@2
|
159 |
resolved. CImEmailMessage::FindFirstHTMLPageFileHandleL() can be used to find the aMessageId
|
williamr@2
|
160 |
parameter for the first HTML page in a message.
|
williamr@2
|
161 |
@param aBase The base parameter from the HTML part that contains the URI to
|
williamr@2
|
162 |
be resolved. If there is no base parameter in the HTML, then an empty descriptor
|
williamr@2
|
163 |
should be passed in.
|
williamr@2
|
164 |
@param aURI The URI to be resolved.
|
williamr@2
|
165 |
@param aStatus Asynchronous status word */
|
williamr@2
|
166 |
virtual void FindUniversalResourceIdentifierFileHandleL(TMsvId aMessageId, const TDesC& aBase, const TDesC& aURI, TRequestStatus &aStatus) = 0;
|
williamr@2
|
167 |
|
williamr@2
|
168 |
/** Gets the results after a search.
|
williamr@2
|
169 |
|
williamr@2
|
170 |
@param aLinkedEntryId On return, the message ID of the linked body part, providing
|
williamr@2
|
171 |
one is found. Note that you should keep a record of the returned message ID
|
williamr@2
|
172 |
as it is required for resolving any URI's that may be found in the linked
|
williamr@2
|
173 |
body part.
|
williamr@2
|
174 |
|
williamr@2
|
175 |
@param aFile On return, the file handle corresponding to the URI if successful.
|
williamr@2
|
176 |
If not successful, then this is not valid.
|
williamr@2
|
177 |
|
williamr@2
|
178 |
@return KErrNone if successful and therefore aFile contains the filehandle
|
williamr@2
|
179 |
that corresponds to the URI. An error code if unsuccessful and therefore
|
williamr@2
|
180 |
aFile is not valid. */
|
williamr@2
|
181 |
virtual TInt GetUniversalResourceIdentifierFileHandle(TMsvId& aLinkedEntryId, RFile& aFile) const = 0;
|
williamr@2
|
182 |
};
|
williamr@2
|
183 |
|
williamr@2
|
184 |
|
williamr@2
|
185 |
|
williamr@2
|
186 |
|
williamr@2
|
187 |
class CImMhtmlUriResolver;
|
williamr@2
|
188 |
class CImRemoveMessagePart;
|
williamr@2
|
189 |
class CImStoreMessagePart;
|
williamr@2
|
190 |
class CImMimeHeader;
|
williamr@2
|
191 |
|
williamr@2
|
192 |
class CImEmailMessage : public CMsgActive , public MImURITranslator
|
williamr@2
|
193 |
/**
|
williamr@2
|
194 |
This class can be used to manipulate new emails that
|
williamr@2
|
195 |
have been created using CImEmailOperation when composing a message.
|
williamr@2
|
196 |
|
williamr@2
|
197 |
Use an instance of this class to add attachments, MHTML parts, body
|
williamr@2
|
198 |
text, and existing messages to a new message before it is to be sent.
|
williamr@2
|
199 |
|
williamr@2
|
200 |
This class can also be used to retrieve the body text, list of attachments,
|
williamr@2
|
201 |
and embedded messages from emails that have been downloaded and stored within
|
williamr@2
|
202 |
the message store.
|
williamr@2
|
203 |
|
williamr@2
|
204 |
If the store_8bit_body_text flag in imcm.rss is enabled, an instance of this class
|
williamr@2
|
205 |
can be used to retrieve the original body text character set for a particular message.
|
williamr@2
|
206 |
It can also be used to override the original body text character set so it will
|
williamr@2
|
207 |
be decoded in a new character set next time it is viewed.
|
williamr@2
|
208 |
|
williamr@2
|
209 |
@see CImEmailOperation
|
williamr@2
|
210 |
|
williamr@2
|
211 |
@publishedAll
|
williamr@2
|
212 |
@released
|
williamr@2
|
213 |
*/
|
williamr@2
|
214 |
{
|
williamr@2
|
215 |
public:
|
williamr@2
|
216 |
/** Flags that specify to process on any messages embedded in this message. */
|
williamr@2
|
217 |
enum TImEmailEntryType
|
williamr@2
|
218 |
{
|
williamr@2
|
219 |
/** Do not process embedded messages. */
|
williamr@2
|
220 |
EThisMessageOnly,
|
williamr@2
|
221 |
/** Process embedded messages. */
|
williamr@2
|
222 |
EThisMessageAndEmbeddedMessages // i.e messages with in a message
|
williamr@2
|
223 |
};
|
williamr@2
|
224 |
/** Flags to specify types of attachment. */
|
williamr@2
|
225 |
enum TImAttachmentType
|
williamr@2
|
226 |
{
|
williamr@2
|
227 |
/** All attachments. */
|
williamr@2
|
228 |
EAllAttachments=0, // all attachment files contained within this message (but not inside messages within this message)
|
williamr@2
|
229 |
/** VCards. */
|
williamr@2
|
230 |
EVCards,
|
williamr@2
|
231 |
/** VCalendars. */
|
williamr@2
|
232 |
EVCalendars,
|
williamr@2
|
233 |
/** VCards, VCalendars and ICalendars. */
|
williamr@2
|
234 |
EVEntries, // ie VCards, VCalendars or ICalendars (or all three)
|
williamr@2
|
235 |
/** Encrypted. */
|
williamr@2
|
236 |
EEncrypted,
|
williamr@2
|
237 |
/** Signed. */
|
williamr@2
|
238 |
ESigned,
|
williamr@2
|
239 |
/** Secure. */
|
williamr@2
|
240 |
ESecure, // ie Encrypted or signed (or both)
|
williamr@2
|
241 |
/** ICalendars. */
|
williamr@2
|
242 |
EICalendars
|
williamr@2
|
243 |
//.. add new items here
|
williamr@2
|
244 |
};
|
williamr@2
|
245 |
public:
|
williamr@2
|
246 |
IMPORT_C static CImEmailMessage* NewL(CMsvEntry& aEntry);
|
williamr@2
|
247 |
IMPORT_C static CImEmailMessage* NewLC(CMsvEntry& aEntry);
|
williamr@2
|
248 |
IMPORT_C ~CImEmailMessage();
|
williamr@2
|
249 |
|
williamr@2
|
250 |
IMPORT_C void GetAttachmentsListL(TRequestStatus& aStatus, TMsvId aMessageId, TImAttachmentType aAttachmentType,TImEmailEntryType aEntryType);
|
williamr@2
|
251 |
IMPORT_C void GetAttachmentsListL(TMsvId aMessageId, TImAttachmentType aAttachmentType,TImEmailEntryType aEntryType);
|
williamr@2
|
252 |
void DoGetAttachmentsListL(TMsvId aMessageId, TImAttachmentType aAttachmentType,TImEmailEntryType aEntryType);
|
williamr@2
|
253 |
|
williamr@2
|
254 |
IMPORT_C void FindFirstHTMLPageL(TMsvId aMessageId, TRequestStatus& aStatus);
|
williamr@2
|
255 |
|
williamr@2
|
256 |
IMPORT_C const CMsvEntrySelection& Selection() const; // return selection
|
williamr@2
|
257 |
IMPORT_C const TDesC8& ProgressL() const;
|
williamr@2
|
258 |
|
williamr@2
|
259 |
IMPORT_C void GetBodyTextL(TRequestStatus& aStatus, TMsvId aMessageId, TImEmailEntryType aEntryType, CRichText& aRichText,CParaFormatLayer& aParaLayer,CCharFormatLayer& aCharLayer);
|
williamr@2
|
260 |
IMPORT_C void GetBodyTextL(TMsvId aMessageId, TImEmailEntryType aEntryType, CRichText& aRichText,CParaFormatLayer& aParaLayer,CCharFormatLayer& aCharLayer);
|
williamr@2
|
261 |
void DoGetBodyTextInitL(TMsvId aMessageId, TImEmailEntryType aEntryType, CRichText& aRichText,CParaFormatLayer& aParaLayer, CCharFormatLayer& aCharLayer);
|
williamr@2
|
262 |
|
williamr@2
|
263 |
IMPORT_C void GetBodyTextEntryIdL(TRequestStatus& aStatus, TMsvId aMessageId, TImEmailEntryType aEntryType);
|
williamr@2
|
264 |
IMPORT_C void GetBodyTextEntryIdL(TMsvId aMessageId, TImEmailEntryType aEntryType);
|
williamr@2
|
265 |
|
williamr@2
|
266 |
IMPORT_C CImPlainBodyText* OpenPlainBodyTextForWriteL();
|
williamr@2
|
267 |
|
williamr@2
|
268 |
IMPORT_C CImPlainBodyText* OpenPlainBodyTextForReadL(TImEmailEntryType aEntryType, TInt aChunkLength);
|
williamr@2
|
269 |
|
williamr@2
|
270 |
IMPORT_C virtual void FindUniversalResourceIdentifierL(TMsvId aMessageId, const TDesC& aBase, const TDesC& aURI, TRequestStatus &aStatus);
|
williamr@2
|
271 |
IMPORT_C virtual HBufC* GetUniversalResourceIdentifierL(TMsvId& aLinkedEntryId, TBool& aFileFound) const;
|
williamr@2
|
272 |
IMPORT_C void FindUniversalResourceIdentifierFileHandleL(TMsvId aMessageId, const TDesC& aBase, const TDesC& aURI, TRequestStatus &aStatus);
|
williamr@2
|
273 |
IMPORT_C void FindFirstHTMLPageFileHandleL(TMsvId aMessageId, TRequestStatus& aStatus);
|
williamr@2
|
274 |
IMPORT_C virtual TInt GetUniversalResourceIdentifierFileHandle(TMsvId& aLinkedEntryId, RFile& aFile) const;
|
williamr@2
|
275 |
IMPORT_C MMsvAttachmentManager& AttachmentManager() const;
|
williamr@2
|
276 |
void AddAttachmentL(const TDesC& aFilePath, CMsvAttachment* aAttachmentInfo, TRequestStatus& aStatus);
|
williamr@2
|
277 |
void AddAttachmentL(RFile& aFileHandle, CMsvAttachment* aAttachmentInfo, TRequestStatus& aStatus);
|
williamr@2
|
278 |
void AddLinkedAttachmentL(const TDesC& aFilePath, CMsvAttachment* aAttachmentInfo,TRequestStatus& aStatus);
|
williamr@2
|
279 |
void AddEntryAsAttachmentL(TMsvId aAttachmentEntryId, CMsvAttachment* aAttachmentInfo,TRequestStatus& aStatus);
|
williamr@2
|
280 |
const RPointerArray<CMsvAttachment>& AttachmentInfoSelection() const;
|
williamr@2
|
281 |
void RemoveAttachmentL(TMsvAttachmentId aAttachmentId,TRequestStatus& aStatus) ;
|
williamr@2
|
282 |
void RemoveAttachedMessageL(TMsvAttachmentId aAttachmentId,TRequestStatus& aStatus) ;
|
williamr@2
|
283 |
void CreateAttachmentL(const TDesC& aFileName, RFile& aAttachmentFile, CMsvAttachment* aAttachmentInfo, TRequestStatus& aStatus);
|
williamr@2
|
284 |
void CheckEntryAndResetStoreMessageL(TMsvId aMessageId);
|
williamr@2
|
285 |
void CheckEntryAndResetRemoveMessageL(TMsvId aMessageId);
|
williamr@2
|
286 |
void DoSetActive(TRequestStatus& aStatus);
|
williamr@2
|
287 |
CImMimeHeader* ConvertToImMimeHeadersL(CMsvMimeHeaders* aMimeHeaders);
|
williamr@2
|
288 |
CMsvMimeHeaders* ConvertToMsvMimeHeadersL(CImMimeHeader* aMimeHeader);
|
williamr@2
|
289 |
void AppendEntryAttachmentInfoL();
|
williamr@2
|
290 |
IMPORT_C void AddRelatedPartL(TMsvId aMessageId, const TDesC& aAttachmentFullName, TRequestStatus& aStatus, TMsvId aRelatedPartId, const TDesC8& aContentId);
|
williamr@2
|
291 |
IMPORT_C void StoreBodyTextL(TMsvId aMessageId, CRichText& aRichText, TRequestStatus& aStatus);
|
williamr@2
|
292 |
IMPORT_C void StoreBodyTextL(TMsvId aMessageId, CRichText& aRichText, TRequestStatus& aStatus, TBool aUsePlainTextStorage);
|
williamr@2
|
293 |
IMPORT_C void GetMessageDigestEntriesL(TRequestStatus& aStatus, TMsvId aMessageId);
|
williamr@2
|
294 |
IMPORT_C void GetCharacterSetL(TMsvId aMessageId, TUint& aCharacterSetId, TBool& aOverride);
|
williamr@2
|
295 |
IMPORT_C void SetCharacterSetL(TMsvId aMessageId, TUint aCharacterSetId);
|
williamr@2
|
296 |
IMPORT_C void StoreBodyTextWithMimeHeaderL(TMsvId aMessageId, CRichText& aRichText, const CImMimeHeader& aMimeHeader, TRequestStatus& aStatus);
|
williamr@2
|
297 |
|
williamr@2
|
298 |
TMsvId EmailEntryId();
|
williamr@2
|
299 |
|
williamr@2
|
300 |
private:
|
williamr@2
|
301 |
void DoRunL();
|
williamr@2
|
302 |
void DoCancel();
|
williamr@2
|
303 |
CImEmailMessage(CMsvEntry& aEntry);
|
williamr@2
|
304 |
void ConstructL();
|
williamr@2
|
305 |
void DoComplete(TInt&);
|
williamr@2
|
306 |
void DoStateL();
|
williamr@2
|
307 |
|
williamr@2
|
308 |
void Start(TRequestStatus& aStatus);
|
williamr@2
|
309 |
void StartL();
|
williamr@2
|
310 |
|
williamr@2
|
311 |
void Reset();
|
williamr@2
|
312 |
void ChangeMessageContextL();
|
williamr@2
|
313 |
void CompareChildrenAndPopulateSelL();
|
williamr@2
|
314 |
void AttachmentInfoL();
|
williamr@2
|
315 |
void AssembleBodyTextL();
|
williamr@2
|
316 |
void CheckAndInitialiseL(TMsvId aMessageId);
|
williamr@2
|
317 |
|
williamr@2
|
318 |
void AppendAttachmentL();
|
williamr@2
|
319 |
TBool MessageDigestEntry();
|
williamr@2
|
320 |
TBool HandleDifferentFolderTypesL();
|
williamr@2
|
321 |
void GetTextForAlternateFolderL();
|
williamr@2
|
322 |
void GetTextForRelatedFolderL();
|
williamr@2
|
323 |
void GetAttachmentsForRelatedFolderL();
|
williamr@2
|
324 |
TBool GetBodyTextCharacterSetL();
|
williamr@2
|
325 |
TUint GetOverrideCharacterSetL();
|
williamr@2
|
326 |
TInt FindFilename(const CImMimeHeader& aMimeInfo, TPtrC8& aFilename);
|
williamr@2
|
327 |
void FindFilenameDecodeL(
|
williamr@2
|
328 |
const CImMimeHeader& aMimeInfo, TFileName& aFileName, TUint aCharset);
|
williamr@2
|
329 |
void AppendAttachmentNameL();
|
williamr@2
|
330 |
void SetBodyTextCharacterSetL(TMsvId aEntryId, TUint8 aNewCharacterSetId);
|
williamr@2
|
331 |
void FindFirstBodyTextPartL(TMsvId aEntryId, TBool& found);
|
williamr@2
|
332 |
|
williamr@2
|
333 |
CImMimeHeader* FindAttachmentMimeHeaderL();
|
williamr@2
|
334 |
TMsvEntry FindIdEntryL(TMsvId aMessageId);
|
williamr@2
|
335 |
|
williamr@2
|
336 |
void DoGetBodyTextEntryIdL(TMsvId aMessageId, TImEmailEntryType aEntryType);
|
williamr@2
|
337 |
|
williamr@2
|
338 |
|
williamr@2
|
339 |
enum TImEmailMessageStates
|
williamr@2
|
340 |
{
|
williamr@2
|
341 |
EIdle=0,
|
williamr@2
|
342 |
ETextForThisMsg,
|
williamr@2
|
343 |
ETextForMsgDigest,
|
williamr@2
|
344 |
ETextEntryIdForThisMsg,
|
williamr@2
|
345 |
ETextEntryIdMsgDigest,
|
williamr@2
|
346 |
ETextForThisMsgGetCharacterSet,
|
williamr@2
|
347 |
EAttachmentsForThisMsg,
|
williamr@2
|
348 |
EAttachmentsForMsgDigest,
|
williamr@2
|
349 |
EMsgDigestEntries,
|
williamr@2
|
350 |
EResolveURI,
|
williamr@2
|
351 |
EStoreMessagePart,
|
williamr@2
|
352 |
ERemoveMessagePart,
|
williamr@2
|
353 |
EFinished
|
williamr@2
|
354 |
};
|
williamr@2
|
355 |
CMsvEntry& iClientEntry;
|
williamr@2
|
356 |
CMsvEntrySelection* iCompleteSel;
|
williamr@2
|
357 |
CMsvEntrySelection* iResultSel;
|
williamr@2
|
358 |
|
williamr@2
|
359 |
CRichText* iRichText;
|
williamr@2
|
360 |
CParaFormatLayer* iParaLayer;
|
williamr@2
|
361 |
CCharFormatLayer* iCharLayer;
|
williamr@2
|
362 |
TMsvId iParentMsgId; // the Id passed into Getxxx() function representing the 'parent' message ID
|
williamr@2
|
363 |
TImEmailMessageStates iState;
|
williamr@2
|
364 |
TImAttachmentType iAttachmentType;
|
williamr@2
|
365 |
TMsvEmailEntry iEntry;
|
williamr@2
|
366 |
CImMhtmlUriResolver* iUriResolver;
|
williamr@2
|
367 |
TBool iUriFileFound;
|
williamr@2
|
368 |
CImStoreMessagePart* iStoreMessagePart;
|
williamr@2
|
369 |
CImRemoveMessagePart* iRemoveMessagePart;
|
williamr@2
|
370 |
TPckgBuf<TMsvId> iProgress;
|
williamr@2
|
371 |
TImEmailEntryType iEntryType;
|
williamr@2
|
372 |
TBool iIsAMHTMLmessage;
|
williamr@2
|
373 |
TUint iCharacterSetId;
|
williamr@2
|
374 |
RFs iFs;
|
williamr@2
|
375 |
CDesCArray* iAttachmentNameList;
|
williamr@2
|
376 |
CImAttachmentManager* iAttachmentManager;
|
williamr@2
|
377 |
CMsvStore* iStore;
|
williamr@2
|
378 |
|
williamr@2
|
379 |
// This is the entry Id using which the CImEmailMessage was created.
|
williamr@2
|
380 |
// store this , so that when the message id to which attachment is
|
williamr@2
|
381 |
// retrieved then the CIMEmailMessage is reset with this Id.
|
williamr@2
|
382 |
TMsvId iEmailEntryId;
|
williamr@2
|
383 |
enum TImAttachmentStates
|
williamr@2
|
384 |
{
|
williamr@2
|
385 |
ENoAttachment=0,
|
williamr@2
|
386 |
EAddAttachment,
|
williamr@2
|
387 |
EDeleteAttachment,
|
williamr@2
|
388 |
ECreateAttachment
|
williamr@2
|
389 |
};
|
williamr@2
|
390 |
TInt iAttachmentState;
|
williamr@2
|
391 |
|
williamr@2
|
392 |
};
|
williamr@2
|
393 |
|
williamr@2
|
394 |
class CImEmailOperation : public CMsvOperation
|
williamr@2
|
395 |
/** Provides simple email messages creation functions, including creation of new
|
williamr@2
|
396 |
messages, replies, forwarded messages, and receipts.
|
williamr@2
|
397 |
|
williamr@2
|
398 |
Both plain-text and HTML messages, with or without attachments, can be created.
|
williamr@2
|
399 |
@publishedAll
|
williamr@2
|
400 |
@released
|
williamr@2
|
401 |
*/
|
williamr@2
|
402 |
{
|
williamr@2
|
403 |
public:
|
williamr@2
|
404 |
IMPORT_C static CImEmailOperation* CreateNewL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aDestination, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType);
|
williamr@2
|
405 |
IMPORT_C static CImEmailOperation* CreateNewL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aDestination, TMsvId aSmtpServiceId, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType, TInt aPriority = EPriorityStandard);
|
williamr@2
|
406 |
|
williamr@2
|
407 |
IMPORT_C static CImEmailOperation* CreateNewL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aDestination, TMsvId aSmtpServiceId, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType, TInt aPriority , TBool aUsePlainTextStorage);
|
williamr@2
|
408 |
|
williamr@2
|
409 |
IMPORT_C static CImEmailOperation* CreateReplyL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aDestination, TMsvPartList aPartList, const TDesC& aFormatString, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType);
|
williamr@2
|
410 |
IMPORT_C static CImEmailOperation* CreateReplyL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aDestination, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType);
|
williamr@2
|
411 |
IMPORT_C static CImEmailOperation* CreateReplyL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aDestination, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType, TInt aPriority);
|
williamr@2
|
412 |
IMPORT_C static CImEmailOperation* CreateReplyL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aDestination, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType, TInt aPriority, TBool aUsePlainTextStorage);
|
williamr@2
|
413 |
IMPORT_C static CImEmailOperation* CreateForwardL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aDestination, TMsvPartList aPartList, const TDesC& aFormatString, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType);
|
williamr@2
|
414 |
IMPORT_C static CImEmailOperation* CreateForwardL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aDestination, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType);
|
williamr@2
|
415 |
IMPORT_C static CImEmailOperation* CreateForwardL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aDestination, TMsvId aSmtpServiceId, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType, TInt aPriority = EPriorityStandard);
|
williamr@2
|
416 |
IMPORT_C static CImEmailOperation* CreateForwardL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aDestination, TMsvId aSmtpServiceId, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType, TInt aPriority, TBool aUsePlainTextStorage);
|
williamr@2
|
417 |
IMPORT_C static CImEmailOperation* CreateForwardAsAttachmentL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aDestination, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType);
|
williamr@2
|
418 |
IMPORT_C static CImEmailOperation* CreateForwardAsAttachmentL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aSmtpServiceId, TMsvId aDestination, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType, TInt aPriority = EPriorityStandard);
|
williamr@2
|
419 |
IMPORT_C static CImEmailOperation* CreateReceiptL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aDestination, TMsvPartList aPartList, const TDesC& aFormatString, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType);
|
williamr@2
|
420 |
IMPORT_C static CImEmailOperation* CreateReceiptL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aDestination, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType);
|
williamr@2
|
421 |
IMPORT_C static CImEmailOperation* CreateReceiptL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aDestination, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType, TInt aPriority);
|
williamr@2
|
422 |
IMPORT_C static CImEmailOperation* CreateReceiptL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aDestination, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType, TInt aPriority, TBool aUsePlainTextStorage);
|
williamr@2
|
423 |
IMPORT_C ~CImEmailOperation();
|
williamr@2
|
424 |
IMPORT_C const TDesC8& FinalProgress();
|
williamr@2
|
425 |
void DoCancel();
|
williamr@2
|
426 |
void RunL();
|
williamr@2
|
427 |
const TDesC8& ProgressL();
|
williamr@2
|
428 |
|
williamr@2
|
429 |
static CImEmailOperation* CreateCopyL(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aMessageId, TMsvId aDestination, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType);
|
williamr@2
|
430 |
|
williamr@2
|
431 |
private:
|
williamr@2
|
432 |
enum TImEmailOperation
|
williamr@2
|
433 |
{
|
williamr@2
|
434 |
ENew = 0,
|
williamr@2
|
435 |
EReply = 1,
|
williamr@2
|
436 |
EForward = 2,
|
williamr@2
|
437 |
EReceipt = 3,
|
williamr@2
|
438 |
EDeletingBadEmail = 4,
|
williamr@2
|
439 |
ECopy = 5,
|
williamr@2
|
440 |
EAttachOriginal = 0x80,
|
williamr@2
|
441 |
EForwardAsAttachment = EForward | EAttachOriginal,
|
williamr@2
|
442 |
EReplyAsAttachment = EReply | EAttachOriginal
|
williamr@2
|
443 |
};
|
williamr@2
|
444 |
|
williamr@2
|
445 |
private:
|
williamr@2
|
446 |
CImEmailOperation(TRequestStatus& aObserverRequestStatus, CMsvSession& aMsvSession, TMsvId aDestination, TMsvId aSmtpServiceId, TMsvPartList aPartList, const TMsvEmailTypeList& aMsvEmailTypeList, TUid aMsgType, TInt aPriority, TBool aUsePlainTextStorage);
|
williamr@2
|
447 |
void ConstructL(TMsvId aMessageId, const TDesC& aFormatString, TImEmailOperation aOperation);
|
williamr@2
|
448 |
void ConstructL(TMsvId aMessageId, TImEmailOperation aOperation);
|
williamr@2
|
449 |
void ConstructL(TImEmailOperation aOperation);
|
williamr@2
|
450 |
void OpenAndReadResourceFileL();
|
williamr@2
|
451 |
void SetSmtpServiceFromDefaultsL();
|
williamr@2
|
452 |
void SetSmtpServiceFromOriginalMessageL();
|
williamr@2
|
453 |
void ErrorRecovery(TInt error);
|
williamr@2
|
454 |
void SelectNextStateL();
|
williamr@2
|
455 |
void ProcessStateL();
|
williamr@2
|
456 |
void SelectAndProcessNextStateL();
|
williamr@2
|
457 |
void RequestComplete(TInt aError);
|
williamr@2
|
458 |
void CreateNewHeaderL();
|
williamr@2
|
459 |
void GetBodyTextL();
|
williamr@2
|
460 |
TInt RemoveIncompleteAttachments();
|
williamr@2
|
461 |
void CreateEntryDetails(TMsvEmailEntry& aMsvEmailEntry);
|
williamr@2
|
462 |
void CreateNewMessageL(TMsvId aDestinationId);
|
williamr@2
|
463 |
void CreateMultipartMixedFolderEntryL();
|
williamr@2
|
464 |
void CreateTextEntryL(TMsvId aFolderId);
|
williamr@2
|
465 |
void StoreBodyL();
|
williamr@2
|
466 |
void StorePlainBodyL();
|
williamr@2
|
467 |
void CheckForSignatureOrVCardL();
|
williamr@2
|
468 |
void CreateAttachmentEntryL();
|
williamr@2
|
469 |
void StoreAttachmentL();
|
williamr@2
|
470 |
void CreateMultipartAlternativeFolderEntryL();
|
williamr@2
|
471 |
void AppendHtmlAttachmentL();
|
williamr@2
|
472 |
void AttachOriginalMessageToNewMessageL();
|
williamr@2
|
473 |
void CompleteEmailOperationL();
|
williamr@2
|
474 |
void CreateHTMLEntryL();
|
williamr@2
|
475 |
void PrepareToStoreHTMLEntryTextL();
|
williamr@2
|
476 |
void StoreHTMLEntryTextL();
|
williamr@2
|
477 |
void CreateVCardAttachmentL();
|
williamr@2
|
478 |
void AddVCardAttachmentL();
|
williamr@2
|
479 |
void AddMessageAsAttachmentL();
|
williamr@2
|
480 |
TPtrC GetDefaultAttachmentName();
|
williamr@2
|
481 |
void RestoreSmtpSettingsL();
|
williamr@2
|
482 |
TMsvId ServiceId();
|
williamr@2
|
483 |
TBool NeedMultipartMixedFolder() const;
|
williamr@2
|
484 |
void ReadDefaultHtmlAttachmentNameL(TDes& aFileName);
|
williamr@2
|
485 |
void CreateDefaultAttachmentL();
|
williamr@2
|
486 |
void AddMessageAttachmentInfoL(TMsvId aAttachmentMessageId);
|
williamr@2
|
487 |
void ResetStoreL();
|
williamr@2
|
488 |
void CreateAddressListStringL(HBufC*& aListBuffer, const CDesCArray& aAddressArray);
|
williamr@2
|
489 |
void RestoreOriginalHeaderL();
|
williamr@2
|
490 |
void SetBodyHeaderFormatL();
|
williamr@2
|
491 |
static void ClosePlainBodyTextArray(TAny* aPtr);
|
williamr@2
|
492 |
void StorePlainTextL();
|
williamr@2
|
493 |
TInt GetPlainBodyTextSizeL();
|
williamr@2
|
494 |
|
williamr@2
|
495 |
private:
|
williamr@2
|
496 |
enum TImEmailOperationState
|
williamr@2
|
497 |
{
|
williamr@2
|
498 |
ECreateNewHeader,
|
williamr@2
|
499 |
EGetBodyText,
|
williamr@2
|
500 |
EGetAttachmentList,
|
williamr@2
|
501 |
EGetMessageDigest,
|
williamr@2
|
502 |
ECreateNewMessageEntry,
|
williamr@2
|
503 |
ECheckMultipartMixedFolderRequired,
|
williamr@2
|
504 |
ECreateMultipartMixedFolderEntry,
|
williamr@2
|
505 |
ECheckMultipartAlternativeFolderRequired,
|
williamr@2
|
506 |
ECreateMultipartAlternativeFolderEntry,
|
williamr@2
|
507 |
ECheckTextEntryRequired,
|
williamr@2
|
508 |
ECreateTextEntry,
|
williamr@2
|
509 |
EStoreBody,
|
williamr@2
|
510 |
ECheckVCardRequired,
|
williamr@2
|
511 |
ECreateVCardAttachment,
|
williamr@2
|
512 |
EAddVCardAttachment,
|
williamr@2
|
513 |
ECheckHTMLEntryRequired,
|
williamr@2
|
514 |
ECreateHTMLEntry,
|
williamr@2
|
515 |
EPrepareToStoreHTMLEntryText,
|
williamr@2
|
516 |
EStoreHTMLEntryText,
|
williamr@2
|
517 |
ECheckAttachOriginalMessageRequired,
|
williamr@2
|
518 |
EAttachOriginalMessage,
|
williamr@2
|
519 |
ECheckHTMLPageRequired,
|
williamr@2
|
520 |
EFindHTMLPage,
|
williamr@2
|
521 |
ECopyHTMLPartToAttachment,
|
williamr@2
|
522 |
ECheckAttachmentsRequired,
|
williamr@2
|
523 |
ECreateAttachmentEntry,
|
williamr@2
|
524 |
EStoreAttachment,
|
williamr@2
|
525 |
ECheckEmbeddedMessagesRequired,
|
williamr@2
|
526 |
EAddEmbeddedMessagesAsAttachments,
|
williamr@2
|
527 |
ECompleteEmailOperation,
|
williamr@2
|
528 |
EFinished
|
williamr@2
|
529 |
,ECreateDefaultHtmlAttachment,
|
williamr@2
|
530 |
EStoreHTMLTextInEntry,
|
williamr@2
|
531 |
EAddMessageAttachmentInfo
|
williamr@2
|
532 |
};
|
williamr@2
|
533 |
|
williamr@2
|
534 |
// Flags specifying format of body header information to include
|
williamr@2
|
535 |
// in reply and forwarded email addresses
|
williamr@2
|
536 |
enum TImBodyHeaderFormat
|
williamr@2
|
537 |
{
|
williamr@2
|
538 |
ENoToCcInfo=0,
|
williamr@2
|
539 |
EToOnly,
|
williamr@2
|
540 |
ECcOnly,
|
williamr@2
|
541 |
EToAndCc
|
williamr@2
|
542 |
};
|
williamr@2
|
543 |
|
williamr@2
|
544 |
CMsvEntry* iMsvEntry;
|
williamr@2
|
545 |
CMsvOperation* iMsvOperation;
|
williamr@2
|
546 |
|
williamr@2
|
547 |
CImHeader* iNewHeader;
|
williamr@2
|
548 |
CParaFormatLayer* iParaLayer;
|
williamr@2
|
549 |
CCharFormatLayer* iCharLayer;
|
williamr@2
|
550 |
CRichText* iRichText;
|
williamr@2
|
551 |
CImEmailMessage* iEmailMessage;
|
williamr@2
|
552 |
HBufC* iFormatString;
|
williamr@2
|
553 |
CFileMan* iFileMan;
|
williamr@2
|
554 |
CImSmtpSettings* iSmtpSettings;
|
williamr@2
|
555 |
TInt iState;
|
williamr@2
|
556 |
TImEmailOperation iOperation;
|
williamr@2
|
557 |
TMsvId iDestinationId;
|
williamr@2
|
558 |
TMsvId iMultipartMixedId;
|
williamr@2
|
559 |
TMsvId iMultipartAlternativeId;
|
williamr@2
|
560 |
TMsvId iOrigMessageId;
|
williamr@2
|
561 |
TMsvId iNewMessageId;
|
williamr@2
|
562 |
TMsvId iSmtpServiceId;
|
williamr@2
|
563 |
TMsvId iAttachedMessageId;
|
williamr@2
|
564 |
TUid iMsgType;
|
williamr@2
|
565 |
TMsvPartList iPartList;
|
williamr@2
|
566 |
TMsvEmailTypeList iMsvEmailTypeList;
|
williamr@2
|
567 |
TInt iAttachmentCount;
|
williamr@2
|
568 |
TInt iTotalAttachments;
|
williamr@2
|
569 |
TPckgBuf<TMsvId> iDataMember;
|
williamr@2
|
570 |
HBufC* iBodyHeaderFormatString;
|
williamr@2
|
571 |
HBufC* iBodyHeaderDateTimeFormatString;
|
williamr@2
|
572 |
HBufC* iBodyHeaderToString;
|
williamr@2
|
573 |
HBufC* iBodyHeaderCcString;
|
williamr@2
|
574 |
HBufC* iBodyHeader;
|
williamr@2
|
575 |
HBufC* iUserEmailAddress;
|
williamr@2
|
576 |
TInt iRichTextSize;
|
williamr@2
|
577 |
TInt iVCardAndHtmlSize;
|
williamr@2
|
578 |
TBool iOrigMessageHtml;
|
williamr@2
|
579 |
TBool iHtmlNoTextAlt;
|
williamr@2
|
580 |
TInt iEmbeddedMessagesToProcess;
|
williamr@2
|
581 |
TImMessageField iMessageField;
|
williamr@2
|
582 |
|
williamr@2
|
583 |
// for MIME messages:
|
williamr@2
|
584 |
TBool iCreateHtmlMessage;
|
williamr@2
|
585 |
TBool iMultipartMixedFolderCreated;
|
williamr@2
|
586 |
TBool iMultipartAlternativeFolderCreated;
|
williamr@2
|
587 |
TMsvId iTextId;
|
williamr@2
|
588 |
TMsvId iHtmlId;
|
williamr@2
|
589 |
TMsvId iVcardId;
|
williamr@2
|
590 |
|
williamr@2
|
591 |
// Used when converting rich text to html
|
williamr@2
|
592 |
CImHtmlConverter* iHtmlConverter;
|
williamr@2
|
593 |
TBool iFinishedConvertingHTML;
|
williamr@2
|
594 |
|
williamr@2
|
595 |
// Relating to adding Signature and/or Vcard to an email
|
williamr@2
|
596 |
TBool iNeedToAddVCardAttachment;
|
williamr@2
|
597 |
HBufC* iDefaultVCardNameFormatString;
|
williamr@2
|
598 |
TStreamId iVcardStoreId;
|
williamr@2
|
599 |
CStreamStore* iVcardStore;
|
williamr@2
|
600 |
CRichText* iSignatureText;
|
williamr@2
|
601 |
TFileName iFileName;
|
williamr@2
|
602 |
TImAttachmentFile iAttachmentFile;
|
williamr@2
|
603 |
|
williamr@2
|
604 |
// PCMail
|
williamr@2
|
605 |
TMsvId iPCMailServiceId;
|
williamr@2
|
606 |
RPointerArray<CMsvAttachment> iAttachmentInfoList;
|
williamr@2
|
607 |
// set this anytime during the object life cycle attachment manager was used
|
williamr@2
|
608 |
TBool iAttachmentMgrUsed;
|
williamr@2
|
609 |
CMsvStore* iStore;
|
williamr@2
|
610 |
RFile iFile;
|
williamr@2
|
611 |
|
williamr@2
|
612 |
TImBodyHeaderFormat iBodyHeaderFormat;
|
williamr@2
|
613 |
CImHeader* iOriginalHeader;
|
williamr@2
|
614 |
/** Indicates if the body text entry is plain text */
|
williamr@2
|
615 |
TBool iUsePlainTextStorage;
|
williamr@2
|
616 |
// The error value returned when CRichText is populated with message body text.
|
williamr@2
|
617 |
TInt iRestoreErr;
|
williamr@2
|
618 |
};
|
williamr@2
|
619 |
|
williamr@2
|
620 |
#endif // __MIUTMSG_H__
|