WM6,如何取得某个指定联系人的所有通话记录。
现在在WM6下,想获得某个联系人所有相关的通话记录。目前好像通过edb数据库可以,但是我在实现的时候遇到点问题,不知道是我的方法有问题,还是哪里错了。请高手指点,最好能给出直接给出代码实例供我参考。谢谢。
if (a = CeMountDBVolEx(&g_ceguidInitDB, L "\pim.vol ", 0, OPEN_EXISTING ))
{
CEGUID guid;
oidCalllog = 0;
m_hDatabase = CeOpenDatabaseInSession(NULL, &g_ceguidInitDB, &oidCalllog, L "clog.db ", NULL, CEDB_AUTOINCREMENT, NULL);
}
oid= 0x8000000a;
CEOID ceoid = CeSeekDatabase(g_hDatabase,CEDB_SEEK_CEOID,oid,NULL);
//执行到这里的时候发现ceoid 返回0.请问这里的oid指联系人的oid吗?
if(!ceoid)
{
DWORD dwErr = GetLastError();
return dwErr;
}
[解决办法]
可以不用数据库吧。
只要用
PhoneGetCallLogEntry 和一些相关的函数就行吧,一般的信息还是有的。
[解决办法]
CALLLOGENTRY有一个成员pszNumber是telephone number,可以根据这个查找匹配的联系人,这样就可以得到oid了。
[解决办法]
根据电话号码检索一般不会重复,然后再得到联系人,不会有重名问题。
另,如果两个人拥有相同的电话号码,就取第一个,因为任何一个都是这个电话的拥有者。
事实上,这种情况下来电记录里也无法区分究竟是哪一个