IPersistStreamInit::Save 方法 (ocidl.h)

将对象保存到指定流。

语法

HRESULT Save(
  [in] LPSTREAM pStm,
  [in] BOOL     fClearDirty
);

parameters

[in] pStm

指向对象应保存到的流的 IStream 指针。

[in] fClearDirty

指示在保存完成后是否清除已更新标志。 如果 为 TRUE,则应清除标志。 如果 为 FALSE,则标志应保持不变。

返回值

此方法可以返回以下值。

返回代码 说明
S_OK
该方法已成功完成。
STG_E_CANTSAVE
对象无法将自身保存到流中。 例如,此错误可能指示对象包含另一个对象,该对象不可序列化为流,或者 ISequentialStream::Write 调用STG_E_CANTSAVE返回。
STG_E_MEDIUMFULL
无法保存对象,因为存储设备上没有剩余的空间。

注解

IPersistStreamInit::Save 将对象保存到指定的流中,并指示对象是否应重置其脏标志。

搜寻指针位于流中对象应开始写入其数据的位置。 对象调用 ISequentialStream::Write 方法来写入其数据。

退出时,搜寻指针必须紧接在对象数据之后。 如果返回错误,则查找指针的位置未定义。

实施者说明

IPersistStreamInit::Save 方法不会将 CLSID 写入流。 调用方负责编写 CLSID。

IPersistStreamInit::Save 方法可以在流中读取、写入和查找;但它不得在入口处查找指针之前查找流中的位置。

要求

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

请参阅

IPersistStreamInit