emailservices/emailframework/commonlib/inc/CFSMailCommon.h
changeset 0 8466d47a6819
child 1 12c456ceeff2
equal deleted inserted replaced
-1:000000000000 0:8466d47a6819
       
     1 /*
       
     2 * Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  email framework common definitions
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef __CFSMAILCOMMON_H
       
    20 #define __CFSMAILCOMMON_H
       
    21 
       
    22 /** folder type definitions */  
       
    23 enum TFSFolderType
       
    24     {
       
    25     EFSInbox = 1,
       
    26     EFSOutbox,
       
    27     EFSDraftsFolder,
       
    28     EFSSentFolder,
       
    29     EFSDeleted,
       
    30     EFSOther
       
    31     };
       
    32     
       
    33 /** email flags */  
       
    34 enum TFSMsgFlag
       
    35     {
       
    36     EFSMsgFlag_Read = 1,                 // Message is read (or "seen") on the server
       
    37     EFSMsgFlag_Read_Locally = 2,         // Message is read on the client
       
    38     EFSMsgFlag_Low = 4,                  // Message has low priority
       
    39     EFSMsgFlag_Important = 8,            // Message has high priority
       
    40     EFSMsgFlag_FollowUpComplete = 16,    // The message follow-up is complete
       
    41     EFSMsgFlag_FollowUp = 32,            // Message is flagged (a flag is showing next to msg in Outlook)
       
    42     EFSMsgFlag_Attachments = 64,         // Message has attachments
       
    43     EFSMsgFlag_Multiple = 128,           // Message has more than one recipient
       
    44     EFSMsgFlag_CalendarMsg = 256,        // Message is a calendar message
       
    45     EFSMsgFlag_Answered = 512,           // The message was replied to
       
    46     EFSMsgFlag_Forwarded = 1024,         // The message was forwarded
       
    47     EFSMsgFlag_OnlyToMe = 2048,          // The message was sent only to this user
       
    48     EFSMsgFlag_RemoteDeleted = 4096,     // The message has been deleted on the server
       
    49     EFSMsgFlag_HasMsgSender = 8192,      // The message has one or more senders 
       
    50     };
       
    51 
       
    52 /** email list sorting options */  
       
    53 enum TFSMailSortField
       
    54     {
       
    55     EFSMailDontCare,            // user accepts any sort order
       
    56     EFSMailSortByDate,          // sorting is done by date
       
    57     EFSMailSortBySender,        // sorting is done by sender
       
    58     EFSMailSortByRecipient,     // sorting is done by recipients
       
    59     EFSMailSortBySubject,       // sorting is done by subject
       
    60     EFSMailSortByPriority,      // sorting is done by priority
       
    61     EFSMailSortByFlagStatus,    // follow up and completed   
       
    62     EFSMailSortByUnread,        // sorting is based on unread
       
    63     EFSMailSortBySize,          // sorting is done by size
       
    64     EFSMailSortByAttachment     // sorting is based on if message has attachments
       
    65     };
       
    66 
       
    67 /** email list sort order */  
       
    68 enum TFSMailSortOrder
       
    69     {
       
    70     EFSMailDescending,
       
    71     EFSMailAscending    
       
    72     };
       
    73 
       
    74 /** email list sort criteria definition */  
       
    75 class TFSMailSortCriteria
       
    76     {
       
    77     public:
       
    78         TFSMailSortField iField;
       
    79         TFSMailSortOrder iOrder;
       
    80     };
       
    81 
       
    82 /** mailbox status */
       
    83 enum TFSMailBoxStatus
       
    84     {
       
    85     EFSMailBoxOffline = 1,
       
    86     EFSMailBoxOnline
       
    87     };
       
    88 
       
    89 /** mailbox capabilities */
       
    90 enum TFSMailBoxCapabilities
       
    91     {
       
    92     // Mailbox supports creating subfolders.
       
    93     // Not supported by UI in 1.0 release.
       
    94     EFSMBoxCapaCreateSubfolder = 1,
       
    95     
       
    96     // Mailbox supports responding to meeting requests.
       
    97     EFSMBoxCapaMeetingRequestRespond,
       
    98     
       
    99     // Mailbox supports meeting request creation.
       
   100     EFSMBoxCapaMeetingRequestCreate,
       
   101     
       
   102     // Mailbox supports meeting request update.
       
   103     EFSMBoxCapaCanUpdateMeetingRequest,     
       
   104     
       
   105     // Mailbox supports user folder manipulation (rename and delete).
       
   106     // Not supported by UI in 1.0 release.
       
   107     EFSMBoxCapaManipulateUserFolders,
       
   108     
       
   109     // Mailbox supports moving messages to and from user folders.
       
   110     // Not supported in 1.0 release. 
       
   111     // (NOT USED. To be defined in the future.)
       
   112     EFSMBoxCapaMoveMessageToUserFolder,
       
   113     
       
   114     // Mailbox can move messages in offline or handle go online itself
       
   115     EFSMBoxCapaMoveMessageNoConnectNeeded,
       
   116     
       
   117     // Mailbox supports moving messages between folders.
       
   118     EFSMBoxCapaMoveToFolder,
       
   119     
       
   120     // Mailbox supports copying messages between folders.
       
   121     // Not supported by UI in 1.0 release.
       
   122     EFSMBoxCapaCopyToFolder,
       
   123     
       
   124     // Mailbox supports smart reply feature.
       
   125     // Returned by Intellisync and ActiveSync. UI will fetch rest of message if not supported.
       
   126     EFSMBoxCapaSmartReply,
       
   127     
       
   128     // Mailbox supports smart forward feature.
       
   129     // Returned by Intellisync and ActiveSync. UI will fetch rest of message if not supported.
       
   130     EFSMBoxCapaSmartForward,
       
   131     
       
   132     // Mailbox handles itself integration to Symbian Messaging.
       
   133     // Not supported by any protocol in 1.0 release.
       
   134     //
       
   135     // (Should be returned for mailboxes that handle possible Symbian Messaging 
       
   136     // integration themselves. I.e. FW must not ask FS Integration MTM to replicate 
       
   137     // these mailboxes to Symbian Messaging. It is intended to prevent duplicate 
       
   138     // accounts in Symbian Messaging in the case when protocol plugin actually 
       
   139     // already has visible accounts in Symbian Messaging.)
       
   140     EFSMBoxCapaSymbianMsgIntegration,
       
   141     
       
   142     // Mailbox implements new email notifications itself.
       
   143     // Not supported by any protocol in 1.0 release.
       
   144     //
       
   145     // (EFSMBoxCapaNewEmailNotifications is intended to be defined for mailboxes that 
       
   146     // handle new email notifications some other way than relying to FW 
       
   147     // displaying them (e.g. via NCNList). If this is defined for a mailbox then 
       
   148     // FW will not monitor and display new email notifications for the mailbox.
       
   149     // The aim is to prevent possible duplicate notifications to user.)
       
   150     EFSMBoxCapaNewEmailNotifications,
       
   151     
       
   152     // Mailbox supports MRU feature.
       
   153     // Framework can check this before updating the list for optimization. Intellisync and ActiveSync need to set.
       
   154     // Capability is not checked in UI. Plugin just returns a null if there’s no MRU list and the UI doesn’t show anything.
       
   155     EFSMBoxCapaSupportsMRU,
       
   156      
       
   157     // Mailbox can be deleted.
       
   158     // Set by Intellisync and ActiveSync only if the server supports.
       
   159     EFSMBoxCapaCanBeDeleted,
       
   160         
       
   161     // Mailbox supports out of office feature.
       
   162     // Set by Intellisync and ActiveSync. Not used by UI -> can be deprecated?
       
   163     // EFSMBoxCapaSupportsOutOfOffice,
       
   164     
       
   165     // Mailbox supports setting OoO on/off.
       
   166     // Set by Intellisync and ActiveSync. Not used by UI -> can be deprecated?
       
   167     // EFSMBoxCapaOutOfOfficeSet,
       
   168     
       
   169     // Mailbox supports editing out of office.
       
   170     // Set by Intellisync and ActiveSync. Not used by UI -> can be deprecated?
       
   171     // EFSMBoxCapaOutOfOfficeEdit,
       
   172     
       
   173     // Mailbox supports saving to drafts automically when "create message to send" and 
       
   174     // "save message" (in framework api) are used.
       
   175     EFSMBoxCapaSupportsSaveToDrafts,
       
   176     
       
   177     // Remote Contact Lookup is supported via this mailbox.
       
   178     // Set by Intellisync and ActiveSync.
       
   179     EFSMBoxCapaSupportsRCL,
       
   180     
       
   181     // Mailbox supports followup. Email UI hides Follow Up flagging if mailbox does not support it.
       
   182     EFSMBoxCapaSupportsFollowUp,
       
   183     
       
   184     // Mailbox supports for "do you want to delete"prompt.
       
   185     EFSMBoxCapaSupportsDeletedItemsFolder,
       
   186 
       
   187     // Mailbox does not support editing original message with smart reply or forward
       
   188     EFSMBoxCapaReadOnlySmartQuote,
       
   189 
       
   190     // Mailbox supports sync
       
   191     EFSMBoxCapaSupportsSync,
       
   192 
       
   193     // Mailbox supports email reply-to feature
       
   194     EFSMBoxCapaSupportsReplyTo,
       
   195 
       
   196     // Mailbox supports tracking meeting request attendee status
       
   197     // only supported by IntelliSync
       
   198     EFSMBoxCapaMeetingRequestAttendeeStatus,
       
   199 
       
   200     EFSMBoxCapaMRRequiresReplyEmail,
       
   201     
       
   202     // Mailbox supports embedded reply / forward message feature.
       
   203     EFSMBoxCapaEmbeddedReplyForwardMessage,
       
   204     
       
   205     // Mailbox supports removing entry from calendar
       
   206     EFSMBoxCapaRemoveFromCalendar,
       
   207 
       
   208     // Mailbox supports attachments in meeting requests
       
   209     EFSMboxCapaSupportsAttahmentsInMR,
       
   210     
       
   211     // Mailbox supports saving of embedded messages
       
   212     EFSMboxCapaSupportsSavingOfEmbeddedMessages
       
   213     
       
   214     };
       
   215 
       
   216 /** email details included in plugin responses */
       
   217 enum TFSMailDetails 
       
   218     {
       
   219     EFSMsgDataIdOnly = 1,       // Doesn't get any data. The object just contains the ID.
       
   220     EFSMsgDataDate = 2,         // Get received date only. To be used when showing messages sorted by date.
       
   221                                 // The rest would be retreived when needed but date is needed to build the list.
       
   222     EFSMsgDataSubject = 4,      // Like above but when sorting by subject
       
   223     EFSMsgDataSender = 8,       // Likewise for sender address.
       
   224     EFSMsgDataEnvelope = 16,    // Date, subject, Sender, To, Cc at least.
       
   225     EFSMsgDataStructure = 32    // the part structure including mime type, size and name headers.
       
   226     };
       
   227 
       
   228     enum TFSPartFetchState
       
   229     {
       
   230     EFSDefault,
       
   231     EFSNone,
       
   232     EFSPartial,
       
   233     EFSFull,
       
   234     EFSEmailStructureUnknown
       
   235     };
       
   236 
       
   237 /** class for message part / message / folder / mailbox id */
       
   238 class TFSMailMsgId
       
   239     {
       
   240     public:
       
   241 
       
   242     inline TFSMailMsgId( ) // constructs NULL id
       
   243     { iPluginId.iUid = 0; iId = 0; iNullId = ETrue; };
       
   244     inline TFSMailMsgId(TUid aPluginId, TUint aId)
       
   245     { iPluginId = aPluginId; iId = aId; iNullId = EFalse; };
       
   246     inline TFSMailMsgId(TUint aPluginId, TUint aId)
       
   247     { iPluginId.iUid = aPluginId; iId = aId; iNullId = EFalse; };
       
   248     inline TBool operator==(TFSMailMsgId aId) const
       
   249     { if(iNullId != aId.IsNullId()) return EFalse;
       
   250       if(iPluginId.iUid != aId.PluginId().iUid) return EFalse;
       
   251       if(iId != aId.Id()) return EFalse; return ETrue; };
       
   252     inline TBool operator!=(TFSMailMsgId aId) const
       
   253     { if(iNullId != aId.IsNullId()) return ETrue;
       
   254       if(iPluginId.iUid != aId.PluginId().iUid) return ETrue;
       
   255       if(iId != aId.Id()) return ETrue; return EFalse; }
       
   256     inline TBool IsNullId() const { return iNullId; };
       
   257     inline void  SetNullId() { iPluginId.iUid = 0; iId = 0; iNullId = ETrue; } ;
       
   258     inline TUid PluginId() const { return iPluginId; };
       
   259     inline TUint Id() const { return iId; };
       
   260     inline void  SetPluginId(TUid aPluginId) { iPluginId = aPluginId; iNullId = EFalse; };
       
   261     inline void  SetId(TUint aId) { iId = aId; iNullId = EFalse; };
       
   262 
       
   263     protected:
       
   264 
       
   265     TBool   iNullId;
       
   266     TUid    iPluginId;      // ecom implementation id
       
   267     TUint   iId;            // message, folder, mailbox id
       
   268     };
       
   269 
       
   270 /* Predefined constants for ContentTypes and parameters for ContentType and ContentDisposition */
       
   271 _LIT(KFSMailContentTypeMultipartMixed, "multipart/mixed");
       
   272 _LIT(KFSMailContentTypeMultipartAlternative, "multipart/alternative");
       
   273 _LIT(KFSMailContentTypeMultipartDigest, "multipart/digest");
       
   274 _LIT(KFSMailContentTypeMultipartParallel, "multipart/parallel");
       
   275 _LIT(KFSMailContentTypeMultipartRelated,  "multipart/related");
       
   276 _LIT(KFSMailContentTypeTextPlain, "text/plain");
       
   277 _LIT(KFSMailContentTypeTextHtml, "text/html");
       
   278 _LIT(KFSMailContentTypeMessage, "message/rfc822");
       
   279 _LIT(KFSMailContentTypeParamName, " name=");
       
   280 _LIT(KFSMailContentTypeParamCharset, " charset=");
       
   281 _LIT(KFSMailContentTypeTextCalendar, "text/calendar");
       
   282 
       
   283 
       
   284 _LIT(KFSMailContentDispAttachment, " attachment");
       
   285 _LIT(KFSMailContentDispParamFilename, " filename=");
       
   286 
       
   287 /** mailbox synchronization states */
       
   288 enum TSSMailSyncState // Are all of these sensible as mailbox sync states (e.g. PasswordVerified)
       
   289     {
       
   290     Idle,
       
   291     StartingSync, // establishing connection to server
       
   292     DataSyncStarting,
       
   293     EmailSyncing, // For any email folder not explicitly listed.
       
   294     InboxSyncing, // System folders the plugin may report. Can use just EmailSyncing instead.
       
   295     OutboxSyncing,
       
   296     SentItemsSyncing,
       
   297     DraftsSyncing,
       
   298     CalendarSyncing,
       
   299     ContactsSyncing,
       
   300     TasksSyncing,
       
   301     NotesSyncing,
       
   302     FilesSyncing,
       
   303     FinishedSuccessfully,
       
   304     SyncError,
       
   305     SyncCancelled,
       
   306     PasswordExpiredError,
       
   307     PasswordVerified,
       
   308     PasswordNotVerified,
       
   309     PushChannelOff,
       
   310     PushChannelEstablished,
       
   311     PushChannelOffBecauseBatteryIsLow,
       
   312     OutOfDiskSpace
       
   313     };
       
   314 
       
   315 /**
       
   316  *  email framework exception event response callback
       
   317  *
       
   318  *  @since S60 v3.1
       
   319  */
       
   320 class MFSMailExceptionEventCallback
       
   321     {
       
   322     public:
       
   323 
       
   324     /**
       
   325      * Exception event resonse to plugin from FSMailServer after it has
       
   326      * processed the event (shown the corresponding dialog to user).
       
   327      * There can be several messages on the screen, but only one
       
   328      * of each message type per mailbox. So mailbox-message type
       
   329      * pairs should be enough to identify the responded event.
       
   330      *
       
   331      * @param aMailboxId Mailbox that sent the exception event
       
   332      * @param aEventType Event type of the responded event
       
   333      *                   (as TFsEmailNotifierSystemMessageType)
       
   334      * @param aResponse ETrue if user selected OK, Continue, etc. (LSK)
       
   335      *                  EFalse if user selected Cancel (RSK)
       
   336      */
       
   337      virtual void ExceptionEventCallbackL( TFSMailMsgId aMailboxId, TInt aEventType, TBool aResponse ) = 0;
       
   338 
       
   339      };
       
   340 
       
   341 
       
   342 /** plugin / message store events definitions
       
   343 
       
   344 Note! Store related events (backup/restore, store locked,
       
   345 wiped, authenticated/unauthenticated) would benefit from
       
   346 having a concept of plugin/service or store available in client API.
       
   347 These have been simplified behind only two events:
       
   348 TFSMailboxUnavailable and TFSMailboxAvailable.
       
   349 */
       
   350     enum TFSMailEvent
       
   351         {
       
   352         // Mailbox is unavailable
       
   353         // aParam1: NULL
       
   354         // aParam2: NULL
       
   355         // aParam3: NULL
       
   356         TFSMailboxUnavailable,
       
   357 
       
   358         // Mailbox is available
       
   359         // aParam1: NULL
       
   360         // aParam2: NULL
       
   361         // aParam3: NULL
       
   362         TFSMailboxAvailable,
       
   363 
       
   364         // New mailbox created
       
   365         // aParam1: NULL
       
   366         // aParam2: NULL
       
   367         // aParam3: NULL
       
   368         TFSEventNewMailbox, 
       
   369 
       
   370         // New mailbox creation failure
       
   371         // aParam1: NULL
       
   372         // aParam2: NULL
       
   373         // aParam3: NULL
       
   374         TFSEventMailboxCreationFailure, 
       
   375 
       
   376         // Mailbox renamed
       
   377         // aParam1: NULL
       
   378         // aParam2: NULL
       
   379         // aParam3: NULL
       
   380         TFSEventMailboxRenamed,
       
   381         
       
   382         // Mailbox deleted
       
   383         // aParam1: NULL
       
   384         // aParam2: NULL
       
   385         // aParam3: NULL
       
   386         TFSEventMailboxDeleted,
       
   387 
       
   388         //
       
   389         // Following events need to be subscribed per mailbox
       
   390         //
       
   391 
       
   392         // Mailbox capability changed
       
   393         // aParam1: NULL
       
   394         // aParam2: NULL
       
   395         // aParam3: NULL
       
   396         TFSEventMailboxCapabilityChanged,
       
   397 
       
   398         // Mailbox settings changed (OPEN: can this replace TFSEventMailboxCapabilityChanged?)
       
   399         // aParam1: NULL
       
   400         // aParam2: NULL
       
   401         // aParam3: NULL
       
   402         TFSEventMailboxSettingsChanged,
       
   403 
       
   404         // Mailbox went online
       
   405         // aParam1: NULL
       
   406         // aParam2: NULL
       
   407         // aParam3: NULL
       
   408         TFSEventMailboxOnline,
       
   409 
       
   410         // Mailbox went offline
       
   411         // aParam1: NULL
       
   412         // aParam2: NULL
       
   413         // aParam3: NULL
       
   414         TFSEventMailboxOffline,
       
   415 
       
   416         // Mailbox sync state changed
       
   417         // aParam1: TSSMailSyncState* newState
       
   418         // aParam2: NULL
       
   419         // aParam3: NULL
       
   420         TFSEventMailboxSyncStateChanged,
       
   421 
       
   422         // New mails created
       
   423         // aParam1: RArray<TFSMailId>* aNewEntries
       
   424         // aParam2: TFSMailId* aParentFolder
       
   425         // aParam3: NULL
       
   426         TFSEventNewMail, 
       
   427 
       
   428         // Mails changed
       
   429         // aParam1: RArray<TFSMailId>* aEntries
       
   430         // aParam2: TFSMailId* aParentFolder
       
   431         // aParam3: NULL
       
   432         TFSEventMailChanged,
       
   433         
       
   434         // Mails deleted
       
   435         // aParam1: RArray<TFSMailId>* aEntries
       
   436         // aParam2: TFSMailId* aParentFolder
       
   437         // aParam3: NULL
       
   438         TFSEventMailDeleted,
       
   439 
       
   440         // Mails moved
       
   441         // aParam1: RArray<TFSMailId>* aEntries
       
   442         // aParam2: TFSMailId* aNewParentFolder
       
   443         // aParam3: TFSMailId* aOldParentFolder
       
   444         TFSEventMailMoved,
       
   445 
       
   446         // Mails copied
       
   447         // aParam1: RArray<TFSMailId>* aNewEntries
       
   448         // aParam2: TFSMailId* aNewParentFolder
       
   449         // aParam3: TFSMailId* aOldParentFolder
       
   450         TFSEventMailCopied,
       
   451 
       
   452         // New folders created
       
   453         // aParam1: RArray<TFSMailId>* aNewEntries
       
   454         // aParam2: TFSMailId* aParentFolder
       
   455         // aParam3: NULL
       
   456         TFSEventNewFolder, 
       
   457 
       
   458         // Folders changed
       
   459         // aParam1: RArray<TFSMailId>* aEntries
       
   460         // aParam2: TFSMailId* aParentFolder
       
   461         // aParam3: NULL
       
   462         TFSEventFolderChanged,
       
   463         
       
   464         // Folders deleted
       
   465         // aParam1: RArray<TFSMailId>* aEntries
       
   466         // aParam2: TFSMailId* aParentFolder
       
   467         // aParam3: NULL
       
   468         TFSEventFoldersDeleted,
       
   469 
       
   470         // Folders moved
       
   471         // aParam1: RArray<TFSMailId>* aEntries
       
   472         // aParam2: TFSMailId* aNewParentFolder
       
   473         // aParam3: TFSMailId* aOldParentFolder
       
   474         TFSEventFoldersMoved,
       
   475 
       
   476         // exception / error happened 
       
   477         // aParam1: TInt (TFsEmailNotifierSystemMessageType) aEventType
       
   478         // aParam2: TDesC* aCustomMessage or NULL (optional)
       
   479         // aParam3: MFSMailExceptionEventCallback* aCallback or NULL (optional)
       
   480         TFSEventException,
       
   481         };
       
   482         
       
   483 /**
       
   484  * Progress data structure to indicate different kind of progress
       
   485  * information coming from plugins to user. Usually user uses
       
   486  * progress events to update progress bar in user interface.
       
   487  *
       
   488  * Download progress indication : 
       
   489  *   - first event iProgressStatus = EFSStatus_Started
       
   490  *   - next event iProgressStatus = EFSStatus_Status
       
   491  *   - last event iProgressStatus = EFSStatus_RequestComplete
       
   492  *   - iMaxCount downloadable object total size
       
   493  *   - iCounter currently downloaded object size
       
   494  *   - iError KErrNone
       
   495  *
       
   496  * Download request cancelled by user or by plugin :
       
   497  *
       
   498  *   - iProgressStatus = EFSStatus_RequestCancelled
       
   499  *   - iMaxCount & iCounter optional, latest values or ignore/unknown = -1
       
   500  *   - iError = symbian error code KErrCancel
       
   501  *
       
   502  * Download error :
       
   503  *
       
   504  *   - iProgressStatus = EFSStatus_RequestCancelled
       
   505  *   - iMaxCount & iCounter optional, latest values or ignore/unknown = -1
       
   506  *   - iError symbian error code
       
   507  * 
       
   508  * Connection establisment progress :
       
   509  *
       
   510  *   - iProgressStatus ; EFSStatus_Waiting, EFSStatus_Connecting,
       
   511  *     EFSStatus_Connected, EFSStatus_Authenticating, EFSStatus_Authenticated
       
   512  *     depending how plugin implements this
       
   513  *   - iMaxCount & iCounter optional, latest values or ignore/unknown = -1
       
   514  *   - iError symbian error code, KErrNone default
       
   515  */
       
   516 class TFSProgress
       
   517     {
       
   518 
       
   519 public:
       
   520 
       
   521     /** possible progress indication states  */
       
   522     enum TFSProgressStatus
       
   523     {
       
   524         EFSStatus_Waiting = 1,
       
   525         EFSStatus_Started,
       
   526         EFSStatus_Connecting,
       
   527         EFSStatus_Connected,
       
   528         EFSStatus_Authenticating,
       
   529         EFSStatus_Authenticated,
       
   530         EFSStatus_Status,
       
   531         EFSStatus_RequestComplete,
       
   532         EFSStatus_RequestCancelled,
       
   533     };
       
   534 
       
   535 public: // data
       
   536                 
       
   537     /** event progress / completion status*/
       
   538     TFSProgressStatus   iProgressStatus;
       
   539                     
       
   540     /** max value in progress countingc   */
       
   541     TInt                iMaxCount;
       
   542 
       
   543     /** progress counter                  */
       
   544     TInt                iCounter;
       
   545 
       
   546     /** error code (Symbian error codes)  */
       
   547     TInt                iError;
       
   548     };
       
   549     
       
   550 #endif // __CFSMAILCOMMON