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