メインコンテンツへスキップ
このメソッドはクライアント側で実装され、カスタムソースから処理対象のデータを取り込むために使用されます。このメソッドの実装では、データ配列を作成して呼び出し元に渡す必要があります。使用後のメモリ解放は、呼び出し元が行います。

構文

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