次の方法で共有


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
ヘッダー
Scardssp.h
タイプ ライブラリ
Scardssp.tlb
[DLL]
Scardssp.dll
IID
IID_IByteBufferは E126F8FE-A7AF-11D0-B88A-00C04FD424B9 として定義されています