描述:
我想用VC实现当MSN有消息到来时,VC主程序会弹出一个提示框,就这样简单,我从网上找到了可以获取MSN联系人列表的源代码,想对其改编,但不行,觉得当MSN有消息到来时,应该是和事件有关的处理,我可真要郁闷死了,请高手给指点一下吧!
这是MSDN中关于Windows Messenger 接口的文档链接:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winmessenger/winmessenger/messenger_entry.asp
这是获得MSN中联系人列表的代码链接:
http://www.vckbase.com/document/viewdoc/?id=1050
代码如下:
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 MSNMessagerContactsGetContact failed!");
break;
}
// 显示名称
_bstr_t bstrtFriendlyName = MSNMessagerContact>GetFriendlyName();
// 登录名称
_bstr_t bstrtSigninName = MSNMessagerContact->GetSigninName();
}
解决方案1:
ms应该和这个有关
DMsgrSessionEvents::OnContextData Event
Fires when new context data has arrived.
Syntax
void OnContextData(
BSTR bstrContextData
);
Parameters
bstrContextData
[in] BSTR that contains context information. This data is defined by the application at run time.
Return Value
No return value.
Event DISPID
DISPID_ONCONTEXTDATA
The DISPID for this event is defined in msgrpriv.h. Use this value to identify the event handler when implementing IDispatch::Invoke.