好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Lync二次开发

Lync二次开发

应用程序说明

基于Microsoft Lync强大功能之上,通过二次开发提供了个性化扩展功能,使用户可以实现Microsoft Lync客户端界面定制、Microsoft Lync功能扩展、 Microsoft Lync与第三方应用程序集成等功能,提供适应客户个性化需求的统一沟通平台。

一、用户界面定制
将Microsoft Lync客户端用户界面进行个性化修改,使其融入更多的企业个性元素及企业文化。 如将登陆界面原有微软字样的标题和LOGO等信息替换成企业独有的个性化界面等。

二、IM个性化需求
虽然Microsoft Lync提供了强大的IM(即时消息)平台,但客户还是有很多个性化需求需要通过二次开发来实现。
Lync提供了成熟的、稳定的IM(即时消息)扩展功能:
- 离线消息和离线文件的发送;
- 本地聊天记录服务;
- 群组功能;
- 手机短信功能;
- ……

三、应用集成
Lync使用户可以在Microsoft Lync客户端左侧(或其他位置)添加自定义标签页。 
用户可以在扩展标签页中嵌入网页,或者嵌入 .net控件,也可以在扩展标签页中引用特定信息
这样用户可以把更多企业应用集成到Microsoft Lync客户端之上, 把Microsoft Lync客户端打造成一个轻量级门户系统。

四、更多功能
除了提供上述主要扩展功能之外,还提供了更多个性化功能:
- 组织机构树:
将企业人力资源架构以树形结构清晰明了显示至客户端,并将功能操作融入其中,使繁琐的操作简洁化;
- 消息推送:
滚动消息公告实时滚动,以滚动方式循环显示企业内部日常公告信息,点击公告标题名即可浏览详细内容;
重要通知弹出窗口。
- 邮件提醒:
可以把Microsoft Lync客户端打造成简单的邮件客户端,用户可以在Microsoft Lync客户端进行邮件发送接收等操作。

http://msdn.microsoft.com/en-us/library/lync/hh345230(v=office.14).aspx

先决条件

Silverlight 4.0 Developer runtime

Lync SDK下载

http://www.microsoft.com/en-us/download/details.aspx?id=18898

VS项目中如何应用

创建应用程序,引用DLL文件路径:%root%\Program Files (x86)\Microsoft Lync\SDK\Assemblies\Desktop\Microsoft.LyncModel.dll. 如果创建的是Silverlight程序,引用DLL文件路径:%root%\Program Files (x86)\Microsoft Lync\SDK\Assemblies\Silverlight\.

VS创建WPF程序

  /// <summary>    /// 登陆Lync    /// </summary>    /// <param name="UserUri">用户Uri(用户邮箱)</param>    /// <param name="Domain">用户域信息</param>    /// <param name="Password">密码</param>    public   void  SignIn( string  UserUri,  string  UserNameDomain,  string  Password)   {         LyncClient.GetClient().ClientStateChanged += myClient_ClientStateChanged;           try        {              IAsyncResult ar = LyncClient.GetClient().BeginSignIn(               UserUri,               UserNameDomain,               Password,                null ,                null );              LyncClient.GetClient().EndSignIn(ar);       }        catch  (NotInitializedException)       {          MessageBox.Show( "Lync is not initialized" );       }   }            /// <summary>    /// 登陆Lync事件.     /// </summary>    /// <param name="source"></param>    /// <param name="data"></param>    void  myClient_ClientStateChanged( object  source, ClientStateChangedEventArgs data)   {        if  (data.NewState == ClientState.SignedIn)       {           MessageBox.Show( "Signed in" );       }        if  (data.NewState == ClientState.SignedOut)       {           MessageBox.Show( "Signed out" );       }           if  (data.NewState == ClientState.ShuttingDown )       {           MessageBox.Show( "Client is shutting down" );       }   }  

Lync2013的登录

 

1. Lync2013登录的几个关键函数

a) LyncClient.BeginInitialize(InitializeCallback, AsyncState)

i. InitializeCallback:异步回调委托函数,在此委托函数中我们要自定义lync的初始化事件。一般在此回调函数中都要包括LyncClient.EndInitialize (IAsyncResult asyncResult) 系统函数,来结束初始化。

ii. AsyncState:lync的状态,可以为null值。

b) LyncClient.BeginSignIn(userURI, userDomain, password, SigninCallback, sender)

i. userURI :lync的sip协议帐号,例如“sip:xxxx@ consoto.com”

ii. userDomain :域用户名,例如:“xxxx@ consoto.com”,一般情况下,userURI与userDomain除了前缀“sip”之外,其他的都是一致的。

iii. password :见文思义,登录密码。

iv. SigninCallback :异步回调委托函数,在此委托函数中我们要自定义用户登录成功后的处理事件。一般在此回调函数中都要包括LyncClient .EndSignIn (IAsyncResult asyncResult)系统函数,来处理登录后的状态。

v. sender :传递过来的Object.

2. 引入DLL

在编写lync2013的登录程序时,一定要引用“Microsoft.Lync.Model.dll”,

这个dll一般在lync2013安装目录下的一个zip压缩包内,

3. 设置全局变量

在class代码中要加入一个全局变量

LyncClient lyncClient;

并且在登录窗体初始化的时候也要将其创建一个实例

lyncClient = LyncClient.GetClient();

4. 登录流程及事件

Lync2013登录的流程图如下:

由上图可知

Lync2013登录的时候有几个事件:

1) 初始化事件

2) 登录状态改变事件

3) 凭据获取事件

所以在登录窗体初始化时可以将这几个事件利用委托注册一下:

lyncClient.StateChanged +=  new  EventHandler<ClientStateChangedEventArgs>(lyncClient_StateChanged);
    lyncClient.CredentialRequested +=  new  EventHandler<CredentialRequestedEventArgs>(lyncClient_CredentialRequested);
    lyncClient.SignInDelayed +=  new  EventHandler<SignInDelayedEventArgs>(lyncClient_SignInDelayed);

lyncClient.StateChanged:登录状态改变事件句柄;

lyncClient.CredentialRequested:登录状态改变事件句柄;

lyncClient.SignInDelayed:当在登录及自动唤醒产生延迟时的处理事件句柄

委托事件lyncClient_StateChanged,lyncClient_CredentialRequested,lyncClient_SignInDelayed自行编写

一般格式为:

 void  lyncClient_StateChanged( object  sender, ClientStateChangedEventArgs e)

{

 //to do something; 

……

}

 void  lyncClient_CredentialRequested( object  sender, CredentialRequestedEventArgs e)

{

e.Submit( @"consoto\user1" ,  "wewa1" , e.IsPasswordSaved);

 //to do something; 

……

}

 void  lyncClient_SignInDelayed( object  sender, SignInDelayedEventArgs e)

{

 //to do something; 

……

}

初始化事件可以在适当的时机进行,比如在点击登录按钮时

 private   void  button1_Click( object  sender, RoutedEventArgs e)

{

lyncClient.BeginInitialize(InitializeCallback,  null );

 //to do something; 

……

}

参考:http://msdn.microsoft.com/en-us/library/lync/hh345263.aspx

 

 

分类:  Lync2013二次开发

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于Lync二次开发的详细内容...

  阅读:43次