次の方法で共有


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」を参照してください。

関連項目

IObjectSafety インターフェイス
クラスの概要