2011-12-07 21 views
2

我们有一个activex对象,它实现了IObjectSafety以表明它对于脚本来说是安全的。它从一个受信任的站点安装。但是我们仍然得到IE的抱怨,说这个页面上的控件对于脚本来说是不安全的。为什么不实现IObjectSafety有所作为

正在运行我们的ActiveX的站点的管理员不愿意启用即使其信任区域也不标记为脚本安全的控件。

我们的驾驶室和它的所有组件都签订了(我们终于取得了uverified出版商签署即进入MSI安装程序每个DLL go away)的

任何人对如何打棍子IObjectSafety的进入工作有什么想法?

+0

疯狂地误解了它的意图。 “请点击确定按钮,我可以安全地安装,承诺。” –

+0

对于在受控设置中运行的指定应用程序和从野外下载内容,专门编写的activex之间存在很大差异。这是说,我个人不明白的IObjectSafety的目的,因为显然有意图做损害的人会说是,他们的对象是安全的。 –

回答

3

确保对IObjectSafety使用正确的GUID。你的界面应该是这样的,与特定GUID:

[ComImport] 
// This GUID matters! 
[Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064")] 
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] 
public interface IObjectSafety 
{ 
    [PreserveSig] 
    int GetInterfaceSafetyOptions(ref Guid riid, out int pdwSupportedOptions, out int pdwEnabledOptions); 

    [PreserveSig] 
    int SetInterfaceSafetyOptions(ref Guid riid, int dwOptionsMask, int dwEnabledOptions); 
} 

有几个环节在那里,大纲如何实现IObjectSafety,但这里是我发现calls out the fact that the Guid matters唯一的一个。在我的代码中进行更改后,IE不再抱怨。

相关问题