次の方法で共有


PTGetPrintCapabilities 関数 (prntvpt.h)

XML 印刷スキーマに準拠して書式設定されたプリンターの機能を取得します。

構文

HRESULT PTGetPrintCapabilities(
  [in]  HPTPROVIDER hProvider,
  [in]  IStream     *pPrintTicket,
        IStream     *pCapabilities,
  [out] BSTR        *pbstrErrorMessage
);

パラメーター

[in] hProvider

印刷機能を取得するオープン プロバイダーへのハンドル。 このハンドルは、 PTOpenProvider または PTOpenProviderEx 関数によって返されます。

[in] pPrintTicket

印刷チケット コンテンツの先頭にシーク位置があるストリームへのポインター。 このパラメーターは、NULL でもかまいません。

pCapabilities

現在のシーク位置から開始して、印刷機能が書き込まれるストリームへのポインター。

[out] pbstrErrorMessage

pPrintTicket に関して何が無効であるかを指定する文字列へのポインター。 有効な場合、この値は NULL です

戻り値

操作が成功した場合、戻り値はS_OK。

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

pPrintTicket印刷スキーマに準拠していない場合、HRESULT はE_PRINTTICKET_FORMAT。

pCapabilities印刷スキーマに準拠していない場合、HRESULT はE_PRINTCAPABILITIES_FORMAT。

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

それ以外の場合は、 HRESULT に別のエラー コードが返されます。 COM エラー コードの詳細については、「エラー処理」を参照してください。

注釈

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

プリンター ドライバーは 、pPrintTicket 値 (値が NULL でない場合) 使用して、ドライバーが現在の設定に応じて異なるプリンター機能を生成するときに設定を作成します。

関数が戻ると、 pPrintTicket のシーク位置は印刷チケットコンテンツの末尾にあり、 pCapabilities のシーク位置はストリームの末尾にあります。 呼び出し元が、CreateStreamOnHGlobal によって作成されたストリームなどの pCapabilities にメモリ ストリームを使用する場合、呼び出し元はデータを読み取る前にシーク位置をリセットする必要があります。

関数が戻るときに pbstrErrorMessageNULL でない場合、呼び出し元は SysFreeString で文字列を解放する必要があります。

要件

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

こちらもご覧ください

印刷スキーマ

印刷スプーラー API 関数

印刷