IHPDFCustomStreamFilter
Define um decoder personalizado com contagem de referências, usado pelos pipelines de filtros de streams carregados
Declaração
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;
Parâmetros
Input é emprestado durante o callback, Output é um destino isolado e delimitado para o modo push, e Request fornece a identidade da etapa, o orçamento restante e o cancelamento
DecodedStream passa a pertencer ao HotPDF após um resultado pull bem-sucedido, enquanto Diagnostic deve explicar um resultado false
Valor devolvido
Devolver True only after producing a complete valid stage result
Notas de utilização
- Só é chamado o método selecionado por
Mode - Não liberte, não retenha nem devolva o stream
Inputemprestado - Long operations should check
Request.CancellationTokencooperatively - Exceptions are isolated as
dpsCustomFilterError,dpsBudgetExceeded, ordpsCancelled - Os callbacks executam de forma síncrona e fora do lock do registo