THPDFCABIOperationV1 记录

带版本号的 C ABI 描述符,描述一个带回调 IO 的 JSON 文档操作

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 operation 对象,接受它的引擎与 THPDFJobProcessor.ExecuteLoadedOperation 相同

三个 IO 记录都是借用的回调包:InputIO 提供源字节,OutputIO 接收二进制结果,ResultIO 接收 JSON 结果文档

对 JSON execute 和双句柄比较操作,写回调失败后不会再次通过同一 writer 与 user-data 对发布错误结果,包括 OutputIO 和 ResultIO 共享该对的情况;调用方已收到的部分候选字节仍由调用方自己负责

写状态值超出已定义的非零状态范围、成功字节数为零或超额时,都会变成 HPDF_STATUS_IO_ERROR;V1 记录布局和成功的部分写入行为保持不变

该结构以指针传给 hpdf_document_execute_json_v1 和 hpdf_document_compare_json_v1,只能在新 ABI 版本后追加字段来扩展

JSON 与 C ABI 文档操作