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