Запись THPDFCABIOperationV1
Версионированный дескриптор C ABI для одной JSON-операции над документом с IO на колбэках
THPDFCABIOperationV1 = record
StructSize: UInt32;
ABIVersion: UInt32;
Flags: UInt64;
JSON: PAnsiChar;
JSONLength: NativeUInt;
InputIO: PHPDFCABIIOV1;
OutputIO: PHPDFCABIIOV1;
ResultIO: PHPDFCABIIOV1;
end;
Модуль — HPDFCAPI; StructSize и ABIVersion должны совпадать с размерами и версиями, которые сообщают hpdf_abi_operation_v1_size и hpdf_abi_version, иначе вызов отвергается
JSON с JSONLength несёт UTF-8 объект операции, принимаемый тем же движком, что и THPDFJobProcessor.ExecuteLoadedOperation
Три IO-записи — заимствованные наборы колбэков: InputIO передаёт байты источника, OutputIO принимает бинарные результаты, а ResultIO — JSON-документ результата
Для JSON-выполнения и сравнения двух handle неудавшийся write-колбэк повторно не вызывается для публикации результата об ошибке через ту же пару writer и user-data, даже если OutputIO и ResultIO делят эту пару; частичные байты кандидата, уже принятые вызывающим, остаются его заботой
Значения статуса записи вне определённого ненулевого диапазона, а также нулевые или чрезмерные счётчики успешных байтов превращаются в HPDF_STATUS_IO_ERROR; раскладка записи V1 и поведение успешной частичной записи не меняются
Структура передаётся указателем в hpdf_document_execute_json_v1 и hpdf_document_compare_json_v1 и расширяется только добавлением полей за новой версией ABI