IPrintOemUI::D eviceCapabilities メソッド (prcomoem.h)
IPrintOemUI::DeviceCapabilities
メソッドを使用すると、ユーザー インターフェイス プラグインでカスタマイズされたデバイス機能を指定できます。
構文
HRESULT DeviceCapabilities(
POEMUIOBJ poemuiobj,
HANDLE hPrinter,
PWSTR pDeviceName,
WORD wCapability,
PVOID pOutput,
PDEVMODE pPublicDM,
PVOID pOEMDM,
DWORD dwOld,
DWORD *dwResult
);
パラメーター
poemuiobj
OEMUIOBJ 構造体への呼び出し元指定ポインター。
hPrinter
プリンター デバイスに対する呼び出し元が指定したハンドル。
pDeviceName
デバイス名を表す文字列への呼び出し元が指定したポインター。
wCapability
メソッドが返す必要がある情報の種類を示す呼び出し元から提供されるフラグ。 フラグの一覧については、DrvDeviceCapabilities 関数の説明を参照してください。
pOutput
要求された情報を受け取るバッファーへの呼び出し元指定ポインター。 返される情報の種類は、wCapabilityで指定されたフラグによって異なります。
pPublicDM
検証された devMODEW 構造体 呼び出し元から提供されたポインター。
pOEMDM
呼び出し元が指定した、ユーザー インターフェイス プラグインのプライベート DEVMODEW 構造体メンバーへのポインター。
dwOld
プリンター ドライバーの DrvDeviceCapabilities 関数から、または別のユーザー インターフェイス プラグインから呼び出し元が指定した戻り値。 詳細については、次の「解説」セクションを参照してください。
dwResult
wCapabilityで指定されたフラグに依存する戻り値。 詳細については、DrvDeviceCapabilities 関数の説明と、次の「解説」セクションを参照してください。
戻り値
このメソッドは、次のいずれかの値を返す必要があります。
リターン コード | 形容 |
---|---|
|
操作は成功しました。 |
|
プラグインは、pOutput パラメーターが指すバッファーを独自の目的で使用することを意図しています。 この戻り値は prcomoem.h で定義されています。 この戻り値を使用するタイミングの詳細については、次の「解説」セクションを参照してください。 |
|
操作が失敗しました。 |
|
メソッドは実装されていません。 |
備考
ユーザー インターフェイス プラグインの IPrintOemUI::DeviceCapabilities
メソッドは、ユーザー モード プリンター インターフェイス DLL によってエクスポートされる DrvDeviceCapabilities 関数と同じ種類の操作を実行します。 このメソッドは、プリンターによって提供される機能を指定します。
IPrintOemUI::DeviceCapabilities
メソッドを使用して、Unidrv のサポートを機能に割り込んだり、プリンター ドライバーで提供されない機能を追加したりすることができます。 ドライバーは、DrvDeviceCapabilities 関数内から IPrintOemUI::DeviceCapabilities
を呼び出します。
IPrintOemUI::DeviceCapabilities
メソッドが機能のカスタマイズされたサポートを示している場合 (受信したDC_FIELDS フラグに応じて適切なビットを設定することによって)、カスタマイズされたコードは機能を完全にサポートする必要があります。 完全なサポートには、通常、IPrintOemUI::DeviceCapabilities
メソッドの呼び出しに応答して機能に関する情報を返すことと、機能を実装するための適切なユーザー モードまたはカーネル モード コードの提供が含まれます。
IPrintOemUI::DeviceCapabilities
メソッドが複数のユーザー インターフェイス プラグインによってエクスポートされる場合、そのメソッドは、インストール用にプラグインが指定された順序で呼び出されます。 プラグインの IPrintOemUI::DeviceCapabilities
メソッドが呼び出されるたびに、その dwOld 入力値は、以前に呼び出されたプラグインの IPrintOemUI::DeviceCapabilities
メソッドからの戻り値になります。 最初に呼び出されたプラグインの場合、dwOld には、プリンター ドライバーの DrvDeviceCapabilities 関数からの戻り値が含まれます。 同様に、pOutput 指すバッファーには、入力時に、以前に呼び出された IPrintOemUI::DeviceCapabilities
メソッドまたは DrvDeviceCapabilities 関数によってそこに配置されたコンテンツ 含まれます。
複数のユーザー インターフェイス プラグインが相互に連携して動作するには、各 IPrintOemUI::DeviceCapabilities
メソッドが次の規則に従う必要があります。
-
ユーザー インターフェイス プラグインが指定された機能をサポートしていない場合、その
IPrintOemUI::DeviceCapabilities
メソッドは、dwResult で dwOld パラメーターの内容返す必要があります。 -
ユーザー インターフェイス プラグインでこの機能がサポートされている場合、その
IPrintOemUI::DeviceCapabilities
メソッドは dwOld 無視し、pOutput 指すバッファーの内容を無視する必要があります。 指定された機能をサポートしていることを示す適切な戻り値とバッファーの内容を提供する必要があります。 メソッドがエラーを検出した場合、dwResultでGDI_ERRORを返す必要があります。 -
ユーザー インターフェイス プラグインで pOutput が指すバッファーで受信した機能情報変更する場合、その
IPrintOemUI::DeviceCapabilities
メソッドはバッファーの内容を変更し、dwResultで適切な戻り値を返す必要があります。 たとえば、wCapability がDC_FIELDS 場合、メソッドは、dwOld で設定されたビット設定する必要があるビット 、dwResultで OR 演算の結果を返す必要があります。 - 上記のルールは、dwOld の受信コンテンツがGDI_ERRORされている場合でも従う必要があります。
IPrintOemUI::DeviceCapabilities
メソッドが呼び出され、すべてのセット ビットの和集合が呼び出し元に返されます。
S_DEVCAP_OUTPUT_FULL_REPLACEMENT戻り値は Windows Vista の新機能であり、Unidrv と Pscript5 の両方のユーザー インターフェイス プラグインに適用されます。プラグインは、pOutput パラメーターによって指されるバッファーに配置される内容を完全に制御する必要がある場合にのみ、S_DEVCAP_OUTPUT_FULL_REPLACEMENT戻り値を使用する必要があります。 プラグインがS_DEVCAP_OUTPUT_FULL_REPLACEMENTを返すとき、Unidrv も Pscript5 コア ドライバーも、pOutput バッファーにデータを配置しません。 プラグインは、DEVMODEW 構造体 (pPublicDM および pOEMDM パラメーターによって指される) の設定が、GPD または PPD ファイルで指定されたデバイス機能データとは異なるデバイス機能データを報告する必要があることをユーザー インターフェイス プラグインに示す場合に、この値を返す必要がある場合があります。 たとえば、写真の印刷を指定する DEVMODEW 構造体では、GPD または PPD ファイルで指定されているものとは異なる用紙の種類のセットが必要な場合があります。 このような状況では、pOutput と dwOld パラメーターの値に関係なく、プラグインはS_DEVCAP_OUTPUT_FULL_REPLACEMENTを返し、dwResult パラメーターをレポートする用紙の種類の数に設定する必要があります。 pOutput が NULL されていない場合、プラグインは pOutput が指すバッファーにも目的の用紙の種類のセットを設定し、dwResult を、プラグインが報告する用紙の種類の数に設定する必要があります。
複数のユーザー インターフェイス プラグインが同時にアクティブで、そのうちの 1 つがS_DEVCAP_OUTPUT_FULL_REPLACEMENTを返す場合、Unidrv または Pscript5 コア ドライバーはこの戻り値を解釈して、プラグインが完全な置換出力データを提供することを意味します。 その結果、コア ドライバーは、プラグインを呼び出す前に、pOutput バッファーにデータを配置しません。(コア ドライバーは、インストールに指定されたのと同じ順序でプラグインを呼び出します)。
コア ドライバーが pOutput バッファーに配置する値を置き換える必要がない場合、プラグインはS_OKを返す必要があります。 Unidrv および Pscript5 コア ドライバーは、wCapability パラメーターが次のいずれかのフラグに設定されている場合に、pOutput バッファーを使用するデバイス機能に対してのみ、S_DEVCAP_OUTPUT_FULL_REPLACEMENT戻り値を認識します。
DC_PAPERNAMES
DC_PAPERS
DC_PAPERSIZE
DC_BINNAMES
DC_BINS
DC_NUP
DC_PERSONALITY
DC_MEDIAREADY
DC_MEDIATYPENAMES
DC_MEDIATYPES
DC_ENUMRESOLUTIONS
ユーザー インターフェイス プラグインの作成とインストールの詳細については、「Microsoft のプリンター ドライバーのカスタマイズ」を参照してください。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | prcomoem.h (Prcomoem.h を含む) |
関連項目
IPrintOemUI の