THPDFWindowsFormDataSource
HPDFWindowsFormData aporta 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 exclusivamente un archivo temporal único y expone su Stream escribible; escribe la fuente completa y llama a Seal una vez antes de entregarlo a un documento cargado
Seal hace flush y cierra el handle escribible, luego reabre el archivo para acceso de solo lectura con sharing de escritura denegado; no toma una ruta arbitraria del llamador como fuente de respaldo
GetSize reporta la longitud completa actual del stream; ReadAt rechaza offsets o conteos negativos, limita la lectura a los bytes disponibles, devuelve cero en o después de EOF, y restaura la posición del stream en éxito y en fallo
Un documento cargado con OwnSource=False toma la fuente prestada; mantenla 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 adapters de transacción y callbacks las aplican mientras copian y leen; los llamadores que preparan una fuente directamente deben aplicar sus propios límites y política de cancelación