IStream::SetSize 方法 (objidl.h)

SetSize 方法更改流对象的大小。

语法

HRESULT SetSize(
  [in] ULARGE_INTEGER libNewSize
);

parameters

[in] libNewSize

指定流的新大小(以字节为单位)。

返回值

此方法可以返回其中一个值。

返回代码 说明
S_OK 已成功更改流对象的大小。
E_PENDING 仅限异步存储:流的部分或全部数据当前不可用。
STG_E_MEDIUMFULL 流大小不会更改,因为存储设备上没有剩余的空间。
STG_E_INVALIDFUNCTION 实现不支持 libNewSize 参数的值。 并非所有流都支持大于 232 个字节。 如果流不支持超过 232 个字节,则 libNewSize 的高 DWORD 数据类型必须为零。 如果为非零值,则实现可能会返回STG_E_INVALIDFUNCTION。 通常,IStream 接口的基于 COM 的实现不支持大于 232 字节的流。
STG_E_REVERTED 在事务树中,对象上方的还原操作已失效。

注解

IStream::SetSize 更改流对象的大小。 调用此方法可预分配流的空间。 如果 libNewSize 参数大于当前流大小,则流将扩展到指示的大小,方法是使用未定义值的字节填充中间空间。 如果查找指针超过流的当前末尾,则此操作类似于 ISequentialStream::Write 方法。

如果 libNewSize 参数小于当前流,则流将被截断为指示的大小。

搜寻指针不受流大小更改的影响。

调用 IStream::SetSize 是获取大块连续空间的有效方法。

要求

   
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 objidl.h
Library Uuid.lib
DLL Ole32.dll

请参阅

ISequentialStream::Write

IStream

IStream - 复合文件实现