IPersistStorage::SaveCompleted 方法 (objidl.h)
通知物件可以寫入其記憶體物件。 藉由通知物件,它可以從 NoScribble 模式還原 (,使其不能寫入其記憶體物件) ,以 () 。 當物件收到 IPersistStorage::Save 呼叫時,就會進入 NoScribble 模式。
語法
HRESULT SaveCompleted(
[in] IStorage *pStgNew
);
參數
[in] pStgNew
如果與儲存前的儲存物件不同,則為新記憶體物件的 IStorage 指標。 如果目前儲存對象在儲存作業期間未變更,這個指標可以是 NULL 。 如果對象處於 HandsOff 模式,此參數必須是非 NULL。
傳回值
這個方法可以傳回下列值。
傳回碼 | 描述 |
---|---|
|
已成功完成命令。 |
|
物件會因為記憶體不足而維持在 HandsOff 模式或 NoScribble 模式中。 一般而言,當對象無法在 pStgNew 中開啟必要的數據流和儲存物件時,就會發生此錯誤。 |
|
pStgNew 參數無效。 一般而言,如果 pStgNew 為 NULL ,當對象處於 HandsOff 模式時,就會發生此錯誤。 |
|
對象處於 Normal 模式,而且沒有先前呼叫 IPersistStorage::Save 或 IPersistStorage::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 |