IOleUndoUnit::D o 方法 (ocidl.h)

指示復原單位執行其動作。 請注意,如果它包含子復原單位,也必須呼叫其 Do 方法。

語法

HRESULT Do(
  [in] IOleUndoManager *pUndoManager
);

參數

[in] pUndoManager

復原管理員的指標。 請參閱 IOleUndoManager

傳回值

此方法會在成功時傳回S_OK。

備註

復原單位負責執行其動作。 執行自己的復原動作會導致另一個可能反轉的動作。 不過,如果 pUndoManagerNULL,復原單位應該執行其復原動作,但不應該嘗試將任何專案放在重做或復原堆疊上。

如果 pUndoManager 不是 NULL,則需要單位,才能將對應的單位放在重做或復原堆疊上。 因此,這個方法會自行移至重做或復原堆疊,或建立新的復原單位,並將它新增至適當的堆棧。 建立新的復原單位之後,此復原單位會呼叫 IOleUndoManager::OpenIOleUndoManager::Add。 復原管理員會根據其目前狀態,將新的復原單位放在復原或重做堆棧上。

父單位必須傳遞至其子系,該子系可能是 NULL,該管理員會提供給父系。 當 pUndoManagerNULL 時,只要未認可,就可以在重做或復原堆疊上開啟父單位,但並非必要。 封鎖的父單位可確保子單位不會將任何專案新增至堆疊。

如果這個復原單位是父單位,它應該先放在重做或復原堆棧上,再在其子系上呼叫 Do 方法。

呼叫此方法之後,復原管理員必須釋放復原單位。

實作者的注意事項

如需復原單位的錯誤處理策略,請參閱 IOleUndoManager 介面。 錯誤處理策略會影響這個方法的實作,特別是針對父單位。

規格需求

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

另請參閱

IOleUndoManager::Add

IOleUndoManager::Open

IOleUndoUnit