IOleUndoManager::UndoTo 方法 (ocidl.h)
指示撤消管理器通过撤消堆栈调用撤消操作,并包括指定的撤消单元。
语法
HRESULT UndoTo(
[in] IOleUndoUnit *pUU
);
参数
[in] pUU
指向要撤消的顶级单位的指针。 如果此参数为 NULL,则使用最近添加的顶级单位。
返回值
此方法在成功时返回S_OK。 其他可能的返回值包括以下内容。
返回代码 | 说明 |
---|---|
|
指定的撤消单元不在撤消堆栈上。 |
|
撤消尝试和回滚尝试均失败。 撤消管理器绝不应传播从包含的撤消单元获取的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 |