THPDFDocumentHandlerRegistry Class

THPDFDocumentHandlerRegistry = class
  function RegisterHandler(const Handler: IHPDFDocumentHandler;
    ReplaceExisting: boolean = false): boolean;
  function UnregisterHandler(const HandlerName: string): boolean;
  procedure Clear;
  function GetHandlerCount: Integer;
  function GetHandlerName(Index: Integer): string;
  procedure RegisterStandardHandlers(ReplaceExisting: boolean = false);
  function OpenFromStream(Source: TStream; const SourceName,
    MIMEType: string; const Options: THPDFDocumentHandlerOptions;
    out Document: IHPDFHandledDocument;
    out Info: THPDFDocumentHandlerInfo): boolean;
  function OpenFromFile(const FileName, MIMEType: string;
    const Options: THPDFDocumentHandlerOptions;
    out Document: IHPDFHandledDocument;
    out Info: THPDFDocumentHandlerInfo): boolean;
end;

註冊、替換、移除、快照與查詢都是執行緒安全的;最多 32 個處理器,每個處理器名稱佔一個不分大小寫的槽位

識別動作在 registry 鎖之外、對一份穩定的介面快照執行,分數相同時維持註冊順序

RegisterStandardHandlers 可加入 XPS、EPUB 與 CBZ 支援,且不影響 PDF 專屬的載入 API

選用文件處理器