THPDFWindowsFormDataSource
HPDFWindowsFormData は、プライベートな一時ファイル生存期間を持つ、所有型の Windows ランダムアクセスソースを提供します
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 を 1 回呼んでください
Seal は書き込みハンドルをフラッシュして閉じ、書き込み共有を拒否した読み取り専用アクセスでファイルを再オープンします。任意の呼び出し元パスをバッキングソースとして受け入れることはありません
GetSize は現在のストリーム長の全体を報告します。ReadAt は負のオフセットやカウントを拒否し、読み出しを利用可能バイトに制限し、EOF 以降では 0 を返し、成功時も失敗時もストリーム位置を復元します
OwnSource=False でロードされたドキュメントはソースを借り受けます。ドキュメント破棄後までソースを生かしておいてください。Destroy はハンドルを閉じ、所有するプライベートファイルを削除します
ソース自体には独立したキャンセルやバイト容量の仕組みがありません。トランザクションとコールバックアダプタがコピーと読み出しの間にそれらを強制します。ソースを直接準備する呼び出し元は、独自の上限とキャンセルポリシーを適用する必要があります