diff -r 08008ce8a6df -r bde600d88860 msgfw_pub/send_ui_api/inc/CMessageData.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/msgfw_pub/send_ui_api/inc/CMessageData.h Fri Jun 04 10:32:16 2010 +0100 @@ -0,0 +1,312 @@ +/* +* Copyright (c) 2002-2006 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: Encapsulates the message data for sending services. +* +*/ + + +#ifndef C_MESSAGEDATA_H +#define C_MESSAGEDATA_H + +#include +#include +#include +#include +#include "CMessageAddress.h" + +class MDesC16Array; +class CRichText; +class CMessageDataImpl; + +/** + * Encapsulates the message data for sending services. + * + * Encapsulates the message data for sending services. Class supports + * externalazation and internalization, which are used to relay message + * to SendUI server application. + * + * @lib sendui + * @since S60 v3.0 + */ +class CMessageData : public CBase +{ +public: // Constructors and destructor + + /** + * Two-phased constructor. + * + * @return Pointer to object of CMessageData. + */ + IMPORT_C static CMessageData* NewL(); + + /** + * Two-phased constructor. + * + * @return Pointer to object of CMessageData. + */ + IMPORT_C static CMessageData* NewLC(); + + /** + * Destructor. + */ + IMPORT_C virtual ~CMessageData(); + +public: // New functions + + /** + * Set message subject. + * + * @since Series 60 3.0 + * @param aSubject Sets message subject. Does not take ownership. + * @return None. + */ + IMPORT_C void SetSubjectL( const TDesC* aSubject ); + + /** + * Returns message subject. + * + * @since Series 60 3.0 + * @return Message subject. + */ + IMPORT_C const TPtrC Subject() const; + + /** + * Appends attachment file path to the array of attachment file paths. Only a link + * to the attachment is stored and compared to AppendAttachmentHandleL less resources + * is used during the send operation. + * + * NOTE: Do not add any temporary files as an attachment. Always use + * AppendAttachmentHandleL for temporary files. + * + * @since Series 60 3.0 + * @param aFilePath File path of the attachment. + * + * @return None. + */ + IMPORT_C void AppendAttachmentL( const TDesC& aFilePath ); + + /** + * Returns the array of attachment file paths. + * + * @since Series 60 3.0 + * @return Array of attachment file paths. + */ + IMPORT_C const CDesCArray& AttachmentArray() const; + + /** + * Clears the array of attachment file paths. + * + * @since Series 60 3.0 + * @return Array of attachment file paths. + */ + IMPORT_C void ClearAttachmentArray(); + + /** + * Encapsulates address and alias to CMessageAddress and adds to array. + * + * @since Series 60 3.0 + * @param aAddress Real address. + * @param aAlias Alias for the real address. + * @return None. + */ + IMPORT_C void AppendToAddressL( + const TDesC& aAddress, + const TDesC& aAlias = KNullDesC); + + /** + * Returns array of addresses and aliases. + * + * @since Series 60 3.0 + * @return Array of addresses and aliases. + */ + IMPORT_C const CMessageAddressArray& ToAddressArray() const; + + /** + * Encapsulates CC address and alias to CMessageAddress and adds to + * array. + * + * @since Series 60 3.0 + * @param aCcAddress Real CC-address. + * @param aCcAlias Alias for the real CC-address. + * @return None. + */ + IMPORT_C void AppendCcAddressL( + const TDesC& aCcAddress, + const TDesC& aCcAlias = KNullDesC); + + /** + * Returns array of CC addresses and aliases. + * + * @since Series 60 3.0 + * @return Array of cc addresses and aliases. + */ + IMPORT_C const CMessageAddressArray& CcAddressArray() const; + + /** + * Encapsulates Bcc address and alias to CMessageAddress and adds to + * array. + * + * @since Series 60 3.0 + * @param aBccAddress Real Bcc-address. + * @param aBccAlias Alias for the real Bcc-address. + * @return None. + */ + IMPORT_C void AppendBccAddressL( + const TDesC& aBccAddress, + const TDesC& aBccAlias = KNullDesC); + + /** + * Returns array of Bcc addresses and aliases. + * + * @since Series 60 3.0 + * @return Array of Bcc addresses and aliases. + */ + IMPORT_C const CMessageAddressArray& BccAddressArray() const; + + /** + * Set message body text. + * + * @since Series 60 3.0 + * @param aBodyText Message body text. + * @return None. + */ + IMPORT_C void SetBodyTextL( const CRichText* aBodyText ); + + /** + * Returns message body text. + * + * @since Series 60 3.0 + * @return Message body text. + */ + IMPORT_C const CRichText* BodyText() const; + + /** + * Appends attachment handle to the array of attachment handles. + * + * NOTE: Attachment handles should be opened using ShareProtected() + * file session, otherwise handles can not be transfered through + * client-server interface. + * + * NOTE: When adding a temporary file as an attachment, always use this method, + * + * @since Series 60 3.0 + * @param aFileHandle File handle of the attachment. + * @return None. + */ + IMPORT_C void AppendAttachmentHandleL( const RFile& aFileHandle ); + + /** + * Returns the array of attachment handles. + * + * @since Series 60 3.0 + * @return Array of attachment handles. + */ + IMPORT_C const RArray& AttachmentHandleArray() const; + + /** + * Returns data type id. + * + * This can be used for interpreting the opaque data. + * @since Series 60 3.0 + * @return Data type id. + */ + IMPORT_C TUid DataType() const; + + /** + * Clears all addressee arrays. + * + * @since Series 60 3.0 + * @return None. + */ + IMPORT_C void ClearAddresses(); + + /** + * Externalizes message data to a stream + * + * @since Series 60 3.2 + * @return None. + */ + + IMPORT_C void ExternalizeL( RWriteStream& aStream ) const; + + /** + * Internalizes message data to from a stream + * + * @since Series 60 3.2 + * @return None. + */ + IMPORT_C void InternalizeL( RReadStream& aStream ); + + /** + * Set opaque data + * + * @since Series 60 3.2 + * @param aData Opaque data. + * @param aDataType, Identifier for the opaque data. + * @return None. + */ + IMPORT_C void SetOpaqueDataL( const TDesC8* aData, TUid aDataType ); + + /** + * Get opaque data + * + * @since Series 60 3.2 + * @return aData Opaque data. + */ + IMPORT_C const TPtrC8 OpaqueData() const; + + protected: + + /** + * C++ default constructor. + */ + IMPORT_C CMessageData(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + IMPORT_C void ConstructL(); + +protected: // Data + + /** + * Data type of this message. Normally this is KSenduiMsgDataBase + * This can be used for interpreting the opaque data. + */ + TUid iDataType; + +private: // Data + + /** + * Message data implementation. + * Owned. + */ + CMessageDataImpl* iMessageDataImpl; + + /** + * Reserved. + */ + TAny* iReserved1; + TAny* iReserved2; + TAny* iReserved3; + TAny* iReserved4; + TAny* iReserved5; + RArray iReserved6; + +}; + +#endif // C_MESSAGEDATA_H + +// End of File +