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
);
パラメーター
-
pByte [out]
-
ストリーム データの読み取り先のバッファーを指します。 エラーが発生した場合、この値は NULL です。
-
cb [in]
-
ストリーム オブジェクトから読み取ろうとするデータのバイト数。
-
pcbRead [out]
-
ストリーム オブジェクトから読み取られた実際のバイト数を受け取る LONG 変数のアドレス。 このポインターを NULL に設定すると、この値に関心がないことを示すことができます。 この場合、このメソッドは読み取られた実際のバイト数を提供しません。
戻り値
戻り値は HRESULT です。 S_OK の値は、呼び出しが成功したことを示します。
解説
このメソッドは、このストリーム オブジェクトからメモリにバイトを読み取ります。 ストリーム オブジェクトは、STGM_READ モードで開く必要があります。 このメソッドは、読み取られた実際のバイト数によってシーク ポインターを調整します。
実際に読み取られたバイト数も pcbRead パラメーターで返されます。
注意 (呼び出し元)
読み取られた実際のバイト数は、エラーが発生した場合、または読み取り操作中にストリームの終了に達した場合に、要求されたバイト数よりも少ない場合があります。
一部の実装では、読み取り中にストリームの末尾に達した場合にエラーが返されることがあります。 ストリーム読み取りの終了時にエラーの戻り値または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 として定義されています |