PTConvertPrintTicketToDevMode 関数 (prntvpt.h)
印刷チケットを DEVMODE 構造体に変換します。
構文
HRESULT PTConvertPrintTicketToDevMode(
[in] HPTPROVIDER hProvider,
[in] IStream *pPrintTicket,
EDefaultDevmodeType baseDevmodeType,
[in] EPrintTicketScope scope,
[out] ULONG *pcbDevmode,
[out] PDEVMODE *ppDevmode,
[out] BSTR *pbstrErrorMessage
);
パラメーター
[in] hProvider
開いている印刷チケット プロバイダーへのハンドル。 このハンドルは、 PTOpenProvider または PTOpenProviderEx 関数によって返されます。
[in] pPrintTicket
印刷チケットの先頭にシーク位置がある IStream へのポインター。
baseDevmodeType
pPrintTicket で DEVMODE に可能なすべての設定が指定されていない場合に、ユーザーの既定の DEVMODE または印刷キューの既定の DEVMODE のどちらを使用して出力 DEVMODE に値を提供するかを示す値。
[in] scope
pPrintTicket のスコープを指定する 値。 この値では、1 つのページ、文書全体、または印刷ジョブ内のすべてのドキュメントを指定できます。 指定したスコープ外の pPrintTicket の設定は無視されます。 「解説」を参照してください。
[out] pcbDevmode
DEVMODE のサイズへのポインター (バイト単位)。
[out] ppDevmode
新しく作成された DEVMODE へのポインター。
[out] pbstrErrorMessage
pPrintTicket に関して何が無効であるかを指定する文字列へのポインター。 有効な場合、これは NULL です。
戻り値
操作が成功した場合、戻り値はS_OK。
hProvider が別のスレッドで開かれた場合、HRESULT はE_INVALIDARG。
pPrintTicket が無効な場合、HRESULT はE_PRINTTICKET_FORMAT。
それ以外の場合は、 HRESULT で他のエラー コードが返されます。 COM エラー コードの詳細については、「エラー処理」を参照してください。
注釈
baseDevmodeType が kUserDefaultDevmode で、ユーザーの既定値が使用できない場合は、デバイスの既定値が使用されます。
返される DEVMODE は、内部的に矛盾している場合や、その中の各設定が個別に実行できる場合でも、ハード プリンター設定と競合している可能性があります。 たとえば、プリンターでオプションのデュプレクサがサポートされているのに 、pPrintTicket が二重化を呼び出す場合、デュプレクサーがインストールされていない場合でも、返される DEVMODE は二重化を呼び出します。 DocumentProperties を使用して、返された DEVMODE を修正します。
返される ppDevmode 内のバッファーは、 PTReleaseMemory を使用して解放する必要があります。
スコープ外の pPrintTicket の値は無視されます。 たとえば、スコープが 1 ページのみの場合、ジョブ全体の設定とドキュメント全体の設定は無視されます。 ジョブ スコープには、ドキュメント スコープとページ スコープが含まれます。 ドキュメント スコープには、ページ スコープが含まれます。
関数が戻るときに pbstrErrorMessage が NULL でない場合、呼び出し元は SysFreeString で文字列を解放する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | prntvpt.h |
Library | Prntvpt.lib |
[DLL] | Prntvpt.dll |