×
Namespaces

Variants
Actions
(Difference between revisions)

Archived:Exporting a vCard item from contacts to a file using Symbian C++

From Nokia Developer Wiki
Jump to: navigation, search
Forum Nokia KB (Talk | contribs)
m (Protected "CS000901 - Exporting a vCard item to a file" [edit=sysop:move=sysop])
Forum Nokia KB (Talk | contribs)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 
__NOEDITSECTION__
 
__NOEDITSECTION__
 
+
{{KBCS}}
 
{|style="background:#eceff2" width="660px" border="1" cellpadding="5" cellspacing="0"  
 
{|style="background:#eceff2" width="660px" border="1" cellpadding="5" cellspacing="0"  
 
|-
 
|-
|'''ID''' ||  
+
|'''ID''' || CS000901
|'''Creation date''' || April 9, 2008
+
|'''Creation date''' || April 17, 2008
 
|-
 
|-
 
|'''Platform''' || S60 3rd Edition, FP1
 
|'''Platform''' || S60 3rd Edition, FP1
Line 22: Line 22:
 
==Overview==
 
==Overview==
  
This snippet shows a simple function implementation to export one contact from the default contacts database as vCard to the given file.
+
This snippet shows a simple function implementation to export one contact from the default contacts database as a vCard to a given file.
  
 
This snippet can be self-signed.
 
This snippet can be self-signed.
Line 121: Line 121:
  
 
==Postconditions==
 
==Postconditions==
One contact given by index from the default contacts database is exported as a vCard to the given file.
+
A contact given by the index from the default contacts database is exported as a vCard to the given file.
The function returns ETrue to the caller in success case or EFalse when the file creation fails.  
+
 
 +
The function returns ETrue to the caller when the file creation succeeds or EFalse when the file creation fails.  
  
 
==See also==
 
==See also==
[[Importing_vCard_item_from_a_file]]
+
[[CS000900 - Importing a vCard item from a file]]
  
[[Category:Symbian C++]][[Category:Code Examples]][[Category:PIM]]
+
[[Category:Symbian C++]][[Category:Code Examples]][[Category:PIM]][[Category:S60 3rd Edition]]

Revision as of 10:11, 17 April 2008


Template:KBCS

ID CS000901 Creation date April 17, 2008
Platform S60 3rd Edition, FP1 Tested on devices Nokia N93
Category Symbian C++ Subcategory PIM


Keywords (APIs, classes, methods, functions): RFileWriteStream, CContactDatabase, CContactIdArray, CCntFilter, CContactDatabase::OpenL(), CContactDatabase::ExportSelectedContactsL(), CContactDatabase::FilterDatabaseL(), CCntFilter::SetContactFilterTypeALL(), CCntFilter::SetContactFilterTypeCard()

Overview

This snippet shows a simple function implementation to export one contact from the default contacts database as a vCard to a given file.

This snippet can be self-signed.

MMP file

The following capabilities and libraries are required:

CAPABILITY ReadUserData
LIBRARY  euser.lib
LIBRARY estor.lib
LIBRARY efsrv.lib
LIBRARY cntmodel.lib

Source file

#include <e32cmn.h>   //TUid
#include <e32std.h> //User
#include <e32base.h> //CArrayPtr, CleanupStack
#include <e32def.h> //TBool
#include <s32file.h> //RFileReadStream
#include <f32file.h> //RFs
#include <cntdb.h> //CContactDatabase
#include <cntdef.h> //CContactIdArray
#include <cntfilt.h> //CCntFilter
TBool ExportVCardL(const TDesC& aFileName, TInt aItemIndex)
{
RFs fileSession;
RFile file;
 
User::LeaveIfError(fileSession.Connect());
CleanupClosePushL(fileSession);
 
if (file.Replace(fileSession, aFileName, EFileWrite) != KErrNone)
{
//failed to create the file
CleanupStack::PopAndDestroy(); //fileSession
return EFalse;
}
CleanupClosePushL(file);
 
//open a write stream to the file
RFileWriteStream outputFileStream(file);
CleanupClosePushL(outputFileStream);
 
//open the default contacts database
CContactDatabase* contactsDb = CContactDatabase::OpenL();
CleanupStack::PushL(contactsDb);
 
//create an array of contact IDs to export
CContactIdArray* exportContacts = CContactIdArray::NewL();
CleanupStack::PushL(exportContacts);
 
//use a filter to get only contact items (e.g. templates are excluded)
CCntFilter *filter = CCntFilter::NewLC();
filter->SetContactFilterTypeALL(EFalse);
filter->SetContactFilterTypeCard(ETrue);
contactsDb->FilterDatabaseL(*filter);
 
//create an array to hold all filtered contact items
CContactIdArray* contactIds;
contactIds = CContactIdArray::NewLC(filter->iIds);
 
//add given contact(by index) to the array of contact IDs to export
if((*contactIds).Count() >= aItemIndex)
exportContacts->AddL((*contactIds)[aItemIndex] );
 
CleanupStack::PopAndDestroy(2); //contactIds, filter
 
//KVersitEntityUidVCard is used to identify a vCard
TUid uid = TUid::Uid(KVersitEntityUidVCard);
contactsDb->ExportSelectedContactsL(uid,
*exportContacts,
outputFileStream,
//contact ID is no exported
CContactDatabase::EExcludeUid);
 
CleanupStack::PopAndDestroy(5); //exportContacts,contactsDb,
//outputFileStream,file,fileSession
 
return ETrue;
}

Postconditions

A contact given by the index from the default contacts database is exported as a vCard to the given file.

The function returns ETrue to the caller when the file creation succeeds or EFalse when the file creation fails.

See also

CS000900 - Importing a vCard item from a file

112 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×