IObjectSafetyImpl 类

此类提供 IObjectSafety 接口的默认实现,以允许客户端检索和设置对象的安全级别。

重要

无法在 Windows 运行时中执行的应用程序中使用此类及其成员。

语法

template <class T,DWORD dwSupportedSafety>
class IObjectSafetyImpl

参数

T
你的类,派生自 IObjectSafetyImpl

dwSupportedSafety
指定控件支持的安全选项。 可以是以下其中一个值:

  • INTERFACESAFE_FOR_UNTRUSTED_CALLER 是 SetInterfaceSafetyOptions 参数 riid 标识的接口,应安全用于编写脚本。

  • INTERFACESAFE_FOR_UNTRUSTED_DATA 是 SetInterfaceSafetyOptions 参数 riid 标识的接口,在初始化过程中应安全用于不受信任的数据。

成员

公共方法

名称 描述
IObjectSafetyImpl::GetInterfaceSafetyOptions 检索对象支持的安全选项,以及当前为对象设置的安全选项。
IObjectSafetyImpl::SetInterfaceSafetyOptions 使对象安全进行初始化或脚本编写。

公共数据成员

“属性” 描述
IObjectSafetyImpl::m_dwCurrentSafety 存储对象的当前安全级别。

备注

IObjectSafety 类提供 IObjectSafetyImpl 的默认实现。 接口 IObjectSafety 允许客户端检索和设置对象的安全级别。 例如,Web 浏览器可以调用 IObjectSafety::SetInterfaceSafetyOptions 以使控件安全进行初始化或脚本编写。

请注意,将 IMPLEMENTED_CATEGORY 宏与 CATID_SafeForScripting 和CATID_SafeForInitializing 组件类别结合使用可提供一种替代方法,用于指定组件是安全的。

相关文章ATL 教程创建 ATL 项目

继承层次结构

IObjectSafety

IObjectSafetyImpl

要求

标头:atlctl.h

IObjectSafetyImpl::GetInterfaceSafetyOptions

检索对象支持的安全选项,以及当前为对象设置的安全选项。

HRESULT GetInterfaceSafetyOptions(
    REFIID riid,
    DWORD* pdwSupportedOptions,
    DWORD* pdwEnabledOptions);

备注

该实现返回对象实现 IUnknown::QueryInterface 所支持的任何接口的相应值。

重要

支持 IObjectSafety 的任何对象都负责其自身的安全性,以及其委托的任何对象的安全性。 程序员必须考虑到用户在上下文中运行代码和跨站点进行脚本编写时出现的问题,并执行适当的区域检查。

请参阅 Windows SDK 中的 IObjectSafety::GetInterfaceSafetyOptions

IObjectSafetyImpl::m_dwCurrentSafety

存储对象的当前安全级别。

DWORD m_dwCurrentSafety;

IObjectSafetyImpl::SetInterfaceSafetyOptions

通过将 m_dwCurrentSafety 成员设置为适当的值,使对象可以安全进行初始化或脚本编写。

HRESULT SetInterfaceSafetyOptions(
    REFIID riid,
    DWORD dwOptionsSetMask,
    DWORD dwEnabledOptions);

备注

对于对象实现 IUnknown::QueryInterface 不支持的任何接口,实现返回 E_NOINTERFACE。

重要

支持 IObjectSafety 的任何对象都负责其自身的安全性,以及其委托的任何对象的安全性。 程序员必须考虑到用户在上下文中运行代码和跨站点进行脚本编写时出现的问题,并执行适当的区域检查。

请参阅 Windows SDK 中的 IObjectSafety::SetInterfaceSafetyOptions

另请参阅

IObjectSafety Interface
类概述