次の方法で共有


IPrintTicketProvider::ConvertPrintTicketToDevMode メソッド (prdrvcom.h)

IPrintTicketProvider::ConvertPrintTicketToDevMode メソッドは、印刷チケットを DEVMODEW 構造体に変換します。

構文

HRESULT ConvertPrintTicketToDevMode(
  [in]  IN IXMLDOMDocument2 *pPrintTicket,
  [in]  IN ULONG            cbDevmodeIn,
  [in]  IN PDEVMODE         pDevmodeIn,
  [out] OUT ULONG           *pcbDevmodeOut,
  [out] OUT PDEVMODE        *ppDevmodeOut
);

パラメーター

[in] pPrintTicket

入力印刷チケットへのポインター。 IPrintTicketProvider::ConvertPrintTicketToDevMode は、入力印刷チケットの設定を DEVMODEW 構造体のフィールドに変換します。

[in] cbDevmodeIn

入力 DEVMODEW 構造体のサイズ (バイト単位)。 このサイズには、 DEVMODEW 構造体のパブリック セクションとプライベート セクションの両方が含まれます。

[in] pDevmodeIn

既定の設定を含む入力 DEVMODEW 構造体へのポインター。 DEVMODEW 構造体は、印刷キューの既定の DEVMODEW 構造体にすることも、ユーザーの既定の DEVMODEW 構造体にすることもできます。 このパラメーターはユーザーの既定の DEVMODEW 構造を表すことができるため、OEM プラグイン プロバイダーはその構造のデータを検証する必要があります。 印刷キューのドライバーが変更またはアップグレードされた場合など、ユーザーの既定の DEVMODEW 構造体は、特定のドライバーに対して有効でない可能性があります。

[out] pcbDevmodeOut

出力 DEVMODEW 構造体のサイズ (バイト単位) を含む変数へのポインター。

[out] ppDevmodeOut

出力 DEVMODEW 構造体のアドレスを含む変数へのポインター。 IPrintTicketProvider::ConvertPrintTicketToDevMode が正常に返されると、出力 DEVMODEW 構造体のメンバーがリセットされ、印刷チケットの設定が反映されます。 詳細については、「解説」を参照してください。

戻り値

操作が成功した場合、IPrintTicketProvider::ConvertPrintTicketToDevModeS_OKを返す必要があります。 それ以外の場合、このメソッドは標準の COM エラー コードを返す必要があります。

注釈

コア ドライバーは、印刷チケットから DEVMODEW 構造体への変換の一部を実行する前に、IPrintTicketProvider::ConvertPrintTicketToDevMode メソッドを呼び出します。 このメソッドの呼び出しでは、コア ドライバーは、完全に設定された入力印刷チケットと、既定値に設定された DEVMODEW 構造体を渡します。 変換では、プラグインは 、DEVMODEW 構造体から印刷チケットへの以前の変換中に印刷チケットに加えられた変更をすべて元に戻す必要があります。 この以前の変換中に、プラグインが機能をプライベート名前空間からパブリック名前空間に移動した場合、プラグインはコア ドライバーに適した形式でプライベート名前空間に機能を復元する必要があります。つまり、コア ドライバーが IPrintOemPrintTicketProvider::ConvertDevModeToPrintTicket メソッド。 この復元は、コア ドライバーが印刷チケット内の機能を認識し、コア ドライバーの DEVMODEW 構造体のプライベート部分にその設定を反映し、コア ドライバーが印刷チケットから DEVMODEW への変換の一部を実行するために必要です。

システムは、印刷チケットを DEVMODEW 構造体に変換する前に、最初に既定の DEVMODEW を読み込みます。 その後、システムはプロバイダーの IPrintTicketProvider::BindPrinter メソッドを 呼び出します。 このメソッドは、印刷チケットからサポートされているすべての設定を読み取り、それらの設定を DEVMODEW 構造体に配置する必要があります。 すべての機能が必ずしも表されるわけではないことに注意してください。また、存在する Option インスタンスには、プロバイダーが通常設定するすべての Scored Property インスタンスが含まれていない場合があります。 プロバイダーが印刷チケットから DEVMODEW への変換中にシステムによって設定された設定に変更を加えた場合、プロバイダーはこのメソッドでその変更の逆を実行する必要があります。 プロバイダーが戻った後、印刷チケットで表されているが、プロバイダーによって明示的に無効にされていないパブリック DEVMODEW 設定がシステムによって上書きされます。

要件

要件
Header prdrvcom.h (Prdrvcom.h を含む)

こちらもご覧ください

IPrintTicketProvider

IPrintTicketProvider::ConvertDevModeToPrintTicket