THPDFCABIFormDataOperationV1

THPDFCABIFormDataOperationV1 = record
  Operation: THPDFCABIOperationV1;
  FontUserData: Pointer;
  Font: THPDFCABIFormDataFontV1;
end;
PHPDFCABIFormDataOperationV1 = ^THPDFCABIFormDataOperationV1;

HPDFCAPI appends optional synchronous font IO fields to the unchanged Windows V1 operation prefix; the C declaration is hpdf_form_data_operation_v1 in hotpdf_abi_form_data.h

Set Operation.StructSize to SizeOf(THPDFCABIFormDataOperationV1), ABIVersion to HPDF_ABI_VERSION_1 and Flags to zero, then pass the address of Operation to hpdf_document_execute_json_v1

The record is 48 bytes on Win32 and 72 bytes on Win64 with the published alignment; fresh C++Builder calls validate that the generated Pascal and C declarations agree

forms.import requires Font, loaded destination state, FDF/XFDF InputIO, PDF OutputIO and JSON ResultIO; forms.export can use the original base V1 operation without this extension

Mixed original typed-rich forms.fill uses the same extension and Font callback, with mandatory PDF OutputIO and JSON ResultIO; absent InputIO uses the owned current graph, while an optional InputIO supplies a replacement PDF privately before font loading

FontUserData, Font and returned IO callback state remain borrowed until execution returns; this record does not extend the legacy HPDFDocRunJob callbacks or the native Linux operation extension

Font callback, JSON and transaction behavior, Original typed-rich filling