Rozhraní IHPDFCustomStreamFilter
Definuje referenčně počítaný vlastní dekodér používaný kanály filtrů načteného streamu
Deklarace
IHPDFCustomStreamFilter = interface(IInterface)
function GetFilterName: AnsiString;
function GetMode: THPDFCustomStreamFilterMode;
function GetInputSeekContract: THPDFCustomStreamSeekContract;
function GetOutputSeekContract: THPDFCustomStreamSeekContract;
function DecodePush(Input, Output: TStream;
const Request: THPDFCustomStreamFilterRequest;
out Diagnostic: AnsiString): Boolean;
function OpenPullStream(Input: TStream;
const Request: THPDFCustomStreamFilterRequest;
out DecodedStream: TStream;
out Diagnostic: AnsiString): Boolean;
end;Smlouva
Rozhraní deklaruje název filtru, režim push nebo pull, smlouvy vyhledávání a metody InputDecodePush a OpenPullStream
Zapůjčený stream Input se nesmí uvolnit ani uchovat. Dlouhé operace mají průběžně kontrolovat Request.CancellationToken
Návratová hodnota
Registr vlastních filtrů streamůTrue
Poznámky k použití
- Volá se jen metoda vybraná přes
Mode - Neuvolňujte, neuchovávávejte ani nevracejte vypůjčený stream
Input - Dlouhé operace by měly kooperativně kontrolovat
Request.CancellationToken - Výjimky se izolují jako
dpsCustomFilterError,dpsBudgetExceedednebodpsCancelled - Callbacky běží synchronně a mimo zámek registru