IOleUndoManager::D iscardFrom 方法 (ocidl.h)

指示撤消管理器放弃撤消或重做堆栈上的指定撤消单元及其下的所有撤消单位。

语法

HRESULT DiscardFrom(
  [in] IOleUndoUnit *pUU
);

parameters

[in] pUU

指向要丢弃的撤消单元的 IOleUndoUnit 指针。 此参数可以为 NULL ,以放弃整个撤消或重做堆栈。 如果参数不为 NULL ,则不会放弃堆栈。

返回值

此方法在成功时返回S_OK。 其他可能的返回值包括以下内容。

返回代码 说明
E_INVALIDARG
在堆栈中找不到指定的撤消单位。
E_UNEXPECTED
撤消管理器已禁用。

注解

撤消管理器首先在撤消堆栈中搜索给定单位,如果未找到,则搜索重做堆栈。 找到该单元后,将放弃给定单位以及同一堆栈上所有单位。 撤消单元可能是撤消管理器包含的父单元的子单元,通过调用 IOleParentUndoUnit::FindUnit 确定。 如果它是子单元,则会放弃包含给定单位的根单位以及相应堆栈上其下的所有单位。

如果有一个打开的父单元,并且调用 了 DiscardFrom 方法并且 pUU 参数NULL,则撤消管理器应立即释放并放弃打开的父单元,而无需首先调用 IOleUndoManager::Close 。 当打开父单元的对象尝试关闭它时, IOleUndoManager::Close 将返回S_FALSE。 如果父单元处于打开状态,请将其丢弃并放弃堆栈。 如果父单元未打开,只需将堆栈扔掉。 如果 pUU 参数不为 NULL,则任何打开的父单元都应保持打开状态。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 ocidl.h

请参阅

IOleParentUndoUnit::FindUnit

IOleUndoManager

IOleUndoManager::Close