【发布时间】:2015-10-23 04:49:54
【问题描述】:
我正在尝试使用 MS Office Name.dll 作为 COM 对象。 我在这些链接中找到了一些帮助,可以在网络浏览器中执行类似的操作:
https://msdn.microsoft.com/en-us/library/office/ms455335(v=office.14).aspx
http://mcgivery.com/displaying-a-users-lync-status-using-namectrl/
name.dll 基本上允许我从 MS Lync 获取状态信息并显示联系人卡片。
我能够成功创建一个引用 name.dll 的测试 Windows 窗体应用程序。 VisualStudio 为我创建了一个 Interop,我可以使用 NameCtrl 类。
项目运行良好,我的测试应用程序能够显示联系人卡片,但仅在使用旧版本的 Office 2010 时。 升级到 Office 2010 SP2 时,它不再工作了。使用 Office 2013 时,它从来没有工作过。
我实际上可以成功实例化对象,但是对象的属性'PresenceEnable'始终为0,并且尝试显示联系人卡片会引发异常“E_ACCESDENIED 0x80070005”。在这些不工作的环境中,使用网络浏览器(IE/Firefox)仍然可以正常工作。
有谁知道如何使它工作? 为什么它只适用于旧版本的 Office 2010 而停止使用新版本?
【问题讨论】: