ActiveX控件打包成cab后,在脚本中调用中时,要保证控件的安全性才能在你的网页上安全运行,有两种方法来实现这一保证:实现一个名称为IObjectSafe的接口到你的控件。如果IE发现你的控件支持IObjectSafety,它调用 IObjectSafety::SetInterfaceSafetyOptions 方法然后才载入你的控件。另外一种方法需要修改注册表,我将会在另外一篇文章中详细介绍。
1。创建了一个叫做“tryISafeObject.ocx”的MFC ActiveX控件。
2。在tryISafeObjectCtrl.h中定义ISafeObject接口:
#include <objsafe.h> // for IObjectSafety; in ActiveX SDK
class CtryISafeObjectCtrl : public COleControl
{
DECLARE_DYNCREATE(CtryISafeObjectCtrl)
//........................................................................
//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) (
&n

本文介绍了如何确保ActiveX控件在脚本中安全运行,主要聚焦于实现ISafeObject接口。当IE检测到控件支持IObjectSafety接口,会通过调用SetInterfaceSafetyOptions方法来加载。文章通过创建一个MFC ActiveX控件tryISafeObject.ocx,详细讲解了在tryISafeObjectCtrl.h和tryISafeObjectCtrl.cpp中定义和实现ISafeObject接口的步骤。
最低0.47元/天 解锁文章

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



