IOleUndoManager::UndoTo-Methode (ocidl.h)

Weist den Rückgängig-Manager an, Rückgängig-Aktionen zurück über den Rückgängig-Stapel aufzurufen, bis und einschließlich der angegebenen Rückgängig-Einheit.

Syntax

HRESULT UndoTo(
  [in] IOleUndoUnit *pUU
);

Parameter

[in] pUU

Zeiger auf die Einheit der obersten Ebene, um rückgängig zu machen. Wenn dieser Parameter NULL ist, wird die zuletzt hinzugefügte Einheit der obersten Ebene verwendet.

Rückgabewert

Diese Methode gibt S_OK bei Erfolg zurück. Weitere mögliche Rückgabewerte:

Rückgabecode Beschreibung
E_INVALIDARG
Die angegebene Rückgängig-Einheit befindet sich nicht im Rückgängig-Stapel.
E_ABORT
Sowohl der Rückgängig-Versuch als auch der Rollbackversuch sind fehlgeschlagen. Der Rückgängig-Manager sollte niemals die E_ABORT weitergeben, die aus einer enthaltenen Rückgängig-Einheit abgerufen wurden. Stattdessen sollten alle E_ABORT Werte, die von anderen Rückgängig-Einheiten zurückgegeben werden, E_FAIL zugeordnet werden. Der Rückgängig-Manager sollte alle von anderen Rückgängig-Einheiten zurückgegebenen E_ABORT Wert E_FAIL zuordnen, da der Aufrufer von IOleUndoManager::UndoTo weiß, dass der Rückgängig-Versuch und der Rollbackversuch fehlgeschlagen sind. Dies ist der einzige Grund für den Rückgabewert von E_ABORT.
E_UNEXPECTED
Der Rückgängig-Manager ist deaktiviert.

Hinweise

Diese Methode ruft die IOleUndoUnit::D o-Methode für jede Rückgängig-Einheit der obersten Ebene auf. Anschließend wird die Rückgängig-Einheit freigegeben.

Beachten Sie, dass die angegebene Rückgängig-Einheit eine Einheit der obersten Ebene sein muss, die in der Regel über IOleUndoManager::EnumUndoable abgerufen wird.

Wenn von der Rückgängig-Einheit ein Fehler zurückgegeben wird, muss der Rückgängig-Manager versuchen, einen Rollback des Zustands des Dokuments durchzuführen, um den Fehler zu beheben, indem Er Aktionen für den Wiederholungsstapel ausführt.

Unabhängig vom Erfolg des Rollbacks sollte der Rückgängig-Manager immer beide Stapel löschen, bevor der Fehler zurückgegeben wird.

Wenn der Rückgängig-Manager die Do-Methode für mehr als eine Einheit der obersten Ebene aufgerufen hat, sollte er nur die Einheit zurücksetzen, die den Fehler zurückgegeben hat. Für die Einheiten der obersten Ebene, die erfolgreich waren, sollte kein Rollback ausgeführt werden.

Der Rückgängig-Manager muss auch nachverfolgen, ob Einheiten dem entgegengesetzten Stapel hinzugefügt wurden, damit er kein Rollback versucht, wenn nichts hinzugefügt wurde. Eine ausführliche Beschreibung der Fehlerbehandlung finden Sie in der IOleUndoManager-Schnittstelle .

Hinweise für Anrufer

Es ist möglich, dass eine Rückgängig-Einheit E_ABORT als Fehler zurückgibt, aber dies hat keine spezifische Bedeutung für IOleUndoUnit. Da der Rückgängig-Manager in der Regel den Fehlercode der fehlerhaften Rückgängig-Einheit zurückgibt und E_ABORT eine bestimmte Bedeutung für IOleUndoManager::UndoTo hat, sollte der Rückgängig-Manager niemals E_ABORT übergeben, da der Aufrufer dies als fehler beim Rollback interpretiert, wenn es tatsächlich erfolgreich war.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ocidl.h

Weitere Informationen

IOleUndoManager

IOleUndoManager::EnumUndoable

IOleUndoManager::RedoTo

IOleUndoUnit::D o