次の方法で共有


IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode メソッド (prcomoem.h)

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

構文

HRESULT ConvertPrintTicketToDevMode(
  [in]      IXMLDOMDocument2 *pPrintTicket,
  [in]      ULONG            cbDevmode,
  [in, out] PDEVMODE         pDevmode,
  [in]      ULONG            cbDrvPrivateSize,
  [in]      PVOID            pPrivateDevmode
);

パラメーター

[in] pPrintTicket

入力印刷チケットへのポインター。

[in] cbDevmode

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

[in, out] pDevmode

入力 DEVMODEW 構造体へのポインター。 IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode が返されると、プラグインのプライベート DEVMODEW 構造体には、印刷チケットから取得された情報が含まれます。

[in] cbDrvPrivateSize

プラグインのプライベート DEVMODEW 構造体のサイズ (バイト単位)。

[in] pPrivateDevmode

プラグインのプライベート DEVMODEW 構造体へのポインター。

戻り値

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

注釈

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

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

要件

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

こちらもご覧ください

IPrintOemPrintTicketProvider

IPrintOemPrintTicketProvider::ConvertDevModeToPrintTicket