WEB开发网
开发学院软件开发VC 如何获取MSN Messenger的联系人列表 阅读

如何获取MSN Messenger的联系人列表

 2010-07-06 20:44:05 来源:WEB开发网   
核心提示:2、如果用VC就要复杂一点,但代码也比较简单,如何获取MSN Messenger的联系人列表(2),问题是我们没有微软提供的.h文件,也没有.tlb,三、结束语MSN Messenger Client的COM接口提供了很多功能,这只是其中一小部分,文件,(1) 如何取得MSN的.tlb文件

2、如果用VC就要复杂一点,但代码也比较简单,问题是我们没有微软提供的.h文件,也没有.tlb,文件。

(1) 如何取得MSN的.tlb文件,有些用Import “msnmsgr.exe”,但得到的.tlh文件中根本没有Messenger对象,我们知道能在 VB中使用肯定需要Type Library,所以我们可以利用Visual Studio Tools 中的OLEView来生成一个.tlb文件 (如果谁有更好的方式请告之),本文源码中已经生成好了.tlb文件,大家直接用就可以了。

(2) 有了.tlb文件,接下来的工作就很简单了:

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();
    }

以上代码我想也不用多说,采用智能指针,先取得IMessenger Interface,然后通过IMessenger Interface取得IMessengerContacts Interface,这是一个Contact的Collection,之后就是取出每个ImessengerContact了 。

三、结束语

MSN Messenger Client的COM接口提供了很多功能,这只是其中一小部分,可以通过这些 COM接口添加一些MSN Messenger的辅助功能.这些接口都可以从MSDN Web Site上找到说明。

本文配套源码

上一页  1 2 

Tags:如何 获取 MSN

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接