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


Публикация интерфейсов

Внимание

Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.

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

Подключаемые модули обычно получают экземпляры объектов, реализующих поведение в основных драйверах механизмом, называемым публикацией. Вспомогательные интерфейсы IPrintCoreHelper, IPrintCoreHelperPS и IPrintCoreHelperUni публикуются с помощью той же модели с несколькими незначительными различиями.

В следующих списках приведены сведения о порядке публикации объектов в пользовательском интерфейсе (пользовательском интерфейсе) и модулях отрисовки как для Unidrv, так и для Pscript5. Для каждого из четырех модулей число в списке указывает порядок публикации объекта, а также интерфейсы COM, которые называются интерфейсами, реализующими объект.

В любом заданном модуле драйвер должен хранить только один из объектов, опубликованных путем сохранения указателя и вызова метода AddRef для этого объекта. После того как подключаемый модуль сохраняет ссылку на объект, подключаемый модуль должен вернуть S_OK. Затем основной драйвер перестанет публиковать интерфейсы. Эта модель значительно отличается от предыдущего механизма публикации.

В контексте пользовательского интерфейса объекты публикуются в интерфейсе IPrintOemUI в классе, идентификатор класса которого CLSID_OEMUI. В контексте отрисовки объекты публикуются в интерфейсах IPrintOemPS или IPrintOemUni .

Объекты, помеченные звездочкой (*) в следующих списках, публикуются в интерфейсе IPrintOemPrintTicketProvider .

Порядок публикации модуля пользовательского интерфейса Unidrv

  1. IUnknown и *IPrintCoreHelper и IPrintCoreHelperUni

  2. IUnknown и IPrintOemDriverUI

Порядок публикации модуля отрисовки Unidrv

  1. IUnknown и IPrintCoreHelper и IPrintCoreHelperUni

  2. IUnknown и IPrintOemDriverUni

Порядок публикации модуля пользовательского интерфейса Pscript5

  1. IUnknown и *IPrintCoreHelper и IPrintCoreHelperPS

  2. IUnknown и IPrintCoreUI2

  3. IUnknown и IPrintOemDriverUI

Порядок публикации модуля отрисовки Pscript5

  1. IUnknown и IPrintCoreHelper и IPrintCoreHelperPS

  2. IUnknown и IPrintCorePS2