IPersistFile::Save 方法 (objidl.h)

将 对象的副本保存到指定文件。

语法

HRESULT Save(
  [in] LPCOLESTR pszFileName,
  [in] BOOL      fRemember
);

参数

[in] pszFileName

对象应保存到的文件的绝对路径。 如果 pszFileNameNULL,则 对象应将其数据保存到当前文件(如果有)。

[in] fRemember

指示 pszFileName 参数是否用作当前工作文件。 如果为 TRUE则 pszFileName 将成为当前文件,并且对象应在保存后清除其脏标志。 如果 为 FALSE,则此保存操作是将 副本另存为 ... 操作。 在这种情况下,当前文件保持不变,对象不应清除其脏标志。 如果 pszFileNameNULL,则实现应忽略 fRemember 标志。

返回值

如果成功保存对象,则返回值S_OK。 否则,它将S_FALSE。 此方法还可以返回各种存储错误。

注解

可以通过以下三种方式之一调用此方法将对象保存到指定文件:

实现者必须检测调用方正在请求的保存操作类型。 如果 pszFileName 参数为 NULL,则请求 保存 。 如果 pszFileName 参数不是 NULL,请使用 fRemember 参数的值来区分 另存为另存为副本

“保存”或“另存为”操作中,IPersistFile::Save 在保存后清除内部脏标志,并将 IAdviseSink::OnSave 通知发送到任何咨询连接, (另请参阅 IOleAdviseHolder::SendOnSave) 。 此外,在这些操作中,对象将处于 NoScribble 模式,直到它收到 IPersistFile::SaveCompleted 调用。 在 NoScribble 模式下,对象不得写入文件。

“另存为” 方案中,实现还应将 IAdviseSink::OnRename 通知发送到任何咨询连接 (另请参阅 IOleAdviseHolder::SendOnRename) 。

“将复制另存为”方案中,实现不会在保存后清除内部脏标志。

给调用方的说明

OLE 不调用 IPersistFile::Save。 通常,应用程序不会调用它,除非它们将对象直接保存到文件,而该文件通常留给最终用户。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 objidl.h

另请参阅

IPersistFile