THotPDF.ImportLoadedInterchangeFromFDF Method
function ImportLoadedInterchangeFromFDF(Source: TStream;
ApplyFields, ApplyAnnotations: Boolean; out Status: AnsiString;
out AInfo: THPDFFDFInterchangeInfo): Boolean;
Reads an FDF 1.2 stream and independently applies field values and annotations to the loaded document
Status is returned even when the caller disables field or annotation application
Modern Windows builds import annotation dictionaries and supplied appearance resources through the bounded FDF object-graph codec, retaining shared indirect objects and remapping actual local GoTo page targets
Choice arrays are validated before replacing the target value and selection indices; empty arrays clear the selection, while scalar fields retain the stream API's existing update behaviour
Unknown fields and rejected field updates can raise exceptions; the entire import runs in a nested object graph transaction, so a failed import restores all earlier field values, annotation changes and newly allocated appearance resources
A failed import clears Status and AInfo; a successful import commits only its own transaction, so a caller can still roll it back through an enclosing transaction
Arrays require a multi-select choice field and direct string elements; unresolved FDF references are not interpreted as target PDF object numbers
In modern Windows builds, an actual annotation-bearing transaction also validates authenticated encryption permissions, signed-revision policies and the complete current dirty graph before commit
A policy failure follows the same nested transaction rollback and clears Status and AInfo; this does not introduce a new field-only FDF permission model
Annotation identity and graph transport
A matching nonempty annotation NM on the same page selects an existing annotation for replacement; unnamed or unmatched annotations are appended, and ambiguous matches fail before commit
Fields, annotations and status remain independently selected by the existing parameters; annotation resources join the same nested object-graph transaction, so a failed mixed import restores earlier field and annotation changes together
Action dictionaries are transported as data without executing scripts, following external file references or applying redactions
See FDF annotation behaviour and boundaries and loaded annotation policy