THPDFWindowsFormDataSource

HPDFWindowsFormData levert een owned Windows random-access-bron met een privé-tijdelijk-bestand-levensduur

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 reserveert exclusief een uniek tijdelijk bestand en legt diens schrijfbare Stream bloot; schrijf de complete bron en roep Seal één keer aan voordat je hem aan een geladen document doorgeeft

Seal flußt en sluit het schrijfbare handle en heropent daarna het bestand voor read-only-toegang met write sharing geweigerd; hij neemt geen willekeurig aanroepers-pad als backing-bron

GetSize rapporteert de complete huidige streamlengte; ReadAt verwerpt negatieve offsets of aantallen, beperkt de read tot beschikbare bytes, geeft nul terug op of voorbij EOF en herstelt de streampositie bij succes en falen

Een document geladen met OwnSource=False leent de bron; houd hem in leven tot na documentdestructie; Destroy sluit het handle en verwijdert het owned privé-bestand

De bron heeft geen onafhankelijke annulering of bytecapaciteit; de transactie- en callback-adapters handhaven die tijdens kopiëren en lezen; aanroepers die direct een bron voorbereiden, moeten diens eigen grenzen en annuleringsbeleid toepassen

Transaction class, Windows form data exchange