Freigeben über


IOleParentUndoUnit::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 IOleParentUndoUnit-Zeiger auf die derzeit geöffnete übergeordnete Einheit, die geschlossen werden soll.

[in] fCommit

Gibt an, ob die Einheit beibehalten oder verworfen werden soll. Bei 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ängig-Einheit im Aufbau zu verwerfen, wenn ein Fehler oder ein Abbruch auftritt.

Rückgabewert

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

Rückgabecode Beschreibung
S_FALSE
Die übergeordnete Rückgängig-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 Rückgängig-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

Eine übergeordnete Rückgängig-Einheit weiß, dass sie geschlossen wird, wenn sie S_FALSE aus dieser Methode zurückgibt. Zu diesem Zeitpunkt sollte jede Kommunikation mit anderen Objekten beendet werden, die ihr möglicherweise Daten über private Schnittstellen zuweisen.

Hinweise für Anrufer

Eine Fehlerrückgabe gibt einen schwerwiegenden Fehlerzustand an.

Die übergeordnete Einheit oder der Rückgängig-Manager muss die Rückgängig-Einheit akzeptieren, wenn fCommitauf TRUE festgelegt ist.

Hinweise für Implementierer

Um eine Close-Anforderung zu verarbeiten, überprüft eine übergeordnete Rückgängig-Einheit zunächst, ob sie über eine geöffnete untergeordnete Einheit verfügt. Wenn dies nicht der Fall ist, wird S_FALSE zurückgegeben.

Wenn eine untergeordnete Einheit geöffnet ist, wird die IOleParentUndoUnit::Close-Methode für das untergeordnete Element aufgerufen. Wenn das untergeordnete Element S_FALSE zurückgibt, überprüft die übergeordnete Rückgängig-Einheit, dass pPUU auf die untergeordnete Einheit zeigt, und schließt die untergeordnete Rückgängig-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 zeigt, sollte S_FALSE zurückgegeben werden.

Andernfalls sollte S_OK zurückgegeben werden. der fCommit-Parameter wird ignoriert. und es wird keine Aktion ausgeführt.

Wenn pPUU nicht mit der derzeit geöffneten übergeordneten Rückgängig-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

IOleParentUndoUnit::Close