Share via


IOleUndoManager::Close-Methode (ocidl.h)

Schließt die angegebene übergeordnete Rückgängig-Komponente.

Syntax

HRESULT Close(
  [in] IOleParentUndoUnit *pPUU,
  [in] BOOL               fCommit
);

Parameter

[in] pPUU

Ein Zeiger auf eine IOleParentUndoUnit-Schnittstelle für die aktuell geöffnete übergeordnete Einheit, die geschlossen werden soll.

[in] fCommit

Gibt an, ob die Einheit beibehalten oder verworfen werden soll. Wenn TRUE, wird die Einheit in der Auflistung beibehalten. Bei FALSE wird die Einheit verworfen. Dieser Parameter wird verwendet, um es dem Client zu ermöglichen, eine rückgängige Einheit im Aufbau zu verwerfen, wenn ein Fehler oder ein Abbruch auftritt.

Rückgabewert

Diese Methode gibt S_OK zurück, wenn der Rückgängig-Manager eine geöffnete übergeordnete Undo-Einheit hatte und sie erfolgreich geschlossen wurde. Wenn der Rückgängig-Manager deaktiviert ist, sollte er sofort S_OK zurückgeben und nichts anderes tun. Weitere mögliche Rückgabewerte:

Rückgabecode Beschreibung
S_FALSE
Die übergeordnete Undo-Einheit verfügte nicht über ein geöffnetes untergeordnetes Element, und sie wurde erfolgreich geschlossen.
E_INVALIDARG
Wenn pPUU nicht mit der derzeit geöffneten übergeordneten Undo-Einheit übereinstimmt, sollten Implementierungen dieser Methode E_INVALIDARG zurückgeben, ohne den internen Zustand zu ändern, es sei denn, die übergeordnete Einheit wird blockiert.

Hinweise

Diese Methode wird mit IOleParentUndoUnit::Close implementiert. Eine übergeordnete Rückgängigeinheit weiß, dass sie geschlossen wird, wenn sie S_FALSE von dieser Methode zurückgibt. Zu diesem Zeitpunkt sollte die Kommunikation mit anderen Objekten beendet werden, die ihr möglicherweise Daten über private Schnittstellen geben.

Hinweise für Anrufer

Eine Fehlerrückgabe gibt eine schwerwiegende Fehlerbedingung an.

Die übergeordnete Einheit oder der Rückgängig-Manager muss die Undo-Einheit akzeptieren, wenn fCommitTRUE ist.

Hinweis für Implementierer

Um eine schließende Anforderung zu verarbeiten, überprüft eine übergeordnete Undo-Einheit zuerst, ob sie über eine geöffnete untergeordnete Einheit verfügt. Andernfalls wird S_FALSE zurückgegeben.

Wenn eine untergeordnete Einheit geöffnet ist, ruft sie die IOleUndoManager::Close-Methode für das untergeordnete Element auf. Wenn das untergeordnete Element S_FALSE zurückgibt, überprüft die übergeordnete Undo-Einheit, dass pPUU auf die untergeordnete Einheit verweist, und schließt diese untergeordnete Undo-Einheit. Wenn das untergeordnete Element S_OK zurückgibt, hat es das Schließen intern verarbeitet, und sein übergeordnetes Element sollte nichts tun.

Wenn die übergeordnete Einheit blockiert ist, sollte sie den pPUU-Parameter überprüfen, um den entsprechenden Rückgabecode zu ermitteln. Wenn pPUU auf sich selbst verweist, sollte S_FALSE zurückgegeben werden.

Andernfalls sollte S_OK zurückgegeben werden. der fCommit-Parameter wird ignoriert. und es werden keine Maßnahmen ergriffen.

Wenn pPUU nicht mit der derzeit geöffneten übergeordneten Undo-Einheit übereinstimmt, sollten Implementierungen dieser Methode E_INVALIDARG zurückgeben, ohne den internen Zustand zu ändern. Die einzige Ausnahme ist, wenn die Einheit blockiert ist.

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

IOleParentUndoUnit::Close

IOleUndoManager