次の方法で共有


部分印刷プロバイダーの概要

通常、部分プロバイダー DLL は、印刷キューと印刷ジョブを管理するプロバイダー関数のみのカスタマイズされたバージョンを実装します。 部分プロバイダーは、印刷クライアント システムでのみ実行され、ドライバーの管理操作とプリンター データの生成のために、ローカル印刷プロバイダーに依存します。 クライアント システムには、複数の部分プロバイダーを存在させることができます。

印刷プロバイダーによって定義された関数では 、特定の関数が "必須" として識別されます。 部分印刷プロバイダーは、必要なすべての機能を提供する必要があります。 一般に、部分印刷プロバイダーでは、省略可能な関数は実装されません。

必要な関数は、次の関数グループに属します。

部分印刷プロバイダーの場合、プリンター ポートは印刷キューと同等と見なす必要があります。 PRINTER_INFO_2構造体を受け取る関数の場合、構造体の pPort メンバーを印刷キュー名に設定する必要があります。 したがって、印刷キュー名が \\Server\Printer1 の場合、ポート名も \\Server\Printer1 にする必要があります。 EnumPorts の部分印刷プロバイダーの実装は、\\Server\Printer1 のポート名を返す必要があります。

印刷プロバイダーの概要」で説明されているように、OpenPrinter へのアプリケーションの呼び出しにより、スプーラーのルーターは、指定された印刷キューを認識してハンドルを返すまで、各印刷プロバイダーを呼び出します。

部分印刷プロバイダーはローカル プロバイダーを置き換えない点に注意してください。 プリンターへのユーザー接続が作成されると、プロバイダー関数への各呼び出しはローカル プロバイダー経由でルーティングされ、呼び出し自体を処理するか、部分プロバイダーに再ルーティングします。 "必須" として識別されるプロバイダー関数のすべての呼び出しは、ローカル プロバイダーから適切な部分プロバイダーに再ルーティングされます。

部分プロバイダーは印刷ジョブを生成しません。プリンターに送信できる RAW データを作成するには、ローカル プロバイダーとその印刷プロセッサに依存します。 印刷プロセッサがローカル プロバイダーの StartDocPrinter 関数を呼び出し (印刷ジョブの印刷を参照)、印刷キューが部分プロバイダーによってサポートされている場合、ローカル プロバイダーは部分プロバイダーの StartDocPrinter 関数を呼び出し、RAW データを (ファイルとして) 提供します。 部分プロバイダーの StartDocPrinterWritePrinterEndDocPrinter 関数は、ネットワーク経由で RAW データをリモート印刷キューに送信する必要があります。