IOleDocumentView::SetInPlaceSite メソッド (docobj.h)

コンテナーのドキュメント ビュー サイトをドキュメントのビュー オブジェクトに関連付けます。

構文

HRESULT SetInPlaceSite(
  [in] IOleInPlaceSite *pIPSite
);

パラメーター

[in] pIPSite

ドキュメント ビュー サイトの IOleInPlaceSite インターフェイスへのポインター。 このパラメーターには NULL を指定できます。この場合、ドキュメント ビュー オブジェクトはコンテナーに対するすべての asociation を失います。

戻り値

このメソッドは、ドキュメント ビュー サイトがドキュメント ビュー オブジェクトに正常に関連付けられた場合 ( または pIPSiteNULL の場合は関連付けが解除された場合) にS_OKを返します。 その他の可能な戻り値は次のとおりです。

リターン コード 説明
E_FAIL
操作が失敗しました。

注釈

ドキュメント オブジェクトのアクティブ化の一環として、コンテナーはオブジェクトに IOleInPlaceSite のコンテナーの実装へのポインターを渡す必要があります。 このポインターは、このメソッドが呼び出されるビューに関連付けられるドキュメント ビュー サイトを指定します。

コンテナーは通常、ドキュメントのアクティブ化要求に応答してこのポインターを渡します。 ドキュメントは、 IOleDocumentSite::ActivateMe を呼び出し、アクティブ化するビューへのポインターをコンテナーに渡すことによって、このような要求を行います。 次に、コンテナーはこのポインターを使用して IOleDocumentView::SetInPlaceSite を呼び出します。

呼び出し元へのメモ

コンテナーがドキュメント オブジェクトの読み込まれたインスタンスの単なるアクティブ化ではなく、ドキュメント オブジェクトの新しいインスタンスの作成とアクティブ化を要求している場合、ビュー サイトは IOleDocument::CreateViewpIPSite 引数で渡されます。 そのため、 IOleDocumentView::SetInPlaceSite の明示的な呼び出しは不要です。

実装者へのメモ

ビュー サイトに既に関連付けられているビューでこのメソッドが呼び出された場合、ビューは新しいサイトで自身をアクティブ化する準備として、いくつかのハウスキーピングを実行する必要があります。 最初に、ビューは現在のサイトでそれ自体を非アクティブ化し、そのサイトへのポインターを解放する必要があります。 次に、新しい IOleInPlaceSite ポインターが NULL でない場合、ビューはポインターを保存し、その上で IUnknown::AddRef を 呼び出す必要があります。 その後、ビューは、コンテナーが新しいビュー サイトでアクティブ化するタイミングを通知するまで待つ必要があります。

ドキュメント ビューでは、このメソッドを完全に実装する必要があります。E_NOTIMPLは許容される戻り値ではありません。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー docobj.h

こちらもご覧ください

IOleDocumentView

IOleDocumentView::SetInPlaceSite