SNA プリント サーバーのデータ フィルター API
印刷データ フィルター DLL へのパスを構成します。 この DLL は、Host Print サービスを使用するすべてのセッションでアクティブに使用されます。 ただし、印刷データ フィルター DLL では、特定のセッションの印刷データを渡すかどうかを指定できます。
この DLL のエントリ ポイントを次に示します。
PrtFilterAlloc
印刷データを渡すデータ バッファーを取得します。
PrtFilterFree
DLL から以前に取得したデータ バッファーが不要になり、DLL がこのリソースに割り当てられたメモリを解放できることを示します。
PrtFilterJobData
DLL で印刷データを操作できるようにします。
PrtFilterJobEnd
印刷ジョブが終了したことを DLL に通知します。
PrtFilterJobStart
新しい印刷ジョブが開始されたことを DLL に通知し、ジョブの開始時に特別なデータをプリント サーバーに送信できるようにします。
これらの関数が通常どのように使用されるかを示すために、通常の印刷ジョブ中の呼び出しのシーケンス例の説明を次に示します。
新しい印刷ジョブが開始されると、PrtFilterStartJob が呼び出されます。 DLL は、データを印刷する前に、プリンターに送信される特殊なデータ (特殊なバナー ページや特殊なプリンター初期化文字列など) を含むデータ バッファーを返すことができます。
PrtFilterStartJob 関数で特殊なデータが送信された場合に PrtFilterFree が呼び出され、特殊なデータを渡すために使用されるデータ バッファーを解放できることを示します。
関数呼び出しの次のシーケンスは、すべての印刷データが送信されるまで繰り返されます。
PrtFilterAlloc は、後続の PrtFilterJobData の呼び出しで印刷データを渡すために使用されるデータ バッファーを割り当てるために呼び出されます。
PrtFilterJobData は、変更が可能な場合に DLL に印刷データを渡すために呼び出されます。 これにより、ユーザー DLL はプリンターに送信される前にプリンター データを操作できます。 返される変更された印刷データに大きなデータ バッファーが必要な場合、または DLL でデータを返すために別のデータ バッファーを使用する必要がある場合は、DLL でこのデータを返すために新しいデータ バッファーを割り当てる必要がある場合があります。 DLL は、変更された印刷データを返すために別のデータ バッファーを使用する場合に、受信印刷データを渡すために使用されるデータ バッファーを解放することもできます。 PrtFilterJobData によって別のデータ バッファーが返された場合、PrtFilterFree 関数は元のデータ バッファーへのポインターと共に呼び出されません。
PrtFilterJobData 関数に受信データを渡すために PrtFilterAlloc によって割り当てられたデータ バッファーを解放できることを示すために 、PrtFilterFree が呼び出されます。 PrtFilterJobData によって別のデータ バッファーが返された場合、PrtFilterJobData 関数で変更された印刷データを返すために DLL によって割り当てられたデータ バッファーを解放できることを示すために PrtFilterFree が呼び出されます。
最後のシーケンスは、すべての印刷データが処理されたときに発生します。
PrtFilterEndJob は、印刷ジョブの終了を示すために呼び出され、プリンターに送信する必要がある特殊なデータ (トレーラー ページなど) を返すオプションを DLL に許可します。
PrtFilterEndJob 関数で特殊なデータが送信された場合に PrtFilterFree が呼び出され、特殊なデータを渡すために使用されるデータ バッファーを解放できることを示します。