Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
This method saves an object to the specified stream.
Syntax
HRESULT Save( IStream* pStm, BOOL fClearDirty ); |
Parameters
- pStm
-
[in] IStreampointer to the stream into which the object should be saved.
- fClearDirty
-
[in] Value that indicates whether to clear the dirty flag after the save is complete. If TRUE, the flag should be cleared. If FALSE, the flag should be left unchanged.
Return Value
The following table shows the return values for this method.
Value | Description |
---|---|
S_OK |
The object was successfully saved to the stream. |
STG_E_CANTSAVE |
The object could not save itself to the stream. This error could indicate, for example, that the object contains another object that is not serializable to a stream or that an ISequentialStream::Writecall returned STG_E_CANTSAVE. |
STG_E_MEDIUMFULL |
The object could not be saved because there is no space left on the storage device. |
Remarks
IPersistStream::Savesaves an object into the specified stream and indicates whether the object should reset its dirty flag.
The seek pointer is positioned at the location in the stream at which the object should begin writing its data. The object calls the ISequentialStream::Writemethod to write its data.
On exit, the seek pointer must be positioned immediately past the object data. The position of the seek pointer is undefined if an error returns.
To determine whether the platform supports this interface, see Determining Supported COM APIs.
Notes to Callers
Rather than calling IPersistStream::Savedirectly, you typically call the OleSaveToStreamhelper function, which does the following:
- Calls the
IPersist::GetClassIDmethod to get the object's CLSID.
- Calls the
WriteClassStmfunction to write the object's CLSID to the
stream.
- Calls
IPersistStream::Save.
If you call these methods directly, you can write other data into the stream after the CLSID before calling IPersistStream::Save.
The OLE-provided implementation of the IPersistStreaminterface follows this same pattern.
Notes to Implementers
The IPersistStream::Savemethod does not write the CLSID to the stream. The caller is responsible for writing the CLSID.
The IPersistStream::Savemethod can read from, write to, and seek in the stream; but it must not seek to a location in the stream before that of the seek pointer on entry.
Requirements
Header | objidl.h, objidl.idl |
Library | ole32.lib, uuid.lib |
Windows Embedded CE | Windows CE 3.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |