AppendPrinterNotifyInfoData 函数 (winsplp.h)

打印后台处理程序的 AppendPrinterNotifyInfoData 函数将指定PRINTER_NOTIFY_INFO_DATA结构的内容添加到指定的PRINTER_NOTIFY_INFO结构中。

语法

BOOL AppendPrinterNotifyInfoData(
  [in] PPRINTER_NOTIFY_INFO      pInfoDest,
       PPRINTER_NOTIFY_INFO_DATA pDataSrc,
       DWORD                     fdwFlags
);

参数

[in] pInfoDest

调用方提供的指向 PRINTER_NOTIFY_INFO 结构的指针。

pDataSrc

调用方提供的指向 PRINTER_NOTIFY_INFO_DATA 结构的指针。

fdwFlags

调用方提供的标志。 定义了以下标志。

PRINTER_NOTIFY_INFO_DATA_COMPACT
如果设置,该函数将检查提供的 PRINTER_NOTIFY_INFO_DATA 结构的 类型字段ID 成员。 如果它们都与 PRINTER_NOTIFY_INFO_DATA 结构数组的现有元素匹配,则现有元素将被提供的元素覆盖。 如果未找到匹配项,该函数会将指定的结构添加到数组的末尾。

返回值

如果作成功,该函数将返回 true 。 否则,该函数返回 FALSE。 调用方可以通过调用 GetLastError来获取错误代码。

言论

打印提供程序的 RefreshPrinterChangeNotification 函数应尽可能频繁地调用 AppendPrinterNotifyInfoData 以填充 PRINTER_NOTIFY_INFO_DATA 结构数组,然后首先调用 RouterAllocPrinterNotifyInfo 来为数组及其关联的PRINTER_NOTIFY_INFO结构分配存储。

根据是否设置PRINTER_NOTIFY_INFO_DATA_COMPACT标志,函数要么将指定的 PRINTER_NOTIFY_INFO_DATA 结构追加到结构数组的末尾,要么覆盖现有数组元素。 如果追加了结构,该函数将递增 PRINTER_NOTIFY_INFO 结构的 计数 成员。

如果 AppendPrinterNotifyInfoData 检测到指定 PRINTER_NOTIFY_INFO 结构中设置了PRINTER_NOTIFY_INFO_DISCARDED标志,该函数将清除所有PRINTER_NOTIFY_INFO_DATA结构并将错误代码设置为ERROR_OUT_OF_STRUCTURES。

如果为 pInfoDataSrc 指定了 null NULL,则 AppendPrinterNotifyInfoData 在指定的 PRINTER_NOTIFY_INFO 结构中设置PRINTER_NOTIFY_INFO_DISCARDED标志,清除所有 PRINTER_NOTIFY_INFO_DATA 结构,并将错误代码设置为ERROR_OUT_OF_STRUCTURES。

(有关PRINTER_NOTIFY_INFO_DISCARDED标志的详细信息,请参阅 Windows SDK 文档中 FindNextPrinterChangeNotification 的说明。

有关详细信息,请参阅 支持打印机更改通知

要求

要求 价值
目标平台 桌面
标头 winsplp.h (包括 Winsplp.h)
Spoolss.lib
DLL Spoolss.dll

另请参阅

RefreshPrinterChangeNotification

RouterAllocPrinterNotifyInfo