IOleUndoManager::UndoTo 方法 (ocidl.h)
指示復原管理員透過復原堆疊叫用復原動作,並向下叫用復原動作,並包含指定的復原單位。
語法
HRESULT UndoTo(
[in] IOleUndoUnit *pUU
);
參數
[in] pUU
要復原的最上層單位指標。 如果此參數為 NULL,則會使用最近新增的最上層單位。
傳回值
此方法會在成功時傳回S_OK。 其他可能的傳回值包括下列專案。
傳回碼 | Description |
---|---|
|
指定的復原單位不在復原堆疊上。 |
|
復原嘗試和復原嘗試都失敗。 復原管理員絕對不應該傳播從自主復原單位取得的E_ABORT。 相反地,它應該會將從其他復原單位傳回的任何E_ABORT值對應至E_FAIL。 復原管理員應該將從其他復原單位傳回的任何E_ABORT值對應至E_FAIL,因為 IOleUndoManager::UndoTo 的呼叫者知道復原嘗試和復原嘗試失敗,這是傳回值的唯一原因E_ABORT。 |
|
復原管理員已停用。 |
備註
這個方法會在每個最上層復原單位上呼叫 IOleUndoUnit::D o 方法。 然後,它會釋放該復原單位。
請注意,指定的復原單位必須是最上層單位,通常是透過 IOleUndoManager::EnumUndoable 擷取。
如果復原單位傳回錯誤,復原管理員必須嘗試復原文件的狀態,以在重做堆疊上執行動作,以從錯誤中復原。
不論復原成功為何,復原管理員都應該一律清除這兩個堆棧,再傳回錯誤。
如果復原管理員在一個以上的最上層單位上呼叫 Do 方法,它應該只會復原傳回錯誤的單位。 不應該復原成功的最上層單位。
復原管理員也必須追蹤是否將單位新增至相反的堆疊,如此就不會在未新增任何項目時嘗試復原。 如需錯誤處理的詳細描述,請參閱 IOleUndoManager 介面。
來電者附註
復原單位可能會將E_ABORT傳回為失敗,但這在 IOleUndoUnit 上沒有特定意義。 因為復原管理員通常會傳回失敗復原單位所提供的錯誤碼,而且E_ABORT在 IOleUndoManager::UndoTo 上具有特定意義,所以復原管理員絕對不應該傳遞E_ABORT,因為呼叫者會在事實上可能成功時將它解譯為復原失敗。規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | ocidl.h |