IPersistFile::Save 方法 (objidl.h)
将 对象的副本保存到指定文件。
语法
HRESULT Save(
[in] LPCOLESTR pszFileName,
[in] BOOL fRemember
);
参数
[in] pszFileName
对象应保存到的文件的绝对路径。 如果 pszFileName 为 NULL,则 对象应将其数据保存到当前文件(如果有)。
[in] fRemember
指示 pszFileName 参数是否用作当前工作文件。 如果为 TRUE,则 pszFileName 将成为当前文件,并且对象应在保存后清除其脏标志。 如果 为 FALSE,则此保存操作是将 副本另存为 ... 操作。 在这种情况下,当前文件保持不变,对象不应清除其脏标志。 如果 pszFileName 为 NULL,则实现应忽略 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 |