ReadRange
Части документов, переменные данные, редактирование документов
Описание
Читает диапазон байтов через TCallbackByteRangeSource в буфер вызывающей стороны, перенаправляя запрос в обратный вызов чтения
Синтаксис
Function TCallbackByteRangeSource.ReadRange(StartOffset: Int64;
Count: LongInt; Buffer: PAnsiChar): LongInt;
Параметры
StartOffset | Смещение первого читаемого байта с базой 0 |
|---|---|
Count | Запрошенное число байтов |
Buffer | Буфер вызывающей стороны, принимающий запрошенные байты |
Замечания
Запрос отклоняется, когда не назначен callback чтения, Buffer равен Nil, Count равен нулю или отрицателен, StartOffset отрицателен или StartOffset достигает общего размера
Запрос, выходящий за общий размер, ограничивается оставшимися байтами вместо отклонения
Результат callback ниже нуля трактуется как ноль, а результат выше ограниченного числа уменьшается до этого числа
Сообщение об ошибке, зафиксированное для отклоненного запроса или исключения callback, доступно через GetLastError
Возвращаемые значения
0 | Запрос был недопустим, обратный вызов чтения вызвал исключение или обратный вызов не передал ни одного байта; GetLastError описывает сбой, если сообщение было записано |
|---|---|
| Positive | Число фактически прочитанных байтов, не больше ограниченного запроса |
См. также
GetLastError, IsRangeAvailable, GetTotalSize, GetRangeSupported, LoadFromRangeSource