IOleUndoManager::UndoTo メソッド (ocidl.h)

元に戻す操作を元に戻す操作を元に戻す操作を元に戻すように、元に戻す操作を元に戻す操作を元に戻す操作を元に戻す前に、指定した元に戻す単位を含めます。

構文

HRESULT UndoTo(
  [in] IOleUndoUnit *pUU
);

パラメーター

[in] pUU

元に戻す最上位レベルの単位へのポインター。 このパラメーターが NULL の場合は、最後に追加された最上位レベルの単位が使用されます。

戻り値

このメソッドは、成功したS_OKを返します。 その他の可能な戻り値は次のとおりです。

リターン コード 説明
E_INVALIDARG
指定した元に戻す単位が元に戻すスタックにありません。
E_ABORT
元に戻す試行とロールバックの試行の両方が失敗しました。 元に戻すマネージャーは、含まれている元に戻す単位から取得したE_ABORTを伝達しないでください。 代わりに、他の元に戻す単位から返されたE_ABORT値をE_FAILにマップする必要があります。 元に戻すマネージャーは、 IOleUndoManager::UndoTo の呼び出し元が元に戻す試行とロールバックの試行が失敗したことを認識し、これがE_ABORTの戻り値の唯一の理由であるため、他の元に戻す単位から返されたE_ABORT値をE_FAILにマップする必要があります。
E_UNEXPECTED
元に戻すマネージャーが無効になっています。

注釈

このメソッドは、各最上位の元に戻す単位で 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

こちらもご覧ください

IOleUndoManager

IOleUndoManager::EnumUndoable

IOleUndoManager::RedoTo

IOleUndoUnit::D o