热点推荐
ZOL首页 > 网络设备 > 产业 > 网页集成Office Communicator状态信息

网页集成Office Communicator状态信息


听风且吟博客 【转载】 2009年12月03日 16:47 评论

  NameCtrl是Office自带的一个ActiveX控件,它存在于C:\Program Files\Microsoft Office\Office12\NAME.DLL中。利用它可以显示Office Communicator的状态图标,并且图标包含了菜单,通过菜单可以进行聊天,发送邮件等操作。

  关于NameCtrl的细节请访问http://msdn.microsoft.com/en-us/library/bb862236.aspx

  Spirit在《Web系统集成OCS在线状态功能》一文中向大家介绍了如何使用这个控件,而我这篇文章将从NameCtrl的一个方法和一个事件入手,来更完美的在网页中集成Office Communicator状态信息。

  先来谈谈直接使用NameCtrl来显示状态的好处吧:

  NameCtrl是Office提供的ActiveX控件,我们只需要直接在HTML中编写非常简单的JavaScript代码来和它交互,而不必编写Server端代码,轻而易举的实现Ajax效果。

  但是它也有一些缺憾:

  首先,NameCtrl是不可以永久显示的,它需要你调用它的ShowOOUI来显示状态图标,当你点击此状态图标打开菜单,然后关闭菜单后,这个图标也就不见了;

  其次,NameCtrl的菜单是不可以自定义的,有时候我们并不想显示这个菜单。

  如果你想要像Office Communicator内置的联系人状态显示效果,方法不止一种,本文还是使用NameCtrl控件,利用它的一个方法(GetStatus)和一个事件(OnStatusChange)来完成这样的效果。


网页集成Office Communicator状态信息

  下面来介绍一下GetStatus方法和OnStatusChange事件:

  GetStatus(bstrName, bstrID)

  此方法用来订阅联系人的状态信息。它的参数bstrName表示联系人的账号;而参数bstrID则是一个HTML元素的ID,这个ID有什么用呢?请往下看。

  MyOnStatusChange(name, status, id)

  当通过GetStatus订阅的联系人状态发生了改变,就会触发此事件。它的参数name表示联系人的账号;参数status表示联系人的当前状态,是一个int值,下面我会列出可能的值和其含义;参数id就是我们调用GetStatus是传入的参数bstrID了。

  在我的测试中发现,status的值和Office Communicator的默认状态有如下对应关系:

  0:空闲

  1:显示为脱机;脱机

  2:离开

  3:忙碌

  4:马上回来

  9:请勿打扰

  中间空了几个是什么我也不知道。

  那么在我们的网页中如何使用这两个方法呢?

  首先,我们在初始化联系人列表时,在所有联系人前面默认添加一个状态图标(这个图标可以显示为脱机状态),然后,调用GetStatus方法来订阅所有联系人的状态信息。

相关搜索:OFFICE COMMUNICATOR应用 
给文章打分 5分为满分(共0人参与) 查看排行>>
频道热词:工作站  云计算  服务器  
视觉焦点
TOP10周热门无线上网卡排行榜
  • 热门
  • 新品
查看完整榜单>>