您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> VB >> 辅导 >> 正文    
  VB中调用MSN6.2API函数 【注册男护士专用博客】          

VB中调用MSN6.2API函数

www.nanhushi.com     佚名   不详 

下面简单用VB距离说明怎么调用它: 

  首先当然是引用对象Messenger API Type Library了。 

  然后声明一个对象MessengerAPI.Messenger: 

Private WithEvents oMSN As MessengerAPI.Messenger 

  我们需要的东西都在这里边,简单介绍几个: 

  MyContacts:IMessengerContacts 对象 
  MyFriendlyName: 当前的昵称 
  MyGroups: IMessengerGroupss对象 
  MyPhoneNumber:返回电话号码 
  MyProperty:现在没有使用 
  MyServiceId :返回Service id应该是{9b017612-c9f1-11d2-8d9f-0000f875c541}] 
  MyServiceName:返回Service name应该是 .NET Messenger Service 
  MySigninName:返回当前的签名,eMail地址 
  MyStatus:返回当前状态,MISTATUS枚举值 

  其实本地属性和通过PrimaryService得到的一样 

  做几个简单的演示: 

  首先是登陆演示,使用MessengerAPI.Messenger的 SignIn 或者AutoSignin方法: 

Public Sub SignIn(ByVal bAuto As Boolean, Optional ByVal sSignInName As String,   Optional ByVal sPassword As String) 
 On Error GoTo ErrorHandle 
 If bAuto = True Then 
  oMSN.AutoSignin 
 Else 
  ManualSignIn: 
  oMSN.SignIn 0, sSignInName, sPassword 
 End If 

 Exit Sub 
ErrorHandle: 
 Dim MConstants As MSGRConstants 
 MConstants = err.Number 
 If MConstants = MSGR_E_FAIL Then 
  GoTo ManualSignIn 
 ElseIf MConstants = MSGR_E_ALREADY_LOGGED_ON Then 
  ’已经登陆 
 End If 
End Sub 

  获取全部用户列表: 

  通过Messenger的MyContacts对象(它是只读的) 

  它其实就是一个IMessengerContacts对象,而IMessengerContacts类又是IMessengerContact类的一个集合,在IMessengerContact中保存联系人信息。 

  因此可以这样遍历联系人。 

Dim oContacts As IMessengerContacts 
Dim oContact As IMessengerContact 
Dim iCount As Integer 
Dim i As Long 
Set oContacts = oMSN.MyContacts 
iCount = oContacts.Count 
For i = 0 To iCount - 1 
 Set oContact = MsgrContacts.Item 
 List1.AddItem MsgrContact.FriendlyName & vbTab & "(" & getStatusDesc(MsgrContact.Status) & ")" 
Next 



  getStatusDesc函数用来返回状态文本描述: 

Private Function getStatusDesc(eStatus As MISTATUS) As String 
 Select Case eStatus 
  Case MISTATUS_AWAY 
   getStatusDesc = "走开了" 
  Case MISTATUS_BE_RIGHT_BACK 
   getStatusDesc = "马上回来" 
  Case MISTATUS_BUSY 
   getStatusDesc = "在忙碌" 
  Case MISTATUS_IDLE 
   getStatusDesc = "在发呆" 
  Case MISTATUS_INVISIBLE 
   getStatusDesc = "隐身" 
  Case MISTATUS_LOCAL_CONNECTING_TO_SERVER 
   getStatusDesc = "正在链接服务器" 
  Case MISTATUS_LOCAL_DISCONNECTING_FROM_SERVER 
   getStatusDesc = "从服务器断开" 
  Case MISTATUS_LOCAL_FINDING_SERVER 
   getStatusDesc = "正在搜索服务器" 
  Case MISTATUS_LOCAL_SYNCHRONIZING_WITH_SERVER 
   getStatusDesc = "正在和服务器同步" 
  Case MISTATUS_OFFLINE 
   getStatusDesc = "离线" 
  Case MISTATUS_ON_THE_PHONE 
   getStatusDesc = "在接电话" 
  Case MISTATUS_ONLINE 
   getStatusDesc = "在线" 
  Case MISTATUS_OUT_TO_LUNCH 
   getStatusDesc = "外出就餐" 
  Case MISTATUS_UNKNOWN 
   getStatusDesc = "未知" 
 End Select 
End Function 

  获取组列表: 

  方法同获取联系人,只是换了一下对象. 

Dim oGroups As IMessengerGroups 
Dim oGroup As IMessengerGroup 
Set oGroups = oMSN.MyGroups 
For Each oGroup In oGroups 
 List1.AddItem oGroup.Name 
Next 

  下面就是将组和用户关联起来: 

  明白上面的方法,这个很容易实现,IMessengerGroup类的对象中含有IMessengerContact类对象的集合。 

Dim oGroups As IMessengerGroups 
Dim oGroup As IMessengerGroup 
Dim oContacts As IMessengerContacts 
Dim oContact As IMessengerContact 
Set oGroups = oMSN.MyGroups 
For Each oGroup In oGroups 
 Set oContacts = oGroup.Contacts 
 For Each oContact In oContacts 
  List1.AddItem oGroup.Name & " " & oContact.SigninName 
 Next 
Next  

  在介绍一下服务: 

  也是用样道理: 

Dim oServices As IMessengerServices 
Dim oService As IMessengerService 
Set oServices = oMSN.Services 
Set oService = oServices.PrimaryService 
MsgBox oService.MyFriendlyName & getStatusDesc(oService.MyStatus) & oService.MySigninName & oService.ServiceId & oService.ServiceName 

  我现在怎么觉得PrimaryService的意义不大,IMessengerServices中就一个PrimaryService可用,还是只读的。

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。