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 |