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, тоді як Diagnostic має пояснювати хибний результат
Повернене значення
Повертайте True лише після створення повного дійсного результату етапу
Примітки щодо використання
- Викликається лише метод, обраний за
Mode - Не звільняйте, не утримуйте й не повертайте позичений потік
Input - Тривалі операції мають кооперативно перевіряти
Request.CancellationToken - Винятки ізолюються як
dpsCustomFilterError,dpsBudgetExceededабоdpsCancelled - Зворотні виклики виконуються синхронно та поза блокуванням реєстру