ReadRange
ドキュメントパーツ、可変データ、ドキュメント編集
説明
読み取りコールバックへ処理を委譲することで、TCallbackByteRangeSource を経由したバイト範囲の読み取りを呼び出し側指定のバッファに対して行います
構文
Function TCallbackByteRangeSource.ReadRange(StartOffset: Int64;
Count: LongInt; Buffer: PAnsiChar): LongInt;
パラメータ
StartOffset | 読み取る最初のバイトの 0 ベースのオフセット |
|---|---|
Count | 要求されたバイト数 |
Buffer | 要求されたバイトを受け取る呼び出し側バッファ |
備考
読み込みコールバックが割り当てられていない、BufferがNil、Countが0以下、StartOffsetが負、またはStartOffsetが合計サイズに達している場合、要求は拒否されます
合計サイズを超えて伸びる要求は拒否される代わりに、残りのバイトへ切り詰められます
ゼロ未満のコールバック結果はゼロとして扱われ、切り詰められたカウントを超える結果はそのカウントに減らされます
拒否された要求やコールバック例外に対して記録されたエラーメッセージはGetLastErrorで取得できます
戻り値
0 | 要求が不正、読み取りコールバックが例外を送出、またはコールバックがバイトを 1 つも転送しなかったことを示します。メッセージが記録されていれば GetLastError が失敗の内容を説明します |
|---|---|
| Positive | 実際に読み取られたバイト数。制限後の要求件数を超えることはありません |
関連項目
GetLastError, IsRangeAvailable, GetTotalSize, GetRangeSupported, LoadFromRangeSource