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을 한 번 호출하십시오

Seal은 쓰기 핸들을 flush하고 닫은 뒤 쓰기 공유를 거부하는 읽기 전용으로 파일을 다시 엽니다. 임의의 호출자 경로를 백킹 소스로 받지 않습니다

GetSize는 현재 스트림 전체 길이를 보고합니다. ReadAt은 음수 오프셋이나 개수를 거부하고, 읽기를 가용 바이트로 제한하며, EOF 이상에서 0을 반환하고, 성공과 실패 모두에서 스트림 위치를 복원합니다

OwnSource=False로 로드한 문서는 소스를 빌려 쓰므로, 문서 파괴 뒤까지 살아 있게 두십시오. Destroy는 핸들을 닫고 소유한 비공개 파일을 제거합니다

이 소스에는 독립적인 cancellation이나 바이트 용량이 없습니다. 트랜잭션과 콜백 어댑터가 복사와 읽기 동안 이를 강제합니다. 소스를 직접 준비하는 호출자는 자기 한도와 cancellation 정책을 적용해야 합니다

트랜잭션 클래스, Windows form data 교환