在Vs.net中使用MSN即时通讯软件(下)

作者:杨忠勋
专业:计算机软件开发及应用
语言能力:TOFEL633 GRE2140
Email:[email protected]

** 接收消息 ** ** **

** ** 判断有新消息的方法就是接收的内容是否为“ text ”类型,代码如下

  private void OnTextRecieved(Messenger.IMsgrIMSession s, 


    Messenger.IMsgrUser u, string header, string text, 


    ref bool default)


{


    if(header.IndexOf("Content-Type: text/plain") != -1 && 


        u.FriendlyName != "Hotmail")


    {


        messageWindow.AppendText(u.FriendlyName + ": " + text + "\r\n");


        CurrentUser = u;


        default = false;


}


}

** 发送消息 ** ** **

** ** 将你要发送的消息输入到“编辑”框,然后点“发送”按钮,“编辑”框中的内容将由如下代码发送出去:

   private static string header = 


    "MIME-Version: 1.0\r\nContent-Type: text/plain;" +


    "charset=UTF-8\r\nX-MMS-IM-Format: " +


    "FN=MS%20Shell%20Dlg; EF=; CO=0; CS=0; PF=0\r\n\r\n";


 


private void send_Click(object sender, System.EventArgs e)


{


    CurrentUser.SendText(header, this.sendText.Text, 


        Messenger.MMSGTYPE.MMSGTYPE_ALL_RESULTS);


    


messageWindow.AppendText("You say: " + sendText.Text + "\r\n");


}

** 更新联系人的状态 ** ** **

我在 ListView 中使用了不同的图标来表示联系人相应的状态。当调用构造函数的时候,联系人的状态被第一次设置。当联系人状态改变的时候则调用 OnUserStatusChanged() 事件,更新联系人的状态。

  private void OnUserStateChanged(Messenger.IMsgrUser user, 


    Messenger.MSTATE state, ref bool default)


{


    for(int i = 0; i < Users.Count; i++)


    {


        if(user == Users.Item(i))


        {


            ListViewItem item = userList.Items[i];


            item.ImageIndex = GetStateImage(user.State);


        }


}


}

** 小结 ** ** **

** ** 我希望大家会对这篇文章感兴趣,通过这篇文章我们也了解了 MSN 的一小部分功能。 MSN 还有很多其他的功能等我们去挖掘。 Ok, 现在我们知道了创建 Vs.net 外接程序其实是一件很容易的事情,你可以由此创建出更多富有创造性的外接程序。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus