IPrintOemUI::P ublishDriverInterface 方法 (prcomoem.h)
IPrintOemUI::PublishDriverInterface
方法允许用户界面插件获取 Unidrv 或 Pscript5 驱动程序的 IPrintOemDriverUI、IPrintCoreUI2、IPrintCoreHelperPS或 IPrintCoreHelperUni 接口。
语法
HRESULT PublishDriverInterface(
IUnknown *pIUnknown
);
参数
pIUnknown
调用方提供的指针指向驱动程序 IPrintCoreUI2 COM 接口的 IUnknown 接口、IPrintOemDriverUI COM 接口、IPrintCoreHelperPS 接口或 IPrintCoreHelperUni 接口。 请参阅“备注”。
返回值
该方法必须返回以下值之一。
返回代码 | 描述 |
---|---|
|
作成功。 |
|
作失败。 |
言论
Pscript5 驱动程序支持 IPrintCoreUI2、IPrintOemDriverUI,以及 IPrintCoreHelperPS 接口。 Unidrv 支持 IPrintOemDriverUI 和 IPrintCoreHelperUni 接口。 两种类型的驱动程序的用户界面插件必须实现 IPrintOemUI::PublishDriverInterface
方法。
该方法应返回有关其支持的 Pscript5 接口的信息,如下所示:
-
Pscript5 驱动程序首先调用
IPrintOemUI::PublishDriverInterface
方法,并将 pIUnknown 指针设置为 IPrintCoreUI2 实例的 IUnknown IUnknown 接口。 如果用户界面插件能够使用 IPrintCoreUI2 接口,该方法必须返回S_OK。 否则,插件应返回E_FAIL。 -
如果插件已返回E_FAIL,Pscript5 驱动程序将再次调用
IPrintOemUI::PublishDriverInterface
方法,但 pIUnknown 指针设置为 IPrintOemDriverUI 实例的 IUnknown 接口。 如果插件可以使用 IPrintOemDriverUI 接口,该方法必须返回S_OK。 否则,插件应返回E_FAIL。 -
如果插件的 IPrintOemUI::GetInfo 方法返回了 pBuffer 中OEMPUBLISH_IPRINTCOREHELPER的值,以响应 dwMode 设置为OEMGI_GETREQUESTEDHELPERINTERFACES的调用, Pscript5 驱动程序再次调用
IPrintOemUI::PublishDriverInterface
方法,但 pIUnknown 指针设置为实现 IPrintCoreHelperPS 和 IPrintCoreHelper 接口的对象。 如果插件可以使用 IPrintCoreHelperPS 或 IPrintCoreHelper 接口,该方法应返回S_OK。 否则,该方法应返回E_FAIL。
-
Unidrv 驱动程序首先调用 pIUnknown 指针设置为 IPrintOemDriverUI 实例的 IUnknown 接口的
IPrintOemUI::PublishDriverInterface
方法。 如果插件能够使用 IPrintOemDriverUI 接口,该方法必须返回S_OK。 否则,插件应返回E_FAIL。 -
如果插件的 IPrintOemUI::GetInfo 方法返回了 pBuffer 中OEMPUBLISH_IPRINTCOREHELPER的值,以响应 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 函数期间, UI 插件不应混合使用预 Windows Vista 接口的方法(例如,IPrintOemDriverUI 或 IPrintCoreUI2 接口)和 Windows Vista 接口的新方法(例如,IPrintCoreHelperUni 或 IPrintCoreHelperPS)读取或写入驱动程序设置。 例如,在 IPrintOemUI::D ocumentPropertySheets 方法期间,UI 插件不应使用 IPrintOemDriverUI::D rvUpdateUISetting 方法来写入设置,并使用 IPrintCoreHelper::GetOption 方法读取设置。 例如,在 IPrintOemUI::P rinterEvent 方法期间,UI 插件不应使用 IPrintCoreUI2::GetOptions 方法来读取设置,并使用 IPrintCoreHelper::SetOptions 方法写入设置。 这些不同版本的接口之间不支持同步设置的读取和写入。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | prcomoem.h (include Prcomoem.h) |