THPDFWindowsFormDataSource

HPDFWindowsFormData proporciona una fuente de acceso aleatorio de Windows propia con un ciclo de vida de archivo temporal privado

THPDFWindowsFormDataSource = class(THPDFRandomAccessSource)
  constructor Create;
  destructor Destroy; override;
  procedure Seal;
  function GetSize: Int64; override;
  function ReadAt(Offset: Int64; var Buffer; Count: Longint): Longint; override;
  property Stream: TFileStream;
end;

Create reserva en exclusiva un archivo temporal único y expone su Stream escribible; escriba la fuente completa y llame a Seal una vez antes de suministrarlo a un documento cargado

Seal vuelca y cierra el handle escribible, y luego reabre el archivo para acceso de solo lectura con el uso compartido de escritura denegado; no acepta una ruta arbitraria del llamador como fuente de respaldo

GetSize informa la longitud completa actual del stream; ReadAt rechaza offsets o counts negativos, limita la lectura a los bytes disponibles, devuelve cero en o más allá de EOF, y restaura la posición del stream en éxito y fallo

Un documento cargado con OwnSource=False toma prestada la fuente; manténgala viva hasta después de la destrucción del documento; Destroy cierra el handle y elimina el archivo privado propio

La fuente no tiene cancelación ni capacidad de bytes independientes; los adaptadores de transacción y callback las imponen mientras copian y leen; los llamadores que preparan una fuente directamente deben aplicar sus propios límites y política de cancelación

Clase de transacción, Intercambio de datos de formulario Windows