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 | オブジェクトの現在の安全性レベルを格納します。 |
解説
クラス IObjectSafetyImpl
では、IObjectSafety
の既定の実装が提供されます。 IObjectSafety
インターフェイスを使用すると、クライアントでオブジェクトの安全性レベルを取得および設定できます。 たとえば、Web ブラウザーから IObjectSafety::SetInterfaceSafetyOptions
を呼び出し、コントロールを初期化またはスクリプトに対して安全にすることができます。
CATID_SafeForScripting および CATID_SafeForInitializing コンポーネント カテゴリで IMPLEMENTED_CATEGORY マクロを使用すると、コンポーネントが安全であることを示す別の方法が提供されることに注意してください。
関連記事 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」を参照してください。