The PRINTER_NOTIFY_INFO_DATA structure identifies a job or printer information field and provides the current data for that field.
The FindNextPrinterChangeNotification function returns a PRINTER_NOTIFY_INFO structure, which contains an array of PRINTER_NOTIFY_INFO_DATA structures.
typedef struct _PRINTER_NOTIFY_INFO_DATA { WORD Type; WORD Field; DWORD Reserved; DWORD Id; union { DWORD adwData[2]; struct { DWORD cbBuf; LPVOID pBuf; } Data; } NotifyData; } PRINTER_NOTIFY_INFO_DATA;
Value |
Meaning |
PRINTER_NOTIFY_TYPE |
Indicates that the Field member specifies a PRINTER_NOTIFY_FIELD_* constant. |
JOB_NOTIFY_TYPE |
Indicates that the Field member specifies a JOB_NOTIFY_FIELD_* constant. |
The NotifyData union can be one of the following members:
Member |
Meaning |
adwData |
An array of two DWORD values. For information fields that use only a single DWORD, the data is in adwData[0] |
Data |
The following members are contained in the Data structure: |
Member |
Meaning |
cbBuf |
Indicates the size, in bytes, of the buffer pointed to by pBuf. |
pBuf |
Points to a buffer that contains the field’s current data. |
If the Type member specifies PRINTER_NOTIFY_TYPE, the Field member can be one of the following values:
Field |
Type of data |
PRINTER_NOTIFY_FIELD_PRINTER_NAME | |
pBuf points to a null-terminated string containing the name of the printer. | |
PRINTER_NOTIFY_FIELD_SHARE_NAME | |
pBuf points to a null-terminated string that identifies the sharepoint for the printer. | |
PRINTER_NOTIFY_FIELD_DRIVER_NAME | |
pBuf points to a null-terminated string containing the name of the printer’s driver. | |
PRINTER_NOTIFY_FIELD_COMMENT | |
pBuf points to a null-terminated string containing the new comment string, which is typically a brief description of the printer. | |
PRINTER_NOTIFY_FIELD_LOCATION | |
pBuf points to a null-terminated string containing the new physical location of the printer (for example, “Bldg. 38, Room 1164”). | |
PRINTER_NOTIFY_FIELD_DEVMODE | |
pBuf points to a DEVMODE structure that defines default printer data such as the paper orientation and the resolution. | |
PRINTER_NOTIFY_FIELD_SEPFILE | |
pBuf points to a null-terminated string that specifies the name of the file used to create the separator page. This page is used to separate print jobs sent to the printer. | |
PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR | |
pBuf points to a null-terminated string that specifies the name of the print processor used by the printer. | |
PRINTER_NOTIFY_FIELD_PARAMETERS | |
pBuf points to a null-terminated string that specifies the default print-processor parameters. | |
PRINTER_NOTIFY_FIELD_DATATYPE | |
pBuf points to a null-terminated string that specifies the data type used to record the print job. | |
PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR | |
pBuf points to a SECURITY_DESCRIPTOR structure for the printer. The pointer may be NULL if there is no security descriptor. | |
PRINTER_NOTIFY_FIELD_ATTRIBUTES | |
adwData[0] specifies the printer attributes, which can be one of the following values:
PRINTER_ATTRIBUTE_QUEUED | |
PRINTER_NOTIFY_FIELD_PRIORITY | |
adwData[0] specifies a priority value that the spooler uses to route print jobs. | |
PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY | |
adwData[0] specifies the default priority value assigned to each print job. | |
PRINTER_NOTIFY_FIELD_START_TIME | |
adwData[0] specifies the earliest time at which the printer will print a job. (This value is specified in minutes elapsed since 12:00 A.M.) | |
PRINTER_NOTIFY_FIELD_UNTIL_TIME | |
adwData[0] specifies the latest time at which the printer will print a job. (This value is specified in minutes elapsed since 12:00 A.M.) | |
PRINTER_NOTIFY_FIELD_STATUS | |
adwData[0] specifies the printer status. For a list of possible values, see the PRINTER_INFO_2 structure. | |
PRINTER_NOTIFY_FIELD_CJOBS | |
adwData[0] specifies the number of print jobs that have been queued for the printer. | |
PRINTER_NOTIFY_FIELD_AVERAGE_PPM | |
adwData[0] specifies the average number of pages per minute that have been printed on the printer. |
If the Type member specifies JOB_NOTIFY_TYPE, the Field member can be one of the following values:
Field |
Type of data |
JOB_NOTIFY_FIELD_PRINTER_NAME | |
pBuf points to a null-terminated string containing the name of the printer for which the job is spooled. | |
JOB_NOTIFY_FIELD_MACHINE_NAME | |
pBuf points to a null-terminated string that specifies the name of the machine that created the print job. | |
JOB_NOTIFY_FIELD_PORT_NAME | |
pBuf points to a null-terminated string that identifies the port(s) used to transmit data to the printer. If a printer is connected to more than one port, the names of the ports are separated by commas (for example, “LPT1:,LPT2:,LPT3:”). | |
JOB_NOTIFY_FIELD_USER_NAME | |
pBuf points to a null-terminated string that specifies the name of the user who sent the print job. | |
JOB_NOTIFY_FIELD_NOTIFY_NAME | |
pBuf points to a null-terminated string that specifies the name of the user who should be notified when the job has been printed or when an error occurs while printing the job. | |
JOB_NOTIFY_FIELD_DATATYPE | |
pBuf points to a null-terminated string that specifies the type of data used to record the print job. | |
JOB_NOTIFY_FIELD_PRINT_PROCESSOR | |
pBuf points to a null-terminated string that specifies the name of the print processor to be used to print the job. | |
JOB_NOTIFY_FIELD_PARAMETERS | |
pBuf points to a null-terminated string that specifies print-processor parameters. | |
JOB_NOTIFY_FIELD_DRIVER_NAME | |
pBuf points to a null-terminated string that specifies the name of the printer driver that should be used to process the print job. | |
JOB_NOTIFY_FIELD_DEVMODE | |
pBuf points to a DEVMODE structure that contains device-initialization and environment data for the printer driver. | |
JOB_NOTIFY_FIELD_STATUS | |
adwData[0] specifies the job status. For a list of possible values, see the JOB_INFO_2 structure. | |
JOB_NOTIFY_FIELD_STATUS_STRING | |
pBuf points to a null-terminated string that specifies the status of the print job. | |
JOB_NOTIFY_FIELD_DOCUMENT | |
pBuf points to a null-terminated string that specifies the name of the print job (for example, “MS-WORD: Review.doc”). | |
JOB_NOTIFY_FIELD_PRIORITY | |
adwData[0] specifies the job priority. | |
JOB_NOTIFY_FIELD_POSITION | |
adwData[0] specifies the job’s position in the print queue. | |
JOB_NOTIFY_FIELD_SUBMITTED | |
pBuf points to a SYSTEMTIME structure that specifies the time when the job was submitted. | |
JOB_NOTIFY_FIELD_START_TIME | |
adwData[0] specifies the earliest time that the job can be printed. (This value is specified in minutes elapsed since 12:00 A.M.) | |
JOB_NOTIFY_FIELD_UNTIL_TIME | |
adwData[0] specifies the the latest time that the job can be printed. (This value is specified in minutes elapsed since 12:00 A.M.) | |
JOB_NOTIFY_FIELD_TIME | |
adwData[0] specifies the total time, in seconds, that has elapsed since the job began printing. | |
JOB_NOTIFY_FIELD_TOTAL_PAGES | |
adwData[0] specifies the size, in pages, of the job. | |
JOB_NOTIFY_FIELD_PAGES_PRINTED | |
adwData[0] specifies the number of pages that have printed. | |
JOB_NOTIFY_FIELD_TOTAL_BYTES | |
adwData[0] specifies the size, in bytes, of the job. | |
JOB_NOTIFY_FIELD_BYTES_PRINTED | |
adwData[0] specifies the number of bytes that have been printed on this job. For this field, the change notification object is signaled when bytes are sent to the printer. |
DEVMODE, FindNextPrinterChangeNotification, JOB_INFO_2, PRINTER_INFO_2, PRINTER_NOTIFY_INFO, SECURITY_DESCRIPTOR, SYSTEMTIME