描述:
以下为一段MSN取联系人的程序,小弟有一事不明IMessengerPtr, IMessengerContactsPtr, IMessengerContactPtr这些都是COM对象,它们的接口是如何做返回不是HRESULT而是一个IDispatchPtr的接口指针,如MSNMessagerContacts = MSNMessager->GetMyContacts();还有这MSNMessagerContact->GetFriendlyName();返回的就是一_bstr_t类型啦,小弟愚鲁望大侠们明示!
///////////////////////////////////////////////////////////////////////////////
IMessengerPtr MSNMessager = NULL;
IMessengerContactsPtr MSNMessagerContacts = NULL;
IMessengerContactPtr MSNMessagerContact = NULL;
HRESULT hr = MSNMessager.CreateInstance(__uuidof(Messenger));
if (FAILED(hr))
{
AfxMessageBox("Create the Messenger object failed!");
return;
}
MSNMessagerContacts = MSNMessager->GetMyContacts();
if (NULL == MSNMessagerContacts)
{
AfxMessageBox("the Messenger object GetMyContacts failed!");
return;
}
long lCount = MSNMessagerContacts->GetCount();
for (int i = 0; i < lCount; i++)
{
MSNMessagerContact = MSNMessagerContacts->Item(i);
if (NULL == MSNMessagerContact)
{
AfxMessageBox("the MSNMessagerContacts GetContact failed!");
break;
}
_bstr_t bstrtFriendlyName = MSNMessagerContact->GetFriendlyName();
_bstr_t bstrtSigninName = MSNMessagerContact->GetSigninName();
m_listContacts.AddString(bstrtFriendlyName + "[" + bstrtSigninName + "]");
}