00001 /* 00002 * ============================================================================ 00003 * Name : MNcnNotification.h 00004 * Part of : Ncn Notification API 00005 * 00006 * Description: 00007 * Public ECom notification API for NcnList. 00008 * Version: 00009 * 00010 * Copyright (C) 2006 Nokia Corporation. 00011 * This material, including documentation and any related 00012 * computer programs, is protected by copyright controlled by 00013 * Nokia Corporation. All rights are reserved. Copying, 00014 * including reproducing, storing, adapting or translating, any 00015 * or all of this material requires the prior written consent of 00016 * Nokia Corporation. This material also contains confidential 00017 * information which may not be disclosed to others without the 00018 * prior written consent of Nokia Corporation. 00019 * ============================================================================ 00020 */ 00021 00022 #ifndef __MNCNNOTIFICATION_H__ 00023 #define __MNCNNOTIFICATION_H__ 00024 00025 // INCLUDES 00026 #include <e32base.h> 00027 #include <msvstd.h> 00028 #include <bamdesca.h> 00029 #include <ecom/ECom.h> 00030 #include <ecom/EComResolverParams.h> 00031 00032 // FORWARD DECLARATIONS 00033 00034 // UID of this interface 00035 const TUid KNcnNotificationInterfaceUid = {0x101f8855}; 00036 00037 // CLASS DECLARATION 00038 00082 class MNcnNotification 00083 { 00084 private: // Enumerations 00088 enum TIndicationTypeBits 00089 { 00090 /* Icon bit */ 00091 EIndicationIconBit = 0x1, 00092 00093 /* Tone bit */ 00094 EIndicationToneBit = 0x2, 00095 00096 /* Soft note bit */ 00097 EIndicationSoftNoteBit = 0x4 00098 }; 00099 00100 public: // Enumerations 00104 enum TIndicationType 00105 { 00106 /* Icon indication */ 00107 EIndicationIcon = EIndicationIconBit, 00108 00109 /* Normal indication */ 00110 EIndicationNormal = EIndicationIconBit | EIndicationToneBit | EIndicationSoftNoteBit 00111 #start_since SINCE_3_1_SDK 00112 /* Tone and icon indication */ 00113 ,EIndicationToneAndIcon = EIndicationIconBit | EIndicationToneBit 00114 #end_since SINCE_3_1_SDK 00115 }; 00116 00117 public: // Constructor and destructor 00118 00129 static MNcnNotification* CreateMNcnNotificationL(); 00130 00134 virtual ~MNcnNotification(); 00135 00136 public: // Interface 00137 00155 virtual TInt NewMessages( const TMsvId& aMailBox, 00156 TIndicationType aIndicationType, 00157 const MDesCArray& aInfo ) = 0; 00158 00169 virtual TInt MarkUnread( const TMsvId& aMailBox ) = 0; 00170 00171 private: // data 00172 00173 // for ECom to identify plug-in instance 00174 TUid iDtor_ID_Key; 00175 }; 00176 00177 #include <MNcnNotification.inl> 00178 00179 // __MNCNNOTIFICATION_H__ 00180 #endif 00181 00182 // End of File