THPDFWindowsFormDataSource

HPDFWindowsFormData fornisce una sorgente Windows ad accesso casuale di proprietà della libreria con un ciclo di vita su file temporaneo privato

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 riserva in modo esclusivo un file temporaneo unico ed espone il suo Stream scrivibile; scrivere la sorgente completa e chiamare Seal una volta prima di fornirla a un documento caricato

Seal scarica e chiude l'handle scrivibile, poi riapre il file per accesso di sola lettura negando la condivisione in scrittura; non accetta un percorso arbitrario del chiamante come sorgente sottostante

GetSize riporta la lunghezza corrente completa dello stream; ReadAt rigetta offset o conteggi negativi, limita la lettura ai byte disponibili, restituisce zero a EOF o oltre, e ripristina la posizione dello stream in successo e fallimento

Un documento caricato con OwnSource=False prende in prestito la sorgente; tenerla viva fino a dopo la distruzione del documento; Destroy chiude l'handle e rimuove il file privato di proprietà

La sorgente non ha cancellazione o capacità di byte indipendenti; gli adapter di transazione e callback le impongono durante copia e lettura; i chiamanti che preparano una sorgente direttamente devono applicare i propri limiti e la propria politica di cancellazione

Classe Transaction, Scambio di dati form Windows