Share via


IByteBuffer::Read 메서드

[ Read 메서드는 요구 사항 섹션에 지정된 운영 체제에서 사용할 수 있습니다. Windows Server 2003 SP1(서비스 팩 1) 이상, 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로 정의됩니다.