THPDFWindowsFormDataSource

HPDFWindowsFormData fournit une source Windows à accès aléatoire possédée, avec une durée de vie de fichier temporaire privé

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 réserve exclusivement un fichier temporaire unique et expose son Stream inscriptible ; écrivez le source complet et appelez Seal une fois avant de le fournir à un document chargé

Seal vide et ferme le handle inscriptible, puis rouvre le fichier en accès lecture seule avec partage en écriture refusé ; il n'accepte pas un chemin arbitraire de l'appelant comme source sous-jacente

GetSize signale la longueur courante complète du flux ; ReadAt rejette les offsets ou comptages négatifs, limite la lecture aux octets disponibles, renvoie zéro à l'EOF ou au-delà, et restaure la position du flux en succès comme en échec

Un document chargé avec OwnSource=False emprunte la source ; maintenez-la en vie jusqu'après la destruction du document ; Destroy ferme le handle et supprime le fichier privé possédé

La source n'a ni annulation ni capacité en octets indépendantes ; les adaptateurs de transaction et de callback les appliquent pendant la copie et la lecture ; les appelants qui préparent une source directement doivent appliquer leurs propres bornes et politique d'annulation

Classe de transaction, Échange de données de formulaires Windows