IByteBuffer::Read 方法
[ Read 方法可用于“要求”部分中指定的操作系统。 它不适用于 Windows Server 2003 Service Pack 1 (SP1) 及更高版本、Windows Vista、Windows Server 2008 和操作系统的后续版本。 IStream 接口提供类似的功能。]
Read 方法从当前搜寻指针处开始,将缓冲区对象中的指定字节数读取到内存中。
语法
HRESULT Read(
[out] BYTE *pByte,
[in] LONG cb,
[out] LONG *pcbRead
);
parameters
-
pByte [out]
-
指向在其中读取流数据的缓冲区。 如果发生错误,此值为 NULL。
-
cb [in]
-
要尝试从流对象中读取的数据字节数。
-
2013 年 [out]
-
接收从流对象读取的实际字节数的 LONG 变量的地址。 可以将此指针设置为 NULL ,以指示你对此值不感兴趣。 在这种情况下,此方法不提供实际读取的字节数。
返回值
返回值为 HRESULT。 值 S_OK 表示调用成功。
备注
此方法将字节从此流对象读取到内存中。 必须在STGM_READ模式下打开流对象。 此方法按读取的实际字节数调整查找指针。
实际读取的字节数也返回在 参数中 。
调用方说明
如果发生错误或在读取操作期间到达流的末尾,读取的实际字节数可以小于请求的字节数。
如果在读取期间到达流的末尾,某些实现可能会返回错误。 必须准备好处理错误返回或在流读取结束时S_OK返回值。
示例
以下示例显示从缓冲区读取字节。
BYTE byAtr[32];
long lBytesRead, i;
HRESULT hr;
// pAtr is a pointer to a previously instantiated IByteBuffer.
// It was used in an earlier call by ISCard::get_Atr.
// Use IByteBuffer::Read to access the retrieved ATR bytes.
hr = pAtr->Read(byAtr, 32, &lBytesRead);
// Use the ATR value. (This example merely displays the bytes.)
for ( i = 0; i < lBytesRead; i++)
printf("%c", *(byAtr + i));
printf("\n");
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows XP [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2003 [仅限桌面应用] |
终止客户端支持 |
Windows XP |
终止服务器支持 |
Windows Server 2003 |
标头 |
|
类型库 |
|
DLL |
|
IID |
IID_IByteBuffer定义为 E126F8FE-A7AF-11D0-B88A-00C04FD424B9 |