Идентификаторы интерфейса для драйверов принтера
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Набор идентификаторов GUID определяется в prcomoem.h. Каждый из этих идентификаторов GUID — это идентификатор интерфейса для одного из COM-интерфейсов, используемых для обмена данными между драйверами принтера (Unidrv и Pscript5) и подключаемыми модулями.
Для Windows 2000 и Windows XP определены следующие идентификаторы GUID:
IID_IPrintOemUI IID_IPrintOemUI2 (подключаемые модули пользовательского интерфейса Pscript5 в Windows XP и более поздних версиях операционной системы Windows) IID_IPrintOemDriverUIIID_IPrintCoreUI2 (подключаемые модули пользовательского интерфейса Pscript5 в Windows XP и более поздних версиях операционной системы Windows) IID_IPrintOemUniIID_IPrintOemUni2 IID_IPrintOemUni2 (подключаемые модули отрисовки Unidrv в Windows XP и более поздних версиях операционной системы Windows) IID_IPrintOemUni3 (Подключаемые модули отрисовки Unidrv в Windows Vista и более поздних версиях операционной системы Windows) IID_IPrintOemDriverUni IID_IPrintOemPS IID_IPrintOemPS2 IID_IPrintOemPS2 (подключаемые модули отрисовки Pscript5 в Windows XP и более поздних версиях операционной системы Windows) IID_IPrintOemDriverPS IID_IPrintCorePS2 (подключаемые модули отрисовки Pscript5 в Windows XP и более поздних версиях операционной системы Windows) Каждый GUID определяет одну версию одного интерфейса. Если определена новая версия интерфейса, в список добавляется новый GUID.
Подключаемые модули пользовательского интерфейса и подключаемые модули отрисовки должны определять поддерживаемые версии интерфейса. Драйвер принтера (Unidrv или Pscript5) вызывает метод IUnknown::QueryInterface (описанный в документации по Пакету SDK для Windows), указав идентификатор интерфейса в качестве входных данных. Если подключаемый модуль поддерживает указанную версию, метод должен вернуть указатель на интерфейс вместе с состоянием возврата S_OK. В противном случае он должен возвращать E_NOINTERFACE. Драйвер начинается с идентификатора интерфейса для последней версии и продолжает вызывать QueryInterface с более ранними идентификаторами версий, пока метод не возвращает S_OK или драйвер исчерпает список идентификаторов версий.
Аналогичным образом, Unidrv и Pscript5 предоставляют методы IUnknown::QueryInterface для интерфейсов IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS или IPrintCorePS2 COM. Подключаемые модули должны вызывать метод QueryInterface соответствующего интерфейса, чтобы определить поддерживаемую версию интерфейса драйвера и получить указатель интерфейса.