PrtFilterJobData 函式被呼叫,讓使用者 DLL 有機會在列印前操作印表機資料。 這使得 DLL 能夠針對傳送至列印伺服器的列印資料提供客製化處理。
語法
void WINAPI PrtFilterJobData(
void *UniqueID,
char **pBufPtr,
DWORD *pBufLen );
參數
UniqueID
提供的參數。
PrtFilterJobStart 函式回傳的 UniqueID 值,用來識別列印工作。
pBufPtr
列印伺服器會將主機接收的列印資料傳送給使用者 DLL 以便在此入緩衝區處理。 使用者 DLL 會將一個指向輸出緩衝區資料的指標回傳給列印伺服器。 這個輸出緩衝指標可能與接收的緩衝指標不同,因為列印資料過濾器 DLL 可以修改資料。 請注意,在這種情況下, PrtFilterFree 只會被主機列印服務(Host Print Service)呼叫,作為輸出緩衝區指標。 如有必要,列印資料過濾器 DLL 必須呼叫其對輸入緩衝區指標的空閒函式,該指標提供給 PrtFilterJobData 函式。 這個進入的緩衝區是由主機列印服務(Host Print Service)透過先前對 PrtFilterAlloc 的呼叫分配的。
pBufLen
表示緩衝區中傳送給列印伺服器的資料長度,以及使用者提供的 DLL 回傳給列印伺服器的緩衝區長度。
備註
緩衝區中的資料是可列印的 ASCII 和/或印表機控制序列,若這些序列在列印工作中被傳送。 使用者 DLL 回傳的緩衝區不必與傳入的緩衝區相同。 資料被儲存後,呼叫 PrtFilterFree 會釋放回傳的緩衝區。 唯一識別碼參數 UniqueID 是從先前呼叫 PrtFilterJobStart 函式時回傳的識別碼。