标记ATL控件为安全控件

用ATL开发网页控件时,IE总会出现“该控件不是安全的”之类的提示,去掉这个提示的方法就是使用 IObjectSafety 将其标记为可安全初始化的控件。
 
实现方法如下:
首先在需要将 IObjectSafetyImpl 添加到该控件的派生类中,然后在映射列表中添加IObjectSafety,具体添加的代码如下:
class CYouClassName:
// 添加到控件的派生类列表中
public IObjectSafetyImpl<CYouClassName, INTERFACESAFE_FOR_UNTRUSTED_CALLER>
... {
public:
BEGIN_COM_MAP(CYouClassName)
 COM_INTERFACE_ENTRY(IObjectSafety) //创建IObjectSafety的映射
 ...
END_COM_MAP()
...
}
PS:如果出现"'IObjectSafetyImpl' : base class undefined"的错误,则需要添加"atlctl.h"头文件。
原文地址:https://www.cnblogs.com/hanf/p/1616049.html