浏览器与ActiveX控件交互时会弹出警告,去掉它必须实现IObjectSafety接口。当一个ActiveX实现了该接口时就是声明了它是安全的,那么用户因为使用此控件造成的损失应该由此控件厂商承担,所以还是谨慎的好。

关于IObjectSafety的更多资料,参考:

再谈IObjectSafety

ATL中实现IObjectSafety接口,只需要继承IObjectSafetyImpl即可,详细资料参考:

如何为初始化 IObjectSafety 标记 ATL 控件安全

这篇参考资料的ATL版本比较低,但大体是对的,在新的ATL中有如下地方需要改动:

继承时使用:public IObjectSafetyImpl<CXLSafeEditWrap, INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA>

COM MAP中使用:COM_INTERFACE_ENTRY(IObjectSafety)