THPDFCABIOperationV1 Record

Versioned C ABI descriptor for one JSON document operation with callback-backed IO

THPDFCABIOperationV1 = record
  StructSize: UInt32;
  ABIVersion: UInt32;
  Flags: UInt64;
  JSON: PAnsiChar;
  JSONLength: NativeUInt;
  InputIO: PHPDFCABIIOV1;
  OutputIO: PHPDFCABIIOV1;
  ResultIO: PHPDFCABIIOV1;
end;

The unit is HPDFCAPI; StructSize and ABIVersion must match the sizes and versions reported by hpdf_abi_operation_v1_size and hpdf_abi_version or the call is rejected

JSON together with JSONLength carries the UTF-8 operation object accepted by the same engine as THPDFJobProcessor.ExecuteLoadedOperation

The three IO records are borrowed callback bundles: InputIO supplies source bytes, OutputIO receives binary results, and ResultIO receives the JSON result document

For JSON execute and two-handle comparison operations, a failed write callback is not called again to publish an error result through the same writer and user-data pair, including when OutputIO and ResultIO share that pair; partial candidate bytes already received by the caller remain the caller's responsibility

Write status values outside the defined non-zero status range, and zero or excessive successful byte counts, become HPDF_STATUS_IO_ERROR; the V1 record layout and successful partial-write behaviour remain unchanged

The struct is passed by pointer to hpdf_document_execute_json_v1 and hpdf_document_compare_json_v1, and is extended only by appending fields behind a new ABI version

JSON and C ABI document operations