Поделиться через


Plug-Ins отрисовки COM-Based

Важно!

Мы рекомендуем использовать драйвер класса "Входящие" от Майкрософт iPP вместе с приложениями поддержки печати (PSA) для настройки печати в Windows 10 и 11 для разработки принтеров.

Дополнительные сведения см. в руководстве по проектированию приложений поддержки печати.

Для предоставления настраиваемых функций перехватчика подключаемый модуль отрисовки на основе COM должен реализовать метод IPrintOemUni::EnableDriver или IPrintOemPS::EnableDriver , который заполняет структуру DRVENABLEDATA адресом каждой функции перехватчика.

Подключаемый модуль отрисовки на основе COM может подключить графическую функцию DDI, только если драйвер Unidrv или Pscript5 определяет функцию. Список таких функций см. в разделе IPrintOemUni::EnableDriver или IPrintOemPS::EnableDriver.

Если вы предоставляете определенную настраиваемую функцию перехватчика, эта функция вытесняет эквивалентную графическую функцию DDI драйвера. При разработке настраиваемой функции перехватчика доступны следующие варианты.

  • Функция перехватчика может полностью обрабатывать графическую операцию DDI внутри системы.

  • Функция перехватчика может вызывать эквивалентную графическую функцию DDI драйвера принтера.

Возвращаясь к графической функции DDI драйвера, функция перехватчика может выполнять предварительную обработку или постобработку аргументов функции, но по-прежнему позволяет драйверу фактически выполнять графические операции DDI. Одним из входных аргументов метода IPrintOemUni::EnablePDEV или IPrintOemPS::EnablePDEV является структура DRVENABLEDATA, содержащая указатели на графические функции DDI драйвера. Если вы хотите вызвать эти функции, следует сохранить содержимое этой структуры.

Возможно, потребуется предоставить настраиваемую структуру PDEV. Вы можете ссылаться на эту структуру из графической функции перехватчика DDI с помощью указателя структуры SURFOBJ , который каждая функция перехватчика получает в качестве входных данных. В частности, член dhpdev структуры SURFOBJ указывает на структуру DEVOBJ , а член pdevOEM структуры DEVOBJ — на настраиваемую структуру PDEV.