用ATL开发ActiveX控件如何设置脚本安全 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 需要实现IObjectSafety接口,直接从IObjectSafetyImpl继承吧。 实现SAFE FOR SCRIPTING AND SAFE FOR INITIALIZING类别, 并且实现IObjectSafe接口 我用vc6带的atl开发activex 还请详细说下 class ATL_NO_VTABLE CYourClass : //从IObjectSafetyImpl派生 public IObjectSafetyImpl<CYourClass,INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA> { BEGIN_COM_MAP(CChatObj) COM_INTERFACE_ENTRY(IObjectSafety) //添加映射 END_COM_MAP() } 确切地说,你需要添加的是:public IObjectSafetyImpl<CYourClass,INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA> COM_INTERFACE_ENTRY(IObjectSafety) //添加映射 class CMeetingMng_DKCtrl : public COleControl{ DECLARE_DYNCREATE(CMeetingMng_DKCtrl)public:// Constructorpublic: CMeetingMng_DKCtrl();// Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CMeetingMng_DKCtrl) public: virtual void OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid);..这个是我activex的实现类 不是您那个样子的呀。 IObjectSafetyImpl加到你的继承列表中,然后把IObjectSafety加到COM_MAP中。 加入到继承列表中后error C2504: 'IObjectSafetyImpl' : base class undefined添加上#include <atlctl.h> 后进入到#error atlwin.h requires atlbase.h to be included first这是为什么? 把atlbase放在atlctl前包含 那错误就更多了。 lz你这是使用MFC开发Acticvex,而不是ATL 对不起大家我的错!!我在网上找了一个例子http://www.vcer.net/1183942830468.html但是copy后还是提示不安全呢? 用mfc的直接修改注册表没成功。以下和ls几位大神说的差不错望对后来者有帮助。http://blog.csdn.net/zhouxing_24/archive/2008/12/30/3651420.aspx 默认创建的win32 dll工程,编译之后并不生成.def文件啊? 仿VC驿站写的局域网聊天室怎么实现两台电脑之间的通信? 如何知道Recordset中某条记录的序号?既然是集合,记录得有序号吧 高分求ocr源码 在树控件中动态加入图标的问题,请大家帮帮忙 已用ADO和DataGrid联上了,可以显示数据了。不知如何能在DataGrid上直接编缉记录数据? realplay播发rm文件时经常停顿不前是怎么回事?哪儿有realplay最新下载? mfc存在内存泄漏? 拜师 如何使用 ShellExecute()的反回值? 64位转化为32位问题 学习C/C++的疑惑,非常的简单还是想不通?
并且实现IObjectSafe接口
public IObjectSafetyImpl<CYourClass,INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA>
{
BEGIN_COM_MAP(CChatObj)
COM_INTERFACE_ENTRY(IObjectSafety) //添加映射
END_COM_MAP()
}
public IObjectSafetyImpl<CYourClass,INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA> COM_INTERFACE_ENTRY(IObjectSafety) //添加映射
{
DECLARE_DYNCREATE(CMeetingMng_DKCtrl)
public:
// Constructor
public:
CMeetingMng_DKCtrl();// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMeetingMng_DKCtrl)
public:
virtual void OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid);
..这个是我activex的实现类 不是您那个样子的呀。
添加上#include <atlctl.h> 后进入到#error atlwin.h requires atlbase.h to be included first
这是为什么?
我在网上找了一个例子
http://www.vcer.net/1183942830468.html
但是copy后还是提示不安全呢?