IHPDFCustomStreamFilter
定义一个引用计数的自定义解码器,供已加载流的过滤器管线使用
声明
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;
参数
Input 仅在回调期间借用,Output 是 push 模式下隔离且有界的目标,Request 则提供阶段标识、剩余预算和取消信息
成功的 pull 结果之后,DecodedStream 归 HotPDF 所有;结果为 false 时,Diagnostic 应说明原因
返回值
Return True only after producing a complete valid stage result
使用说明
- 只会调用由
Mode选定的那个方法 - 不要释放、保留或返回借用的
Input流 - Long operations should check
Request.CancellationTokencooperatively - Exceptions are isolated as
dpsCustomFilterError,dpsBudgetExceeded,或dpsCancelled - 回调同步执行,且在 registry 锁之外执行