// printerextension.h
typedef enum tagPrintJobStatus {
PrintJobStatus_Paused,
PrintJobStatus_Error,
PrintJobStatus_Deleting,
PrintJobStatus_Spooling,
PrintJobStatus_Printing,
PrintJobStatus_Offline,
PrintJobStatus_PaperOut,
PrintJobStatus_Printed,
PrintJobStatus_Deleted,
PrintJobStatus_BlockedDeviceQueue,
PrintJobStatus_UserIntervention,
PrintJobStatus_Restarted,
PrintJobStatus_Complete,
PrintJobStatus_Retained
} PrintJobStatus;
View the official Windows Driver Kit DDI referenceNo description available.
This enumeration is a one-to-one mapping to the spooler flags supplied in the JOB_INFO_X structures.
For example, JOB_INFO_1 has the same set of status flags as shown in the following list.
PrintJobStatus_PausedThe job is paused.
PrintJobStatus_ErrorThere is an error associated with the job.
PrintJobStatus_DeletingThe job is being deleted.
PrintJobStatus_SpoolingThe job is spooling.
PrintJobStatus_PrintingThe job is printing.
PrintJobStatus_OfflineThe printer is offline.
PrintJobStatus_PaperOutThe printer is out of paper.
PrintJobStatus_PrintedThe job printing is completed.
PrintJobStatus_DeletedThe job has been deleted.
PrintJobStatus_BlockedDeviceQueueThe driver cannot print the job.
PrintJobStatus_UserInterventionThe printer has an error that requires intervention from the user.
PrintJobStatus_RestartedThe job has been restarted.
PrintJobStatus_CompleteThe job data transfer to the printer is complete. Note that the printing of the job may not yet be complete.
PrintJobStatus_RetainedThe job has been retained in the print queue and cannot be deleted.
A PrintJobStatus_Retained flag can be raised for several reasons. For example, jobs could be kept in the queue if the administrator of the queue used the desktop print queue UI to set the "Keep Printed Jobs" feature to be on.
It is possible for a job to have multiple flag values specified simultaneously.