BOOL SetJob( HANDLE hPrinter, /* handle of printer object */ DWORD dwJob, /* job-identification value */ DWORD dwLevel, /* structure level */ LPBYTE lpbJob, /* address of job info structures */ DWORD dwCommand /* job-command value */ );
Pauses, resumes, cancels, or restarts the specified print job on the given printer. This function can also be used to set print job parameters such as the job priority, document name, and so forth.
hPrinter | Identifies the printer. |
dwJob | Specifies the print job. |
dwLevel | Specifies the version of the structure to which lpbJob points. This value must be 0, 1, or 2. |
lpbJob | Points to either a JOB_INFO_1 or JOB_INFO_2 structure. If dwLevel is 0, this pointer must be NULL; if dwLevel is 1, the array contains a JOB_INFO_1 structure and if dwLevel is 2, the array contains a JOB_INFO_2 structure. |
dwCommand | Specifies the operation which should be performed. It can be one of the following values: |
JOB_CONTROL_CANCEL | Deletes a print job. |
JOB_CONTROL_PAUSE | Pauses a print job. |
JOB_CONTROL_RESTART | Restarts a print job at the beginning of the job. A job can only be restarted if it is printing. |
JOB_CONTROL_RESUME | Resumes a paused print job. |
The SetJob function can be used to set various job parameters by supplying a pointer to a JOB_INFO_1 or JOB_INFO_2 structure that contains the necessary data.
To remove or delete all the print jobs for a particular printer, call the SetPrinter function and set the PRINTER_CONTROL_PURGE value.
The following fields of a JOB_INFO_1 or JOB_INFO_2 structure will be ignored on a call to SetJob: JobId, pPrinterName, pMachineName, pUserName, pDrivername, Size, Submitted, and Time.
The Win32 API documentation does not define whether or not operations specified by dwCommand should be performed if dwLevel is non-zero. In the Windows 95 local Print Provider however, dwCommand operations are only performed if dwLevel is zero. This is the suggested implementation.