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 "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
21 #if !( defined __SYMBIAN_CNTMODEL_HIDE_DBMS__ )
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};
489 /** Identifies a voice dial field. This is a voice recording associated with a telephone number
494 const TUid KUidContactsVoiceDialField={KUidContactsVoiceDialFieldValue};
495 /** Identifies a Geo field in the contact item.
499 const TUid KUidContactFieldGEO={KUidContactFieldGEOValue};
500 /** Indicates no field present.
504 const TUid KUidContactFieldNone={KUidContactFieldNoneValue};
505 /** Used in field type matching to indicate that all field types match.
509 const TInt32 KUidContactFieldMatchAllValue=0x110FFF22;
510 /** Used in field type matching to indicate that all field types match.
514 const TUid KUidContactFieldMatchAll={KUidContactFieldMatchAllValue};
517 * Contact field type vCard mappings.
518 * The vCard mapping describes how the field should be handled by the
519 * vCard import/export code.
521 /** Field type maps to the Post office box field in an ADR vCard property value.
525 const TUid KUidContactFieldVCardMapPOSTOFFICE={KIntContactFieldVCardMapPOSTOFFICE};
526 /** Field type maps to the Extended address field in an ADR vCard property value.
530 const TUid KUidContactFieldVCardMapEXTENDEDADR={KIntContactFieldVCardMapEXTENDEDADR};
531 /** Field type maps to vCard property ADR.
535 const TUid KUidContactFieldVCardMapADR={KIntContactFieldVCardMapADR};
536 /** Field type maps to the Locality field in an ADR vCard property value.
540 const TUid KUidContactFieldVCardMapLOCALITY={KIntContactFieldVCardMapLOCALITY};
541 /** Field type maps to the Region field in an ADR vCard property value.
545 const TUid KUidContactFieldVCardMapREGION={KIntContactFieldVCardMapREGION};
546 /** Field type maps to the Postcode field in an ADR vCard property value.
550 const TUid KUidContactFieldVCardMapPOSTCODE={KIntContactFieldVCardMapPOSTCODE};
551 /** Field type maps to the Country field in an ADR vCard property value.
555 const TUid KUidContactFieldVCardMapCOUNTRY={KIntContactFieldVCardMapCOUNTRY};
557 /** Field type maps to vCard property AGENT.
561 const TUid KUidContactFieldVCardMapAGENT={KIntContactFieldVCardMapAGENT};
562 /** Field type maps to vCard property BDAY.
566 const TUid KUidContactFieldVCardMapBDAY={KIntContactFieldVCardMapBDAY};
567 /** Field type maps to vCard property EMAIL.
571 const TUid KUidContactFieldVCardMapEMAILINTERNET={KIntContactFieldVCardMapEMAILINTERNET};
572 /** Field type maps to vCard property GEO.
576 const TUid KUidContactFieldVCardMapGEO={KIntContactFieldVCardMapGEO};
577 /** Field type maps to vCard property LABEL.
581 const TUid KUidContactFieldVCardMapLABEL={KIntContactFieldVCardMapLABEL};
582 /** Field type maps to vCard property LOGO.
586 const TUid KUidContactFieldVCardMapLOGO={KIntContactFieldVCardMapLOGO};
587 /** Field type maps to vCard property MAILER.
591 const TUid KUidContactFieldVCardMapMAILER={KIntContactFieldVCardMapMAILER};
592 /** Field type maps to vCard property NOTE.
596 const TUid KUidContactFieldVCardMapNOTE={KIntContactFieldVCardMapNOTE};
597 /** Field type maps to vCard property ORG.
601 const TUid KUidContactFieldVCardMapORG={KIntContactFieldVCardMapORG};
602 /** Field type maps to vCard X-IRMC-ORG parameter of property SOUND.
606 const TUid KUidContactFieldVCardMapORGPronunciation={KIntContactFieldVCardMapORGPronunciation};
607 /** Field type maps to vCard property PHOTO.
611 const TUid KUidContactFieldVCardMapPHOTO={KIntContactFieldVCardMapPHOTO};
612 /** Field type maps to vCard property ROLE.
616 const TUid KUidContactFieldVCardMapROLE={KIntContactFieldVCardMapROLE};
617 /** Field type maps to vCard property SOUND.
621 const TUid KUidContactFieldVCardMapSOUND={KIntContactFieldVCardMapSOUND};
622 /** Field type maps to vCard property TEL.
626 const TUid KUidContactFieldVCardMapTEL={KIntContactFieldVCardMapTEL};
627 /** Field type maps to vCard property parameter FAX.
631 const TUid KUidContactFieldVCardMapTELFAX={KIntContactFieldVCardMapTELFAX};
632 /** Field type maps to vCard property TITLE.
636 const TUid KUidContactFieldVCardMapTITLE={KIntContactFieldVCardMapTITLE};
637 /** Field type maps to vCard property URL.
641 const TUid KUidContactFieldVCardMapURL={KIntContactFieldVCardMapURL};
642 /** Field maps to the vCard property N (name). Must be used in conjunction with
643 a name-related field type (e.g. KUidContactFieldGivenName) to form the given
648 const TUid KUidContactFieldVCardMapUnusedN={KIntContactFieldVCardMapUnusedN};
649 /** Field type maps to vCard property FN (the display name).
653 const TUid KUidContactFieldVCardMapUnusedFN={KIntContactFieldVCardMapUnusedFN};
654 /** Mapping between the vCard property and field type is not required.
658 const TUid KUidContactFieldVCardMapNotRequired={KIntContactFieldVCardMapNotRequired};
659 /** Unknown mapping between a field type and a vCard extension property.
663 const TUid KUidContactFieldVCardMapUnknownXDash={KIntContactFieldVCardMapUnknownXDash};
664 /** Unknown mapping between field type and non-extension vCard property.
668 const TUid KUidContactFieldVCardMapUnknown={KIntContactFieldVCardMapUnknown};
669 /** Field type maps to vCard property UID.
673 const TUid KUidContactFieldVCardMapUID={KIntContactFieldVCardMapUID};
674 /** Field type maps to vCard property parameter WORK.
678 const TUid KUidContactFieldVCardMapWORK={KIntContactFieldVCardMapWORK};
679 /** Field type maps to vCard property parameter HOME.
683 const TUid KUidContactFieldVCardMapHOME={KIntContactFieldVCardMapHOME};
684 /** Field type maps to vCard property parameter MSG.
688 const TUid KUidContactFieldVCardMapMSG={KIntContactFieldVCardMapMSG};
689 /** Field type maps to vCard property parameter VOICE.
693 const TUid KUidContactFieldVCardMapVOICE={KIntContactFieldVCardMapVOICE};
694 /** Field type maps to vCard property parameter FAX.
698 const TUid KUidContactFieldVCardMapFAX={KIntContactFieldVCardMapFAX};
699 /** Field type maps to vCard property parameter PREF.
703 const TUid KUidContactFieldVCardMapPREF={KIntContactFieldVCardMapPREF};
704 /** Field type maps to vCard property parameter CELL.
708 const TUid KUidContactFieldVCardMapCELL={KIntContactFieldVCardMapCELL};
709 /** Field type maps to vCard property parameter INTERNET.
713 const TUid KUidContactFieldVCardMapINTERNET={KIntContactFieldVCardMapINTERNET};
714 /** Field type maps to vCard property parameter PAGER.
718 const TUid KUidContactFieldVCardMapPAGER={KIntContactFieldVCardMapPAGER};
719 /** Field type maps to vCard property parameter BBS.
723 const TUid KUidContactFieldVCardMapBBS={KIntContactFieldVCardMapBBS};
724 /** Field type maps to vCard property parameter MODEM.
728 const TUid KUidContactFieldVCardMapMODEM={KIntContactFieldVCardMapMODEM};
729 /** Field type maps to vCard property parameter CAR.
733 const TUid KUidContactFieldVCardMapCAR={KIntContactFieldVCardMapCAR};
734 /** Field type maps to vCard property parameter ISDN.
738 const TUid KUidContactFieldVCardMapISDN={KIntContactFieldVCardMapISDN};
739 /** Field type maps to vCard property parameter VIDEO.
743 const TUid KUidContactFieldVCardMapVIDEO={KIntContactFieldVCardMapVIDEO};
744 /** Field type maps to vCard property parameter DOM.
748 const TUid KUidContactFieldVCardMapDOM={KIntContactFieldVCardMapDOM};
749 /** Field type maps to vCard property parameter INTL.
753 const TUid KUidContactFieldVCardMapINTL={KIntContactFieldVCardMapINTL};
754 /** Field type maps to vCard property parameter POSTAL.
758 const TUid KUidContactFieldVCardMapPOSTAL={KIntContactFieldVCardMapPOSTAL};
759 /** Field type maps to vCard property parameter PARCEL.
763 const TUid KUidContactFieldVCardMapPARCEL={KIntContactFieldVCardMapPARCEL};
764 /** Field type maps to vCard property parameter value GIF.
768 const TUid KUidContactFieldVCardMapGIF={KIntContactFieldVCardMapGIF};
769 /** Field type maps to vCard property parameter value CGM.
773 const TUid KUidContactFieldVCardMapCGM={KIntContactFieldVCardMapCGM};
774 /** Field type maps to vCard property parameter value WMF.
778 const TUid KUidContactFieldVCardMapWMF={KIntContactFieldVCardMapWMF};
779 /** Field type maps to vCard property parameter value BMP.
783 const TUid KUidContactFieldVCardMapBMP={KIntContactFieldVCardMapBMP};
784 /** Field type maps to vCard property parameter value MET.
788 const TUid KUidContactFieldVCardMapMET={KIntContactFieldVCardMapMET};
789 /** Field type maps to vCard property parameter value PMB.
793 const TUid KUidContactFieldVCardMapPMB={KIntContactFieldVCardMapPMB};
794 /** Field type maps to vCard property parameter value DIB.
798 const TUid KUidContactFieldVCardMapDIB={KIntContactFieldVCardMapDIB};
799 /** Field type maps to vCard property parameter value PICT.
803 const TUid KUidContactFieldVCardMapPICT={KIntContactFieldVCardMapPICT};
804 /** Field type maps to vCard property parameter value TIFF.
808 const TUid KUidContactFieldVCardMapTIFF={KIntContactFieldVCardMapTIFF};
809 /** Field type maps to vCard property parameter value PDF.
813 const TUid KUidContactFieldVCardMapPDF={KIntContactFieldVCardMapPDF};
814 /** Field type maps to vCard property parameter value PS.
818 const TUid KUidContactFieldVCardMapPS={KIntContactFieldVCardMapPS};
819 /** Field type maps to vCard property parameter value JPEG.
823 const TUid KUidContactFieldVCardMapJPEG={KIntContactFieldVCardMapJPEG};
824 /** Field type maps to vCard property parameter value MPEG.
828 const TUid KUidContactFieldVCardMapMPEG={KIntContactFieldVCardMapMPEG};
829 /** Field type maps to vCard property parameter value MPEG2.
833 const TUid KUidContactFieldVCardMapMPEG2={KIntContactFieldVCardMapMPEG2};
834 /** Field type maps to vCard property parameter value AVI.
838 const TUid KUidContactFieldVCardMapAVI={KIntContactFieldVCardMapAVI};
839 /** Field type maps to vCard property parameter value QTIME.
843 const TUid KUidContactFieldVCardMapQTIME={KIntContactFieldVCardMapQTIME};
844 /** Field type maps to vCard property TZ.
848 const TUid KUidContactFieldVCardMapTZ={KIntContactFieldVCardMapTZ};
849 /** Field type maps to vCard property KEY.
853 const TUid KUidContactFieldVCardMapKEY={KIntContactFieldVCardMapKEY};
854 /** Field type maps to vCard property parameter value X509.
858 const TUid KUidContactFieldVCardMapX509={KIntContactFieldVCardMapX509};
859 /** Field type maps to vCard property parameter value PGP.
863 const TUid KUidContactFieldVCardMapPGP={KIntContactFieldVCardMapPGP};
864 /** Used internally by the contacts model.
868 const TUid KUidContactFieldVCardMapSMIME={KIntContactFieldVCardMapSMIME};
869 /** The field contains a Wireless Village instant messaging ID.
873 const TUid KUidContactFieldVCardMapWV={KIntContactFieldVCardMapWV};
874 /** Field type mapping of a vCard property to contacts Second Name Field
878 const TUid KUidContactFieldVCardMapSECONDNAME={KIntContactFieldVCardMapSECONDNAME};
879 /** Field type mapping of a vCard property to contacts SIP Identity Field.
883 const TUid KUidContactFieldVCardMapSIPID={KIntContactFieldVCardMapSIPID};
884 /** Field type maps to vCard extension property parameter value POC
885 (Push to Talk Over Cellular).
889 const TUid KUidContactFieldVCardMapPOC={KIntContactFieldVCardMapPOC};
890 /** Field type maps to vCard extension property parameter value SWIS
895 const TUid KUidContactFieldVCardMapSWIS={KIntContactFieldVCardMapSWIS};
896 /** Field type maps to vCard extension property parameter value VOIP
901 const TUid KUidContactFieldVCardMapVOIP={KIntContactFieldVCardMapVOIP};
902 /** Field type maps to vCard extension property parameter value Assistant
906 const TUid KUidContactFieldVCardMapAssistant={KIntContactFieldVCardMapAssistant};
907 /** Field type maps to vCard extension property parameter value AssistantTel
911 const TUid KUidContactFieldVCardMapAssistantTel={KIntContactFieldVCardMapAssistantTel};
912 /** Field type maps to vCard extension property parameter value Anniversary
916 const TUid KUidContactFieldVCardMapAnniversary={KIntContactFieldVCardMapAnniversary};
917 /** Field type maps to vCard extension property parameter value Spouse
921 const TUid KUidContactFieldVCardMapSpouse={KIntContactFieldVCardMapSpouse};
922 /** Field type maps to vCard extension property parameter value Children
926 const TUid KUidContactFieldVCardMapChildren={KIntContactFieldVCardMapChildren};
927 /** Field type maps to vCard extension property parameter value Class
931 const TUid KUidContactFieldVCardMapClass={KIntContactFieldVCardMapClass};
932 /** Field type maps to vCard extension property parameter value Department
936 const TUid KUidContactFieldVCardMapDepartment={KIntContactFieldVCardMapDepartment};
938 /** Name of the TYPE property parameter, for which the values are work, home etc.
942 _LIT(KVersitParamType,"TYPE");
943 /** Name of the WORK property parameter.
947 _LIT(KVersitParamWork,"WORK");
948 /** Name of the HOME property parameter.
952 _LIT(KVersitParamHome,"HOME");
953 /** Name of the MSG property parameter.
957 _LIT(KVersitParamMsg,"MSG");
958 /** Name of the VOICE property parameter.
962 _LIT(KVersitParamVoice,"VOICE");
963 /** Name of the FAX property parameter.
967 _LIT(KVersitParamFax,"FAX");
968 /** Name of the PREF property parameter.
972 _LIT(KVersitParamPref,"PREF");
973 /** Name of the CELL property parameter.
977 _LIT(KVersitParamCell,"CELL");
978 /** Name of the PAGER property parameter.
982 _LIT(KVersitParamPager,"PAGER");
983 /** Name of the BBS property parameter.
987 _LIT(KVersitParamBbs,"BBS");
988 /** Name of the MODEM property parameter.
992 _LIT(KVersitParamModem,"MODEM");
993 /** Name of the CAR property parameter.
997 _LIT(KVersitParamCar,"CAR");
998 /** Name of the ISDN property parameter.
1002 _LIT(KVersitParamIsdn,"ISDN");
1003 /** Name of the VIDEO property parameter.
1007 _LIT(KVersitParamVideo,"VIDEO");
1008 /** Name of the DOM property parameter.
1012 _LIT(KVersitParamDom,"DOM");
1013 /** Name of the GIF property parameter.
1017 _LIT(KVersitParamGif,"GIF");
1018 /** Name of the CGM property parameter.
1022 _LIT(KVersitParamCgm,"CGM");
1023 /** Name of the WMF property parameter.
1027 _LIT(KVersitParamWmf,"WMF");
1028 /** Name of the BMP property parameter.
1032 _LIT(KVersitParamBmp,"BMP");
1033 /** Name of the MET property parameter.
1037 _LIT(KVersitParamMet,"MET");
1038 /** Name of the PMB property parameter.
1042 _LIT(KVersitParamPmb,"PMB");
1043 /** Name of the DIB property parameter.
1047 _LIT(KVersitParamDib,"DIB");
1048 /** Name of the PICT property parameter.
1052 _LIT(KVersitParamPict,"PICT");
1053 /** Name of the TIFF property parameter.
1057 _LIT(KVersitParamTiff,"TIFF");
1058 /** Name of the PDF property parameter.
1062 _LIT(KVersitParamPdf,"PDF");
1063 /** Name of the PS property parameter.
1067 _LIT(KVersitParamPs,"PS");
1068 /** Name of the JPEG property parameter.
1072 _LIT(KVersitParamJpeg,"JPEG");
1073 /** Name of the MPEG property parameter.
1077 _LIT(KVersitParamMpeg,"MPEG");
1078 /** Name of the MPEG2 property parameter.
1082 _LIT(KVersitParamMpeg2,"MPEG2");
1083 /** Name of the AVI property parameter.
1087 _LIT(KVersitParamAvi,"AVI");
1088 /** Name of the QTIME property parameter.
1092 _LIT(KVersitParamQtime,"QTIME");
1093 /** Name of the X509 property parameter.
1097 _LIT(KVersitParamX509,"X509");
1098 /** Name of the PGP property parameter.
1102 _LIT(KVersitParamPGP,"PGP");
1103 /** Name of the INTERNET property parameter.
1107 _LIT(KVersitParamINTERNET,"INTERNET");
1109 /** 8 bit name of the TYPE property parameter.
1113 _LIT8(KVersitParam8Type,"TYPE");
1114 /** 8 bit name of the WORK property parameter.
1118 _LIT8(KVersitParam8Work,"WORK");
1119 /** 8 bit name of the HOME property parameter.
1123 _LIT8(KVersitParam8Home,"HOME");
1124 /** 8 bit name of the MSG property parameter.
1128 _LIT8(KVersitParam8Msg,"MSG");
1129 /** 8 bit name of the VOICE property parameter.
1133 _LIT8(KVersitParam8Voice,"VOICE");
1134 /** 8 bit name of the FAX property parameter.
1138 _LIT8(KVersitParam8Fax,"FAX");
1139 /** 8 bit name of the PREF property parameter.
1143 _LIT8(KVersitParam8Pref,"PREF");
1144 /** 8 bit name of the CELL property parameter.
1148 _LIT8(KVersitParam8Cell,"CELL");
1149 /** 8 bit name of the PAGER property parameter.
1153 _LIT8(KVersitParam8Pager,"PAGER");
1154 /** 8 bit name of the BBS property parameter.
1158 _LIT8(KVersitParam8Bbs,"BBS");
1159 /** 8 bit name of the MODEM property parameter.
1163 _LIT8(KVersitParam8Modem,"MODEM");
1164 /** 8 bit name of the CAR property parameter.
1168 _LIT8(KVersitParam8Car,"CAR");
1169 /** 8 bit name of the ISDN property parameter.
1173 _LIT8(KVersitParam8Isdn,"ISDN");
1174 /** 8 bit name of the VIDEO property parameter.
1178 _LIT8(KVersitParam8Video,"VIDEO");
1179 /** 8 bit name of the DOM property parameter.
1183 _LIT8(KVersitParam8Dom,"DOM");
1184 /** 8 bit name of the GIF property parameter.
1188 _LIT8(KVersitParam8Gif,"GIF");
1189 /** 8 bit name of the CGM property parameter.
1193 _LIT8(KVersitParam8Cgm,"CGM");
1194 /** 8 bit name of the WMF property parameter.
1198 _LIT8(KVersitParam8Wmf,"WMF");
1199 /** 8 bit name of the BMP property parameter.
1203 _LIT8(KVersitParam8Bmp,"BMP");
1204 /** 8 bit name of the MET property parameter.
1208 _LIT8(KVersitParam8Met,"MET");
1209 /** 8 bit name of the PMB property parameter.
1213 _LIT8(KVersitParam8Pmb,"PMB");
1214 /** 8 bit name of the DIB property parameter.
1218 _LIT8(KVersitParam8Dib,"DIB");
1219 /** 8 bit name of the PICT property parameter.
1223 _LIT8(KVersitParam8Pict,"PICT");
1224 /** 8 bit name of the TIFF property parameter.
1228 _LIT8(KVersitParam8Tiff,"TIFF");
1229 /** 8 bit name of the PDF property parameter.
1233 _LIT8(KVersitParam8Pdf,"PDF");
1234 /** 8 bit name of the PS property parameter.
1238 _LIT8(KVersitParam8Ps,"PS");
1239 /** 8 bit name of the JPEG property parameter.
1243 _LIT8(KVersitParam8Jpeg,"JPEG");
1244 /** 8 bit name of the MPEG property parameter.
1248 _LIT8(KVersitParam8Mpeg,"MPEG");
1249 /** 8 bit name of the MPEG2 property parameter.
1253 _LIT8(KVersitParam8Mpeg2,"MPEG2");
1254 /** 8 bit name of the AVI property parameter.
1258 _LIT8(KVersitParam8Avi,"AVI");
1259 /** 8 bit name of the QTIME property parameter.
1263 _LIT8(KVersitParam8Qtime,"QTIME");
1264 /** 8 bit name of the X509 property parameter.
1268 _LIT8(KVersitParam8X509,"X509");
1269 /** 8 bit name of the PGP property parameter.
1273 _LIT8(KVersitParam8PGP,"PGP");
1274 /** 8 bit name of the INTERNET property parameter.
1278 _LIT8(KVersitParam8Internet,"INTERNET");
1281 8 bit name of the X-IRMC-N property parameter (family or given
1282 name pronunciation).
1286 _LIT8(KVersitParam8NamePrn,"X-IRMC-N");
1288 8 bit name of the X-IRMC-ORG property parameter (company
1289 name pronunciation).
1293 _LIT8(KVersitParam8CompanyPrn,"X-IRMC-ORG");
1295 8 bit name of the X-IRMC- property parameter (pronunciation field prefix).
1299 _LIT8(KVersitParam8PronunciationPrefix,"X-IRMC-");
1303 class CContactIdArray : public CBase
1304 /** Array of contact item IDs (TContactItemIds).
1306 Instances of this class are used in several contact database functions,
1307 for instance CContactDatabase::DeleteContactsL().
1313 IMPORT_C static CContactIdArray* NewL();
1314 IMPORT_C static CContactIdArray* NewLC();
1315 IMPORT_C static CContactIdArray* NewL(const CContactIdArray* aArray);
1316 IMPORT_C static CContactIdArray* NewLC(const CContactIdArray* aArray);
1317 static CContactIdArray* NewLC(RReadStream& aStream);
1318 IMPORT_C ~CContactIdArray();
1319 inline const TContactItemId& operator[](TInt aIndex) const;
1320 inline TContactItemId& operator[](TInt aIndex);
1321 inline TInt Count() const;
1322 inline void Reset();
1323 IMPORT_C TInt Find(TContactItemId aId) const;
1324 IMPORT_C void AddL(TContactItemId aId);
1326 inline void Remove(TInt aIndex);
1327 inline void Remove(TInt aIndex,TInt aCount);
1328 inline void InsertL(TInt aIndex,TContactItemId aId);
1329 IMPORT_C void MoveL(TInt aOldIndex,TInt aNewIndex);
1330 IMPORT_C void ReverseOrder();
1331 IMPORT_C void InternalizeL(RReadStream& aStream);
1332 IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
1333 public: // intended for internal Contacts Model usage only
1338 void CloneL(const CContactIdArray* aArray);
1340 CArrayFixFlat<TContactItemId> *iIds;
1342 inline const TContactItemId& CContactIdArray::operator[](TInt aIndex) const
1343 /** Gets the indexed TContactItemId.
1345 @param aIndex The position of the contact ID within the array, relative to zero.
1346 This must be non-negative and less than the number of objects in the array
1347 otherwise the operator raises a panic.
1348 @return A reference to a const element of the array. */
1349 { return (*iIds)[aIndex]; }
1351 inline TContactItemId& CContactIdArray::operator[](TInt aIndex)
1352 /** Gets the indexed TContactItemId.
1354 @param aIndex The position of the contact ID within the array, relative to zero.
1355 This must be non-negative and less than the number of objects in the array
1356 otherwise the operator raises a panic.
1357 @return A reference to a non-const element of the array. */
1358 { return (*iIds)[aIndex]; }
1360 inline TInt CContactIdArray::Count() const
1361 /** Gets the number of contact IDs in the array.
1363 @return The number of contact IDs in the array. */
1364 { return iIds->Count(); }
1366 inline void CContactIdArray::Reset()
1367 /** Removes all contact IDs from the array. */
1370 inline void CContactIdArray::Remove(TInt aIndex)
1371 /** Removes the indexed contact ID from the array.
1373 The index value must not be negative and must not be greater than the number
1374 of elements in the array, otherwise the function raises a panic.
1376 @param aIndex The index of the contact ID to remove. */
1377 { iIds->Delete(aIndex); }
1379 inline void CContactIdArray::Remove(TInt aIndex,TInt aCount)
1380 /** Removes a block of contact IDs from the array.
1382 This function raises a panic if any of the following are true:-
1384 - aCount is negative
1386 - aIndex is negative or is greater than the number of elements currently in
1389 - the sum of aIndex and aCount is greater than the number of elements currently
1392 @param aIndex The index of the first contact ID to remove.
1393 @param aCount The number of contiguous contact IDs to delete from the array.
1394 If this is not specified, a value of one is assumed. */
1395 { iIds->Delete(aIndex,aCount); }
1397 inline void CContactIdArray::InsertL(TInt aIndex,TContactItemId aId)
1398 /** Inserts a contact ID into the array.
1400 The index must be valid or a panic occurs.
1402 The function may attempt to expand the array buffer. If there is insufficient
1403 memory available, the function leaves. The leave code is one of the system
1404 error codes. If the function leaves, the array is left in the state it was
1407 @param aIndex The index at which to insert the contact ID.
1408 @param aId The contact ID to insert. */
1409 { iIds->InsertL(aIndex,aId); }
1412 /** Shows supported event action types that are used when deleting
1413 a contact or an array of contacts
1417 enum TCntSendEventAction
1421 ESendUnknownChangesEvent = 2,