Office名称控件PresenceEnabled始终为false

时间:2013-01-22 10:41:25

标签: javascript wpf internet-explorer-9 activex

我有一个带有WPF控件的WebBrowser应用,它从本地磁盘加载HTML文件。在HTML文件中,我有javascript代码来创建Office Lync Presence ActiveX控件(Name.NameCtrl.1)对象,该对象用于显示某些用户的联系人卡片。

创建对象,但名称控件的PresenceEnabled属性始终为 false 。我有什么想法可以解决这个问题吗?

我在计算机上安装了Lync 2013。使用Lync 2010时,相同的代码工作正常。

我的浏览器 IE 9 ,我在IE 8和IE 10上也观察到了同样的问题(目前只针对IE)。

Javascript代码:

try {
    var presenceObj = new window.ActiveXObject("Name.NameCtrl.1");
} catch (err) { }

function showLync(element) {
    try {
        // Works fine till this part. However, presenceObj.PresenceEnabled is false.
        presenceObj.ShowOOUI("somecalculatedalias", 0, $(element).offset().left, $(element).offset().top);
    } catch (err) {
        // goes into the catch block above with a "Permission denied" error (-2146828218)
    }
}

更多详情: 我已将MOTW(网络标记)添加到我的HTML页面,以确保它显示没有警告,我可以看到页面确实加载到正确的区域。来自页面属性:Local intranet | Protected Mode: Off

当我删除此MOTW时,我收到了预期的警告:“为了保护您的安全,您的网络浏览器限制了此文件......(等等)”。当我允许被阻止的内容时,上面相同的代码工作正常,我可以从ShowOOUI调用中看到Lync弹出窗口。

2 个答案:

答案 0 :(得分:0)

  

我有什么想法可以解决这个问题?

AllowPartiallyTrustedCallers (APTCA) attribute放在装配体上。

以下是其他一些选择:

答案 1 :(得分:0)

如果该控件用于不在Intranet或受信任站点上的页面上,或者如果受支持的即时消息传递程序版本(例如Windows Live),则PresenceEnabled属性为false Messenger / Skype for Business未运行。