الصنف THPDFWindowsFormDataSource
HPDFWindowsFormData provides an owned Windows random-access source with a private temporary-file lifetime
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 تحجز حصريًا ملفًا مؤقتًا فريدًا وتُتاح Stream قابلًا للكتابة؛ واكتب المصدر كاملًا واستدعِ Seal مرة واحدة قبل تزويده إلى مستند محمل
Seal تدفع وتغلق المقبض القابل للكتابة ثم تعيد فتح الملف للوصول للقراءة فقط مع رفض مشاركة الكتابة؛ وهي لا تأخذ مسار مستدعي اعتباطيًا كمصدر أساسي
GetSize تبلغ طول التدفق الحالي الكامل؛ وReadAt ترفض إزاحات أو عدادات سالبة وتحصر القراءة بالبايتات المتاحة وتُعيد صفرًا عند EOF أو بعده وتستعيد موضع التدفق عند النجاح والفشل
المستند المحمل بـ OwnSource=False يستعير المصدر؛ وأبقِه حيًا حتى بعد إتلاف المستند؛ وDestroy تغلق المقبض وتزيل الملف الخاص المملوك
المصدر لا يملك إلغاءً أو سعة بايتات مستقلتين؛ ومهايئا المعاملة وcallback يفرضانهما أثناء النسخ والقراءة؛ وعلى المستدعين الذين يجهزون مصدرًا مباشرةً تطبيق حدودهم وسياسة إلغائهم الخاصة