ReadRange
문서 파트, 가변 데이터, 문서 편집
설명
읽기 콜백으로 전달하여 TCallbackByteRangeSource를 통해 바이트 범위를 호출자가 제공한 버퍼로 읽어 들입니다
구문
Function TCallbackByteRangeSource.ReadRange(StartOffset: Int64;
Count: LongInt; Buffer: PAnsiChar): LongInt;
매개변수
StartOffset | 읽을 첫 바이트의 0부터 시작하는 오프셋 |
|---|---|
Count | 요청된 바이트 수 |
Buffer | 요청된 바이트를 받는 호출자 버퍼 |
비고
읽기 콜백이 할당되지 않았거나, Buffer가 Nil이거나, Count가 0 이하이거나, StartOffset가 음수이거나, StartOffset가 전체 크기에 이르면 요청은 거부됩니다
전체 크기를 넘어가는 요청은 거부되는 대신 남은 바이트로 잘립니다
0 미만 콜백 결과는 0으로 취급되고, 잘린 개수를 넘는 결과는 그 개수로 줄어듭니다
거부된 요청이나 콜백 예외에 대해 기록된 오류 메시지는 GetLastError로 얻을 수 있습니다
반환 값
0 | 요청이 잘못되었거나, 읽기 콜백이 예외를 발생시켰거나, 콜백이 바이트를 전달하지 않았습니다. 메시지가 기록된 경우 GetLastError가 실패 원인을 설명합니다 |
|---|---|
| Positive | 실제로 읽은 바이트 수이며, 제한된 요청량을 넘지 않습니다 |
참고 항목
GetLastError, IsRangeAvailable, GetTotalSize, GetRangeSupported, LoadFromRangeSource