IHPDFCustomStreamFilter
Definiuje zliczany referencyjnie niestandardowy dekoder używany przez potoki filtrów załadowanych strumieni
Deklaracja
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;
Parametry
Input jest wypożyczony na czas wywołania zwrotnego, Output to odizolowany ograniczony cel dla trybu push, a Request dostarcza tożsamość etapu, pozostały budżet i anulowanie
DecodedStream po udanym wyniku pull należy do HotPDF, a Diagnostic powinien wyjaśniać wynik negatywny
Wartość zwracana
Zwracaj True dopiero po wytworzeniu kompletnego, poprawnego wyniku etapu
Uwagi dotyczące użycia
- Wywoływana jest tylko metoda wybrana przez
Mode - Nie zwalniaj, nie przetrzymuj i nie zwracaj wypożyczonego strumienia
Input - Długie operacje powinny kooperatywnie sprawdzać
Request.CancellationToken - Wyjątki są izolowane jako
dpsCustomFilterError,dpsBudgetExceededlubdpsCancelled - Wywołania zwrotne wykonują się synchronicznie i poza blokadą rejestru