次の方法で共有


IOleInPlaceObject::InPlaceDeactivate メソッド (oleidl.h)

アクティブなインプレース オブジェクトを非アクティブ化し、オブジェクトの元に戻す状態を破棄します。

構文

HRESULT InPlaceDeactivate();

戻り値

このメソッドは、成功したS_OKを返します。 その他の可能な戻り値は次のとおりです。

リターン コード 説明
E_UNEXPECTED
予期しないエラーが発生しました。

注釈

呼び出し元へのメモ

このメソッドは、アクティブ オブジェクトのイミディエイト コンテナーによって呼び出され、アクティブ オブジェクトを非アクティブ化し、元に戻す状態を破棄します。

実装者へのメモ

IOleInPlaceObject::InPlaceDeactivate から戻った場合、オブジェクトは元に戻す状態を破棄します。 オブジェクト アプリケーションは、この呼び出しの直後にシャットダウンしないでください。 代わりに、 IOleObject::Close の明示的な呼び出し、またはオブジェクトの参照カウントが 0 になるまで待機する必要があります。

非アクティブ化する前に、オブジェクト アプリケーションは 、IOleInPlaceSite::OnUIDeactivate を呼び出して、ユーザー インターフェイスをフレーム ウィンドウに戻す機会をコンテナーに与える必要があります。

IOleInPlaceObject::InPlaceDeactivate の呼び出し中にインプレース ユーザー インターフェイスが引き続き表示される場合、オブジェクト アプリケーションは独自の IOleInPlaceObject::InPlaceDeactivate メソッドを呼び出して、ユーザー インターフェイスを非表示にする必要があります。 インプレース ユーザー インターフェイスは、IOleInPlaceObject::InPlaceDeactivate および IOleInPlaceObject::InPlaceDeactivate の呼び出し中に、必要に応じて破棄できます。 ただし、コンテナーが IOleObject::Close を呼び出すときにユーザー インターフェイスがまだ破棄されていない場合は、 IOleObject::Close の呼び出し中に破棄する必要があります。

IOleObject::Close の呼び出し中に、オブジェクトチェックして、まだアクティブであるかどうかを確認する必要があります。 その場合は、 IOleInPlaceObject::InPlaceDeactivate を呼び出す必要があります。

要件

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

こちらもご覧ください

IOleInPlaceObject

IOleInPlaceSite::OnInPlaceDeactivate

IOleInPlaceSite::OnUIDeactivate

IOleObject::Close