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 からクラスを派生させます。これにより、サイト ポインターも提供されます。 IObjectWithSiteImpl
と IOleObjectImpl
の両方からクラスを派生させないでください。
継承階層
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 を参照してください。