THPDFCABIOperationV1 レコード
コールバックで動く IO を持つ 1 つの JSON ドキュメント操作の、バージョン付き C ABI 記述子です
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 は、THPDFJobProcessor.ExecuteLoadedOperation と同じエンジンが受け入れる UTF-8 操作オブジェクトを運びます
3 つの IO レコードは借り受けのコールバックバンドルです。InputIO がソースバイトを供給し、OutputIO がバイナリ結果を受け取り、ResultIO が JSON 結果ドキュメントを受け取ります
JSON execute や 2 ハンドル比較の操作では、書き込みコールバックが失敗したとき、同じ writer と user-data のペアを通じてエラー結果を公開するためにコールバックが再度呼ばれることはありません。OutputIO と ResultIO がそのペアを共有している場合も同様です。呼び出し側がすでに受け取った部分的な候補バイトは、呼び出し側の責任で処理します
定義された非ゼロステータス範囲外の書き込みステータスや、ゼロまたは過大な成功バイト数は HPDF_STATUS_IO_ERROR になります。V1 のレコードレイアウトと部分的な成功書き込みの動作は変更されません
構造体はポインタで hpdf_document_execute_json_v1 と hpdf_document_compare_json_v1 に渡され、新しい ABI バージョンの背後にフィールドを追加する形でだけ拡張されます