AddJob 函式
AddJob函式會將列印工作新增至列印工作清單,而列印多工緩衝處理器可以排程。 函式會擷取可用來儲存作業的檔案名。
注意
在Windows 8和更新版本的作業系統中,我們不建議直接使用AddJob,因為在某些情況下 (例如使用 File: 或 PORTPROMPT:) AddJob失敗的佇列列印。 相反地,建議您根據列印案例,從Windows.Graphics.Printing命名空間使用GDI 列印 API、XPS 列印 API、StartDocPrinter或適當的方法。
如果您嘗試使用 File: 或 PORTPROMPT:列印至佇列, AddJob 會傳回NOT_SUPPORTED錯誤。
BOOL AddJob(
_In_ HANDLE hPrinter,
_In_ DWORD Level,
_Out_ LPBYTE pData,
_In_ DWORD cbBuf,
_Out_ LPDWORD pcbNeeded
);
-
hPrinter [in]
-
指定列印工作印表機的控制碼。 這必須是設定為多工緩衝印表機的本機印表機。 如果 hPrinter 是遠端印表機連線的控制碼,或印表機設定為直接列印, AddJob 函式會失敗。 使用 OpenPrinter 或 AddPrinter 函式來擷取印表機控制碼。
-
層級 [in]
-
函式儲存至 pData所指向之緩衝區的列印工作資訊資料結構版本。 將此參數設定為一個。
-
pData [out]
-
接收 ADDJOB_INFO_1 資料結構和路徑字串之緩衝區的指標。
-
cbBuf [in]
-
pData所指向之緩衝區的大小,以位元組為單位。 緩衝區必須夠大,才能包含 ADDJOB_INFO_1 結構和路徑字串。
-
azureNeeded [out]
-
變數的指標,可接收資料結構的總大小,以位元組為單位 ADDJOB_INFO_1, 加上路徑字串。 如果此值小於或等於 cbBuf 且函式成功,則這是寫入 pData所指向之緩衝區的實際位元組數目。 如果這個數位大於 cbBuf,則緩衝區太小,而且您必須再次呼叫函式,且緩衝區大小至少等於 *cbNeeded。
如果函式成功,則傳回值是非零值。
如果此函式失敗,則傳回值為零。
注意
這是封鎖或同步函式,可能不會立即傳回。 此函式傳回的速度取決於執行時間因素,例如網路狀態、列印伺服器組態,以及難以在撰寫應用程式時預測的印表機驅動程式實作因素。 從管理與使用者介面互動的執行緒呼叫此函式,可能會讓應用程式看起來沒有回應。
您可以呼叫CreateFile函式來開啟由 ADDJOB_INFO_1結構的Path成員指定的多工緩衝處理檔案,然後呼叫WriteFile函式,將列印工作資料寫入其中。 完成之後,請呼叫 ScheduleJob 函式來通知列印多工緩衝處理器,列印工作現在可以由多工緩衝處理常式排程列印。
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限傳統型應用程式] |
標頭 |
|
程式庫 |
|
DLL |
|
Unicode 與 ANSI 名稱 |
AddJobW (Unicode) 和 AddJobA (ANSI) |