如何获取Wm6.0手机通讯录内容?

jingjing_123 2010-07-09 11:27:16
wm6.0 能不能读取到手机(wm6.0系统)联系人的姓名和电话号码?
有没有API用?请各位赐教
...全文
165 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jingjing_123 2011-02-16
  • 打赏
  • 举报
回复
CheckNameLegal 这个是自定义的检测函数,主要用来判断名字是否非法
xiaoguailong3 2010-12-09
  • 打赏
  • 举报
回复
CheckNameLegal()这个去掉了。。一样好用!!呵呵!!感谢http://topic.csdn.net/u/20100709/11/28C2E69F-FDF2-46AB-9C17-72BE1CED4BA5.html这位兄弟!
xiaoguailong3 2010-12-09
  • 打赏
  • 举报
回复
CheckNameLegal()这个是什么函数呀
jingjing_123 2010-08-06
  • 打赏
  • 举报
回复
问题已解决
//以下三个是读取联系人信息的头文件
#define INITGUID
#include <objbase.h>
#include <initguid.h>
#include <pimstore.h> //核心库文件
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//获取联系人姓名
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool GetConnectInfo()
{

HRESULT hr;
IPOutlookApp * polApp = NULL;
IFolder *pFolder = NULL;
IPOutlookItemCollection * pItemCol = NULL;
int nItem = 0;
wchar_t tempname[120];//姓名

if (FAILED(CoInitializeEx(NULL, 0)))
{
return false;
}
hr = CoCreateInstance(_uuidof(Application), NULL,
CLSCTX_INPROC_SERVER,_uuidof(IPOutlookApp), (LPVOID*)&polApp);
if (FAILED(hr))
{
CoUninitialize();
return false;
}
hr = polApp->Logon(NULL);
if (FAILED(hr))
{
CoUninitialize();
return false;
}
hr = polApp->GetDefaultFolder(olFolderContacts, &pFolder);
if (FAILED(hr))
{
CoUninitialize();
return false;
}
hr = pFolder->get_Items(&pItemCol);
if (FAILED(hr))
{
CoUninitialize();
return false;
}
hr = pItemCol->get_Count(&nItem);
if (FAILED(hr))
{
CoUninitialize();
return false;
}

BSTR bstrFirstName;
BSTR bstrLastName;
BSTR bstrMobileTelephone;
BSTR bstrBusinessTelephone;
BSTR bstrHomeTelephone;
IContact * pContact;

if(nItem > MAX_CONNECT) nItem = MAX_CONNECT;
if(nItem != 0)//有记录的时候
myContact = new Contact_Info[nItem];

ConnectTotal = 0;

if(myContact != NULL)
{
for (int i=1; i<= nItem; i++)//nItem
{
hr = pItemCol->Item(i, reinterpret_cast<IDispatch**>(&pContact));//
if (SUCCEEDED(hr))
{
memset(myContact[ConnectTotal].name,0,
sizeof(myContact[ConnectTotal].name));
memset(myContact[ConnectTotal].bstrBusiness,0,
sizeof(myContact[ConnectTotal].bstrBusiness));
memset(myContact[ConnectTotal].bstrHome,0,
sizeof(myContact[ConnectTotal].bstrHome));
memset(myContact[ConnectTotal].bstrMobile,0,
sizeof(myContact[ConnectTotal].bstrMobile));
memset(myContact[ConnectTotal].bstrPhone,0,
sizeof(myContact[ConnectTotal].bstrPhone));

myContact[ConnectTotal].phonetotal = 0;

pContact->get_FirstName(&bstrFirstName); //姓
pContact->get_LastName(&bstrLastName); //名
pContact->get_MobileTelephoneNumber(&bstrMobileTelephone);//移动电话
pContact->get_BusinessTelephoneNumber(&bstrBusinessTelephone);//商务电话
pContact->get_HomeTelephoneNumber(&bstrHomeTelephone);//家庭电话

//printf(L"bstrFirstName = %s\n", bstrFirstName);

if(bstrFirstName[0] != 0)
{
wcscpy(tempname,bstrLastName);
wcscat(tempname,bstrFirstName);
if(wcslen(tempname)>120)
{
tempname[119] = 0;
}
wcscpy(myContact[ConnectTotal].name,tempname);

}
else if(bstrLastName[0] != 0)
{
wcscpy(tempname,bstrLastName);
if(wcslen(tempname)>120)
{
tempname[119] = 0;
}
wcscpy(myContact[ConnectTotal].name,tempname);
}

if(CheckNameLegal(myContact[ConnectTotal].name))
{
if(bstrMobileTelephone[0] != 0)
{
wcscpy(tempname,bstrMobileTelephone);
if(wcslen(tempname)>30)
{
tempname[29] = 0;
}
wcscpy(myContact[ConnectTotal].bstrMobile,tempname);
wcscpy(myContact[ConnectTotal].bstrPhone,tempname);
myContact[ConnectTotal].phonetotal++;

}
if(bstrBusinessTelephone[0] != 0)
{
wcscpy(tempname,bstrBusinessTelephone);
if(wcslen(tempname)>30)
{
tempname[29] = 0;
}
wcscpy(myContact[ConnectTotal].bstrBusiness,tempname);
wcscpy(myContact[ConnectTotal].bstrPhone,tempname);
myContact[ConnectTotal].phonetotal++;

}
if(bstrHomeTelephone[0] != 0)
{
wcscpy(tempname,bstrHomeTelephone);
if(wcslen(tempname)>30)
{
tempname[29] = 0;
}
wcscpy(myContact[ConnectTotal].bstrHome,tempname);
myContact[ConnectTotal].phonetotal++;
wcscpy(myContact[ConnectTotal].bstrPhone,tempname);
}
ConnectTotal++;
}

SysFreeString(bstrLastName);
SysFreeString(bstrFirstName);
SysFreeString(bstrMobileTelephone);
SysFreeString(bstrBusinessTelephone);
SysFreeString(bstrHomeTelephone);
}
}
}
polApp->Logoff();
polApp->Release();
CoUninitialize();

return true;
}

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧