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

方法 IPrintOemUI::PublishDriverInterface 可讓使用者介面外掛程式取得 Unidrv 或 Pscript5 驅動程式的 IPrintOemDriverUIIPrintCoreUI2IPrintCoreHelperPSIPrintCoreHelperUni 介面。

語法

HRESULT PublishDriverInterface(
  IUnknown *pIUnknown
);

參數

pIUnknown

驅動程式 IPrintCoreUI2 COM 介面IPrintOemDriverUI COM 介面IPrintCoreHelperPS 介面或 IPrintCoreHelperUni 介面的呼叫端提供的指標。 請參閱<備註>。

傳回值

方法必須傳回下列其中一個值。

傳回碼 描述
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