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