IPersistStorage::HandsOffStorage メソッド (objidl.h)

コンテナーによって渡されたすべてのストレージ オブジェクトを解放し、HandsOff モードに入るようオブジェクトに指示します。

構文

HRESULT HandsOffStorage();

戻り値

このメソッドは、オブジェクトが HandsOff モードに正常に入っていることを示すS_OKを返します。

注釈

このメソッドは、オブジェクトが保持しているストレージ オブジェクトを解放し、後続の IPersistStorage::SaveCompleted 呼び出しまで HandsOff モードに入ります。 HandsOff モードでは、オブジェクトは何も実行できず、動作する唯一の操作は閉じる操作です。

コンテナー アプリケーションは通常、完全保存またはメモリ不足の完全保存操作中にこのメソッドを呼び出して、オブジェクトが現在のストレージへのすべてのポインターを強制的に解放します。 これらのシナリオでは、 HandsOffStorage 呼び出しは 、OleSave または IPersistStorage::Save の呼び出しの後に発生し、オブジェクトが HandsOffAfterSave モードになります。 コンテナー アプリケーションが現在のファイルを完全保存の一部として削除したり、メモリ不足の保存の一部として IRootStorage::SwitchToFile メソッドを呼び出したりするには、このメソッドを呼び出す必要があります。

コンテナー アプリケーションは、オブジェクトが標準モードの場合にもこのメソッドを呼び出して、オブジェクトを HandsOffFromNormal モードにします。

コンポーネント オブジェクトが HandsOffAfterSave モードまたは HandsOffFromNormal モードの場合、オブジェクトに対するほとんどの操作は失敗します。 したがって、コンテナーはできるだけ早くオブジェクトを標準モードに復元する必要があります。 コンテナー アプリケーションは、 IPersistStorage::SaveCompleted メソッドを呼び出してこれを行います。このメソッドは、新しいストレージ オブジェクトのコンポーネント オブジェクトにストレージ ポインターを戻します。

実装者へのメモ

このメソッドは、入れ子になったストリームとストレージへのポインターを含め、現在のストレージ オブジェクトへのすべてのポインターを解放する必要があります。 オブジェクトに入れ子になったオブジェクトが含まれている場合、コンテナー アプリケーションは、読み込まれた、または実行されている入れ子になったオブジェクトに対して、このメソッドを再帰的に呼び出す必要があります。

要件

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

こちらもご覧ください

IPersistStorage

OleSave