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


Метод IPrintOemUI::P ublishDriverInterface (prcomoem.h)

Метод IPrintOemUI::PublishDriverInterface позволяет подключаемого модуля пользовательского интерфейса получить интерфейс IPrintOemDriverUI, IPrintCoreUI2, IPrintCoreHelperPS или IPrintCoreHelperPS драйвера Pscript5.

Синтаксис

HRESULT PublishDriverInterface(
  IUnknown *pIUnknown
);

Параметры

pIUnknown

Предоставленный вызывающим элементом указатель на интерфейс IUnknownCOM-интерфейса IPrintCoreUI2, com-интерфейса IPrintOemDriverUI, интерфейса IPrintCoreHelperPS или интерфейса IPrintCoreHelperUni. См. заметки.

Возвращаемое значение

Метод должен возвращать одно из следующих значений.

Код возврата Описание
S_OK
Операция успешно выполнена.
E_FAIL
Операция не удалась.

Комментарии

Драйвер Pscript5 поддерживает интерфейсы IPrintCoreUI2, IPrintOemDriverUI и IPrintCoreHelperPS . Unidrv поддерживает интерфейсы IPrintOemDriverUI и IPrintCoreHelperUni . Подключаемые модули пользовательского интерфейса для обоих типов драйверов должны реализовывать IPrintOemUI::PublishDriverInterface метод .

Метод должен возвращать сведения о поддерживаемых интерфейсах Pscript5 следующим образом:

  1. Драйвер Pscript5 сначала вызывает IPrintOemUI::PublishDriverInterface метод с указателем pIUnknown, заданным для интерфейса IUnknown экземпляра IPrintCoreUI2. Если подключаемый модуль пользовательского интерфейса может использовать интерфейс IPrintCoreUI2 , метод должен возвращать S_OK. В противном случае подключаемый модуль должен вернуть E_FAIL.
  2. Если подключаемый модуль вернул E_FAIL, драйвер Pscript5 снова вызывает IPrintOemUI::PublishDriverInterface метод, но с указателем pIUnknown, заданным на интерфейс IUnknown экземпляра IPrintOemDriverUI. Если подключаемый модуль может использовать интерфейс IPrintOemDriverUI , метод должен возвращать S_OK. В противном случае подключаемый модуль должен вернуть E_FAIL.
  3. Если метод IPrintOemUI::GetInfo подключаемого модуля вернул значение OEMPUBLISH_IPRINTCOREHELPER в pBuffer в ответ на вызов с параметром dwMode , равным OEMGI_GETREQUESTEDHELPERINTERFACES, драйвер Pscript5 снова вызывает IPrintOemUI::PublishDriverInterface метод, но с указателем pIUnknown , заданным на объект, реализующий интерфейсы IPrintCoreHelperPS и IPrintCoreHelper . Если подключаемый модуль может использовать интерфейс IPrintCoreHelperPS или IPrintCoreHelper , метод должен возвращать S_OK. В противном случае метод должен вернуть E_FAIL.
Метод должен возвращать сведения о поддерживаемых интерфейсах Unidrv следующим образом:
  1. Драйвер Unidrv сначала вызывает IPrintOemUI::PublishDriverInterface метод с указателем pIUnknown, заданным для интерфейса IUnknown экземпляра IUnknown экземпляра IPrintOemDriverUI. Если подключаемый модуль может использовать интерфейс IPrintOemDriverUI , метод должен возвращать S_OK. В противном случае подключаемый модуль должен вернуть E_FAIL.
  2. Если метод IPrintOemUI::GetInfo подключаемого модуля вернул значение OEMPUBLISH_IPRINTCOREHELPER в pBuffer в ответ на вызов с параметром dwMode , равным OEMGI_GETREQUESTEDHELPERINTERFACES, драйвер Unidrv снова вызывает IPrintOemUI::PublishDriverInterface метод, но с указателем pIUnknown , заданным на объект, реализующий интерфейсы IPrintCoreHelperUni и IPrintCoreHelper . Если подключаемый модуль использует интерфейс IPrintCoreHelperUni или IPrintCoreHelper , метод должен возвращать S_OK. В противном случае метод должен вернуть E_FAIL.
Если подключаемый модуль завершается сбоем всех вызовов , IPrintOemUI::PublishDriverInterfaceподключаемый модуль не будет принимать дальнейшие вызовы. Если подключаемый модуль пользовательского интерфейса будет вызывать методы интерфейса IPrintCoreUI2, IPrintOemDriverUI, IPrintCoreHelperPS или IPrintCoreHelperUni, он должен использовать полученный указатель интерфейса IUnknown для вызова IUnknown::QueryInterface (описанного в документации по Microsoft Windows SDK), чтобы получить указатель на поддерживаемую драйвером версию IPrintCoreUI2. Интерфейс IPrintOemDriverUI, IPrintCoreHelperPS или IPrintCoreHelperUni. Дополнительные сведения см. в разделе Идентификаторы интерфейса для драйверов принтеров.

Во время обработки каждой функции DDI подключаемые модули пользовательского интерфейса не должны сочетать использование методов интерфейсов до Windows Vista (например, IPrintOemDriverUI или IPrintCoreUI2 ) и новых методов интерфейсов Windows Vista (например, IPrintCoreHelperUni или IPrintCoreHelperPS) для чтения или записи параметров драйвера. Например, во время метода IPrintOemUI::D ocumentPropertySheets подключаемый модуль пользовательского интерфейса не должен использовать метод IPrintOemDriverUI::D rvUpdateUISetting для записи параметров и использовать метод IPrintCoreHelper::GetOption для чтения параметров. Например, во время метода IPrintOemUI::P rinterEvent подключаемый модуль пользовательского интерфейса не должен использовать метод IPrintCoreUI2::GetOptions для чтения параметров и метод IPrintCoreHelper::SetOptions для записи параметров. Синхронизация чтения и записи параметров не поддерживается между этими различными версиями интерфейсов.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть prcomoem.h (включая Prcomoem.h)

См. также раздел

IPrintOemUI

IPrintOemUI::GetInfo