RPbkViewResourceFile phonebookResource( *(CEikonEnv::Static()) ); if ( !phonebookResource.IsOpen()) { phonebookResource.OpenL(); } CPbkContactEngine* iPbkContactEngine = CPbkContactEngine::NewL(); // Add searching array to parameters CContactDatabase::TContactViewFilter filter(CContactDatabase::EPhonable); #ifndef __SERIES60_1X__ CPbkSingleEntryFetchDlg::TParams params; params.iContactView = &iPbkContactEngine->FilteredContactsViewL( filter ); CPbkSingleEntryFetchDlg* fetchDlg = CPbkSingleEntryFetchDlg::NewL( params );//, *iPbkContactEngine ); #else CPbkMultipleEntryFetchDlg::TParams params; params.iContactView = &iPbkContactEngine->FilteredContactsViewL( filter ); CPbkMultipleEntryFetchDlg* fetchDlg = CPbkMultipleEntryFetchDlg::NewL( params, *iPbkContactEngine ); #endif fetchDlg->SetMopParent( this ); TInt okPressed = fetchDlg->ExecuteLD(); if ( okPressed ) { TBuf<30> firstName; TBuf<30> lastName; TBuf<30> phoneNumber; TBuf<50> title; #ifndef __SERIES60_1X__ const TContactItemId cid = params.iSelectedEntry; #else TInt paramCount = params.iMarkedEntries->Count(); // Get the selected contacts id array for ( TInt i = 0; i < paramCount; ++i ) { const TContactItemId cid = ( (*params.iMarkedEntries )[i]); #endif // Open the selected contact using Phonebook engine, // choose correct number (launch list query if needed) CPbkContactItem* pbkItem = iPbkContactEngine->ReadContactLC( cid ); CPbkSmsAddressSelect::TParams param(*pbkItem); CPbkSmsAddressSelect* selector=new(ELeave) CPbkSmsAddressSelect; TBool accepted = selector->ExecuteLD(param/**iItem, NULL, EFalse*/); if(accepted) { const TPbkContactItemField *selectedField = param.SelectedField(); //aNumber.Copy(selectedField->Text()); phoneNumber=selectedField->PbkFieldText(); HBufC* atitle=pbkItem->GetContactTitleOrNullL(); if (atitle == NULL) { title.Copy(phoneNumber); } else { title.Copy(atitle->Des()); delete atitle; } } CleanupStack::PopAndDestroy(); // pbkItem /* TPbkContactItemField* tmp; if ((tmp = pbkItem->FindField(EPbkFieldIdFirstName)) != NULL) { firstName = tmp->Text(); } if ((tmp = pbkItem->FindField(EPbkFieldIdLastName)) != NULL) { lastName = tmp->Text(); } if ((tmp = pbkItem->FindField(EPbkFieldIdPhoneNumberMobile)) != NULL) { phoneNumber = tmp->Text(); } else if ((tmp = pbkItem->FindField(EPbkFieldIdPhoneNumberGeneral)) != NULL) { phoneNumber = tmp->Text(); } */ //add #ifdef __SERIES60_1X__ } #endif phonebookResource.Close(); // Close the phonebook view delete iPbkContactEngine ; } else { phonebookResource.Close(); // Close the phonebook view delete iPbkContactEngine ; }