williamr@2
|
1 |
// Copyright (c) 1998-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@2
|
14 |
// SMTCPMTM.H
|
williamr@2
|
15 |
// Client MTM for the SMTP protocol
|
williamr@2
|
16 |
//
|
williamr@2
|
17 |
//
|
williamr@2
|
18 |
|
williamr@2
|
19 |
#if !defined (__SMTCMTM_H__)
|
williamr@2
|
20 |
#define __SMTCMTM_H__
|
williamr@2
|
21 |
|
williamr@2
|
22 |
#if !defined (__E32BASE_H__)
|
williamr@2
|
23 |
#include <e32base.h> // CActive, TFileName)
|
williamr@2
|
24 |
#endif
|
williamr@2
|
25 |
|
williamr@2
|
26 |
#if !defined(__BADESCA_H__)
|
williamr@2
|
27 |
#include <badesca.h>
|
williamr@2
|
28 |
#endif
|
williamr@2
|
29 |
|
williamr@2
|
30 |
#if !defined (__MSVAPI_H__)
|
williamr@2
|
31 |
#include <msvapi.h>
|
williamr@2
|
32 |
#endif
|
williamr@2
|
33 |
|
williamr@2
|
34 |
#if !defined (__MTCLBASE_H__)
|
williamr@2
|
35 |
#include <mtclbase.h>
|
williamr@2
|
36 |
#endif
|
williamr@2
|
37 |
|
williamr@2
|
38 |
#if !defined (__MIUTHDR_H__)
|
williamr@2
|
39 |
#include <miuthdr.h>
|
williamr@2
|
40 |
#endif
|
williamr@2
|
41 |
|
williamr@2
|
42 |
#if !defined (__MIUTPARS_H__)
|
williamr@2
|
43 |
#include <miutpars.h> //TImMessageField
|
williamr@2
|
44 |
#endif
|
williamr@2
|
45 |
|
williamr@2
|
46 |
#if !defined (__MIUTMSG_H__)
|
williamr@2
|
47 |
#include <miutmsg.h> //CImEmailMessage
|
williamr@2
|
48 |
#endif
|
williamr@2
|
49 |
|
williamr@2
|
50 |
#if !defined (__SMTPSET_H__)
|
williamr@2
|
51 |
#include <smtpset.h>
|
williamr@2
|
52 |
#endif
|
williamr@2
|
53 |
|
williamr@2
|
54 |
#if !defined (__SMTPCMDS_H__)
|
williamr@2
|
55 |
#include <smtpcmds.h>
|
williamr@2
|
56 |
#endif
|
williamr@2
|
57 |
|
williamr@2
|
58 |
class CMsvEntry;
|
williamr@2
|
59 |
class CMtmDllRegistry;
|
williamr@2
|
60 |
class CRichText;
|
williamr@2
|
61 |
class TMsvEntry;
|
williamr@2
|
62 |
class CRegisteredMtmDll;
|
williamr@2
|
63 |
class CImSmtpSettings;
|
williamr@2
|
64 |
class CMsvSession;
|
williamr@2
|
65 |
class CImAttachmentWaiter;
|
williamr@2
|
66 |
|
williamr@4
|
67 |
// Smtp Client MTM //
|
williamr@2
|
68 |
class CSmtpClientMtm : public CBaseMtm
|
williamr@2
|
69 |
/** SMTP client MTM interface.
|
williamr@2
|
70 |
|
williamr@2
|
71 |
Most of the functions in this class are implementations of the virtual functions
|
williamr@2
|
72 |
defined by the base class CBaseMtm.
|
williamr@2
|
73 |
@publishedAll
|
williamr@2
|
74 |
@released
|
williamr@2
|
75 |
*/
|
williamr@2
|
76 |
{
|
williamr@2
|
77 |
public:
|
williamr@2
|
78 |
IMPORT_C static CSmtpClientMtm* NewL(CRegisteredMtmDll& aRegisteredMtmDll, CMsvSession& aMsvSession);
|
williamr@2
|
79 |
~CSmtpClientMtm();
|
williamr@2
|
80 |
|
williamr@2
|
81 |
void SaveMessageL();
|
williamr@2
|
82 |
void LoadMessageL();
|
williamr@2
|
83 |
|
williamr@2
|
84 |
IMPORT_C void StoreSettingsL();
|
williamr@2
|
85 |
IMPORT_C void RestoreSettingsL();
|
williamr@2
|
86 |
|
williamr@2
|
87 |
CMsvOperation* ReplyL (TMsvId aReplyEntryId, TMsvPartList aPartlist, TRequestStatus& aCompletionStatus);
|
williamr@2
|
88 |
CMsvOperation* ForwardL(TMsvId aForwardEntryId, TMsvPartList aPartList, TRequestStatus& aCompletionStatus);
|
williamr@2
|
89 |
|
williamr@2
|
90 |
TMsvPartList ValidateMessage(TMsvPartList aPartList);
|
williamr@2
|
91 |
TMsvPartList Find(const TDesC& aTextToFind, TMsvPartList aPartList);
|
williamr@2
|
92 |
|
williamr@2
|
93 |
// addresssee list (used by objects with no MTM knowledge)
|
williamr@2
|
94 |
void AddAddresseeL(const TDesC& aRealAddress);
|
williamr@2
|
95 |
void AddAddresseeL(const TDesC& aRealAddress, const TDesC& aAlias);
|
williamr@2
|
96 |
void AddAddresseeL(TMsvRecipientType aType, const TDesC& aRealAddress);
|
williamr@2
|
97 |
void AddAddresseeL(TMsvRecipientType aType, const TDesC& aRealAddress, const TDesC& aAlias);
|
williamr@2
|
98 |
void RemoveAddressee(TInt aIndex);
|
williamr@2
|
99 |
|
williamr@2
|
100 |
IMPORT_C void SetSettingsL(const CImSmtpSettings& aSettings);
|
williamr@2
|
101 |
IMPORT_C const CImSmtpSettings& Settings() const;
|
williamr@2
|
102 |
IMPORT_C void SetSubjectL(const TDesC& aSubject);
|
williamr@2
|
103 |
IMPORT_C const TPtrC SubjectL() const;
|
williamr@2
|
104 |
|
williamr@2
|
105 |
// --- RTTI functions ---
|
williamr@2
|
106 |
TInt QueryCapability(TUid aCapability, TInt& aResponse);
|
williamr@2
|
107 |
void InvokeSyncFunctionL(TInt aFunctionId,const CMsvEntrySelection& aSelection, TDes8& aParameter);
|
williamr@2
|
108 |
CMsvOperation* InvokeAsyncFunctionL(TInt aFunctionId,const CMsvEntrySelection& aSelection, TDes8& aParameter, TRequestStatus& aCompletionStatus);
|
williamr@2
|
109 |
|
williamr@2
|
110 |
// Attachment functions to support the SendAs API
|
williamr@2
|
111 |
IMPORT_C virtual void AddAttachmentL(const TDesC& aFilePath, const TDesC8& aMimeType, TUint aCharset, TRequestStatus& aStatus);
|
williamr@2
|
112 |
IMPORT_C virtual void AddAttachmentL(RFile& aFile, const TDesC8& aMimeType, TUint aCharset, TRequestStatus& aStatus);
|
williamr@2
|
113 |
IMPORT_C virtual void AddLinkedAttachmentL(const TDesC& aFilePath, const TDesC8& aMimeType, TUint aCharset, TRequestStatus& aStatus);
|
williamr@2
|
114 |
IMPORT_C virtual void AddEntryAsAttachmentL(TMsvId aAttachmentId, TRequestStatus& aStatus);
|
williamr@2
|
115 |
IMPORT_C virtual void CreateAttachmentL(const TDesC& aFileName, RFile& aAttachmentFile, const TDesC8& aMimeType, TUint aCharset, TRequestStatus& aStatus);
|
williamr@2
|
116 |
IMPORT_C virtual void CreateMessageL(TMsvId aServiceId);
|
williamr@2
|
117 |
|
williamr@2
|
118 |
IMPORT_C virtual TMsvId DefaultServiceL() const;
|
williamr@2
|
119 |
IMPORT_C virtual void RemoveDefaultServiceL();
|
williamr@2
|
120 |
IMPORT_C virtual void ChangeDefaultServiceL(const TMsvId& aService);
|
williamr@2
|
121 |
IMPORT_C void CancelAttachmentOperation();
|
williamr@2
|
122 |
|
williamr@2
|
123 |
protected:
|
williamr@2
|
124 |
CSmtpClientMtm(CRegisteredMtmDll& aRegisteredMtmDll, CMsvSession& aMsvSession);
|
williamr@2
|
125 |
void ConstructL();
|
williamr@2
|
126 |
|
williamr@2
|
127 |
void ContextEntrySwitched(); // called after the context of this instance has been changed to another entry
|
williamr@2
|
128 |
private:
|
williamr@2
|
129 |
TBool ValidateAddress(const TPtrC& anAddress);
|
williamr@2
|
130 |
void ResetData();
|
williamr@2
|
131 |
|
williamr@2
|
132 |
void RestoreEmailMessageL();
|
williamr@2
|
133 |
void StoreEmailMessageL();
|
williamr@2
|
134 |
void SetAddresseeListL();
|
williamr@2
|
135 |
void GetBodyTextL(CImEmailMessage& aMessage, TMsvId aMsvId);
|
williamr@2
|
136 |
TInt32 GetAttachmentSizeL(CImEmailMessage& aMessage, TMsvId aMsvId);
|
williamr@2
|
137 |
TMsvPartList DoFindL(const TDesC& aTextToFind, TMsvPartList aPartList);
|
williamr@2
|
138 |
|
williamr@2
|
139 |
private:
|
williamr@2
|
140 |
CMsvOperationActiveSchedulerWait* iWait;
|
williamr@2
|
141 |
CImSmtpSettings* iImSmtpSettings;
|
williamr@2
|
142 |
CImHeader* iHeader;
|
williamr@2
|
143 |
HBufC* iSubject;
|
williamr@2
|
144 |
|
williamr@2
|
145 |
TImMessageField iTImMessageField;
|
williamr@2
|
146 |
HBufC* iEmailAddressFormatString; // defines format of email address used by "Send as" API eg _LIT("/"%S/" <%S>")
|
williamr@2
|
147 |
CMsvEntrySelection* iEntrySelection;
|
williamr@2
|
148 |
CImEmailOperation* iImEmailOperation;
|
williamr@2
|
149 |
CImAttachmentWaiter* iAttachmentWaiter;
|
williamr@2
|
150 |
CImEmailMessage* iEmailMessage;
|
williamr@2
|
151 |
};
|
williamr@2
|
152 |
|
williamr@2
|
153 |
|
williamr@2
|
154 |
#endif // __SMTCMTM_H__
|