diff -r 000000000000 -r 72b543305e3a email/pop3andsmtpmtm/clientmtms/inc/SMTCMTM.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/pop3andsmtpmtm/clientmtms/inc/SMTCMTM.H Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,154 @@ +// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// SMTCPMTM.H +// Client MTM for the SMTP protocol +// +// + +#if !defined (__SMTCMTM_H__) +#define __SMTCMTM_H__ + +#if !defined (__E32BASE_H__) +#include // CActive, TFileName) +#endif + +#if !defined(__BADESCA_H__) +#include +#endif + +#if !defined (__MSVAPI_H__) +#include +#endif + +#if !defined (__MTCLBASE_H__) +#include +#endif + +#if !defined (__MIUTHDR_H__) +#include +#endif + +#if !defined (__MIUTPARS_H__) +#include //TImMessageField +#endif + +#if !defined (__MIUTMSG_H__) +#include //CImEmailMessage +#endif + +#if !defined (__SMTPSET_H__) +#include +#endif + +#if !defined (__SMTPCMDS_H__) +#include +#endif + +class CMsvEntry; +class CMtmDllRegistry; +class CRichText; +class TMsvEntry; +class CRegisteredMtmDll; +class CImSmtpSettings; +class CMsvSession; +class CImAttachmentWaiter; + +// Smtp Client MTM // +class CSmtpClientMtm : public CBaseMtm +/** SMTP client MTM interface. + +Most of the functions in this class are implementations of the virtual functions +defined by the base class CBaseMtm. +@publishedAll +@released +*/ + { +public: + IMPORT_C static CSmtpClientMtm* NewL(CRegisteredMtmDll& aRegisteredMtmDll, CMsvSession& aMsvSession); + ~CSmtpClientMtm(); + + void SaveMessageL(); + void LoadMessageL(); + + IMPORT_C void StoreSettingsL(); + IMPORT_C void RestoreSettingsL(); + + CMsvOperation* ReplyL (TMsvId aReplyEntryId, TMsvPartList aPartlist, TRequestStatus& aCompletionStatus); + CMsvOperation* ForwardL(TMsvId aForwardEntryId, TMsvPartList aPartList, TRequestStatus& aCompletionStatus); + + TMsvPartList ValidateMessage(TMsvPartList aPartList); + TMsvPartList Find(const TDesC& aTextToFind, TMsvPartList aPartList); + + // addresssee list (used by objects with no MTM knowledge) + void AddAddresseeL(const TDesC& aRealAddress); + void AddAddresseeL(const TDesC& aRealAddress, const TDesC& aAlias); + void AddAddresseeL(TMsvRecipientType aType, const TDesC& aRealAddress); + void AddAddresseeL(TMsvRecipientType aType, const TDesC& aRealAddress, const TDesC& aAlias); + void RemoveAddressee(TInt aIndex); + + IMPORT_C void SetSettingsL(const CImSmtpSettings& aSettings); + IMPORT_C const CImSmtpSettings& Settings() const; + IMPORT_C void SetSubjectL(const TDesC& aSubject); + IMPORT_C const TPtrC SubjectL() const; + + // --- RTTI functions --- + TInt QueryCapability(TUid aCapability, TInt& aResponse); + void InvokeSyncFunctionL(TInt aFunctionId,const CMsvEntrySelection& aSelection, TDes8& aParameter); + CMsvOperation* InvokeAsyncFunctionL(TInt aFunctionId,const CMsvEntrySelection& aSelection, TDes8& aParameter, TRequestStatus& aCompletionStatus); + + // Attachment functions to support the SendAs API + IMPORT_C virtual void AddAttachmentL(const TDesC& aFilePath, const TDesC8& aMimeType, TUint aCharset, TRequestStatus& aStatus); + IMPORT_C virtual void AddAttachmentL(RFile& aFile, const TDesC8& aMimeType, TUint aCharset, TRequestStatus& aStatus); + IMPORT_C virtual void AddLinkedAttachmentL(const TDesC& aFilePath, const TDesC8& aMimeType, TUint aCharset, TRequestStatus& aStatus); + IMPORT_C virtual void AddEntryAsAttachmentL(TMsvId aAttachmentId, TRequestStatus& aStatus); + IMPORT_C virtual void CreateAttachmentL(const TDesC& aFileName, RFile& aAttachmentFile, const TDesC8& aMimeType, TUint aCharset, TRequestStatus& aStatus); + IMPORT_C virtual void CreateMessageL(TMsvId aServiceId); + + IMPORT_C virtual TMsvId DefaultServiceL() const; + IMPORT_C virtual void RemoveDefaultServiceL(); + IMPORT_C virtual void ChangeDefaultServiceL(const TMsvId& aService); + IMPORT_C void CancelAttachmentOperation(); + +protected: + CSmtpClientMtm(CRegisteredMtmDll& aRegisteredMtmDll, CMsvSession& aMsvSession); + void ConstructL(); + + void ContextEntrySwitched(); // called after the context of this instance has been changed to another entry +private: + TBool ValidateAddress(const TPtrC& anAddress); + void ResetData(); + + void RestoreEmailMessageL(); + void StoreEmailMessageL(); + void SetAddresseeListL(); + void GetBodyTextL(CImEmailMessage& aMessage, TMsvId aMsvId); + TInt32 GetAttachmentSizeL(CImEmailMessage& aMessage, TMsvId aMsvId); + TMsvPartList DoFindL(const TDesC& aTextToFind, TMsvPartList aPartList); + +private: + CMsvOperationActiveSchedulerWait* iWait; + CImSmtpSettings* iImSmtpSettings; + CImHeader* iHeader; + HBufC* iSubject; + + TImMessageField iTImMessageField; + HBufC* iEmailAddressFormatString; // defines format of email address used by "Send as" API eg _LIT("/"%S/" <%S>") + CMsvEntrySelection* iEntrySelection; + CImEmailOperation* iImEmailOperation; + CImAttachmentWaiter* iAttachmentWaiter; + CImEmailMessage* iEmailMessage; + }; + + +#endif // __SMTCMTM_H__