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 |
---|---|
|
Die angegebene Rückgängig-Einheit befindet sich nicht im Rückgängig-Stapel. |
|
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. |
|
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 |