IPrintOemUI::P ublishDriverInterface 方法 (prcomoem.h)

方法 IPrintOemUI::PublishDriverInterface 允许用户界面插件获取 Unidrv 或 Pscript5 驱动程序的 IPrintOemDriverUIIPrintCoreUI2IPrintCoreHelperPSIPrintCoreHelperUni 接口。

语法

HRESULT PublishDriverInterface(
  IUnknown *pIUnknown
);

参数

pIUnknown

调用方提供的指向驱动程序的 IPrintCoreUI2 COM 接口、IPrintOemDriverUI COM 接口、IPrintCoreHelperPS 接口IPrintCoreHelperUni 接口IUnknown 接口的指针。 请参阅“备注”。

返回值

方法必须返回以下值之一。

返回代码 说明
S_OK
操作成功。
E_FAIL
此操作失败。

注解

Pscript5 驱动程序支持 IPrintCoreUI2IPrintOemDriverUIIPrintCoreHelperPS 接口。 Unidrv 支持 IPrintOemDriverUIIPrintCoreHelperUni 接口。 这两种类型的驱动程序的用户界面插件都必须实现 IPrintOemUI::PublishDriverInterface 方法。

方法应返回有关其支持的 Pscript5 接口的信息,如下所示:

  1. Pscript5 驱动程序首先调用 方法, IPrintOemUI::PublishDriverInterface 并将 pIUnknown 指针设置为 IPrintCoreUI2 实例的 IUnknown 接口。 如果用户界面插件能够使用 IPrintCoreUI2 接口,该方法必须返回S_OK。 否则,插件应返回E_FAIL。
  2. 如果插件已返回E_FAIL,Pscript5 驱动程序会再次调用 IPrintOemUI::PublishDriverInterface 该方法,但 pIUnknown 指针设置为 IPrintOemDriverUI 实例的 IUnknown 接口。 如果插件可以使用 IPrintOemDriverUI 接口,该方法必须返回S_OK。 否则,插件应返回E_FAIL。
  3. 如果插件的 IPrintOemUI::GetInfo 方法在 pBuffer 中返回值 OEMPUBLISH_IPRINTCOREHELPER,以响应 dwMode 设置为 OEMGI_GETREQUESTEDHELPERINTERFACES 的调用,Pscript5 驱动程序会再次调用 IPrintOemUI::PublishDriverInterface 该方法,但 pIUnknown 指针设置为实现 IPrintCoreHelperPSIPrintCoreHelper 接口的对象。 如果插件可以使用 IPrintCoreHelperPSIPrintCoreHelper 接口,该方法应返回S_OK。 否则,该方法应返回E_FAIL。
方法应返回有关其支持的 Unidrv 接口的信息,如下所示:
  1. Unidrv 驱动程序首先调用 方法, IPrintOemUI::PublishDriverInterface 并将 pIUnknown 指针设置为 IPrintOemDriverUI 实例的 IUnknown 接口。 如果插件能够使用 IPrintOemDriverUI 接口,该方法必须返回S_OK。 否则,插件应返回E_FAIL。
  2. 如果插件的 IPrintOemUI::GetInfo 方法在 pBuffer 中返回值 OEMPUBLISH_IPRINTCOREHELPER,以响应 dwMode 设置为 OEMGI_GETREQUESTEDHELPERINTERFACES 的调用,则 Unidrv 驱动程序会再次调用 IPrintOemUI::PublishDriverInterface 该方法,但 pIUnknown 指针设置为实现 IPrintCoreHelperUniIPrintCoreHelper 接口的对象。 如果插件使用 IPrintCoreHelperUniIPrintCoreHelper 接口,该方法应返回S_OK。 否则,该方法应返回E_FAIL。
如果插件未能通过对 IPrintOemUI::PublishDriverInterface的所有调用,插件将不会接收进一步的调用。 如果用户界面插件将调用 IPrintCoreUI2IPrintOemDriverUIIPrintCoreHelperPSIPrintCoreHelperUni 接口方法,则它必须使用收到的 IUnknown 接口指针调用 IUnknown::QueryInterface (,如Microsoft Windows SDK文档) 中所述,以便获取指向驱动程序支持的 IPrintCoreUI2 版本的指针, IPrintOemDriverUIIPrintCoreHelperPSIPrintCoreHelperUni 接口。 有关详细信息,请参阅 打印机驱动程序的接口标识符

在处理每个 DDI 函数期间,UI 插件不应混合使用 Windows Vista 前接口的方法 (例如 IPrintOemDriverUIIPrintCoreUI2 接口) 和 Windows Vista 接口的新方法 (例如 IPrintCoreHelperUniIPrintCoreHelperPS) 读取或写入驱动程序设置。 例如,在 IPrintOemUI::D ocumentPropertySheets 方法期间,UI 插件不应使用 IPrintOemDriverUI::D rvUpdateUISetting 方法写入设置并使用 IPrintCoreHelper::GetOption 方法读取设置。 再举一例,在 IPrintOemUI::P rinterEvent 方法期间,UI 插件不应使用 IPrintCoreUI2::GetOptions 方法读取设置并使用 IPrintCoreHelper::SetOptions 方法写入设置。 不支持在这些不同版本的接口之间同步设置的读取和写入。

要求

要求
目标平台 桌面
标头 prcomoem.h (包括 Prcomoem.h)

另请参阅

IPrintOemUI

IPrintOemUI::GetInfo