IPersistStorage::SaveCompleted 方法 (objidl.h)

通知物件可以寫入其記憶體物件。 藉由通知物件,它可以從 NoScribble 模式還原 (,使其不能寫入其記憶體物件) ,以 () 。 當物件收到 IPersistStorage::Save 呼叫時,就會進入 NoScribble 模式。

語法

HRESULT SaveCompleted(
  [in] IStorage *pStgNew
);

參數

[in] pStgNew

如果與儲存前的儲存物件不同,則為新記憶體物件的 IStorage 指標。 如果目前儲存對象在儲存作業期間未變更,這個指標可以是 NULL 。 如果對象處於 HandsOff 模式,此參數必須是非 NULL

傳回值

這個方法可以傳回下列值。

傳回碼 描述
S_OK
已成功完成命令。
E_OUTOFMEMORY
物件會因為記憶體不足而維持在 HandsOff 模式或 NoScribble 模式中。 一般而言,當對象無法在 pStgNew 中開啟必要的數據流和儲存物件時,就會發生此錯誤。
E_INVALIDARG
pStgNew 參數無效。 一般而言,如果 pStgNewNULL ,當對象處於 HandsOff 模式時,就會發生此錯誤。
E_UNEXPECTED
對象處於 Normal 模式,而且沒有先前呼叫 IPersistStorage::SaveIPersistStorage::HandsOffStorage

備註

這個方法會通知物件可以還原為 Normal 模式,而且可以再次寫入其儲存物件。 對象結束 NoScribble 模式或 HandsOff 模式。

如果物件從 HandsOff 模式還原,pStgNew 參數必須是非 NULL。 在 HandsOffFromNormal 模式中,此參數是取代 IPersistStorage::HandsOffStorage 方法撤銷的新儲存物件。 記憶體物件中的數據是撤銷之儲存物件中的數據複本。 在 HandsOffAfterSave 模式中,數據與最近儲存的數據相同。 它與撤銷的記憶體對象中的數據不同。

如果物件從 NoScribble 模式還原, pStgNew 參數可以是 NULL 或非 NULL。 如果 為 NULL,則物件再次可以存取其儲存物件。 如果不是 NULL,元件對象應該模擬接收其 HandsOffStorage 方法的呼叫。 如果元件對象無法模擬此呼叫,則必須準備其容器,才能實際呼叫 HandsOffStorage 方法。

這個方法必須以遞歸方式呼叫載入或執行的任何巢狀物件。

如果這個方法傳回錯誤碼,則物件不會傳回 Normal 模式。 因此,容器物件可以嘗試不同的儲存策略。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 objidl.h

另請參閱

IPersistStorage