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 组件类别结合使用可提供一种替代方法,用于指定组件是安全的。
继承层次结构
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。