Freigeben über


IPersistStorage::SaveCompleted-Methode (objidl.h)

Benachrichtigt das Objekt, dass es in sein Speicherobjekt schreiben kann. Dazu wird das Objekt benachrichtigt, dass es aus dem NoScribble-Modus (in dem es nicht in sein Speicherobjekt schreiben darf) in den Normalen Modus rückgängig machen kann (in dem dies möglich ist). Das Objekt wechselt in den NoScribble-Modus, wenn es einen IPersistStorage::Save-Aufruf empfängt.

Syntax

HRESULT SaveCompleted(
  [in] IStorage *pStgNew
);

Parameter

[in] pStgNew

Ein IStorage-Zeiger auf das neue Speicherobjekt, wenn er sich vom Speicherobjekt vor dem Speichern unterscheidet. Dieser Zeiger kann NULL sein, wenn sich das aktuelle Speicherobjekt während des Speichervorgangs nicht ändert. Wenn sich das Objekt im HandsOff-Modus befindet, muss dieser Parameter nicht NULL sein.

Rückgabewert

Diese Methode kann die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen.
E_OUTOFMEMORY
Das Objekt blieb im HandsOff-Modus oder im NoScribble-Modus, da der Arbeitsspeicher fehlt. In der Regel tritt dieser Fehler auf, wenn das Objekt die erforderlichen Streams und Speicherobjekte in pStgNew nicht öffnen kann.
E_INVALIDARG
Der pStgNew-Parameter ist ungültig. In der Regel tritt dieser Fehler auf, wenn pStgNewNULL ist, wenn sich das Objekt im HandsOff-Modus befindet.
E_UNEXPECTED
Das Objekt befindet sich im Normalen Modus, und es gab keinen vorherigen Aufruf von IPersistStorage::Save oder IPersistStorage::HandsOffStorage.

Hinweise

Diese Methode benachrichtigt ein Objekt, dass es in den Normalen Modus rückgängig machen und erneut in sein Speicherobjekt schreiben kann. Das Objekt beendet den NoScribble-Modus oder den HandsOff-Modus.

Wenn das Objekt aus dem HandsOff-Modus zurückgesetzt wird, muss der pStgNew-Parameter ungleich NULL sein. Im HandsOffFromNormal-Modus ist dieser Parameter das neue Speicherobjekt, das das objekt ersetzt, das von der IPersistStorage::HandsOffStorage-Methode widerrufen wurde. Die Daten im Speicherobjekt sind eine Kopie der Daten aus dem widerrufenen Speicherobjekt. Im HandsOffAfterSave-Modus entsprechen die Daten den Daten, die zuletzt gespeichert wurden. Sie ist nicht identisch mit den Daten im widerrufenen Speicherobjekt.

Wenn das Objekt aus dem NoScribble-Modus zurückgesetzt wird, kann der pStgNew-ParameterNULL oder nicht NULL sein. Wenn NULL, hat das Objekt erneut Zugriff auf sein Speicherobjekt. Wenn es nicht NULL ist, sollte das Komponentenobjekt den Empfang eines Aufrufs seiner HandsOffStorage-Methode simulieren. Wenn das Komponentenobjekt diesen Aufruf nicht simulieren kann, muss sein Container so vorbereitet sein, dass die HandsOffStorage-Methode tatsächlich aufgerufen wird.

Diese Methode muss alle geschachtelten Objekte rekursiv aufrufen, die geladen oder ausgeführt werden.

Wenn diese Methode einen Fehlercode zurückgibt, wird das Objekt nicht in den Normalen Modus zurückgegeben. Daher kann das Containerobjekt verschiedene Speicherstrategien versuchen.

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 objidl.h

Weitere Informationen

IPersistStorage