次の方法で共有


IObjectWithSiteImpl クラス

このクラスは、オブジェクトがそのサイトと通信できるようにするためのメソッドを提供します。

構文

template <class T>
    class ATL_NO_VTABLE IObjectWithSiteImpl :
    public IObjectWithSite

パラメーター

T
IObjectWithSiteImpl から派生したクラス。

メンバー

パブリック メソッド

名前 説明
IObjectWithSiteImpl::GetSite インターフェイス ポインターに対するサイトのクエリを実行します。
IObjectWithSiteImpl::SetChildSite オブジェクトにサイトの IUnknown ポインターを提供します。
IObjectWithSiteImpl::SetSite オブジェクトにサイトの IUnknown ポインターを提供します。

パブリック データ メンバー

名前 説明
IObjectWithSiteImpl::m_spUnkSite サイトの IUnknown ポインターを管理します。

解説

IObjectWithSite インターフェイスを使用すると、オブジェクトはそのサイトと通信できます。 クラス IObjectWithSiteImpl では、このインターフェイスの既定の実装が提供され、デバッグ ビルドでダンプ デバイスに情報を送信することによって IUnknown が実装されます。

IObjectWithSiteImpl によって、2 つのメソッドを指定します。 クライアントは、まず SetSite を呼び出し、サイトの IUnknown ポインターを渡します。 このポインターはオブジェクト内に保存され、後で GetSite の呼び出しによって取得することができます。

通常は、コントロールではないオブジェクトを作成するときに、IObjectWithSiteImpl からクラスを派生させます。 コントロールの場合は、IOleObjectImpl からクラスを派生させます。これにより、サイト ポインターも提供されます。 IObjectWithSiteImplIOleObjectImpl の両方からクラスを派生させないでください。

継承階層

IObjectWithSite

IObjectWithSiteImpl

要件

ヘッダー: atlcom.h

IObjectWithSiteImpl::GetSite

riid によって識別されるインターフェイスへのポインターに対するサイトのクエリを実行します。

STDMETHOD(GetSite)(
    REFIID riid,
    void** ppvSite);

解説

サイトでこのインターフェイスがサポートされている場合は、ppvSite によってポインターが返されます。 それ以外の場合、ppvSite は NULL に設定されます。

Windows SDK の IObjectWithSite::GetSite を参照してください。

IObjectWithSiteImpl::m_spUnkSite

サイトの IUnknown ポインターを管理します。

CComPtr<IUnknown> m_spUnkSite;

解説

m_spUnkSite は、SetSite を呼び出すことによって、最初にこのポインターを受け取ります。

IObjectWithSiteImpl::SetChildSite

オブジェクトにサイトの IUnknown ポインターを提供します。

HRESULT SetChildSite(IUnknown* pUnkSite);

パラメーター

pUnkSite
[入力] このオブジェクトを管理しているサイトの IUnknown インターフェイス ポインターへのポインター。 NULL の場合は、オブジェクトがそのサイトを認識しなくなった時点の既存のサイトで IUnknown::Release を呼び出す必要があります。

戻り値

S_OK を返します。

IObjectWithSiteImpl::SetSite

オブジェクトにサイトの IUnknown ポインターを提供します。

STDMETHOD(SetSite)(IUnknown* pUnkSite);

解説

Windows SDK の IObjectWithSite::SetSite を参照してください。

関連項目

クラスの概要