Публикация интерфейсов
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Подключаемые модули обычно получают экземпляры объектов, реализующих поведение в основных драйверах механизмом, называемым публикацией. Вспомогательные интерфейсы IPrintCoreHelper, IPrintCoreHelperPS и IPrintCoreHelperUni публикуются с помощью той же модели с несколькими незначительными различиями.
В следующих списках приведены сведения о порядке публикации объектов в пользовательском интерфейсе (пользовательском интерфейсе) и модулях отрисовки как для Unidrv, так и для Pscript5. Для каждого из четырех модулей число в списке указывает порядок публикации объекта, а также интерфейсы COM, которые называются интерфейсами, реализующими объект.
В любом заданном модуле драйвер должен хранить только один из объектов, опубликованных путем сохранения указателя и вызова метода AddRef для этого объекта. После того как подключаемый модуль сохраняет ссылку на объект, подключаемый модуль должен вернуть S_OK. Затем основной драйвер перестанет публиковать интерфейсы. Эта модель значительно отличается от предыдущего механизма публикации.
В контексте пользовательского интерфейса объекты публикуются в интерфейсе IPrintOemUI в классе, идентификатор класса которого CLSID_OEMUI. В контексте отрисовки объекты публикуются в интерфейсах IPrintOemPS или IPrintOemUni .
Объекты, помеченные звездочкой (*) в следующих списках, публикуются в интерфейсе IPrintOemPrintTicketProvider .
Порядок публикации модуля пользовательского интерфейса Unidrv
IUnknown и *IPrintCoreHelper и IPrintCoreHelperUni
IUnknown и IPrintOemDriverUI
Порядок публикации модуля отрисовки Unidrv
IUnknown и IPrintCoreHelper и IPrintCoreHelperUni
IUnknown и IPrintOemDriverUni
Порядок публикации модуля пользовательского интерфейса Pscript5
IUnknown и *IPrintCoreHelper и IPrintCoreHelperPS
IUnknown и IPrintCoreUI2
IUnknown и IPrintOemDriverUI
Порядок публикации модуля отрисовки Pscript5
IUnknown и IPrintCoreHelper и IPrintCoreHelperPS
IUnknown и IPrintCorePS2