亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bookengine.cpp

?? symbian和旗下的HTTPENGINE的相關代碼
?? CPP
字號:
/*****************************************************************************
*  Name     : BookEngine.cpp
*  Part of  : FreeSMS
*  Created  : 10.15.2007 by tommy
*  Implementation notes:
*     Initial content was generated by Series 60 Application Wizard.
*  Version  : 1.0
*****************************************************************************/
#include <eikenv.h>
#include <e32def.h>
#include <charconv.h>
#include <utf.h>
#include "Common.h"
#include "BookEngine.h"

CBookEngine* CBookEngine::NewL()
{
	CBookEngine* self = CBookEngine::NewLC();
	CleanupStack::Pop();
	return self;
}

CBookEngine* CBookEngine::NewLC()
{
	CBookEngine* self = new(ELeave) CBookEngine;
	CleanupStack::PushL(self);
	self->ConstructL();
	return self;
}

void CBookEngine::ConstructL()
{
	m_pPbkContactEngine = CPbkContactEngine::NewL();
}

CBookEngine::~CBookEngine()
{
	MEMORY_FREE(m_pContacts);
	MEMORY_FREE(m_pPbkContactEngine);
}

void CBookEngine::GetMobileNumberByName(const TDesC& aName, TDes& aMobile)
{
	TInt i;
	m_pContacts = CContactDatabase::OpenL();
	const CContactIdArray* contactIDArray = m_pContacts->SortedItemsL();
	TInt nCount (contactIDArray->Count());
	for(i=0; i<nCount; i++)
	{
		TBuf<64> sFullName;
		CContactTextField* textField = NULL;
		CContactItem* cntItem = m_pContacts->ReadContactLC((*contactIDArray)[i]);
		CContactItemFieldSet& cntFieldSet = cntItem->CardFields();
		TInt nTmpIndex = cntFieldSet.Find(KUidContactFieldFamilyName);
		if(nTmpIndex != -1)
		{
			textField = cntFieldSet[nTmpIndex].TextStorage();
			sFullName.Copy(textField->Text());
		}
		nTmpIndex = cntFieldSet.Find(KUidContactFieldGivenName);
		if(nTmpIndex != -1)
		{
			textField = cntFieldSet[nTmpIndex].TextStorage();
			sFullName.Append(textField->Text());
		}
		CleanupStack::PopAndDestroy(cntItem);
		if( sFullName.Compare(aName) == 0 )
		{
			CPbkContactItem* pbkItem = m_pPbkContactEngine->ReadContactLC((*contactIDArray)[i]) ;
			TPbkContactItemField* fld = pbkItem->FindField(EPbkFieldIdPhoneNumberMobile);
			if(fld)
			{
				aMobile.Copy(fld->Text());
			}
			CleanupStack::PopAndDestroy(pbkItem);
			break;
		}
	}
	MEMORY_FREE(m_pContacts);
}

void CBookEngine::UpdatePhoneBook(TInt aFlag, RPointerArray<CBookInfo>& aBookInfo)
{
	m_pContacts = CContactDatabase::OpenL();

	//unicode--->utf8:
//	CCnvCharacterSetConverter* converter = CCnvCharacterSetConverter::NewLC();
//	converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierUtf8, CEikonEnv::Static()->FsSession());

	if (aFlag == 0)		//從手機讀入
	{
		TBuf<256>	  sTmpBuf;
		TInt		    nTmpIndex	= 0;
		CBookInfo*	pBookInfo	= NULL;
		// 先讀取手機的contacts 
		// 改為SortedItemsL,即使只寫電話簿中的一項,也能讀取出來
		const CContactIdArray* contactIDArray = m_pContacts->SortedItemsL();
		for (TInt i=0; i< contactIDArray->Count(); i++)
		{
			sTmpBuf.Zero();
			nTmpIndex = 0;

			pBookInfo = CBookInfo::NewL();

			CContactItem*	 cntItem = m_pContacts->ReadContactLC((*contactIDArray)[i]);
			CPbkContactItem* pbkItem = m_pPbkContactEngine->ReadContactLC((*contactIDArray)[i]);  //為什么要兩個??
			
			CContactItemFieldSet& cntFieldSet = cntItem->CardFields();
			TPbkContactItemField* fld = NULL;

			pBookInfo->SetItemID((*contactIDArray)[i]);
			//last name
			nTmpIndex = cntFieldSet.Find(KUidContactFieldFamilyName);
			if (nTmpIndex != -1)
			{
				CContactTextField* textField = cntFieldSet[nTmpIndex].TextStorage();
				pBookInfo->SetLastName(textField->Text());
			}
			//first name
			nTmpIndex = cntFieldSet.Find(KUidContactFieldGivenName);
			if (nTmpIndex != -1)
			{
				CContactTextField* textField = cntFieldSet[nTmpIndex].TextStorage();
				pBookInfo->SetFirstName(textField->Text());
			}
			//固定電話
			fld = pbkItem->FindField(EPbkFieldIdPhoneNumberGeneral);
			sTmpBuf.Zero();
			if (fld)
			{
				fld->GetTextL(sTmpBuf);
				pBookInfo->SetTelephone(sTmpBuf);
			}
			//家庭固定電話

			fld = pbkItem->FindField(EPbkFieldIdPhoneNumberHome);
			sTmpBuf.Zero();
			if (fld)
			{
				fld->GetTextL(sTmpBuf);
				pBookInfo->SetHomeTelephone(sTmpBuf);
			}
			//公司固定電話
			fld = pbkItem->FindField(EPbkFieldIdPhoneNumberWork);
			sTmpBuf.Zero();
			if (fld)
			{
				fld->GetTextL(sTmpBuf);
				pBookInfo->SetBusinessTelephone(sTmpBuf);
			}
			//手機號
			fld = pbkItem->FindField(EPbkFieldIdPhoneNumberMobile);
			sTmpBuf.Zero();
			if (fld)
			{
				fld->GetTextL(sTmpBuf);
				pBookInfo->SetHomeMobileNumber(sTmpBuf);
			}
			aBookInfo.Append(pBookInfo);
			CleanupStack::PopAndDestroy(pbkItem);		//pbkItem
			CleanupStack::PopAndDestroy(cntItem);		//cntItem

		}
		
	}


	else if (aFlag == 1)//更新列表
	{//判斷出哪些是新增加的,哪些是修改過的,分別處理:
		for (TInt i=0; i< aBookInfo.Count(); i++)
		{
			CBookInfo* pBookInfo = static_cast<CBookInfo*>(aBookInfo[i]);
			CPbkContactItem* contactItem;  
			if(pBookInfo->GetItemID() == -1)
			{//若itemid == -1, 則新增
				contactItem = m_pPbkContactEngine->CreateEmptyContactL(); 
				CleanupStack::PushL(contactItem);
			}
			else
			{
				//更新:
				TInt nErr=0;
				TRAP(nErr, m_pPbkContactEngine->ReadContactL(pBookInfo->GetItemID()));
				if (nErr == KErrNotFound)
				{
					continue;
				}
				else
				{
					contactItem = m_pPbkContactEngine->OpenContactL(pBookInfo->GetItemID()) ;
					CleanupStack::PushL(contactItem);
				}
			}

			// find the phonenumber field of the contact, and add aCallInfo's telephone number
			TPbkContactItemField* fld = 
			fld = contactItem->FindField(EPbkFieldIdLastName);
			if(fld && (pBookInfo->GetLastName()))
			{
				fld->TextStorage()->SetTextL(pBookInfo->GetLastName()->Des());
			}

			fld = contactItem->FindField(EPbkFieldIdFirstName);
			if(fld && (pBookInfo->GetFirstName()))
			{
				fld->TextStorage()->SetTextL(pBookInfo->GetFirstName()->Des());
			}

			fld = contactItem->FindField(EPbkFieldIdPhoneNumberGeneral);
			if(fld && (pBookInfo->GetTelephone() ) )
			{
				fld->TextStorage()->SetTextL(*(pBookInfo->GetTelephone()));
			}
			
			fld = contactItem->FindField(EPbkFieldIdPhoneNumberHome);
			if(fld && (pBookInfo->GetHomeTelephone()))
			{
				fld->TextStorage()->SetTextL(*(pBookInfo->GetHomeTelephone()));
			}
			
			fld = contactItem->FindField(EPbkFieldIdPhoneNumberWork );
			if(fld && (pBookInfo->GetBusinessTelephone()))
			{
				fld->TextStorage()->SetTextL(*(pBookInfo->GetBusinessTelephone()));
			}

			fld = contactItem->FindField(EPbkFieldIdPhoneNumberMobile);
			if(fld && (pBookInfo->GetHomeMobileNumber()))
			{
				fld->TextStorage()->SetTextL(*(pBookInfo->GetHomeMobileNumber()));
			}
	
			if(pBookInfo->GetItemID()== -1)
			{
				TContactItemId contactId = m_pPbkContactEngine->AddNewContactL(*contactItem);
				pBookInfo->SetItemID(contactId);
			} 
			else
			{
				TInt err=0;
				TRAP(err, m_pPbkContactEngine->CommitContactL(*contactItem, EFalse));
			}
			CleanupStack::PopAndDestroy(contactItem);	//contactItem
		}
		
	}	
//	CleanupStack::PopAndDestroy(converter);
	MEMORY_FREE(m_pContacts);
}

void CBookEngine::DeleteUserFromBook(TInt aItemID)
{
	m_pContacts = CContactDatabase::OpenL();
	m_pPbkContactEngine->DeleteContactL(aItemID);
	MEMORY_FREE(m_pContacts);
}


void CBookEngine::HandleDatabaseEventL(TContactDbObserverEvent /*aEvent*/)
{
	
}

//////////////////////////////////////////////////////////////////////////
/***************************************************************************
*** CHttpInfo Startup
***************************************************************************/
CBookInfo* CBookInfo::NewL()
{
	CBookInfo* self = CBookInfo::NewLC();
	CleanupStack::Pop();
	return self;
}

CBookInfo* CBookInfo::NewLC()
{
	CBookInfo* self = new(ELeave) CBookInfo;
	CleanupStack::PushL(self);
	return self;
}

CBookInfo::CBookInfo()
{
	m_nItem_ID			= 0;
	m_sLastName			= NULL;
	m_sFirstName		= NULL;
	m_sTelephone		= NULL;
	m_sHomeTelephone	= NULL;
	m_sBusinessTelephone= NULL;
	m_sHomeMobile		= NULL;
}

CBookInfo::~CBookInfo()
{
	MEMORY_FREE(m_sLastName);
	MEMORY_FREE(m_sFirstName);
	MEMORY_FREE(m_sTelephone);
	MEMORY_FREE(m_sHomeTelephone);
	MEMORY_FREE(m_sBusinessTelephone);
	MEMORY_FREE(m_sHomeMobile);
}

//Last Name
void CBookInfo::SetLastName(const TDesC& aBuf)
{
	MEMORY_FREE(m_sLastName);
	m_sLastName = HBufC::NewL(aBuf.Length());
	m_sLastName->Des().Copy(aBuf);
}
//first name
void CBookInfo::SetFirstName(const TDesC& aBuf)
{
	MEMORY_FREE(m_sFirstName);
	m_sFirstName = HBufC::NewL(aBuf.Length());
	m_sFirstName->Des().Copy(aBuf);
}
//m_sTelephone
void CBookInfo::SetTelephone(const TDesC& aBuf)
{
	MEMORY_FREE(m_sTelephone);
	m_sTelephone = HBufC::NewL(aBuf.Length());
	m_sTelephone->Des().Copy(aBuf);
}
//m_sHomeTelephone
void CBookInfo::SetHomeTelephone(const TDesC& aBuf)
{
	MEMORY_FREE(m_sHomeTelephone);
	m_sHomeTelephone = HBufC::NewL(aBuf.Length());
	m_sHomeTelephone->Des().Copy(aBuf);
}
//m_sBusinessTelephone
void CBookInfo::SetBusinessTelephone(const TDesC& aBuf)
{
	MEMORY_FREE(m_sBusinessTelephone);
	m_sBusinessTelephone = HBufC::NewL(aBuf.Length());
	m_sBusinessTelephone->Des().Copy(aBuf);
}
//m_sHomeMobile
void CBookInfo::SetHomeMobileNumber(const TDesC& aBuf)
{
	MEMORY_FREE(m_sHomeMobile);
	m_sHomeMobile = HBufC::NewL(aBuf.Length());
	m_sHomeMobile->Des().Copy(aBuf);
}

void CBookInfo::SetItemMarkState(TBool aState)
{
		m_eItem_MarkState = aState;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产中文| 91网站黄www| 奇米精品一区二区三区四区| 亚洲综合一区二区| 亚洲一卡二卡三卡四卡| 亚洲一区二区3| 亚洲制服丝袜av| 午夜精品久久久久久久久久| 亚洲高清不卡在线观看| 日本va欧美va精品发布| 蜜臀精品一区二区三区在线观看| 日韩av一二三| 蜜臀精品久久久久久蜜臀 | 日本欧美在线看| 免费成人av资源网| 国产一区二区精品久久99| 国产露脸91国语对白| 国产成人免费9x9x人网站视频| 成人黄色国产精品网站大全在线免费观看 | 亚洲成人av免费| 午夜一区二区三区在线观看| 欧美aaaaa成人免费观看视频| 九一九一国产精品| 成人免费av网站| 欧美影院一区二区三区| 欧美一区二区大片| 欧美国产一区视频在线观看| 一区二区三区美女| 美国一区二区三区在线播放| 福利电影一区二区三区| 欧美性生活大片视频| 久久久精品人体av艺术| 亚洲男人的天堂网| 久久99精品久久久久久国产越南| 成人一区二区视频| 精品婷婷伊人一区三区三| 久久女同性恋中文字幕| 亚洲精品国产精华液| 精品一区二区在线播放| 色嗨嗨av一区二区三区| 欧美成va人片在线观看| 亚洲男人都懂的| 国产成人丝袜美腿| 欧美高清你懂得| 亚洲视频免费在线观看| 精品制服美女久久| 欧美探花视频资源| 中文字幕在线视频一区| 久久激情综合网| 欧美日韩精品福利| 亚洲人成在线播放网站岛国| 久久99久久99| 欧美日韩国产天堂| 亚洲免费av高清| 国产美女主播视频一区| 69堂国产成人免费视频| 一区二区在线免费观看| 成人污污视频在线观看| 精品三级av在线| 日韩激情视频网站| 欧美午夜理伦三级在线观看| 日韩美女啊v在线免费观看| 国产精品一线二线三线| 欧美一卡二卡在线观看| 亚洲国产日韩精品| 日本国产一区二区| 亚洲精品视频免费看| 99久免费精品视频在线观看| 国产午夜精品福利| 国产麻豆精品theporn| 欧美一区二区三区白人| 久久久久国产一区二区三区四区| 美女尤物国产一区| 日韩一级片网站| 午夜精品成人在线视频| 欧美男男青年gay1069videost| 亚洲欧美日本韩国| 色八戒一区二区三区| 亚洲精品高清在线观看| 色婷婷香蕉在线一区二区| 一区二区久久久久久| 欧美在线播放高清精品| 亚洲夂夂婷婷色拍ww47| 4hu四虎永久在线影院成人| 丝袜美腿亚洲一区| 日韩一区二区电影网| 免费观看30秒视频久久| 2021中文字幕一区亚洲| 成人午夜大片免费观看| 亚洲精品免费电影| 在线播放亚洲一区| 久久9热精品视频| 久久久99免费| 99国产精品久久久久久久久久| 亚洲日本成人在线观看| 欧美剧情电影在线观看完整版免费励志电影| 一区二区高清在线| 欧美一级免费观看| 国产成人精品亚洲午夜麻豆| 亚洲日本韩国一区| 欧美一区二区黄色| 北条麻妃一区二区三区| 亚洲国产视频一区二区| 欧美videofree性高清杂交| 懂色av一区二区三区免费观看 | 日韩中文字幕91| 精品国产一区二区三区四区四| 成人黄色在线网站| 日韩中文字幕亚洲一区二区va在线| 欧美精品一区二区久久久| 99热99精品| 日本vs亚洲vs韩国一区三区二区| 亚洲国产高清aⅴ视频| 欧美日韩国产首页在线观看| 国产成人免费高清| 午夜精品一区二区三区电影天堂| 国产欧美视频一区二区三区| 欧美伊人久久大香线蕉综合69| 精彩视频一区二区三区| 亚洲成人综合视频| 国产欧美日韩综合精品一区二区| 欧美日韩国产免费一区二区| 国产成人在线网站| 日韩av不卡一区二区| 亚洲青青青在线视频| 精品国产一区久久| 制服.丝袜.亚洲.另类.中文| youjizz久久| 韩国v欧美v亚洲v日本v| 日韩专区欧美专区| 亚洲午夜久久久久久久久电影院 | 91亚洲国产成人精品一区二三| 日本成人中文字幕| 亚洲精品成人a在线观看| 国产欧美一区二区三区沐欲| 日韩一区二区三区视频在线| 欧美三级蜜桃2在线观看| 不卡电影一区二区三区| 国产 日韩 欧美大片| 久久99精品国产麻豆婷婷洗澡| 日韩激情在线观看| 亚洲成在线观看| 亚洲高清在线视频| 亚洲国产日韩a在线播放性色| 亚洲欧美另类图片小说| 中文字幕精品综合| 欧美国产综合色视频| 国产视频在线观看一区二区三区| 久久综合久久鬼色中文字| 欧美一区二区大片| 欧美mv日韩mv亚洲| 欧美大片国产精品| 欧美一卡二卡三卡四卡| 日韩欧美国产精品| 欧美不卡在线视频| 久久综合久久久久88| 久久精品免视看| 国产精品久久久久国产精品日日| 久久精品夜色噜噜亚洲a∨| 国产日韩在线不卡| 中文字幕不卡的av| 一区二区三区中文字幕在线观看| 亚洲人吸女人奶水| 亚洲国产日产av| 男男成人高潮片免费网站| 美国毛片一区二区| 国产精品一级在线| 成人av免费在线观看| 色av成人天堂桃色av| 日韩视频在线你懂得| 久久综合中文字幕| 亚洲欧洲精品一区二区三区不卡| 亚洲精品乱码久久久久久| 亚洲第一狼人社区| 久久er99精品| 99视频精品免费视频| 欧美午夜理伦三级在线观看| 欧美一区二区三区婷婷月色| 久久综合色之久久综合| 亚洲天堂精品在线观看| 午夜欧美视频在线观看| 精品在线视频一区| 99精品桃花视频在线观看| 欧美精品久久99| 欧美国产1区2区| 亚洲午夜久久久久久久久久久| 久久精品国产**网站演员| 粉嫩蜜臀av国产精品网站| 91黄色激情网站| 精品不卡在线视频| 一区二区三区在线不卡| 久久成人羞羞网站| 91官网在线观看| 337p日本欧洲亚洲大胆精品 | 蜜桃在线一区二区三区| 成人黄色一级视频| 日韩欧美亚洲国产另类| 亚洲精品日韩综合观看成人91| 久久99精品久久久久久国产越南| 91丨porny丨蝌蚪视频|