다음을 통해 공유


ISequentialStream::Read 메서드(objidl.h)

Read 메서드는 현재 검색 포인터에서 시작하여 스트림 개체에서 메모리로 지정된 바이트 수를 읽습니다.

구문

HRESULT Read(
  [out] void  *pv,
  [in]  ULONG cb,
  [out] ULONG *pcbRead
);

매개 변수

[out] pv

스트림 데이터를 읽는 버퍼에 대한 포인터입니다.

[in] cb

스트림 개체에서 읽을 데이터 바이트 수입니다.

[out] pcbRead

스트림 개체에서 읽은 실제 바이트 수를 수신하는 ULONG 변수에 대한 포인터입니다.

참고 읽은 바이트 수는 0일 수 있습니다.
 

반환 값

이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
S_OK 요청된 모든 데이터를 스트림 개체에서 성공적으로 읽었습니다. cb 에서 요청된 바이트 수는 pcbRead에서 반환된 바이트 수와 동일합니다.
S_FALSE pcbRead에서 반환되는 값은 cb에서 요청된 바이트 수보다 작습니다. 이는 스트림의 끝에 도달했음을 나타냅니다. 읽은 바이트 수는 pv 버퍼가 채워진 양을 나타냅니다.
E_PENDING 비동기 스토리지만 해당: 읽을 데이터의 일부 또는 전체를 현재 사용할 수 없습니다.
STG_E_ACCESSDENIED 호출자에게 이 스트림 개체를 읽는 데 필요한 권한이 없습니다.
STG_E_INVALIDPOINTER 포인터 값 중 하나가 잘못되었습니다.
STG_E_REVERTED 개체가 트랜잭션 트리에서 위의 되돌리기 작업에 의해 무효화되었습니다.

설명

이 메서드는 이 스트림 개체에서 메모리로 바이트를 읽습니다. 스트림 개체는 STGM_READ 모드에서 열어야 합니다. 이 메서드는 검색 포인터를 읽은 실제 바이트 수만큼 조정합니다.

실제로 읽은 바이트 수는 pcbRead 매개 변수에도 반환됩니다.

발신자에게 참고 사항

실제 읽기 바이트 수는 오류가 발생하거나 읽기 작업 중에 스트림의 끝에 도달한 경우 요청된 바이트 수보다 적을 수 있습니다. 반환되는 바이트 수는 항상 요청된 바이트 수와 비교되어야 합니다. 반환된 바이트 수가 요청된 바이트 수보다 작으면 일반적으로 Read 메서드가 스트림의 끝을 지나 읽으려고 시도했음을 의미합니다.

애플리케이션은 반환된 오류와 S_OK 스트림 종료 읽기 작업에서 반환 값을 모두 처리해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 objidl.h
라이브러리 Uuid.lib
DLL Ole32.dll

추가 정보

ISequentialStream::Write

IStorage::OpenStream

IStream

IStream - 복합 파일 구현

STGMOVE