次の方法で共有


IPrintOemUI::P ublishDriverInterface メソッド (prcomoem.h)

IPrintOemUI::PublishDriverInterfaceメソッドを使用すると、ユーザー インターフェイス プラグインは、Unidrv または Pscript5 ドライバーの IPrintOemDriverUIIPrintCoreUI2IPrintCoreHelperPS、または IPrintCoreHelperUni インターフェイスを取得できます。

構文

HRESULT PublishDriverInterface(
  IUnknown *pIUnknown
);

パラメーター

pIUnknown

ドライバーの IPrintCoreUI2 COM インターフェイス、IPrintOemDriverUI COM インターフェイス、IPrintCoreHelperPS インターフェイス、または IPrintCoreHelperUni インターフェイスIUnknownインターフェイスへの呼び出し元指定ポインター。 「解説」を参照してください。

戻り値

メソッドは、次のいずれかの値を返す必要があります。

リターン コード 説明
S_OK
操作が成功しました。
E_FAIL
操作が失敗しました。

注釈

Pscript5 ドライバーは、 IPrintCoreUI2IPrintOemDriverUI、および IPrintCoreHelperPS インターフェイスを サポートしています。 Unidrv では、 IPrintOemDriverUI インターフェイスと IPrintCoreHelperUni インターフェイスが サポートされています。 両方の種類のドライバーのユーザー インターフェイス プラグインは、 メソッドを実装する IPrintOemUI::PublishDriverInterface 必要があります。

メソッドは、サポートされている Pscript5 インターフェイスに関する情報を次のように返す必要があります。

  1. Pscript5 ドライバーは、最初に IPrintOemUI::PublishDriverInterfacepIUnknown ポインターを IPrintCoreUI2 インスタンスの IUnknown インターフェイスに設定して メソッドを呼び出します。 ユーザー インターフェイス プラグインが IPrintCoreUI2 インターフェイスを使用できる場合、メソッドは S_OKを返す必要があります。 それ以外の場合、プラグインは E_FAILを返す必要があります。
  2. プラグインから E_FAILが返された場合、Pscript5 ドライバーはメソッドを再度呼び出 IPrintOemUI::PublishDriverInterface しますが、 pIUnknown ポインターを IPrintOemDriverUI インスタンスの IUnknown インターフェイスに設定します。 プラグインで IPrintOemDriverUI インターフェイスを使用できる場合、メソッドは S_OKを返す必要があります。 それ以外の場合、プラグインは E_FAILを返す必要があります。
  3. プラグインの IPrintOemUI::GetInfo メソッドが、dwMode を OEMGI_GETREQUESTEDHELPERINTERFACES に設定した呼び出しに応答して pBuffer で OEMPUBLISH_IPRINTCOREHELPER の値を返した場合、Pscript5 ドライバーはメソッドを再度呼び出IPrintOemUI::PublishDriverInterfaceしますが、pIUnknown ポインターは IPrintCoreHelperPS インターフェイスと IPrintCoreHelper インターフェイスを実装するオブジェクトに設定されます。 プラグインで IPrintCoreHelperPS または IPrintCoreHelper インターフェイスを使用できる場合、メソッドは S_OKを返す必要があります。 それ以外の場合、メソッドは E_FAILを返す必要があります。
メソッドは、サポートされている Unidrv インターフェイスに関する情報を次のように返す必要があります。
  1. Unidrv ドライバーは、まず、pIUnknown ポインターが IPrintOemDriverUI インスタンスの IUnknown インターフェイスに設定されたメソッドを呼び出IPrintOemUI::PublishDriverInterfaceします。 プラグインが IPrintOemDriverUI インターフェイスを使用できる場合、メソッドは S_OKを返す必要があります。 それ以外の場合、プラグインは E_FAILを返す必要があります。
  2. プラグインの IPrintOemUI::GetInfo メソッドが、dwMode を OEMGI_GETREQUESTEDHELPERINTERFACES に設定した呼び出しに応答して pBuffer で OEMPUBLISH_IPRINTCOREHELPER の値を返した場合、Unidrv ドライバーはメソッドを再度呼び出IPrintOemUI::PublishDriverInterfaceしますが、pIUnknown ポインターは IPrintCoreHelperUni インターフェイスと IPrintCoreHelper インターフェイスを実装するオブジェクトに設定されます。 プラグインが IPrintCoreHelperUni または IPrintCoreHelper インターフェイスを使用している場合、メソッドは S_OKを返す必要があります。 それ以外の場合、メソッドは E_FAILを返す必要があります。
プラグインが へのすべての呼び出しに IPrintOemUI::PublishDriverInterface失敗した場合、プラグインはそれ以上の呼び出しを受け取りません。 ユーザー インターフェイス プラグインが IPrintCoreUI2IPrintOemDriverUIIPrintCoreHelperPS、または IPrintCoreHelperUni インターフェイス メソッドを呼び出す場合、ドライバーのサポートされているバージョンの IPrintCoreUI2 へのポインターを取得するには、受信した IUnknown インターフェイス ポインターを使用して IUnknown::QueryInterface を呼び出す必要があります (Microsoft Windows SDKドキュメントに記載されています)。 IPrintOemDriverUIIPrintCoreHelperPS、または IPrintCoreHelperUni インターフェイス。 詳細については、「 プリンター ドライバーのインターフェイス識別子」を参照してください。

各 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 メソッドを使用して設定を書き込む必要があります。 これらの異なるバージョンのインターフェイス間での設定の読み取りと書き込みの同期はサポートされていません。

要件

要件
対象プラットフォーム デスクトップ
Header prcomoem.h (Prcomoem.h を含む)

こちらもご覧ください

IPrintOemUI

IPrintOemUI::GetInfo