Freigeben über


IPersistStream::Save-Methode (objidl.h)

Speichert ein Objekt im angegebenen Stream.

Syntax

HRESULT Save(
  [in] IStream *pStm,
  [in] BOOL    fClearDirty
);

Parameter

[in] pStm

Ein IStream-Zeiger auf den Stream, in dem das Objekt gespeichert werden soll.

[in] fClearDirty

Gibt an, ob das Änderungsflag nach Abschluss des Speichervorgangs gelöscht werden soll. Wenn TRUE, sollte das Flag gelöscht werden. Bei FALSE sollte das Flag unverändert bleiben.

Rückgabewert

Diese Methode kann die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen.
STG_E_CANTSAVE
Das Objekt konnte sich nicht selbst im Stream speichern. Dieser Fehler kann beispielsweise darauf hinweisen, dass das Objekt ein anderes Objekt enthält, das nicht in einen Stream serialisierbar ist, oder dass ein ISequentialStream::Write-Aufruf STG_E_CANTSAVE zurückgegeben wurde.
STG_E_MEDIUMFULL
Das Objekt konnte nicht gespeichert werden, da auf dem Speichergerät kein Speicherplatz mehr vorhanden ist.

Hinweise

IPersistStream::Save speichert ein Objekt im angegebenen Stream und gibt an, ob das Objekt sein modifiziert-Flag zurücksetzen soll.

Der Suchzeiger wird an der Position im Stream positioniert, an der das Objekt mit dem Schreiben seiner Daten beginnen soll. Das -Objekt ruft die ISequentialStream::Write-Methode auf, um seine Daten zu schreiben.

Beim Beenden muss der Suchzeiger unmittelbar hinter den Objektdaten positioniert werden. Die Position des Suchzeigers ist nicht definiert, wenn ein Fehler zurückgibt.

Hinweise für Anrufer

Anstatt IPersistStream::Save direkt aufzurufen, rufen Sie in der Regel die OleSaveToStream-Hilfsfunktion auf, die folgendes ausführt:
  1. Ruft GetClassID auf, um die CLSID des Objekts abzurufen.
  2. Ruft die WriteClassStm-Funktion auf, um die CLSID des Objekts in den Stream zu schreiben.
  3. Ruft IPersistStream::Save auf.
Wenn Sie diese Methoden direkt aufrufen, können Sie nach der CLSID weitere Daten in den Stream schreiben, bevor Sie IPersistStream::Save aufrufen.

Die von OLE bereitgestellte Implementierung von IPersistStream folgt demselben Muster.

Hinweise zu Implementierern

Die IPersistStream::Save-Methode schreibt die CLSID nicht in den Stream. Der Aufrufer ist für das Schreiben der CLSID verantwortlich.

Die IPersistStream::Save-Methode kann im Stream lesen, schreiben und suchen. Es darf jedoch nicht nach einer Position im Stream vor dem des Suchzeigers beim Einstieg gesucht werden.

URL-Moniker-Hinweise

Speichert einen URL-Moniker in einem Stream. Das Binärformat des URL-Monikers ist die URL-Zeichenfolge in Unicode (kann eine vollständige oder partielle URL-Zeichenfolge sein, weitere Informationen finden Sie unter CreateURLMonikerEx ). Dies wird als ULONG-Anzahl von Zeichen dargestellt, gefolgt von so vielen Unicode-Zeichen.

Anforderungen

   
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

Ipersiststream