IPersistFile::Save
Saves a copy of the object into the specified file.
HRESULT Save(
LPCOLESTR pszFileName,
| //Pointer to absolute path of the file where the object is saved
|
BOOL fRemember
| //Specifies whether the file is to be the current working file or not
|
);
|
|
Parameters
pszFileName
[in]Points to a zero-terminated string containing the absolute path of the
file to which the object should be saved. If
pszFileName is NULL, the object should save its data to the current file, if there is one.
fRemember
[in]Indicates whether the
pszFileName parameter is to be used as the current working file. If TRUE,
pszFileName becomes 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
pszFileName is NULL, the implementation should ignore the
fRemember flag.
Return Values
S_OK
The object was successfully saved.
E_FAIL
The file was not saved.
IPersistFile::Save STG_E_* errors.
Comments
This method saves the object to the specified file. There are three different
save scenarios that can use this method:
Save
The caller calls the
IPersistFile::GetCurFile method first to determine whether the object has an associated filename. If
it does, the caller specifies NULL for the
pszFileName parameter in this method to indicate that the object should "Save" to its
current file. The caller must call the
IPersistFile::SaveCompleted method to indicate completion.
Save As
The caller specifies TRUE in the
fRemember parameter and a non-NULL value for the
pszFileName parameter to indicate saving to a new file. The caller must call the
IPersistFile::SaveCompleted method to indicate completion.
Save a Copy As
The caller specifies FALSE in the
fRemember parameter and a non-NULL value for the
pszFileName parameter to save a copy to the specified file.
The implementor must detect which save scenario is being requested by the
caller. If the
pszFileName parameter is NULL, the Save scenario is being requested. If the
pszFileName parameter is not NULL, use the value of the
fRemember parameter to distinguish between a Save As and a Save a Copy As call.
In the "Save" or "Save As" scenarios, the
IPersistFile::Save method clears the internal dirty flag after the save and sends
IAdviseSink::OnSave notifications to any advisory connections (see also
IOleAdviseHolder::SendOnSave). Also, in these scenarios, the object is in NoScribble mode until it
receives an
IPersistFile::SaveCompleted call. In NoScribble mode, the object must not write to the file.
In the "Save As" scenario, the implementation should also send
IAdviseSink::OnRename notifications 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.
Notes to Callers
OLE does not call
IPersistFile::Save. Typically, applications do not either.
See Also
IOleAdviseHolder::SendOnRename,
IOleAdviseHolder::SendOnSave,
IPersistFile::GetCurFile,
IPersistFile::SaveCompleted
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database