ILockBytes::WriteAt 方法 (objidl.h)

WriteAt 方法从字节数组开头的指定偏移量开始写入指定的字节数。

语法

HRESULT WriteAt(
  [in]  ULARGE_INTEGER ulOffset,
  [in]  const void     *pv,
  [in]  ULONG          cb,
  [out] ULONG          *pcbWritten
);

参数

[in] ulOffset

指定要写入的数据的字节数组开头的起点。

[in] pv

指向包含要写入的数据的缓冲区的指针。

[in] cb

指定要尝试写入字节数组的数据字节数。

[out] pcbWritten

指向此方法指定写入字节数组的实际字节数的位置的指针。 可以将此指针设置为 NULL ,以指示你对此值不感兴趣。 在这种情况下,此方法不提供实际写入的字节数。

返回值

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

返回代码 说明
S_OK 指示已写入指定的字节数。
E_FAIL 写入操作期间发生常规故障。
E_PENDING 仅限异步存储:要写入的部分或全部数据当前不可用。
STG_E_ACCESSDENIED 调用方没有足够的权限写入此字节数组。
STG_E_WRITEFAULT 要写入的字节数不等于实际写入的字节数。
STG_E_MEDIUMFULL 写入操作未完成,因为存储设备上没有剩余的空间。 实际写入的字节数仍以 形式返回。

注解

ILockBytes::WriteAt 在字节数组中的指定位置写入指定数据。 即使返回了错误,实际写入的字节数也必须始终以 返回。 如果字节计数为零字节,则写入操作不起作用。

如果 ulOffset 超过字节数组的末尾,而 cb 大于零, 则 ILockBytes::WriteAt 将增加字节数组的大小。 写入字节数组的填充字节不会初始化为任何特定值。

要求

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

另请参阅

ILockBytes - File-Based 实现

ILockBytes - 全局内存实现

ILockBytes::ReadAt

ILockBytes::SetSize