1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
21 #if !( defined __SYMBIAN_CNTMODEL_HIDE_DBMS__ && defined __SYMBIAN_CNTMODEL_USE_SQLITE__ )
37 const TInt KSpeedDialPhoneLength = 64;
43 const TInt KCntMinSpeedDialIndex = 1;
49 const TInt KCntMaxSpeedDialIndex = 9;
56 const TInt KMaxPhoneMatchLength = 15;
62 const TInt KLowerSevenDigits = 7;
65 Used for firstname, lastname, companyname, secondname and their
66 associated pronunciation fields and e-mail address
70 const TInt KCntMaxTextFieldLength=255;
78 typedef TBuf<KSpeedDialPhoneLength> TSpeedDialPhoneNumber;
80 /** Contact item ID. These are used to uniquely identify contact items within a
81 contacts database. Contact items include contact cards, contact card templates,
82 contact card groups and own cards. Contact item IDs are also used to uniquely
87 typedef TInt32 TContactItemId;
89 /** A UID which identifies a contact item field's type. The possible values are
90 defined as UIDs in cntdef.h.
94 typedef TUid TFieldType;
96 /** A contact item field's storage type.
98 This is an unsigned integer value which identifies the type of data stored
99 in a contact item field. The possible values are defined in cntdef.hrh as:
101 - KStorageTypeText (used by CContactTextFields)
103 - KStorageTypeStore (used by CContactStoreFields)
105 - KStorageTypeContactItemId (used by CContactAgentFields)
107 - KStorageTypeDateTime (used by CContactDateFields)
109 Note that numeric fields are not supported. Numbers (e.g. telephone
110 numbers) are stored in the database using text fields.
114 typedef TUint TStorageType;
116 /** Machine identifier.
118 This is used when synchronising the contact database to identify the
119 machine with which the database has been synchronised.
120 @see CContactDatabase::SetLastSyncDateL()
121 @see CContactDatabase::GetLastSyncDateL().
125 typedef TInt32 TContactSyncId;
127 /** Stores the value of KUidContactsDbFile as an integer.
131 const TInt KUidContactsDbFileValue=0x100065FF;
133 The third UID of the contacts database file, c:\\system\\data\\contacts.cdb.
134 This should be used by file recogniser implementations.
138 const TUid KUidContactsDbFile={KUidContactsDbFileValue};
141 /** NULL contact item ID. Indicates that no contact item is present.
145 const TContactItemId KNullContactId=-1;
147 The ID of the system template.
151 const TContactItemId KGoldenTemplateId=0;
153 /** Identifies a vCard that has been pasted from the clipboard into the Contacts application.
157 const TUid KClipboardUidTypeVCard={0x100038f6};
159 /** Identifies a contact card (CContactCard).
163 const TUid KUidContactCard={KUidContactCardValue};
164 /** Identifies a contact group (CContactGroup).
168 const TUid KUidContactGroup={KUidContactGroupValue};
169 /** Identifies the system template (CContactTemplate).
173 const TUid KUidContactTemplate={KUidContactTemplateValue};
174 /** Identifies an own card (CContactOwnCard).
178 const TUid KUidContactOwnCard={KUidContactOwnCardValue};
179 /** Identifies a non-system template (CContactCardTemplate).
183 const TUid KUidContactCardTemplate={KUidContactCardTemplateValue};
184 /** The UID that identifies ICC entries. These are a special type of
185 contact item that are stored in the SIM (ICC) card on the phone.
190 const TUid KUidContactICCEntry={KUidContactICCEntryValue};
192 /** Identifies any CContactItem-derived class (all of the above).
196 const TUid KUidContactItem={0x10005673};
197 /** This identifies the CContactCard and CContactGroup classes.
198 It is used internally by the contacts model.
202 const TUid KUidContactCardOrGroup={0x10005F71};
207 * These are used to indicate the speed-dial position for a particular field.
208 * They are added to the content type of a phone number field set as a
209 * speed-dial using CContactDatabase::SetFieldAsSpeedDialL().
211 /** Field maps to the first speed dial position.
215 const TUid KUidSpeedDialOne={KUidSpeedDialOneValue};
216 /** Field maps to the second speed dial position.
220 const TUid KUidSpeedDialTwo={KUidSpeedDialTwoValue};
221 /** Field maps to the third speed dial position.
225 const TUid KUidSpeedDialThree={KUidSpeedDialThreeValue};
226 /** Field maps to the fourth speed dial position.
230 const TUid KUidSpeedDialFour={KUidSpeedDialFourValue};
231 /** Field maps to the fifth speed dial position.
235 const TUid KUidSpeedDialFive={KUidSpeedDialFiveValue};
236 /** Field maps to the sixth speed dial position.
240 const TUid KUidSpeedDialSix={KUidSpeedDialSixValue};
241 /** Field maps to the seventh speed dial position.
245 const TUid KUidSpeedDialSeven={KUidSpeedDialSevenValue};
246 /** Field maps to the eighth speed dial position.
250 const TUid KUidSpeedDialEight={KUidSpeedDialEightValue};
251 /** Field maps to the ninth speed dial position.
255 const TUid KUidSpeedDialNine={KUidSpeedDialNineValue};
258 * Contact field type UIDs.
264 const TUid KUidContactFieldAddress={KUidContactFieldAddressValue};
265 /** Post office box field.
269 const TUid KUidContactFieldPostOffice={KUidContactFieldPostOfficeValue};
270 /** Extended address field.
274 const TUid KUidContactFieldExtendedAddress={KUidContactFieldExtendedAddressValue};
279 const TUid KUidContactFieldLocality={KUidContactFieldLocalityValue};
284 const TUid KUidContactFieldRegion={KUidContactFieldRegionValue};
289 const TUid KUidContactFieldPostcode={KUidContactFieldPostCodeValue};
294 const TUid KUidContactFieldCountry={KUidContactFieldCountryValue};
296 /** Company name field.
300 const TUid KUidContactFieldCompanyName={KUidContactFieldCompanyNameValue};
301 /** Company name pronunciation field.
305 const TUid KUidContactFieldCompanyNamePronunciation={KUidContactFieldCompanyNamePronunciationValue};
306 /** Phone number field.
310 const TUid KUidContactFieldPhoneNumber={KUidContactFieldPhoneNumberValue};
311 /** Given name field.
315 const TUid KUidContactFieldGivenName={KUidContactFieldGivenNameValue};
316 /** Family name field.
320 const TUid KUidContactFieldFamilyName={KUidContactFieldFamilyNameValue};
321 /** Given name pronunciation field.
325 const TUid KUidContactFieldGivenNamePronunciation={KUidContactFieldGivenNamePronunciationValue};
326 /** Family name pronunciation field.
330 const TUid KUidContactFieldFamilyNamePronunciation={KUidContactFieldFamilyNamePronunciationValue};
331 /** Middle name field.
335 const TUid KUidContactFieldAdditionalName={KUidContactFieldAdditionalNameValue};
336 /** Name suffix field.
340 const TUid KUidContactFieldSuffixName={KUidContactFieldSuffixNameValue};
341 /** Name prefix field.
345 const TUid KUidContactFieldPrefixName={KUidContactFieldPrefixNameValue};
350 const TUid KUidContactFieldHidden={KUidContactFieldHiddenValue};
355 const TUid KUidContactFieldDefinedText={KUidContactFieldDefinedTextValue};
356 /** Email address field.
360 const TUid KUidContactFieldEMail={KUidContactFieldEMailValue};
361 /** Telephone number used for a messaging service.
365 const TUid KUidContactFieldMsg={KUidContactFieldMsgValue};
366 /** Telephone number used for SMS messages.
370 const TUid KUidContactFieldSms={KUidContactFieldSmsValue};
371 /** Fax number field.
375 const TUid KUidContactFieldFax={KUidContactFieldFaxValue};
380 const TUid KUidContactFieldNote={KUidContactFieldNoteValue};
385 const TUid KUidContactStorageInline={KUidContactFieldStorageInlineValue};
390 const TUid KUidContactFieldBirthday={KUidContactFieldBirthdayValue};
395 const TUid KUidContactFieldUrl={KUidContactFieldUrlValue};
396 /** Template label field (a label which is used to refer to a template, for instance "work
397 template", "personal template").
401 const TUid KUidContactFieldTemplateLabel={KUidContactFieldTemplateLabelValue};
402 /** A picture field, for instance a logo or a photo.
406 const TUid KUidContactFieldPicture={KUidContactFieldPictureValue};
407 /** Used internally by the contacts model.
411 const TUid KUidContactFieldDTMF={KUidContactFieldDTMFValue};
412 /** Identifies a ring tone field. This is a ring tone that is associated with a contact item.
416 const TUid KUidContactFieldRingTone={KUidContactFieldRingToneValue};
417 /** Identifies a job title field.
421 const TUid KUidContactFieldJobTitle={KUidContactFieldJobTitleValue};
422 /** Identifies an instant messaging address field.
426 const TUid KUidContactFieldIMAddress = { KUidContactFieldIMAddressValue };
427 /** Identifies a USIM second name field. This field is provided to
428 store an additional representation of the contact's name, such as a
429 nickname or a different representation. An example could be a Japanese
430 contact which has a romanised name and an alternative representation using
431 kanji (pictogram) characters.
435 const TUid KUidContactFieldSecondName = { KUidContactFieldSecondNameValue };
436 /** Identifies a SIP identity field.
440 const TUid KUidContactFieldSIPID = { KUidContactFieldSIPIDValue };
441 /** Identifies a Assistant field.
445 const TUid KUidContactFieldAssistant = { KUidContactFieldAssistantValue };
446 /** Identifies an Anniversary field.
450 const TUid KUidContactFieldAnniversary = { KUidContactFieldAnniversaryValue };
451 /** Identifies a Spouse field.
455 const TUid KUidContactFieldSpouse = { KUidContactFieldSpouseValue };
456 /** Identifies a Children field.
460 const TUid KUidContactFieldChildren = { KUidContactFieldChildrenValue };
461 /** Identifies a Class field.
465 const TUid KUidContactFieldClass = { KUidContactFieldClassValue };
466 /** Identifies a Department field.
470 const TUid KUidContactFieldDepartmentName = { KUidContactFieldDepartmentNameValue };
472 * CContactICCEntry (Telephony specific) UIDs.
474 /** Identifies an ICC slot contact field in the contact item.
478 const TUid KUidContactFieldICCSlot={KUidContactFieldICCSlotValue};
479 /** Identifies an ICC Phonebook contact field in the contact item.
483 const TUid KUidContactFieldICCPhonebook={KUidContactFieldICCPhonebookValue};
484 /** Identifies an ICC Group contact field in the contact item.
488 const TUid KUidContactFieldICCGroup={KUidContactFieldICCGroupValue};
490 /** Identifies a voice dial field. This is a voice recording associated with a telephone number
495 const TUid KUidContactsVoiceDialField={KUidContactsVoiceDialFieldValue};
497 /** Indicates no field present.
501 const TUid KUidContactFieldNone={KUidContactFieldNoneValue};
502 /** Used in field type matching to indicate that all field types match.
506 const TInt32 KUidContactFieldMatchAllValue=0x110FFF22;
507 const TUid KUidContactFieldMatchAll={KUidContactFieldMatchAllValue};
510 * Contact field type vCard mappings.
511 * The vCard mapping describes how the field should be handled by the
512 * vCard import/export code.
514 /** Field type maps to the Post office box field in an ADR vCard property value.
518 const TUid KUidContactFieldVCardMapPOSTOFFICE={KIntContactFieldVCardMapPOSTOFFICE};
519 /** Field type maps to the Extended address field in an ADR vCard property value.
523 const TUid KUidContactFieldVCardMapEXTENDEDADR={KIntContactFieldVCardMapEXTENDEDADR};
524 /** Field type maps to vCard property ADR.
528 const TUid KUidContactFieldVCardMapADR={KIntContactFieldVCardMapADR};
529 /** Field type maps to the Locality field in an ADR vCard property value.
533 const TUid KUidContactFieldVCardMapLOCALITY={KIntContactFieldVCardMapLOCALITY};
534 /** Field type maps to the Region field in an ADR vCard property value.
538 const TUid KUidContactFieldVCardMapREGION={KIntContactFieldVCardMapREGION};
539 /** Field type maps to the Postcode field in an ADR vCard property value.
543 const TUid KUidContactFieldVCardMapPOSTCODE={KIntContactFieldVCardMapPOSTCODE};
544 /** Field type maps to the Country field in an ADR vCard property value.
548 const TUid KUidContactFieldVCardMapCOUNTRY={KIntContactFieldVCardMapCOUNTRY};
550 /** Field type maps to vCard property AGENT.
554 const TUid KUidContactFieldVCardMapAGENT={KIntContactFieldVCardMapAGENT};
555 /** Field type maps to vCard property BDAY.
559 const TUid KUidContactFieldVCardMapBDAY={KIntContactFieldVCardMapBDAY};
560 /** Field type maps to vCard property EMAIL.
564 const TUid KUidContactFieldVCardMapEMAILINTERNET={KIntContactFieldVCardMapEMAILINTERNET};
565 /** Field type maps to vCard property GEO.
569 const TUid KUidContactFieldVCardMapGEO={KIntContactFieldVCardMapGEO};
570 /** Field type maps to vCard property LABEL.
574 const TUid KUidContactFieldVCardMapLABEL={KIntContactFieldVCardMapLABEL};
575 /** Field type maps to vCard property LOGO.
579 const TUid KUidContactFieldVCardMapLOGO={KIntContactFieldVCardMapLOGO};
580 /** Field type maps to vCard property MAILER.
584 const TUid KUidContactFieldVCardMapMAILER={KIntContactFieldVCardMapMAILER};
585 /** Field type maps to vCard property NOTE.
589 const TUid KUidContactFieldVCardMapNOTE={KIntContactFieldVCardMapNOTE};
590 /** Field type maps to vCard property ORG.
594 const TUid KUidContactFieldVCardMapORG={KIntContactFieldVCardMapORG};
595 /** Field type maps to vCard X-IRMC-ORG parameter of property SOUND.
599 const TUid KUidContactFieldVCardMapORGPronunciation={KIntContactFieldVCardMapORGPronunciation};
600 /** Field type maps to vCard property PHOTO.
604 const TUid KUidContactFieldVCardMapPHOTO={KIntContactFieldVCardMapPHOTO};
605 /** Field type maps to vCard property ROLE.
609 const TUid KUidContactFieldVCardMapROLE={KIntContactFieldVCardMapROLE};
610 /** Field type maps to vCard property SOUND.
614 const TUid KUidContactFieldVCardMapSOUND={KIntContactFieldVCardMapSOUND};
615 /** Field type maps to vCard property TEL.
619 const TUid KUidContactFieldVCardMapTEL={KIntContactFieldVCardMapTEL};
620 /** Field type maps to vCard property parameter FAX.
624 const TUid KUidContactFieldVCardMapTELFAX={KIntContactFieldVCardMapTELFAX};
625 /** Field type maps to vCard property TITLE.
629 const TUid KUidContactFieldVCardMapTITLE={KIntContactFieldVCardMapTITLE};
630 /** Field type maps to vCard property URL.
634 const TUid KUidContactFieldVCardMapURL={KIntContactFieldVCardMapURL};
635 /** Field maps to the vCard property N (name). Must be used in conjunction with
636 a name-related field type (e.g. KUidContactFieldGivenName) to form the given
641 const TUid KUidContactFieldVCardMapUnusedN={KIntContactFieldVCardMapUnusedN};
642 /** Field type maps to vCard property FN (the display name).
646 const TUid KUidContactFieldVCardMapUnusedFN={KIntContactFieldVCardMapUnusedFN};
647 /** Mapping between the vCard property and field type is not required.
651 const TUid KUidContactFieldVCardMapNotRequired={KIntContactFieldVCardMapNotRequired};
652 /** Unknown mapping between a field type and a vCard extension property.
656 const TUid KUidContactFieldVCardMapUnknownXDash={KIntContactFieldVCardMapUnknownXDash};
657 /** Unknown mapping between field type and non-extension vCard property.
661 const TUid KUidContactFieldVCardMapUnknown={KIntContactFieldVCardMapUnknown};
662 /** Field type maps to vCard property UID.
666 const TUid KUidContactFieldVCardMapUID={KIntContactFieldVCardMapUID};
667 /** Field type maps to vCard property parameter WORK.
671 const TUid KUidContactFieldVCardMapWORK={KIntContactFieldVCardMapWORK};
672 /** Field type maps to vCard property parameter HOME.
676 const TUid KUidContactFieldVCardMapHOME={KIntContactFieldVCardMapHOME};
677 /** Field type maps to vCard property parameter MSG.
681 const TUid KUidContactFieldVCardMapMSG={KIntContactFieldVCardMapMSG};
682 /** Field type maps to vCard property parameter VOICE.
686 const TUid KUidContactFieldVCardMapVOICE={KIntContactFieldVCardMapVOICE};
687 /** Field type maps to vCard property parameter FAX.
691 const TUid KUidContactFieldVCardMapFAX={KIntContactFieldVCardMapFAX};
692 /** Field type maps to vCard property parameter PREF.
696 const TUid KUidContactFieldVCardMapPREF={KIntContactFieldVCardMapPREF};
697 /** Field type maps to vCard property parameter CELL.
701 const TUid KUidContactFieldVCardMapCELL={KIntContactFieldVCardMapCELL};
702 /** Field type maps to vCard property parameter PAGER.
706 const TUid KUidContactFieldVCardMapPAGER={KIntContactFieldVCardMapPAGER};
707 /** Field type maps to vCard property parameter BBS.
711 const TUid KUidContactFieldVCardMapBBS={KIntContactFieldVCardMapBBS};
712 /** Field type maps to vCard property parameter MODEM.
716 const TUid KUidContactFieldVCardMapMODEM={KIntContactFieldVCardMapMODEM};
717 /** Field type maps to vCard property parameter CAR.
721 const TUid KUidContactFieldVCardMapCAR={KIntContactFieldVCardMapCAR};
722 /** Field type maps to vCard property parameter ISDN.
726 const TUid KUidContactFieldVCardMapISDN={KIntContactFieldVCardMapISDN};
727 /** Field type maps to vCard property parameter VIDEO.
731 const TUid KUidContactFieldVCardMapVIDEO={KIntContactFieldVCardMapVIDEO};
732 /** Field type maps to vCard property parameter DOM.
736 const TUid KUidContactFieldVCardMapDOM={KIntContactFieldVCardMapDOM};
737 /** Field type maps to vCard property parameter INTL.
741 const TUid KUidContactFieldVCardMapINTL={KIntContactFieldVCardMapINTL};
742 /** Field type maps to vCard property parameter POSTAL.
746 const TUid KUidContactFieldVCardMapPOSTAL={KIntContactFieldVCardMapPOSTAL};
747 /** Field type maps to vCard property parameter PARCEL.
751 const TUid KUidContactFieldVCardMapPARCEL={KIntContactFieldVCardMapPARCEL};
752 /** Field type maps to vCard property parameter value GIF.
756 const TUid KUidContactFieldVCardMapGIF={KIntContactFieldVCardMapGIF};
757 /** Field type maps to vCard property parameter value CGM.
761 const TUid KUidContactFieldVCardMapCGM={KIntContactFieldVCardMapCGM};
762 /** Field type maps to vCard property parameter value WMF.
766 const TUid KUidContactFieldVCardMapWMF={KIntContactFieldVCardMapWMF};
767 /** Field type maps to vCard property parameter value BMP.
771 const TUid KUidContactFieldVCardMapBMP={KIntContactFieldVCardMapBMP};
772 /** Field type maps to vCard property parameter value MET.
776 const TUid KUidContactFieldVCardMapMET={KIntContactFieldVCardMapMET};
777 /** Field type maps to vCard property parameter value PMB.
781 const TUid KUidContactFieldVCardMapPMB={KIntContactFieldVCardMapPMB};
782 /** Field type maps to vCard property parameter value DIB.
786 const TUid KUidContactFieldVCardMapDIB={KIntContactFieldVCardMapDIB};
787 /** Field type maps to vCard property parameter value PICT.
791 const TUid KUidContactFieldVCardMapPICT={KIntContactFieldVCardMapPICT};
792 /** Field type maps to vCard property parameter value TIFF.
796 const TUid KUidContactFieldVCardMapTIFF={KIntContactFieldVCardMapTIFF};
797 /** Field type maps to vCard property parameter value PDF.
801 const TUid KUidContactFieldVCardMapPDF={KIntContactFieldVCardMapPDF};
802 /** Field type maps to vCard property parameter value PS.
806 const TUid KUidContactFieldVCardMapPS={KIntContactFieldVCardMapPS};
807 /** Field type maps to vCard property parameter value JPEG.
811 const TUid KUidContactFieldVCardMapJPEG={KIntContactFieldVCardMapJPEG};
812 /** Field type maps to vCard property parameter value MPEG.
816 const TUid KUidContactFieldVCardMapMPEG={KIntContactFieldVCardMapMPEG};
817 /** Field type maps to vCard property parameter value MPEG2.
821 const TUid KUidContactFieldVCardMapMPEG2={KIntContactFieldVCardMapMPEG2};
822 /** Field type maps to vCard property parameter value AVI.
826 const TUid KUidContactFieldVCardMapAVI={KIntContactFieldVCardMapAVI};
827 /** Field type maps to vCard property parameter value QTIME.
831 const TUid KUidContactFieldVCardMapQTIME={KIntContactFieldVCardMapQTIME};
832 /** Field type maps to vCard property TZ.
836 const TUid KUidContactFieldVCardMapTZ={KIntContactFieldVCardMapTZ};
837 /** Field type maps to vCard property KEY.
841 const TUid KUidContactFieldVCardMapKEY={KIntContactFieldVCardMapKEY};
842 /** Field type maps to vCard property parameter value X509.
846 const TUid KUidContactFieldVCardMapX509={KIntContactFieldVCardMapX509};
847 /** Field type maps to vCard property parameter value PGP.
851 const TUid KUidContactFieldVCardMapPGP={KIntContactFieldVCardMapPGP};
852 /** Used internally by the contacts model.
856 const TUid KUidContactFieldVCardMapSMIME={KIntContactFieldVCardMapSMIME};
857 /** The field contains a Wireless Village instant messaging ID.
861 const TUid KUidContactFieldVCardMapWV={KIntContactFieldVCardMapWV};
862 /** Field type mapping of a vCard property to contacts Second Name Field
866 const TUid KUidContactFieldVCardMapSECONDNAME={KIntContactFieldVCardMapSECONDNAME};
867 /** Field type mapping of a vCard property to contacts SIP Identity Field.
871 const TUid KUidContactFieldVCardMapSIPID={KIntContactFieldVCardMapSIPID};
872 /** Field type maps to vCard extension property parameter value POC
873 (Push to Talk Over Cellular).
877 const TUid KUidContactFieldVCardMapPOC={KIntContactFieldVCardMapPOC};
878 /** Field type maps to vCard extension property parameter value SWIS
883 const TUid KUidContactFieldVCardMapSWIS={KIntContactFieldVCardMapSWIS};
884 /** Field type maps to vCard extension property parameter value VOIP
889 const TUid KUidContactFieldVCardMapVOIP={KIntContactFieldVCardMapVOIP};
890 /** Field type maps to vCard extension property parameter value Assistant
894 const TUid KUidContactFieldVCardMapAssistant={KIntContactFieldVCardMapAssistant};
895 /** Field type maps to vCard extension property parameter value AssistantTel
899 const TUid KUidContactFieldVCardMapAssistantTel={KIntContactFieldVCardMapAssistantTel};
900 /** Field type maps to vCard extension property parameter value Anniversary
904 const TUid KUidContactFieldVCardMapAnniversary={KIntContactFieldVCardMapAnniversary};
905 /** Field type maps to vCard extension property parameter value Spouse
909 const TUid KUidContactFieldVCardMapSpouse={KIntContactFieldVCardMapSpouse};
910 /** Field type maps to vCard extension property parameter value Children
914 const TUid KUidContactFieldVCardMapChildren={KIntContactFieldVCardMapChildren};
915 /** Field type maps to vCard extension property parameter value Class
919 const TUid KUidContactFieldVCardMapClass={KIntContactFieldVCardMapClass};
920 /** Field type maps to vCard extension property parameter value Department
924 const TUid KUidContactFieldVCardMapDepartment={KIntContactFieldVCardMapDepartment};
926 /** Name of the TYPE property parameter, for which the values are work, home etc.
930 _LIT(KVersitParamType,"TYPE");
931 /** Name of the WORK property parameter.
935 _LIT(KVersitParamWork,"WORK");
936 /** Name of the HOME property parameter.
940 _LIT(KVersitParamHome,"HOME");
941 /** Name of the MSG property parameter.
945 _LIT(KVersitParamMsg,"MSG");
946 /** Name of the VOICE property parameter.
950 _LIT(KVersitParamVoice,"VOICE");
951 /** Name of the FAX property parameter.
955 _LIT(KVersitParamFax,"FAX");
956 /** Name of the PREF property parameter.
960 _LIT(KVersitParamPref,"PREF");
961 /** Name of the CELL property parameter.
965 _LIT(KVersitParamCell,"CELL");
966 /** Name of the PAGER property parameter.
970 _LIT(KVersitParamPager,"PAGER");
971 /** Name of the BBS property parameter.
975 _LIT(KVersitParamBbs,"BBS");
976 /** Name of the MODEM property parameter.
980 _LIT(KVersitParamModem,"MODEM");
981 /** Name of the CAR property parameter.
985 _LIT(KVersitParamCar,"CAR");
986 /** Name of the ISDN property parameter.
990 _LIT(KVersitParamIsdn,"ISDN");
991 /** Name of the VIDEO property parameter.
995 _LIT(KVersitParamVideo,"VIDEO");
996 /** Name of the DOM property parameter.
1000 _LIT(KVersitParamDom,"DOM");
1001 /** Name of the GIF property parameter.
1005 _LIT(KVersitParamGif,"GIF");
1006 /** Name of the CGM property parameter.
1010 _LIT(KVersitParamCgm,"CGM");
1011 /** Name of the WMF property parameter.
1015 _LIT(KVersitParamWmf,"WMF");
1016 /** Name of the BMP property parameter.
1020 _LIT(KVersitParamBmp,"BMP");
1021 /** Name of the MET property parameter.
1025 _LIT(KVersitParamMet,"MET");
1026 /** Name of the PMB property parameter.
1030 _LIT(KVersitParamPmb,"PMB");
1031 /** Name of the DIB property parameter.
1035 _LIT(KVersitParamDib,"DIB");
1036 /** Name of the PICT property parameter.
1040 _LIT(KVersitParamPict,"PICT");
1041 /** Name of the TIFF property parameter.
1045 _LIT(KVersitParamTiff,"TIFF");
1046 /** Name of the PDF property parameter.
1050 _LIT(KVersitParamPdf,"PDF");
1051 /** Name of the PS property parameter.
1055 _LIT(KVersitParamPs,"PS");
1056 /** Name of the JPEG property parameter.
1060 _LIT(KVersitParamJpeg,"JPEG");
1061 /** Name of the MPEG property parameter.
1065 _LIT(KVersitParamMpeg,"MPEG");
1066 /** Name of the MPEG2 property parameter.
1070 _LIT(KVersitParamMpeg2,"MPEG2");
1071 /** Name of the AVI property parameter.
1075 _LIT(KVersitParamAvi,"AVI");
1076 /** Name of the QTIME property parameter.
1080 _LIT(KVersitParamQtime,"QTIME");
1081 /** Name of the X509 property parameter.
1085 _LIT(KVersitParamX509,"X509");
1086 /** Name of the PGP property parameter.
1090 _LIT(KVersitParamPGP,"PGP");
1092 /** 8 bit name of the TYPE property parameter.
1096 _LIT8(KVersitParam8Type,"TYPE");
1097 /** 8 bit name of the WORK property parameter.
1101 _LIT8(KVersitParam8Work,"WORK");
1102 /** 8 bit name of the HOME property parameter.
1106 _LIT8(KVersitParam8Home,"HOME");
1107 /** 8 bit name of the MSG property parameter.
1111 _LIT8(KVersitParam8Msg,"MSG");
1112 /** 8 bit name of the VOICE property parameter.
1116 _LIT8(KVersitParam8Voice,"VOICE");
1117 /** 8 bit name of the FAX property parameter.
1121 _LIT8(KVersitParam8Fax,"FAX");
1122 /** 8 bit name of the PREF property parameter.
1126 _LIT8(KVersitParam8Pref,"PREF");
1127 /** 8 bit name of the CELL property parameter.
1131 _LIT8(KVersitParam8Cell,"CELL");
1132 /** 8 bit name of the PAGER property parameter.
1136 _LIT8(KVersitParam8Pager,"PAGER");
1137 /** 8 bit name of the BBS property parameter.
1141 _LIT8(KVersitParam8Bbs,"BBS");
1142 /** 8 bit name of the MODEM property parameter.
1146 _LIT8(KVersitParam8Modem,"MODEM");
1147 /** 8 bit name of the CAR property parameter.
1151 _LIT8(KVersitParam8Car,"CAR");
1152 /** 8 bit name of the ISDN property parameter.
1156 _LIT8(KVersitParam8Isdn,"ISDN");
1157 /** 8 bit name of the VIDEO property parameter.
1161 _LIT8(KVersitParam8Video,"VIDEO");
1162 /** 8 bit name of the DOM property parameter.
1166 _LIT8(KVersitParam8Dom,"DOM");
1167 /** 8 bit name of the GIF property parameter.
1171 _LIT8(KVersitParam8Gif,"GIF");
1172 /** 8 bit name of the CGM property parameter.
1176 _LIT8(KVersitParam8Cgm,"CGM");
1177 /** 8 bit name of the WMF property parameter.
1181 _LIT8(KVersitParam8Wmf,"WMF");
1182 /** 8 bit name of the BMP property parameter.
1186 _LIT8(KVersitParam8Bmp,"BMP");
1187 /** 8 bit name of the MET property parameter.
1191 _LIT8(KVersitParam8Met,"MET");
1192 /** 8 bit name of the PMB property parameter.
1196 _LIT8(KVersitParam8Pmb,"PMB");
1197 /** 8 bit name of the DIB property parameter.
1201 _LIT8(KVersitParam8Dib,"DIB");
1202 /** 8 bit name of the PICT property parameter.
1206 _LIT8(KVersitParam8Pict,"PICT");
1207 /** 8 bit name of the TIFF property parameter.
1211 _LIT8(KVersitParam8Tiff,"TIFF");
1212 /** 8 bit name of the PDF property parameter.
1216 _LIT8(KVersitParam8Pdf,"PDF");
1217 /** 8 bit name of the PS property parameter.
1221 _LIT8(KVersitParam8Ps,"PS");
1222 /** 8 bit name of the JPEG property parameter.
1226 _LIT8(KVersitParam8Jpeg,"JPEG");
1227 /** 8 bit name of the MPEG property parameter.
1231 _LIT8(KVersitParam8Mpeg,"MPEG");
1232 /** 8 bit name of the MPEG2 property parameter.
1236 _LIT8(KVersitParam8Mpeg2,"MPEG2");
1237 /** 8 bit name of the AVI property parameter.
1241 _LIT8(KVersitParam8Avi,"AVI");
1242 /** 8 bit name of the QTIME property parameter.
1246 _LIT8(KVersitParam8Qtime,"QTIME");
1247 /** 8 bit name of the X509 property parameter.
1251 _LIT8(KVersitParam8X509,"X509");
1252 /** 8 bit name of the PGP property parameter.
1256 _LIT8(KVersitParam8PGP,"PGP");
1259 8 bit name of the X-IRMC-N property parameter (family or given
1260 name pronunciation).
1264 _LIT8(KVersitParam8NamePrn,"X-IRMC-N");
1266 8 bit name of the X-IRMC-ORG property parameter (company
1267 name pronunciation).
1271 _LIT8(KVersitParam8CompanyPrn,"X-IRMC-ORG");
1273 8 bit name of the X-IRMC- property parameter (pronunciation field prefix).
1277 _LIT8(KVersitParam8PronunciationPrefix,"X-IRMC-");
1281 class CContactIdArray : public CBase
1282 /** Array of contact item IDs (TContactItemIds).
1284 Instances of this class are used in several contact database functions,
1285 for instance CContactDatabase::DeleteContactsL().
1291 IMPORT_C static CContactIdArray* NewL();
1292 IMPORT_C static CContactIdArray* NewLC();
1293 IMPORT_C static CContactIdArray* NewL(const CContactIdArray* aArray);
1294 IMPORT_C static CContactIdArray* NewLC(const CContactIdArray* aArray);
1295 static CContactIdArray* NewLC(RReadStream& aStream);
1296 IMPORT_C ~CContactIdArray();
1297 inline const TContactItemId& operator[](TInt aIndex) const;
1298 inline TContactItemId& operator[](TInt aIndex);
1299 inline TInt Count() const;
1300 inline void Reset();
1301 IMPORT_C TInt Find(TContactItemId aId) const;
1302 IMPORT_C void AddL(TContactItemId aId);
1304 inline void Remove(TInt aIndex);
1305 inline void Remove(TInt aIndex,TInt aCount);
1306 inline void InsertL(TInt aIndex,TContactItemId aId);
1307 IMPORT_C void MoveL(TInt aOldIndex,TInt aNewIndex);
1308 IMPORT_C void ReverseOrder();
1309 IMPORT_C void InternalizeL(RReadStream& aStream);
1310 IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
1311 public: // intended for internal Contacts Model usage only
1316 void CloneL(const CContactIdArray* aArray);
1318 CArrayFixFlat<TContactItemId> *iIds;
1320 inline const TContactItemId& CContactIdArray::operator[](TInt aIndex) const
1321 /** Gets the indexed TContactItemId.
1323 @param aIndex The position of the contact ID within the array, relative to zero.
1324 This must be non-negative and less than the number of objects in the array
1325 otherwise the operator raises a panic.
1326 @return A reference to a const element of the array. */
1327 { return (*iIds)[aIndex]; }
1329 inline TContactItemId& CContactIdArray::operator[](TInt aIndex)
1330 /** Gets the indexed TContactItemId.
1332 @param aIndex The position of the contact ID within the array, relative to zero.
1333 This must be non-negative and less than the number of objects in the array
1334 otherwise the operator raises a panic.
1335 @return A reference to a non-const element of the array. */
1336 { return (*iIds)[aIndex]; }
1338 inline TInt CContactIdArray::Count() const
1339 /** Gets the number of contact IDs in the array.
1341 @return The number of contact IDs in the array. */
1342 { return iIds->Count(); }
1344 inline void CContactIdArray::Reset()
1345 /** Removes all contact IDs from the array. */
1348 inline void CContactIdArray::Remove(TInt aIndex)
1349 /** Removes the indexed contact ID from the array.
1351 The index value must not be negative and must not be greater than the number
1352 of elements in the array, otherwise the function raises a panic.
1354 @param aIndex The index of the contact ID to remove. */
1355 { iIds->Delete(aIndex); }
1357 inline void CContactIdArray::Remove(TInt aIndex,TInt aCount)
1358 /** Removes a block of contact IDs from the array.
1360 This function raises a panic if any of the following are true:-
1362 - aCount is negative
1364 - aIndex is negative or is greater than the number of elements currently in
1367 - the sum of aIndex and aCount is greater than the number of elements currently
1370 @param aIndex The index of the first contact ID to remove.
1371 @param aCount The number of contiguous contact IDs to delete from the array.
1372 If this is not specified, a value of one is assumed. */
1373 { iIds->Delete(aIndex,aCount); }
1375 inline void CContactIdArray::InsertL(TInt aIndex,TContactItemId aId)
1376 /** Inserts a contact ID into the array.
1378 The index must be valid or a panic occurs.
1380 The function may attempt to expand the array buffer. If there is insufficient
1381 memory available, the function leaves. The leave code is one of the system
1382 error codes. If the function leaves, the array is left in the state it was
1385 @param aIndex The index at which to insert the contact ID.
1386 @param aId The contact ID to insert. */
1387 { iIds->InsertL(aIndex,aId); }
1390 /** Shows supported event action types that are used when deleting
1391 a contact or an array of contacts
1395 enum TCntSendEventAction
1399 ESendUnknownChangesEvent = 2,