메인 콘텐츠로 건너뛰기
이 메서드는 클라이언트 측에서 구현되며, 사용자 지정 소스의 데이터를 처리용으로 제공하는 데 사용됩니다. 이 메서드를 구현할 때는 데이터 배열을 생성해 호출자에게 넘겨야 하며, 호출자는 사용이 끝난 후 해당 메모리를 해제할 책임이 있습니다.

구문

C++

HRESULT Read(
  SAFEARRAY(BYTE)* Data,
  int              Count,
  int*             BytesRead
);

C#

int Read(
  out byte[] Data,
  int        Count
);

Visual Basic .NET

Function Read( _
  ByRef Data() As Byte, _
  ByVal Count As Integer _
) As Integer

매개변수

Data [out] 이 매개변수는 읽을 데이터를 나타냅니다. 이 메서드를 구현할 때는 이 배열을 생성하고 여기에 필요한 데이터를 기록해야 합니다. 호출자는 더 이상 필요하지 않을 때 이 메모리를 해제해야 합니다. Count [in] 이 매개변수는 읽을 바이트 수의 상한을 지정합니다. BytesRead [out, retval] 이 매개변수는 실제로 읽은 바이트 수(즉, Data 버퍼가 차지하는 메모리 크기)를 지정합니다. 이 값이 0보다 크면 이 매개변수가 0을 반환할 때까지 메서드가 다시 호출됩니다.

반환 값

[C++ 전용] 이 메서드가 S_OK가 아닌 값을 반환하면 클라이언트 측에서 오류가 발생했음을 의미합니다.

비고

이 메서드의 클라이언트 구현은 메서드 내부에서 발생한 모든 예외를 반드시 포착하여 처리해야 하며, 어떤 예외도 메서드 외부로 전파되지 않도록 해야 합니다. 예외가 메서드 외부로 전파되면 예측할 수 없는 결과(예: 프로그램 종료)로 이어질 수 있습니다.

참고 항목

IReadStream