IOleDocumentView::CloseView メソッド (docobj.h)
ドキュメント ビューに対して、それ自体を閉じ、 その IOleInPlaceSite ポインターを解放するように指示します。
構文
HRESULT CloseView(
[in] DWORD dwReserved
);
パラメーター
[in] dwReserved
このパラメーターは予約済みであり、 NULL にすることはできません。
戻り値
このメソッドは、成功したS_OKを返します。
解説
別のウィンドウが不要になった場合、コンテナーは IOleDocumentView::CloseView を呼び出します。この場合、ビューはサイト ポインターを別のウィンドウに解放し、ウィンドウを破棄します。 作業中のドキュメントの通常のインプレース非アクティブ化シーケンスとは異なり、ドキュメント ビューは IOleInPlaceSite ポインターを保持し続けます。 このポインターは、ビューのコンテナーが SetInPlaceSite を呼び出し、 pIPSite が NULL に設定されている場合、または IOleDocumentView::CloseView を呼び出す場合にのみ解放されます。
ユーザーがビューの別のウィンドウを閉じると、ビュー自体はシャットダウンされません。 代わりに、 IOleInPlaceSite::OnInPlaceActivate を呼び出す必要があります。 その後、ビュー サイトは、 IOleDocumentView::UIActivate を FALSE ですぐに呼び出すか、後で呼び出すかを決定します。 このように、別のウィンドウに表示されるドキュメント ビューは、コンテナーの独自のウィンドウでアクティブ化できます。
コンテナーは、ビューを削除する前にこのメソッドを呼び出す必要があります。つまり、ビューへの最後の参照を解放します。 一般に、このメソッドの実装では、IOleDocumentView::Show with FALSE を呼び出して、ビューがまだ非表示でない場合は非表示にし、それ自体を非アクティブ化してビュー サイト ポインターを解放するには、NULL で SetInPlaceSite を呼び出します。
コンテナーがビューを完全にシャットダウンするときに IOleDocumentView::CloseView が呼び出されるため、このメソッドを実装する必要があり、失敗する理由はありません。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | docobj.h |