IStream::Seek 方法 (objidl.h)
Seek 方法将查找指针更改为新位置。 新位置相对于流的开头、流的末尾或当前查找指针。
语法
HRESULT Seek(
[in] LARGE_INTEGER dlibMove,
[in] DWORD dwOrigin,
[out] ULARGE_INTEGER *plibNewPosition
);
参数
[in] dlibMove
要添加到 dwOrigin 参数指示的位置的位移。 如果 dwOrigin是STREAM_SEEK_SET,则会将其解释为无符号值,而不是有符号值。
[in] dwOrigin
dlibMove 中指定的位移的原点。 原点可以是文件 (STREAM_SEEK_SET ) 的开头、当前查找指针 (STREAM_SEEK_CUR) ,也可以是文件 (STREAM_SEEK_END) 的末尾。 有关值的详细信息,请参阅 STREAM_SEEK 枚举。
[out] plibNewPosition
指向此方法从流开头写入新搜寻指针值的位置的指针的指针。
可以将此指针设置为 NULL。 在这种情况下,此方法不提供新的搜寻指针。
返回值
此方法可以返回其中一个值。
返回代码 | 说明 |
---|---|
S_OK | 已成功调整搜寻指针。 |
E_PENDING | 仅异步存储:部分或全部流数据当前不可用。 |
STG_E_INVALIDPOINTER | 指示 plibNewPosition 指向无效内存,因为 plibNewPosition 未读取。 |
STG_E_INVALIDFUNCTION | dwOrigin 参数包含无效值,或者 dlibMove 参数包含错误的偏移值。 例如,查找指针的结果是负偏移量值。 |
STG_E_REVERTED | 对象在事务树中的上方还原操作已失效。 |
注解
IStream::Seek 更改搜寻指针,以便可以在流对象中的不同位置执行后续读取和写入操作。 在流开始之前查找是错误的。 但是,通过流末尾查找不是错误。 查找流末尾对于后续写入操作很有用,因为流字节范围将在写入完成之前立即扩展到新的查找位置。
还可以使用此方法获取搜寻指针的当前值,方法是调用此方法,其中 dwOrigin 参数设置为 STREAM_SEEK_CURdlibMove 参数设置为 0,这样搜寻指针就不会更改。 当前搜寻指针在 plibNewPosition 参数中返回。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | objidl.h |
Library | Uuid.lib |
DLL | Ole32.dll |