IPersistStorage::HandsOffStorage 方法 (objidl.h)
指示物件釋放其容器傳遞至該物件的所有儲存物件,並進入 HandsOff 模式。
Syntax
HRESULT HandsOffStorage();
傳回值
這個方法會傳回S_OK,指出物件已成功進入 HandsOff 模式。
備註
這個方法會導致物件釋放它所持有的任何儲存物件,並進入 HandsOff 模式,直到後續 的 IPersistStorage::SaveCompleted 呼叫為止。 在 HandsOff 模式中,物件無法執行任何動作,唯一運作的作業是關閉作業。
容器應用程式通常會在完整儲存或低記憶體完整儲存作業期間呼叫此方法,以強制物件釋放其目前記憶體的所有指標。 在這些案例中, HandsOffStorage 呼叫會在 呼叫 OleSave 或 IPersistStorage::Save 之後,將物件放入 HandsOffAfterSave 模式。 需要呼叫這個方法,容器應用程式才能在完整儲存時刪除目前的檔案,或呼叫 IRootStorage::SwitchToFile 方法作為低記憶體的一部分。
當對象處於 Normal 模式時,容器應用程式也會呼叫此方法,以將物件置於 HandsOffFromNormal 模式中。
雖然元件對象處於 HandsOffAfterSave 或 HandsOffFromNormal 模式,但物件上的大部分作業都會失敗。 因此,容器應該儘快將物件還原為 Normal 模式。 容器應用程式會藉由呼叫 IPersistStorage::SaveCompleted 方法來執行這項作業,此方法會將記憶體指標傳回新記憶體物件的元件物件。
實作者的注意事項
這個方法必須釋放目前儲存物件的所有指標,包括任何巢狀數據流和記憶體的指標。 如果物件包含巢狀物件,容器應用程式必須針對載入或執行的任何巢狀物件,以遞歸方式呼叫這個方法。規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | objidl.h |