次の方法で共有


PTConvertDevModeToPrintTicket 関数 (prntvpt.h)

DEVMODE 構造体を IStream 内の印刷チケットに変換します。

構文

HRESULT PTConvertDevModeToPrintTicket(
  [in] HPTPROVIDER       hProvider,
       ULONG             cbDevmode,
  [in] PDEVMODE          pDevmode,
  [in] EPrintTicketScope scope,
       IStream           *pPrintTicket
);

パラメーター

[in] hProvider

開いている印刷チケット プロバイダーへのハンドル。 このハンドルは、 PTOpenProvider または PTOpenProviderEx 関数によって返されます。

cbDevmode

DEVMODE のサイズ (バイト単位)。

[in] pDevmode

DEVMODE へのポインター。

[in] scope

pPrintTicket のスコープを指定する 値。 この値は、1 つのページ、文書全体、または印刷ジョブ内のすべてのドキュメントを指定できます。 指定したスコープ外の pDevmode の設定は 、pPrintTicket には含まれません。 「解説」を参照してください。

pPrintTicket

印刷チケットの先頭にシーク位置がある IStream へのポインター。

戻り値

操作が成功した場合、戻り値はS_OK。それ以外の場合、 HRESULT にはエラー コードが含まれます。

hProvider が別のスレッドで開かれた場合、HRESULT はE_INVALIDARG。

COM エラー コードの詳細については、「エラー処理」を参照してください。

解説

メモ これはブロック関数または同期関数であり、すぐには返されない可能性があります。 この関数が返す速度は、ネットワークの状態、プリント サーバーの構成、プリンター ドライバーの実装などの実行時の要因によって異なります。これは、アプリケーションの作成時に予測が困難な要因です。 ユーザー インターフェイスとの対話を管理するスレッドからこの関数を呼び出すと、アプリケーションが応答しなくなる可能性があります。
 
hProvider は、この関数に使用されるスレッドと同じスレッドで開かれたハンドルである必要があります。

pDevmode が別のプリンターを指している場合、その設定が失われ、既定値に置き換えられる可能性があります。

スコープ外の pDevmode の設定は、pPrintTicket には含まれません。 たとえば、スコープが 1 ページの場合、ジョブ全体の設定とドキュメント全体の設定は含まれません。 ジョブ スコープには、ドキュメント スコープとページ スコープが含まれます。 ドキュメント スコープにはページ スコープが含まれます。

PTConvertDevModeToPrintTicket は、ストリームの現在のシーク ポイントから始まる pPrintTicket によって参照される IStream に印刷チケットを書き込みます。 PTConvertDevModeToPrintTicket が返された後、呼び出し元は、関数によって返される印刷チケットを読み取るために、シーク ポイントを最初のシーク ポイントにリセットする必要があります。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー prntvpt.h
Library Prntvpt.lib
[DLL] Prntvpt.dll

関連項目

印刷スキーマ

印刷スプーラー API 関数

印刷