PRINTER_NOTIFY_INFO_DATA 结构

PRINTER_NOTIFY_INFO_DATA结构标识作业或打印机信息字段,并提供该字段的当前数据。

FindNextPrinterChangeNotification 函数返回PRINTER_NOTIFY_INFO结构,其中包含PRINTER_NOTIFY_INFO_DATA结构的数组。

语法

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, *PPRINTER_NOTIFY_INFO_DATA; ;

成员

类型

指示提供的信息类型。 此成员可以是以下值之一。

含义
JOB_NOTIFY_TYPE
0x01
指示 Field 成员指定JOB_NOTIFY_FIELD_* 常量。
PRINTER_NOTIFY_TYPE
0x00
指示 Field 成员指定PRINTER_NOTIFY_FIELD_* 常量。

字段

指示已更改的字段。 有关可能值的列表,请参阅“备注”部分。

Reserved

保留。

Id

如果 Type 成员指定JOB_NOTIFY_TYPE,则指示作业标识符。 如果 Type 成员指定PRINTER_NOTIFY_TYPE,则此成员未定义。

NotifyData

基于 TypeField 成员的数据信息的联合。 有关与每个字段关联的数据类型的说明,请参阅“备注”部分。

adwData[2]

两个 DWORD 值的数组。 对于仅使用单个 DWORD 的信息字段,数据位于 adwData [0] 中。

数据

cbBuf

指示 pBuf 指向的缓冲区的大小(以字节为单位)。

pBuf

指向包含字段当前数据的缓冲区的指针。

备注

如果 Type 成员指定PRINTER_NOTIFY_TYPE, 则 Field 成员可以是以下值之一。

字段 数据类型
PRINTER_NOTIFY_FIELD_SERVER_NAME 不支持。 0x00
PRINTER_NOTIFY_FIELD_PRINTER_NAME pBuf 是指向包含打印机名称的以 null 结尾的字符串的指针。 0x01
PRINTER_NOTIFY_FIELD_SHARE_NAME pBuf 是指向以 null 结尾的字符串的指针,该字符串标识打印机的共享点。 0x02
PRINTER_NOTIFY_FIELD_PORT_NAME pBuf 是指向以 null 结尾的字符串的指针,其中包含打印作业将打印到的端口的名称。 如果选择了“打印机池”,则这是以逗号分隔的端口列表。 0x03
PRINTER_NOTIFY_FIELD_DRIVER_NAME pBuf 是指向以 null 结尾的字符串的指针,其中包含打印机驱动程序的名称。 0x04
PRINTER_NOTIFY_FIELD_COMMENT pBuf 是指向以 null 结尾的字符串的指针,其中包含新的注释字符串,该字符串通常是打印机的简短说明。 0x05
PRINTER_NOTIFY_FIELD_LOCATION pBuf 是指向以 null 结尾的字符串的指针,其中包含打印机的新物理位置 (例如,“Bldg. 38, Room 1164”) 。 0x06
PRINTER_NOTIFY_FIELD_DEVMODE pBuf 是指向 DEVMODE 结构的指针,该结构定义默认打印机数据,例如纸张方向和分辨率。 0x07
PRINTER_NOTIFY_FIELD_SEPFILE pBuf 是指向以 null 结尾的字符串的指针,该字符串指定用于创建分隔符页的文件的名称。 此页面用于分隔发送到打印机的打印作业。 0x08
PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR pBuf 是指向以 null 结尾的字符串的指针,该字符串指定打印机使用的打印处理器的名称。 0x09
PRINTER_NOTIFY_FIELD_PARAMETERS pBuf 是指向以 null 结尾的字符串的指针,该字符串指定默认打印处理器参数。 0x0A
PRINTER_NOTIFY_FIELD_DATATYPE pBuf 是指向以 null 结尾的字符串的指针,该字符串指定用于记录打印作业的数据类型。 0x0B
PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR pBuf 是指向打印机 SECURITY_DESCRIPTOR 结构的指针。 如果没有安全描述符,指针可能为 NULL 0x0C
PRINTER_NOTIFY_FIELD_ATTRIBUTES adwData [0] 指定打印机属性,可以是以下值之一:
PRINTER_ATTRIBUTE_QUEUED
PRINTER_ATTRIBUTE_DIRECT
PRINTER_ATTRIBUTE_DEFAULT
PRINTER_ATTRIBUTE_SHARED
0x0D
PRINTER_NOTIFY_FIELD_PRIORITY adwData [0] 指定后台处理程序用于路由打印作业的优先级值。 0x0E
PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY adwData [0] 指定分配给每个打印作业的默认优先级值。 0x0F
PRINTER_NOTIFY_FIELD_START_TIME adwData [0] 指定打印机打印作业的最早时间。 (此值以上午 12:00 ) 0x10
PRINTER_NOTIFY_FIELD_UNTIL_TIME adwData [0] 指定打印机打印作业的最新时间。 (此值以自 A.M.) 12:00 以来的分钟数指定 0x11
PRINTER_NOTIFY_FIELD_STATUS adwData [0] 指定打印机状态。 有关可能值的列表,请参阅 PRINTER_INFO_2 结构。 0x12
PRINTER_NOTIFY_FIELD_STATUS_STRING 不支持。 0x13
PRINTER_NOTIFY_FIELD_CJOBS adwData [0] 指定已为打印机排队的打印作业数。 0x14
PRINTER_NOTIFY_FIELD_AVERAGE_PPM adwData [0] 指定打印机上打印的每分钟的平均页数。 0x15
PRINTER_NOTIFY_FIELD_TOTAL_PAGES 不支持。 0x16
PRINTER_NOTIFY_FIELD_PAGES_PRINTED 不支持。 0x17
PRINTER_NOTIFY_FIELD_TOTAL_BYTES 不支持。 0x18
PRINTER_NOTIFY_FIELD_BYTES_PRINTED 不支持。 0x19
PRINTER_NOTIFY_FIELD_OBJECT_GUID 如果对象 GUID 发生更改,则会设置此值。 0x1A
PRINTER_NOTIFY_FIELD_FRIENDLY_NAME 如果重命名打印机连接,则会设置此值。 0x1B

如果 Type 成员指定JOB_NOTIFY_TYPE, 则 Field 成员可以是以下值之一。

字段 数据类型
JOB_NOTIFY_FIELD_PRINTER_NAME pBuf 是指向以 null 结尾的字符串的指针,该字符串包含要为其后台打印作业的打印机的名称。 0x00
JOB_NOTIFY_FIELD_MACHINE_NAME pBuf 是指向以 null 结尾的字符串的指针,该字符串指定创建打印作业的计算机的名称。 0x01
JOB_NOTIFY_FIELD_PORT_NAME pBuf 是指向以 null 结尾的字符串的指针,该字符串标识用于将数据传输到打印机的端口 () 。 如果打印机连接到多个端口,则端口的名称用逗号分隔 (例如“LPT1:,LPT2:,LPT3:”) 。 0x02
JOB_NOTIFY_FIELD_USER_NAME pBuf 是指向以 null 结尾的字符串的指针,该字符串指定发送打印作业的用户的名称。 0x03
JOB_NOTIFY_FIELD_NOTIFY_NAME pBuf 是指向以 null 结尾的字符串的指针,该字符串指定打印作业时或在打印作业时出错时应通知的用户的名称。 0x04
JOB_NOTIFY_FIELD_DATATYPE pBuf 是指向以 null 结尾的字符串的指针,该字符串指定用于记录打印作业的数据类型。 0x05
JOB_NOTIFY_FIELD_PRINT_PROCESSOR pBuf 是指向以 null 结尾的字符串的指针,该字符串指定要用于打印作业的打印处理器的名称。 0x06
JOB_NOTIFY_FIELD_PARAMETERS pBuf 是指向以 null 结尾的字符串的指针,该字符串指定打印处理器参数。 0x07
JOB_NOTIFY_FIELD_DRIVER_NAME pBuf 是指向以 null 结尾的字符串的指针,该字符串指定用于处理打印作业的打印机驱动程序的名称。 0x08
JOB_NOTIFY_FIELD_DEVMODE pBuf 是指向 DEVMODE 结构的指针,该结构包含打印机驱动程序的设备初始化和环境数据。 0x09
JOB_NOTIFY_FIELD_STATUS adwData [0] 指定作业状态。 有关可能值的列表,请参阅 JOB_INFO_2 结构。 0x0A
JOB_NOTIFY_FIELD_STATUS_STRING pBuf 是指向以 null 结尾的字符串的指针,该字符串指定打印作业的状态。 0x0B
JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR 不支持。 0x0C
JOB_NOTIFY_FIELD_DOCUMENT pBuf 是指向以 null 结尾的字符串的指针,该字符串指定打印作业的名称 (例如“MS-WORD: Review.doc”) 。 0x0D
JOB_NOTIFY_FIELD_PRIORITY adwData [0] 指定作业优先级。 0x0E
JOB_NOTIFY_FIELD_POSITION adwData [0] 指定作业在打印队列中的位置。 0x0F
JOB_NOTIFY_FIELD_SUBMITTED pBuf 是指向 SYSTEMTIME 结构的指针,该结构指定提交作业的时间。 0x10
JOB_NOTIFY_FIELD_START_TIME adwData [0] 指定可打印作业的最早时间。 (此值以自 A.M.) 12:00 以来的分钟数指定 0x11
JOB_NOTIFY_FIELD_UNTIL_TIME adwData [0] 指定可打印作业的最近时间。 (此值以自 A.M.) 12:00 以来的分钟数指定 0x12
JOB_NOTIFY_FIELD_TIME adwData [0] 指定自作业开始打印以来经过的总时间(以秒为单位)。 0x13
JOB_NOTIFY_FIELD_TOTAL_PAGES adwData [0] 指定作业的大小(以页为单位)。 0x14
JOB_NOTIFY_FIELD_PAGES_PRINTED adwData [0] 指定已打印的页数。 0x15
JOB_NOTIFY_FIELD_TOTAL_BYTES adwData [0] 指定作业的大小(以字节为单位)。 0x16
JOB_NOTIFY_FIELD_BYTES_PRINTED adwData [0] 指定已在此作业上打印的字节数。 对于此字段,当字节发送到打印机时,会向更改通知对象发出信号。 0x17

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Winspool.h (包括 Windows.h)

另请参阅

打印

打印后台处理程序 API 结构

DEVMODE

FindNextPrinterChangeNotification

JOB_INFO_2

PRINTER_INFO_2

PRINTER_NOTIFY_INFO

SECURITY_DESCRIPTOR

SYSTEMTIME