00001 /* 00002 * ============================================================================ 00003 * Name : MmsConst.h 00004 * Part of : MmsEngine 00005 * 00006 * Description: 00007 * Miscellaneous constants needed by MmsEngine and its clients 00008 * (e.g. MCE and DeviceManagement) 00009 * Version: 00010 * 00011 * Copyright (C) 2002-2006 Nokia Corporation. 00012 * This material, including documentation and any related 00013 * computer programs, is protected by copyright controlled by 00014 * Nokia Corporation. All rights are reserved. Copying, 00015 * including reproducing, storing, adapting or translating, any 00016 * or all of this material requires the prior written consent of 00017 * Nokia Corporation. This material also contains confidential 00018 * information which may not be disclosed to others without the 00019 * prior written consent of Nokia Corporation. 00020 * 00021 * ============================================================================ 00022 */ 00023 00024 #ifndef MMSCONST_H 00025 #define MMSCONST_H 00026 00027 // INCLUDES 00028 #include <msvuids.h> 00029 #include <msvstd.hrh> 00030 #include <e32std.h> 00031 #include <cmsvrecipientlist.h> 00032 00033 // CONSTANTS 00034 00035 // NOTE: January = 0! 1st day of month = 0! 00036 _LIT( KMmsYear1970String, "19700000:000000.000000" ); 00037 00038 // <DEPRECATED> 00039 // This is the resource file that contains factory values 00040 // for error actions (for scheduled sending and receiving) 00041 _LIT(KMmsResourceDriveAndFile, "z:mmsserver.rsc"); 00042 // </DEPRECATED> 00043 00044 _LIT(KMMSNotificationFolder, "MMSNotifications"); 00045 _LIT(KMmsMmboxFolder, "MmsMmbox"); 00046 00047 #start_since SINCE_3_1_SDK 00048 00052 const TInt KMmsMillion = 1000000; 00053 00057 const TInt KMmsDateBufferLength = 30; 00058 #end_since SINCE_3_1_SDK 00059 // 00060 // Image size definitions - Not used by MMS engine 00061 // anyone who needs image size constants, should define their own 00062 // 00063 // 00064 // <DEPRECATED> 00065 // 160*120 00066 const TInt KMmsImageSmallWidth = 160; 00067 const TInt KMmsImageSmallHeight = 120; 00068 // 640*480 00069 const TInt KMmsImageLargeWidth = 640; 00070 const TInt KMmsImageLargeHeight = 480; 00071 // Original 00072 const TInt KMmsImageOriginalWidth = KMaxTInt; 00073 const TInt KMmsImageOriginalHeight = KMaxTInt; 00074 // </DEPRECATED> 00075 00076 // This is the extra amount of disk space that will be taken 00077 // up by the index entry when creating new message entries. 00078 // This is a crude estimate. It is defined here as a constant 00079 // to allow it to be made more accurate by changing the value 00080 // in only one place. 00081 const TInt KMmsIndexEntryExtra = 80; 00082 00083 // This is the safety margin for fetching MMS messages. 00084 // There should be at least this much extra disk space 00085 // before a message can be fetched. A new message takes 00086 // more disk space than the amount indicated in the 00087 // notification. 00088 const TInt KMmsDiskSafetyMargin = 25000; 00089 00090 // 00091 // DLL UIDs that might be needed 00092 // 00093 const TUid KUidMmsServerMtm={0x100058DB}; 00094 const TUid KUidMmsClientMtm={0x100058DC}; 00095 const TUid KUidMmsClientUIMtm={0x100058DD}; 00096 const TUid KUidMmsClientUIDataMtm={0x100058DD}; 00097 // editor and viewer 00098 const TInt KUidMsgMmsEditor={0x100058DE}; 00099 const TInt KUidMsgMmsViewer={0x100058DF}; 00100 00101 // message types 00102 const TUid KUidMsgTypeMultimedia={0x100058E1}; 00103 const TUid KUidMsvTechnologyGroupMMS={0x100058E2}; 00104 const TUid KUidMsgMMSNotification={0x100059C8}; 00105 00106 // message subtypes 00107 const TUid KUidMsgSubTypeMmsUpload={0x102072CD}; 00108 const TUid KUidMsgSubTypeMmsPostcard={0x102072CE}; 00109 const TUid KUidMsgSubTypeMmsAudioMsg={0x1020744F}; 00110 00111 // 00112 // Stream UIDs 00113 // 00114 // Globally unique values have been allocated to all streams 00115 // MMS headers 00116 const TUid KUidMmsHeaderStream={0x101FB0ED}; 00117 // recipient scheduling info 00118 const TUid KUidMmsRecipientStream={0x101FB0EE}; 00119 // Notification or delivery report in binary format 00120 const TUid KUidBinaryNotificationStream={0x101FB0EF}; 00121 // element descriptor info, only in notification 00122 const TUid KUidMMsElementDescriptorStream = {0x101FB0F0}; 00123 // MMBox headers that can be present in several message PDUs 00124 const TUid KUidMMsMMBoxMessageHeaderStream = {0x101FB0F1}; 00125 // MMBox headers that are present in MMBox view request and confirmation only 00126 const TUid KUidMMsMMBoxViewHeadersStream = {0x101FB0F2}; 00127 // Extra info (message text) present in extended notification. 00128 const TUid KUidMMsExtendedNotificationStream = {0x101FB0F3}; 00129 // Attributes for UI use 00130 const TUid KUidMmsAttributeStream = {0x101FB0F4}; 00131 // Application id and return-to application id 00132 const TUid KUidMmsApplicationInfoStream = {0x101FB0F5}; 00133 // Reserved for internal use 00134 // This stream contains all kinds of unusual information that is rarely present 00135 // These are not part of an actual message, but control the transactions. 00136 // - recommended retrieval mode 00137 // - recommended retrieval mode text 00138 // - replace or cancel id 00139 // - cancel status 00140 const TUid KUidMmsReserved = {0x101FB0F6}; 00141 00142 // 00143 // Log entry event type uid (used unless Symbian allocates an id instead) 00144 // 00145 const TUid KLogMmsEventTypeUid = {0x1000595e}; 00146 00147 //----------------------------------------------- 00148 // Flag bits in iMtmData1 00149 // The default value for all bits is 0 00150 //----------------------------------------------- 00151 // Message types stored in iMtmData1 00152 // The message types defined are those that could actually be found 00153 // in message store. Values for transient types are not defined. 00154 const TUint32 KMmsMessageTypeMask = 0x0000000F; 00155 const TUint32 KMmsMessageMSendReq = 0x00000001; 00156 // reserved for future use 0x00000002; 00157 const TUint32 KMmsMessageMNotificationInd = 0x00000003; 00158 // reserved for future use 0x00000004; 00159 const TUint32 KMmsMessageMRetrieveConf = 0x00000005; 00160 // reserved for future use 0x00000006; 00161 const TUint32 KMmsMessageDeliveryInd = 0x00000007; 00162 const TUint32 KMmsMessageReadRecInd = 0x00000008; 00163 const TUint32 KMmsMessageReadOrigInd = 0x00000009; 00164 const TUint32 KMmsMessageForwardReq = 0x0000000A; 00165 // reserved for future use 0x0000000B; 00166 // reserved for future use 0x0000000C; 00167 // reserved for future use 0x0000000D; 00168 // reserved for future use 0x0000000E; 00169 // This must be the last one to allow some expansion for known types 00170 const TUint32 KMmsMessageUnrecognized = 0x0000000F; 00171 00172 // Message state stored in iMtmData1 00173 const TUint32 KMmsMessageEncrypted = 0x00000010; 00174 const TUint32 KMmsMessageSigned = 0x00000020; 00175 const TUint32 KMmsMessageForwarded = 0x00000040; 00176 const TUint32 KMmsMessageMobileTerminated = 0x00000080; 00177 const TUint32 KMmsMessageEditorOriented = 0x00000100; 00178 00179 // bit to indicate that attribute stream is present in entry 00180 const TUint32 KMmsAttributeStreamPresent = 0x00000200; 00181 00182 // reserved for future use 00183 // 0x00000400 00184 // 0x00000800 00185 00186 // Message type flags 00187 // 1 byte reserved (0x0000F000) 00188 // If no flag is set, message is personal (default) 00189 const TUint32 KMmsMessageClassMask = 0x0000F000; 00190 const TUint32 KMmsMessageAdvertisement = 0x00001000; 00191 const TUint32 KMmsMessageInformational = 0x00002000; 00192 // two message types can be added (0x00004000 and 0x00008000) 00193 00194 // Some free bits here... 00195 const TUint32 KMmsReservedMtmData1 = 0x00FF0000; 00196 00197 // Bit that indicates if the message contains non-conformant content. 00198 // Default value is 0. 00199 // 0 = Message is conformant, or the content is unknown (created by legacy software) 00200 // 1 = Message is known to contain non-conformant content. 00201 const TUint32 KMmsNonConformantMessage = 0x01000000; 00202 00203 // DRM Status in iMtmData1 00204 // A DRM attachment is corrupted and removed 00205 const TUint32 EMmsDrmCorruptedAttachment = 0x02000000; 00206 00207 // Here is still a gap here: bits 0x0C000000 are free. 00208 // (flags 0x04000000 and 0x08000000) 00209 // Should be reserved for future DRM needs. 00210 00211 // <DEPRECATED> 00212 // Range of bits that indicates that the message has some special content 00213 // that needs some non-standard handling 00214 const TUint32 KMmsSpecialContentMask = 0xF0000000; 00215 // undefined special content reserved for future use: 0x10000000 00216 // Special content is "postcard" 00217 const TUint32 KMmsPostcard = 0x20000000; 00218 // Special content is "upload" 00219 const TUint32 KMmsUpload = 0x40000000; 00220 // undefined special content reserved for future use: 0x80000000 00221 // </DEPRECATED> 00222 00223 00224 //----------------------------------------------- 00225 // Flag bits in iMtmData2 00226 // The default value for all bits is 0 00227 //----------------------------------------------- 00228 00229 // Message notification stuff stored in iMtmData2 00230 // Response already sent to MMSC 00231 // or MMBox item for which notify response will not be sent. 00232 // (fetch acknowledged with M-Acknowledge.ind PDU) 00233 const TUint32 KMmsNotifyResponseSent = 0x00000001; 00234 // undecoded (binary) notification 00235 const TUint32 KMmsNotificationBinary = 0x00000002; 00236 00237 // The following flags are related to notifications that are stored in inbox 00238 // to allow the messages to be fetched manually (not automatically) 00239 // has the message corresponding to this notification expired 00240 00241 // Message corresponding to this notification has expired 00242 // 0 = Message has not expired, 1 = Message has expired 00243 const TUint32 KMmsMessageExpired = 0x00000004; 00244 00245 // <DEPRECATED> 00246 const TUint32 KMmsDeleteAtExpiration = 0x00000008; 00247 // </DEPRECATED> 00248 00249 // Operation mask. The next bits tell which operation is currently in progress. 00250 // When a message is being forwarded or fetched, another simulataneous operation 00251 // is not allowed. 00252 // 0 = no operation 00253 const TUint32 KMmsOperationIdentifier = 0x00000070; 00254 00255 // fetch operation in progress 00256 const TUint32 KMmsOperationFetch = 0x00000010; 00257 // forward operation in progress or finished 00258 const TUint32 KMmsOperationForward = 0x00000020; 00259 // delete operation in progress or finished 00260 const TUint32 KMmsOperationDelete = 0x00000030; 00261 // 0x00000040 - 0x00000070 reserved for future operations 00262 00263 // Operation progress bits (4 bits) 00264 00265 // Is new operation allowed for this notification 00266 // 0 = new operation allowed 00267 // 1 = new operation forbidden 00268 const TUint32 KMmsNewOperationForbidden = 0x00000080; 00269 // Is operation currently ongoing 00270 // 0 = no operation 00271 // 1 = operation ongoing 00272 const TUint32 KMmsOperationOngoing = 0x00000100; 00273 // Has operation finished (and is result available) 00274 // 0 = operation has not finished 00275 // 1 = operation has finished 00276 const TUint32 KMmsOperationFinished = 0x00000200; 00277 // Operation result (if operation has finished) 00278 // 0 = OK 00279 // 1 = error 00280 const TUint32 KMmsOperationResult = 0x00000400; 00281 00282 // Has message been stored to MMBox as result of some operation 00283 // or was it in MMBox originally 00284 // 0 = Message not in MMBox 00285 // 1 = Message stored in MMBox 00286 const TUint32 KMmsStoredInMMBox = 0x00000800; 00287 00288 // 0 = Not applicable 00289 // 1 = Notification received in deferred mode, but response 00290 // sending was not allowed, and therefore notify-response 00291 // has not been sent to MMSC 00292 const TUint32 KMmsDeferredButResponseNotSent = 0x00001000; 00293 00294 // This is some special notification that should never be 00295 // moved to inbox in manual mode even if fetching fails. 00296 // 0 = May be moved if needed 00297 // 1 = Do not move to inbox 00298 const TUint32 KMmsDoNotMoveToInbox = 0x00002000; 00299 00300 00301 00302 // The following flags are for all message types 00303 00304 // bits reserved for future use 00305 const TUint32 KMmsReservedMtmData2 = 0x000F8000; 00306 00307 // Delivery status bytes, valid only for sent messages 00308 // that have been moved to "Sent" folder. 00309 // If the message has been copied or moved to another folder, 00310 // there is no guarantee that these bits are valid anymore. 00311 00312 const TUint32 KMmsDeliveryStatusMask = 0x00F00000; 00313 // Delivery report was not requested 00314 // If the user specifies that no delivery reports are wanted, 00315 // the message stays in this state forever. 00316 // This status means that no delivery data is available. 00317 const TUint32 KMmsDeliveryStatusNotRequested = 0x00000000; 00318 00319 // If Delivery reports have been requested, the number of 00320 // recipients and received delivery reports is stored in 00321 // iMtmData3 00322 00323 // Delivery status is "pending" when the delivery status of all 00324 // recipients is "pending". 00325 const TUint32 KMmsDeliveryStatusPending = 0x00100000; 00326 // delivery status is "partial" when delivery raport about 00327 // successful delivery has been received from at least one recipient. 00328 const TUint32 KMmsDeliveryStatusPartial = 0x00200000; 00329 // delivery status is "failed" if sending has failed for at least 00330 // one recipient 00331 const TUint32 KMmsDeliveryStatysFailed = 0x00400000; 00332 // delivery status is "delivered" if the status of all 00333 // recipients is delivered 00334 const TUint32 KMmsDeliveryStatysDelivered = 0x00800000; 00335 00336 00337 // bits reserved for UI usage 00338 // MMS engine will not change these bits. 00339 // The default value for these bits will be 0. 00340 const TUint32 KMmsReservedForUI = 0xFF000000; 00341 00342 //----------------------------------------------- 00343 // Flag bits in iMtmData3 00344 // The default value for all bits is 0 00345 //----------------------------------------------- 00346 00347 // These are mask values for ranges of bits to be used as counters 00348 // The shift constants indicate how much the value must be shifted 00349 // right to be used as a number, and how much the number must be 00350 // shifted to left before being stored. 00351 00352 // To examine the value use: 00353 // number = ( iMtmData3 & mask ) >> shift; 00354 // To set the value use: 00355 // iMtmData3 &= ~mask; 00356 // iMtmData3 |= number << shift; 00357 00358 // Retry count mask ( for automatic retries ) 00359 // max 15 retries counted 00360 const TUint32 KMmsRetryCountMask = 0x0000000F; 00361 // no shift needed for automatic retry count 00362 00363 // Retry count mask ( for manual retries ) 00364 // This is reserved for UI usage. 00365 // max 15 retries counted 00366 const TUint32 KMmsManualRetryCountMask = 0x000000F0; 00367 const TInt KMmsManualRetryCountShift = 4; 00368 00369 // The following three areas are used to keep track of delivery status 00370 // of several recipients. These fields are valid only for messages 00371 // that have been sent and have been moved to sent folder. 00372 // The values are not valid in any other context as it is impossible 00373 // to prevent applications from copying messages behind MMS engine's back. 00374 // MMS engine tries to clear these bits in other places, but there is no 00375 // guarantee of that. 00376 00377 // Total number of recipients 00378 // Max 255 recipients 00379 const TUint32 KMmsSentItemTotalRecipientsMask = 0x0000FF00; 00380 const TInt KMmsSentItemTotalRecipientsShift = 8; 00381 00382 // Number of delivery reports with status "delivered" 00383 // Max 255 delivery reports 00384 const TUint32 KMmsSentItemSuccessfullyDeliveredMask = 0x00FF0000; 00385 const TInt KMmsSentItemSuccessfullyDeliveredShift = 16; 00386 00387 // Number of delivery reports with status "failed" 00388 // Max 255 delivery reports 00389 const TUint32 KMmsSentItemFailedDeliveryMask = 0xFF000000; 00390 const TInt KMmsSentItemFailedDeliveryShift = 24; 00391 00392 00393 // End of MtmData bit definitions 00394 // ------------------------------------------------------ 00395 00396 // Unicode BOM 00397 const TUint16 KMmsByteOrderMark = 0xFEFF; 00398 const TUint16 KMmsReversedByteOrderMark = 0xFFFE; 00399 00400 // Maximum iDescription read from text/plain file in terms of characters. 00401 const TInt KMmsMaxDescription = 128; 00402 00403 // WSP assigned numbers 00404 const TInt8 KUidMmsWSPMultiPartMixed = 0x23; 00405 const TInt8 KUidMmsWSPMultiPartRelated = 0x33; 00406 00407 // MMS specific field assignments 00408 // same values used for enum values in internal storage 00409 const TUint8 KMmsMessageClassPersonal = 128; 00410 const TUint8 KMmsMessageClassAdvertisement = 129; 00411 const TUint8 KMmsMessageClassInformational = 130; 00412 const TUint8 KMmsMessageClassAuto = 131; 00413 00414 // X-Mms-Message-Type field 00415 // message types since encaps 1.0 00416 const TUint8 KMmsMessageTypeMSendReq = 128; 00417 const TUint8 KMmsMessageTypeMSendConf = 129; 00418 const TUint8 KMmsMessageTypeMNotificationInd = 130; 00419 const TUint8 KMmsMessageTypeMNotifyRespInd = 131; 00420 const TUint8 KMmsMessageTypeMRetrieveConf = 132; 00421 const TUint8 KMmsMessageTypeAcknowledgeInd = 133; 00422 const TUint8 KMmsMessageTypeDeliveryInd = 134; 00423 // message types since encaps 1.1 00424 const TUint8 KMmsMessageTypeReadRecInd = 135; 00425 const TUint8 KMmsMessageTypeReadOrigInd = 136; 00426 const TUint8 KMmsMessageTypeForwardReq = 137; 00427 const TUint8 KMmsMessageTypeForwardConf = 138; 00428 // message types since encaps 1.2 00429 const TUint8 KMmsMessageTypeMboxStoreReq = 139; 00430 const TUint8 KMmsMessageTypeMboxStoreConf = 140; 00431 const TUint8 KMmsMessageTypeMboxViewReq = 141; 00432 const TUint8 KMmsMessageTypeMboxViewConf = 142; 00433 const TUint8 KMmsMessageTypeMBoxUploadReq = 143; 00434 const TUint8 KMmsMessageTypeMBoxUploadConf = 144; 00435 const TUint8 KMmsMessageTypeMBoxDeleteReq = 145; 00436 const TUint8 KMmsMessageTypeMBoxDeleteConf = 146; 00437 const TUint8 KMmsMessageTypeMBoxDescr = 147; 00438 00439 00440 // X-Mms-Priority field 00441 const TUint8 KMmsPriorityLow = 128; 00442 const TUint8 KMmsPriorityNormal = 129; 00443 const TUint8 KMmsPriorityHigh = 130; 00444 00445 // All fields with Yes/No value 00446 const TUint8 KMmsYes = 128; 00447 const TUint8 KMmsNo = 129; 00448 00449 // X-Mms-Sender-Visibility field 00450 const TUint8 KMmsSenderHide = 128; 00451 const TUint8 KMmsSenderShow = 129; 00452 00453 // X-Mms-Status field 00454 const TUint8 KMmsMessageStatusExpired = 128; 00455 const TUint8 KMmsMessageStatusRetrieved = 129; 00456 const TUint8 KMmsMessageStatusRejected = 130; 00457 const TUint8 KMmsMessageStatusDeferred = 131; 00458 const TUint8 KMmsMessageStatusUnrecognized = 132; 00459 const TUint8 KMmsMessageStatusIndeterminate = 133; 00460 const TUint8 KMmsMessageStatusForwarded = 134; 00461 const TUint8 KMmsMessageStatusUnreachable = 135; 00462 00463 // X-Mms-Read-Status field 00464 const TUint8 KMmsReadStatusRead = 128; 00465 const TUint8 KMmsReadStatusDeletedWithoutBeingRead = 129; 00466 00467 // X-Mms-Reply-Charging field 00468 const TUint8 KMmsReplyChargingRequested = 128; 00469 const TUint8 KMmsReplyChargingRequestedTextOnly = 129; 00470 const TUint8 KMmsReplyChargingAccepted = 130; 00471 const TUint8 KMmsReplyChargingAcceptedTextOnly = 131; 00472 00473 // field assignments since MMS encapsulation 1.2 00474 00475 // X-Mms-Mbox-Quotas field & // X-Mms-MBox-Totals field 00476 const TUint8 KMmsMessageCountToken = 128; 00477 const TUint8 KMmsMessageSizeToken = 129; 00478 00479 // X-Mms-MM-Flags field 00480 const TUint8 KMmsAddToken = 128; 00481 const TUint8 KMmsRemoveToken = 129; 00482 const TUint8 KMmsFilterToken = 130; 00483 00484 // X-Mms-MM-State field 00485 const TUint8 KMmsDraft = 128; 00486 const TUint8 KMmsSent = 129; 00487 const TUint8 KMmsNew = 130; 00488 const TUint8 KMmsRetrieved = 131; 00489 const TUint8 KMmsForwarded = 132; 00490 00491 #start_since SINCE_3_1_SDK 00492 00496 const TInt KMmsResponseStatusOK = 128; 00497 #end_since SINCE_3_1_SDK 00498 00499 00500 // end of field assignments 00501 00502 // All content type strings are in KContentTypeTable 00503 // some are defined here to be used separately 00504 _LIT8( KMmsAny, "*/*" ); 00505 _LIT8( KMmsTextPlain, "text/plain" ); 00506 _LIT8( KMmsApplicationSmil, "application/smil" ); 00507 _LIT8( KMmsUnknownType, "application/octet-stream" ); 00508 _LIT8( KMmsMultipartReport, "multipart/report" ); 00509 00510 // DRM Content subtypes. CMsvMimeHeaders class saves type and subtype separately 00511 _LIT8( KMmsDrmMessageCT, "vnd.oma.drm.message" ); // DRM Message 00512 _LIT8( KMmsDrmContentCT, "vnd.oma.drm.content" ); // DRM Content 00513 _LIT8( KMmsDrmRightsTFCT, "vnd.oma.drm.rights+xml" ); // DRM Rights in textual format 00514 _LIT8( KMmsDrmRightsBFCT, "vnd.oma.drm.rights+wbxml" ); // DRM Rights in binary format 00515 _LIT8( KMmsDrmDcfCT, "vnd.oma.drm.dcf" ); // DRM Content format for discrete media 00516 00517 // Content type parameters used by Java WMA to specify application id 00518 _LIT8( KMmsJavaApplicationId, "Application-ID" ); 00519 _LIT8( KMmsJavaReplyApplicationId, "Reply-To-Application-ID" ); 00520 00521 // Assigned numbers for content types 00522 // If new assignments are needed, check numbers from KContentTypeTable 00523 const TUint8 KMmsAssignedAny = 0x00; 00524 const TUint8 KMmsAssignedText = 0x01; 00525 const TUint8 KMmsAssignedTextPlain = 0x03; 00526 const TUint8 KMmsAssignedApplicationVndWapMultipart = 0x22; 00527 const TUint8 KMmsAssignedApplicationVndWapMultipartMixed = 0x23; 00528 const TUint8 KMmsAssignedApplicationVndWapMultipartAlternative = 0x26; 00529 const TUint8 KMmsAssignedApplicationXml = 0x27; 00530 const TUint8 KMmsAssignedApplicationVndWapWbxml = 0x29; 00531 const TUint8 KMmsAssignedApplicationVndWapMultipartRelated = 0x33; 00532 00533 // IANA / WSP numbers for character sets 00534 const TUint8 KMmsUtf8 = 0x6A; 00535 const TUint8 KMmsUsAscii = 0x03; 00536 const TUint KMmsIso10646Ucs2 = 0x03E8; // 1000 00537 const TUint KMmsUTF16 = 0x03F7; // 1015 00538 const TUint KMmsUTF16BE = 0x03F5; // 1013 00539 const TUint KMmsUTF16LE = 0x03F6; // 1014 00540 const TUint KMmsUtf7 = 0x03F4; // 1012 00541 00542 // CR/LF definitions for removal... 00543 _LIT ( KLf16, "\x00A" ); // 16 bit line feed 00544 _LIT ( KCr16, "\x00D" ); // 16 bit carriage return 00545 _LIT ( KSpace16, " " ); // 16 bit space 00546 _LIT ( KEqualsQuestion16, "=?" ); // MIME encoding starter 00547 _LIT ( KQuote16, "\x022" ); // 16 bit quote 00548 _LIT ( KMmsUnicodeLineSeparator, "\x2028"); 00549 _LIT ( KMmsUnicodeParagraphSeparator, "\x2029"); 00550 _LIT ( KMmsIdeographicSpace, "\x3000"); 00551 _LIT8 ( KLf8, "\x00A" ); // 8 bit line feed 00552 _LIT8 ( KCr8, "\x00D" ); // 8 bit carriage return 00553 _LIT8 ( KSpace8, " " ); // 8 bit space 00554 _LIT8 ( KSemicolon8, ";" ); // 8 bit semicolon 00555 _LIT8 ( KEquals8, "=" ); // 8 bit equal 00556 _LIT8 ( KMmsSlash8, "/"); // 8 bit slash 00557 _LIT8 ( KMmsLeftAngle, "<"); // 8 bit angle bracket 00558 _LIT8 ( KMmsRightAngle, ">"); // 8 bit angle bracket 00559 00560 // MACROS 00561 00562 // DATA TYPES 00563 00564 // Possible address types 00565 enum TMmsAddressType 00566 { 00567 EMmsAddressTypeUnknown = 0, 00568 EMmsAddressTypeMobile, 00569 EMmsAddressTypeEmail, 00570 EMmsAddressTypeIpv4, 00571 EMmsAddressTypeIpv6 00572 }; 00573 00574 // These panics should only be used in ASSERT_DEBUGs 00575 // (The user should not see these) 00576 enum TMmsPanic // MMS error codes 00577 { 00578 EMmsBadMtmTypeUid = KErrNone+1, 00579 EMmsNoCMsvEntrySet, 00580 EMmsEntryTypeNotSupported, 00581 EMmsHeadersNotFound, 00582 EMmsAlreadyBusy, 00583 EMmsUnknownState, 00584 EMmsActiveInFinalProgress, 00585 EMmsFinalProgressFailed, 00586 EMmsNotAMessageEntry 00587 }; 00588 00589 00590 // Values for recipient types 00591 // <DEPRECATED> 00592 // old TMmsRecipients type values should not be used any more! 00593 // instead use TMsvRecipientType values by Symbian! 00594 typedef TMsvRecipientType TMmsRecipients; 00595 #define EMmsTo EMsvRecipientTo 00596 #define EMmsCc EMsvRecipientCc 00597 #define EMmsBcc EMsvRecipientBcc 00598 // </DEPRECATED> 00599 00600 enum TMmsYesNo 00601 { 00602 EMmsYes = KMmsYes, 00603 EMmsNo = KMmsNo 00604 }; 00605 00606 // Values for message Delivery-Report 00607 typedef TMmsYesNo TMmsMessageDeliveryReport; 00608 // Values for Delivery-Report allowed 00609 typedef TMmsYesNo TMmsSettingsDeliveryReportAllowed; 00610 // Values for message Read-Reply 00611 typedef TMmsYesNo TMmsMessageReadReply; 00612 // Values for Read-Reply sending allowed 00613 typedef TMmsYesNo TMmsSettingsReadReplyAllowed; 00614 00615 // <DEPRECATED> 00616 // use EMmsYes and EMmsNo instead 00617 #define EMmsDeliveryReportYes EMmsYes 00618 #define EMmsDeliveryReportNo EMmsNo 00619 00620 #define EMmsDeliveryReportAllowedYes EMmsYes 00621 #define EMmsDeliveryReportAllowedNo EMmsNo 00622 00623 #define EMmsReadReplyYes EMmsYes 00624 #define EMmsReadreplyNo EMmsNo 00625 00626 #define EMmsReadReplyAllowedYes EMmsYes 00627 #define EMmsReadReplyAllowedNo EMmsNo 00628 // </DEPRECATED> 00629 00630 // Values for message class 00631 enum TMmsMessageClass 00632 { 00633 EMmsMimimumMessageClass = KMmsMessageClassPersonal, 00634 EMmsClassPersonal = KMmsMessageClassPersonal, 00635 EMmsClassAdvertisement = KMmsMessageClassAdvertisement, 00636 EMmsClassInformational = KMmsMessageClassInformational, 00637 EMmsClassAuto = KMmsMessageClassAuto, 00638 // change following if new message classes are added 00639 EMmsMaximumMessageClass = KMmsMessageClassAuto 00640 }; 00641 00642 // Values for message priority 00643 enum TMmsMessagePriority 00644 { 00645 EMmsMinimumPriority = KMmsPriorityLow, 00646 EMmsPriorityLow = KMmsPriorityLow, 00647 EMmsPriorityNormal = KMmsPriorityNormal, 00648 EMmsPriorityHigh = KMmsPriorityHigh, 00649 // change following if new priorities added 00650 EMmsMaximumPriority = KMmsPriorityHigh 00651 }; 00652 00653 // Values for message Sender-Visibility 00654 enum TMmsMessageSenderVisibility 00655 { 00656 EMmsSenderVisibilityDefault = 0, 00657 EMmsMinimumSenderVisibility = KMmsSenderHide, // always minimum 00658 EMmsSenderVisibilityHide = KMmsSenderHide, 00659 EMmsSenderVisibilityShow = KMmsSenderShow, 00660 EMmsMaximumSenderVisibility = KMmsSenderShow // change if new values added 00661 }; 00662 00663 00664 // Values for MMS Creation mode 00665 enum TMmsCreationMode 00666 { 00667 EMmsCreationModeRestricted = 0, 00668 EMmsCreationModeWarning = 1, 00669 EMmsCreationModeFree = 2 00670 }; 00671 00672 // <DEPRECATED> 00673 // Values for Message-Type field 00674 // correspond to binary encoding! 00675 // Message type cannot be set using Client MTM 00676 // Use KMms constants instead. 00677 enum TMmsMessageType 00678 { 00679 EMmsMSendReq = KMmsMessageTypeMSendReq, 00680 EMmsMSendConf = KMmsMessageTypeMSendConf, 00681 EMmsNotificationInd = KMmsMessageTypeMNotificationInd, 00682 EMmsNotifyRespInd = KMmsMessageTypeMNotifyRespInd, 00683 EMmsRetrieveConf = KMmsMessageTypeMRetrieveConf, 00684 EMmsAcknowledgeInd = KMmsMessageTypeAcknowledgeInd, 00685 EMmsDeliveryInd = KMmsMessageTypeDeliveryInd, 00686 EMmsReadRecInd = KMmsMessageTypeReadRecInd, 00687 EMmsReadOrigInd = KMmsMessageTypeReadOrigInd, 00688 EMmsForwardReq = KMmsMessageTypeForwardReq, 00689 EMmsForwardConf = KMmsMessageTypeForwardConf 00690 }; 00691 // </DEPRECATED> 00692 00693 00694 // <DEPRECATED> 00695 // Values for Status field 00696 // correspond to binary encoding! 00697 // Use KMms constants instead. 00698 enum TMmsMessageStatus 00699 { 00700 EMmsStatusExpired = KMmsMessageStatusExpired, 00701 EMmsStatusRetrieved = KMmsMessageStatusRetrieved, 00702 EMmsStatusRejected = KMmsMessageStatusRejected, 00703 EMmsStatusDeferred = KMmsMessageStatusDeferred, 00704 EMmsStatusUnrecognized = KMmsMessageStatusUnrecognized, 00705 EMmsStatusIndeterminate = KMmsMessageStatusIndeterminate, 00706 EMmsStatusForwarded = KMmsMessageStatusForwarded, 00707 EMmsStatusUnreachable = KMmsMessageStatusUnreachable 00708 }; 00709 // </DEPRECATED> 00710 00711 // Values for read status 00712 // correspond to binary encoding! 00713 enum TMmsReadStatus 00714 { 00715 EMmsReadStatusRead = KMmsReadStatusRead, 00716 EMmsReadStatusDeletedWithoutBeingRead = KMmsReadStatusDeletedWithoutBeingRead 00717 }; 00718 00719 enum TMmsReplyCharging 00720 { 00721 EMmsReplyChargingRequested = KMmsReplyChargingRequested, 00722 EMmsReplyChargingRequestedTextOnly = KMmsReplyChargingRequestedTextOnly, 00723 EMmsReplyChargingAccepted = KMmsReplyChargingAccepted, 00724 EMmsReplyChargingAcceptedTextOnly = KMmsReplyChargingAcceptedTextOnly 00725 }; 00726 00727 // mms receiving mode 00728 enum TMmsReceivingMode 00729 { 00730 EMmsReceivingMin = 1, 00731 EMmsReceivingAutomatic = EMmsReceivingMin, 00732 EMmsReceivingManual = EMmsReceivingMin + 1, 00733 EMmsReceivingPostpone = EMmsReceivingManual + 1, 00734 EMmsReceivingReject = EMmsReceivingPostpone + 1, 00735 EMmsReceivingMax = EMmsReceivingReject 00736 }; 00737 00738 // Factory settings 00739 enum TMmsFactorySettingsLevel 00740 { 00741 EMmsFactorySettingsLevelNormal = 0x0, 00742 EMmsFactorySettingsLevelDeep 00743 }; 00744 00745 // Type of the Delete operation 00746 enum TMmsDeleteOperationType 00747 { 00748 EMmsDeleteNotificationOnly, 00749 EMmsDeleteMMBoxOnly, 00750 EMmsDeleteBoth 00751 }; 00752 00753 // MMSCONST_H 00754 #endif 00755 00756 // End of File