IOleUndoManager::D iscardFrom メソッド (ocidl.h)

元に戻すまたはやり直しスタックで、指定した元に戻す単位と、その下にあるすべての元に戻す単位を破棄するように、元に戻すマネージャーに指示します。

構文

HRESULT DiscardFrom(
  [in] IOleUndoUnit *pUU
);

パラメーター

[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