Windows Mobile中实现从单个联系人的多个号码中选择号码的功能
最近写个小程序需要实现一个类似IP拔号的功能,从联系人菜单中选择联系人,如果这个联系人有多个电话号码,则让用户选择一个并拔号。
其实这个选择的对话框不用自己写,Windows早为我们准备好了。见代码,代码很简单我就不解释了!!
/*
* 获取指定联系人的单个电话号码,如果只有一个电话号码则直接返回。
* oidContactID为联系人的ID
*/
String SelectPhoneNumber(CEOID oidContactID,HWND hwndOwner,LPCTSTR lpstrTitle,LPCTSTR lpstrChoosePropertyText)
{
const CEPROPID all_phone=PIMPR_ALL_PHONE;
CHOOSECONTACT cConct;
cConct.cbSize=sizeof(CHOOSECONTACT);
cConct.hwndOwner=hwndOwner;
cConct.dwFlags=CCF_CHOOSEPROPERTYONLY | CCF_RETURNPROPERTYVALUE;
cConct.lpstrTitle=lpstrTitle;
cConct.lpstrChoosePropertyText=lpstrChoosePropertyText;
cConct.rgpropidRequiredProperties=&all_phone;
cConct.cRequiredProperties=1;
cConct.oidContactID=oidContactID;
if(S_OK!=ChooseContact(&cConct))return TEXT("");
String strRetn=String(cConct.bstrPropertyValueSelected);
SysFreeString(cConct.bstrPropertyValueSelected);
return strRetn;
}
* 获取指定联系人的单个电话号码,如果只有一个电话号码则直接返回。
* oidContactID为联系人的ID
*/
String SelectPhoneNumber(CEOID oidContactID,HWND hwndOwner,LPCTSTR lpstrTitle,LPCTSTR lpstrChoosePropertyText)
{
const CEPROPID all_phone=PIMPR_ALL_PHONE;
CHOOSECONTACT cConct;
cConct.cbSize=sizeof(CHOOSECONTACT);
cConct.hwndOwner=hwndOwner;
cConct.dwFlags=CCF_CHOOSEPROPERTYONLY | CCF_RETURNPROPERTYVALUE;
cConct.lpstrTitle=lpstrTitle;
cConct.lpstrChoosePropertyText=lpstrChoosePropertyText;
cConct.rgpropidRequiredProperties=&all_phone;
cConct.cRequiredProperties=1;
cConct.oidContactID=oidContactID;
if(S_OK!=ChooseContact(&cConct))return TEXT("");
String strRetn=String(cConct.bstrPropertyValueSelected);
SysFreeString(cConct.bstrPropertyValueSelected);
return strRetn;
}