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;
Members
Type
Indicates the type of information provided. This member can be one of the following values:
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. |
Field
Indicates the field that changed. For a list of possible values, see the following Remarks section.
Reserved
Reserved.
Id
Indicates the job identifier if the Type member specifies JOB_NOTIFY_TYPE. If the Type member specfies PRINTER_NOTIFY_TYPE, this member is undefined.
NotifyData
A union of data information based on the Type and Field members. For a description of the type of data associated with each field, see the following Remarks section.
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. |
Remarks
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. |
See Also
DEVMODE, FindNextPrinterChangeNotification, JOB_INFO_2, PRINTER_INFO_2, PRINTER_NOTIFY_INFO, SECURITY_DESCRIPTOR, SYSTEMTIME