Подключаемые модули отрисовки на основе COM
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft 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 , который каждая функция перехватчика получает в качестве входных данных. В частности, член структуры SURFOBJ dhpdev указывает на структуру DEVOBJ, а член pdevOEM структуры DEVOBJ указывает на настраиваемую структуру PDEV.