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 a copy of the object into the specified file.
Syntax
HRESULT Save( LPCOLESTR pszFileName, BOOL fRemember ); |
Parameters
- pszFileName
-
[in] Points to a zero-terminated string containing the absolute path of the file to which the object should be saved. If pszFileNameis NULL, the object should save its data to the current file, if there is one.
- fRemember
-
[in] Indicates whether the pszFileNameparameter is to be used as the current working file.
If TRUE, pszFileNamebecomes the current file and the object should clear its dirty flag after the save.
If FALSE, this save operation is a Save A Copy As ... operation. In this case, the current file is unchanged and the object should not clear its dirty flag.
If pszFileNameis NULL, the implementation should ignore the fRememberflag.
Return Value
- S_OK
-
The object was successfully saved.
- E_FAIL
-
The file was not saved.
IPersistFile::SaveSTG_E_* errors.
Remarks
This method can be called to save an object to the specified file in one of three ways:
- Save. Call
IPersistFile::GetCurFilefirst to determine whether the object
has an associated file name. If so, call
IPersistFile::Savespecifying NULL for the
pszFileNameparameter in this method to indicate that the
object should be saved to its current file. Then call
IPersistFile::SaveCompletedto indicate completion.
- Save As. Call
IPersistFile::Savespecifying TRUE in the
fRememberparameter and a non-NULL value, indicating the name
of the new file the object is to be saved to, for the
pszFileNameparameter . Then call
IPersistFile::SaveCompletedto indicate completion.
- Save a Copy As. Call
IPersistFile::Savespecifying FALSE in the
fRememberparameter and a non-NULL value, indicating the name
of the new file the object is to be copied to, for the
pszFileNameparameter.
The implementer must detect which type of save operation the caller is requesting.
If the pszFileNameparameter is NULL, a Save is being requested.
If the pszFileNameparameter is not NULL, use the value of the fRememberparameter to distinguish between a Save As and a Save a Copy As.
In Save or Save As operations, IPersistFile::Saveclears the internal dirty flag after the save and sends IAdviseSink::OnSavenotifications to any advisory connections (see also IOleAdviseHolder::SendOnSave). Also, in these operations, the object is in NoScribble mode until it receives an IPersistFile::SaveCompletedcall.
In NoScribble mode, the object must not write to the file.
In the Save As scenario, the implementation should also send IAdviseSink::OnRenamenotifications to any advisory connections (see also IOleAdviseHolder::SendOnRename).
In the Save a Copy As scenario, the implementation does not clear the internal dirty flag after the save.
To determine whether the platform supports this interface, see Determining Supported COM APIs.
Notes to Callers
OLE does not call IPersistFile::Save. Typically, applications would not call it unless they are saving an object to a file directly, which is generally left to the end-user.
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 |