IByteBuffer::Write 方法

[ Write 方法可用于“要求”部分中指定的操作系统。 它不适用于 service Pack 1 (SP1) 及更高版本的 Service Pack 2003 Windows Server 2003、Windows Vista、Windows Server 2008 和操作系统的后续版本。 IStream 接口提供类似的功能。]

Write 方法将指定数字从字节写入流对象,从当前查找指针开始。

语法

HRESULT Write(
  [in]  BYTE *pByte,
  [in]  LONG cb,
  [out] LONG *pcbWritten
);

parameters

pByte [in]

包含要写入流的数据的缓冲区的地址。 即使 cb 为零,也必须为此参数提供有效的指针。

cb [in]

要尝试写入流的数据字节数。 此参数可以为零。

夷为 平 [out]

LONG 变量的地址,此方法将写入流对象的实际字节数。 调用方可以将此指针设置为 NULL,在这种情况下,此方法不提供写入的实际字节数。

返回值

返回值为 HRESULT。 S_OK的值指示调用成功。

备注

IByteBuffer::Write 方法将指定的数据写入流对象。 查找指针根据实际写入的字节数进行调整。 实际写入的字节数在 written 参数中返回。 如果字节计数为零字节,则写入操作不起作用。

如果查找指针当前超过流的末尾,并且字节计数为非零,则此方法会将流的大小增加到查找指针,并写入从查找指针开始的指定字节。 写入流的填充字节不会初始化为任何特定值。 这与 MS-DOS FAT 文件系统中的文件结束行为相同。

使用零字节计数和流末尾的查找指针,此方法不会创建填充字节以将流增加到查找指针。 在这种情况下,必须调用 IByteBuffer::SetSize 方法以增加流的大小并写入填充字节。

即使发生错误, 也不会有一 个值。

在 COM 提供的实现中,流对象并不稀疏。 所有填充字节最终在磁盘上分配,并分配给流。

示例

以下示例演示如何将字节写入流对象。

LONG     lWrite;
HRESULT  hr;

// Write to the buffer.
// byData is an array of 64 bytes.
hr = pIByteBuff->Write(byData,
                       64,
                       &lWrite);
if (FAILED(hr))
  printf("Failed IByteBuffer::Write\n");

要求

要求 “值”
最低受支持的客户端
Windows XP [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
客户端支持结束
Windows XP
服务器支持结束
Windows Server 2003
标头
Scardssp.h
类型库
Scardssp.tlb
DLL
Scardssp.dll
IID
IID_IByteBuffer定义为 E126F8FE-A7AF-11D0-B88A-00C04FD424B9