打印后台处理程序的 ReplyPrinterChangeNotification 函数允许打印提供程序更新与通知句柄关联的打印队列事件的打印队列事件的后台处理程序数据库,并通知客户端打印队列事件已发生。
语法
BOOL ReplyPrinterChangeNotification(
HANDLE hPrinter,
DWORD fdwChangeFlags,
[out, optional] PDWORD pdwResult,
[in, optional] PVOID pPrinterNotifyInfo
);
参数
hPrinter
调用方提供的句柄。 此句柄以前必须作为打印提供程序 的 findFirstPrinterChangeNotification 函数的 hNotify 输入接收。
fdwChangeFlags
Microsoft Windows SDK 文档 对 FindNextPrinterChangeNotification的说明中列出的一个或多个调用方提供的PRINTER_CHANGE_前缀标志。
[out, optional] pdwResult
自选。 如果未 NULL,它将接收后台处理程序提供的PRINTER_NOTIFY_INFO前缀标志,指示更新提供的信息的结果。
[in, optional] pPrinterNotifyInfo
自选。 PRINTER_NOTIFY_INFO结构的调用方提供的地址(在 Windows SDK 文档中介绍)。 如果未添加新通知信息,则可以 NULL。
返回值
如果作成功,该函数将返回 true 。 否则,该函数返回 FALSE。 调用方可以通过调用 GetLastError来获取错误代码。
言论
不支持轮询的打印提供程序(请参阅 FindFirstPrinterChangeNotification)必须通知后台处理程序出现由提供程序的 findFirstPrinterChangeNotification 函数收到的 PRINTER_CHANGE_前缀标志所表示的任何事件。 发生事件时,打印提供程序可以调用 ReplyPrinterChangeNotification 通知事件后台处理程序,并提供与事件关联的信息。 后台处理程序会跟踪此事件信息(每个通知句柄),并在应用程序调用 FindNextPrinterChangeNotification(Windows SDK 文档中所述)时向应用程序传递信息。
当打印提供程序调用 ReplyPrinterChangeNotification时,它必须通过设置 fwdFlags 中的PRINTER_CHANGE_前缀标志或使用 pPrinterNotifyInfo 返回PRINTER_NOTIFY_INFO结构来标识已发生的事件。 (使用 Windows SDK 文档 FindNextPrinterChangeNotification的说明中列出的标志 -- 而不是 Windows SDK 文档 FindFirstPrinterChangeNotification中列出的标志。
调用 ReplyPrinterChangeNotification 会导致后台处理程序向客户端应用程序发出打印队列事件已发生信号。 即使提供程序为 pPrinterNotifyInfo提供 NULL,也会发生这种情况。 若要在不通知客户端的情况下更新打印队列更改的后台处理程序记录,请使用 PartialReplyPrinterChangeNotification。 通常调用 PartialReplyPrinterChangeNotification 多次更新后台处理程序的数据库,然后调用 ReplyPrinterChangeNotification 以通知客户端发生了更改。
有关详细信息,请参阅 支持打印机更改通知。
要求
| 要求 | 价值 |
|---|---|
| 目标平台 | 桌面 |
| 标头 | winsplp.h (包括 Winsplp.h) |
| 库 | Spoolss.lib |
| DLL | Spoolss.dll |