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

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

语法

HRESULT PublishDriverInterface(
  IUnknown *pIUnknown
);

参数

pIUnknown

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

返回值

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

返回代码 描述
S_OK
作成功。
E_FAIL
作失败。

言论

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

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

  1. Pscript5 驱动程序首先调用 IPrintOemUI::PublishDriverInterface 方法,并将 pIUnknown 指针设置为 IPrintCoreUI2 实例的 IUnknown 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 驱动程序首先调用 pIUnknown 指针设置为 IPrintOemDriverUI 实例的 IUnknown 接口的 IPrintOemUI::PublishDriverInterface 方法。 如果插件能够使用 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 (include Prcomoem.h)

另请参阅

IPrintOemUI

IPrintOemUI::GetInfo