这节来简单说明下自定义客户端的开发方法。

首先我们打开Lync SDK的以下Sample:

SignInUISuppressionMode

进入目录后,可以发现EnableUISuppressionMode.reg这个注册表文件。

打开发现是往注册表导入以下信息。

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Lync]
"UISuppressionMode"=dword:00000001

这个其实就是Lync所谓UI抑制模式的开关。

什么是抑制模式?简单来说其实就是让Lync客户端服务在后台运行,但不显示在前端。

这样就可以按照我们自己的需要来进行自定义客户端了。

现在直接编译下这个sample

这个其实就是个可供我们自定义的最朴素的Lync登录客户端,这里可以看到UI抑制模式已经开启。

输入测试账号后,点击初始化并登录。

从状态中已经可以看到lynctest1已经登录完成。

也可以从其他客户端来验证登录情况。

最后界面自定义就要靠Lync的SDK了。

登录相关的几个关键函数

1. lyncClient.BeginInitialize(InitializeCallback, null);

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

2.  lyncClient.BeginSignIn(userUri,domainAndUsername, password, SignInCallback, null)

1)userUri:SIP,例如“sip:lynctest1@consoto.com”

2)domainAndUsername:UPN,例如:“lynctest1@consoto.com”,一般情况下,userUri与domainAndUsername除了前缀“sip”之外,其他的都是一致的。

3)password :登录密码。

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

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

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

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

转载于:https://blog.51cto.com/yaojiwei/1441445

Lync开发实例3—自定义客户端相关推荐

  1. Android软件开发实例:用客户端写博客

    标题:在Android上通过客户端写博客软件开发实例 作者:肖凤斌 binsweet@gmail.com 关注Android很久了,年初买了G4,但一直没有机会尝试Android上的软件开发. 自己有 ...

  2. SharePoint 2010开发实例精选——通过客户端对象模型删除页面上的Web部件

    下面的例子是在控制台应用程序中使用客户端对象模型,为了在控制台程序中使用ClientContext,我们需要添加两个dll引用到我们的项目中.Microsoft.SharePoint.Client.d ...

  3. java 微信自定义菜单开发_微信公众号开发之设置自定义菜单实例代码【java版】...

    本实例是为了实现在管理后台实现微信菜单的添加删除管理. 1.首先我们需要新建一个数据库表用于存放menu菜单项 可包含的字段有id.父类id.name.排序.是否显示.类型(view.click).链 ...

  4. Android开发实例-Android平台手机新闻客户端

    Android开发实例<Android平台手机新闻客户端>是基于Android4.0及以上平台的一款新闻类手机应用,应用运行效果如下所示: Android开发实例课程主要介绍运行于Andr ...

  5. C#软件开发实例.私人订制自己的屏幕截图工具(九)使用自定义光标,QQ截图时的光标

    本实例全部文章目录 (一)功能概览 (二)创建项目.注册热键.显示截图主窗口 (三)托盘图标及菜单的实现 (四)基本截图功能实现 (五)针对拖拽时闪烁卡顿现象的优化 (六)添加配置管理功能 (七)添加 ...

  6. 1、NC65及NC63 开发实例-附件管理操作(自定义附件)

    ** 1.NC65及NC63 各类开发实例 附件管理(自定义附件) ** > 自定义附件管理按钮实现当前单据附件上传 代码: package nc.ui.hfet.hfet_fininvoice ...

  7. 演练:开发和使用自定义服务器控件

    更新:2007 年 11 月 此演练演示如何创建和编译自定义 ASP.NET 服务器控件以及如何在页中使用该控件. 通过此演练,您将学会如何执行以下任务: 创建一个 ASP.NET 服务器控件. 向该 ...

  8. 开发和使用自定义服务器控件

    ASP.NET 演练:开发和使用自定义服务器控件 此演练演示如何创建和编译自定义 ASP.NET 服务器控件以及如何在页中使用该控件. 通过此演练,您将学会如何执行以下任务: 创建一个 ASP.NET ...

  9. php 微信开发 菜单,微信公众号中个性化菜单的开发实例

    微信公众号中个性化菜单的开发实例 个性化菜单让公众号的不同用户群体看到不一样的自定义菜单.该接口开放给已认证订阅号和已认证服务号,个性化菜单要求用户的微信客户端版本在iPhone6.2.2,Andro ...

最新文章

  1. JavaScript运算符:递增递减运算符前置和后置的区别
  2. 搭建EJB3开发环境
  3. UVa 242 邮票和信封(完全背包)
  4. java传送字符到前端_mina实现服务器与客户端传送对象或字符串
  5. Tiny6410之重定位代码到SDRAM
  6. Javascript模块模式学习分享
  7. 算法题丨Next Permutation
  8. SAP License:ERP横向集中部署还是纵向集中部署
  9. win10计算机错误代码,Win10错误代码:0xc00000f 解决方案
  10. python实现web服务器_python实现静态web服务器
  11. vue dve环境static无法被外部访问_vue项目性能优化(代码层面)
  12. the database profile could not loaded. Check log for details
  13. Java面试题总结 - Java多线程篇(附答案)
  14. 模型计算机微指令总表,基于微程序控制器的模型计算机设计
  15. DNS与GTM协同工作原理
  16. 华为微认证华为云数据库服务实践稳过 笔记资料
  17. 们指点如果在android平台下开启jbox2d的debugDraw功能
  18. ajax get传递数组参数吗,ajax 传递数组参数
  19. win10更新服务打开后为什么服务拒绝访问
  20. win8文件操作以及音视频的应用

热门文章

  1. 调用restful接口_SSM实现RESTFul风格的CURD操作
  2. vue、bus 使用遇到的坑,组件之间无法传值;vue、bus 第一次获取不到值,后面再点击重复执行
  3. vue @click 如何绑定多个方法
  4. PHP+SQLite3简约网址导航、书签管理器网站源码
  5. 独立版TP空间内核|知识付费小程序源码
  6. WP百度搜索推送管理插件
  7. DOM Element节点类型详解
  8. Mysql: LBS实现查找附近的人 (两经纬度之间的距离)
  9. 不刷新改变URL: pushState + Ajax
  10. Ubuntu 13.10/12.10/12.04 用户如何升级到 Ubuntu 14.04