感谢此篇博客。找了很久没有找到IObjectSafety需要添加哪些代码,这篇代码很详细。
MFC OCX控件实现安全初始化和脚本安全的方法
原文有两个方法,我更推荐用IObjectSafety,原博客的代码不太好看,我这里整理一下。
我的环境是VS2013,用模板生成的项目包含的文件基本相同,不构成影响。一般如下结构:
假定我们用模板生成的项目名叫[TestOCX],所以马赛克部分应该都是TestOCX。相应的,本文涉及的两个文件分别为TestOCXCtrl.h和TestOCXCtrl.cpp。 如果需要,则请将代码中的TestOCXCtrl替换成各位自己的名字。
- 在TestOCXCtrl.h中添加如下代码
#include <objsafe.h> // for IObjectSafety; in ActiveX SDK
这个代码是实现IObjectSafety的前提。
- 依然是在TestOCXCtrl.h中,一般在类的构造函数前有一行
DECLARE_DYNCREATE(CTestOCXCtrl)
在这行代码前添加如下代码:
#pragma region objsafe
//*******************************************************add begin
//ISafeObject
DECLARE_INTERFACE_MAP()
BEGIN_INTERFACE_PART(ObjSafe, IObjectSafety)
STDMETHOD_(HRESULT, GetInterfaceSafetyOptions) (
/* [in] */ REFIID riid,
/* [out] */ DWORD __RPC_FAR *pdwSupportedOptions,
/* [out] */ DWORD __RPC_FAR *pdwEnabledOptions
);
STDMETHOD_(HRESULT, SetInterfaceSafetyOptions) (
/* [in] */ REFIID riid,
/* [in] */ DWORD dwOptionSetMask,
实现MFC OCX控件的安全:IObjectSafety接口

本文介绍了如何通过添加IObjectSafety接口来使MFC编写的OCX控件变得可信,避免安全警告。通过修改TestOCXCtrl.h和TestOCXCtrl.cpp文件中的特定代码,实现IObjectSafety接口,并在HTML中使用该控件时确保安全性。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



