ReplyPrinterChangeNotification 函数 (winsplp.h)
打印后台处理程序的 ReplyPrinterChangeNotification 函数允许打印提供程序更新后台处理程序与通知句柄关联的打印队列事件的数据库,并通知客户端打印队列事件已发生。
语法
BOOL ReplyPrinterChangeNotification(
HANDLE hPrinter,
DWORD fdwChangeFlags,
[out, optional] PDWORD pdwResult,
[in, optional] PVOID pPrinterNotifyInfo
);
参数
hPrinter
调用方提供的句柄。 此句柄必须以前作为打印提供程序的 FindFirstPrinterChangeNotification 函数的 hNotify 输入收到。
fdwChangeFlags
一个或多个调用方提供的PRINTER_CHANGE_前缀标志,在 Microsoft Windows SDK 文档中的 FindNextPrinterChangeNotification 的说明中列出。
[out, optional] pdwResult
可选。 如果不是 NULL,它将接收后台处理程序提供的PRINTER_NOTIFY_INFO前缀标志,这些标志指示更新所提供的信息的结果。
[in, optional] pPrinterNotifyInfo
可选。 Windows SDK文档) 中所述的调用方提供的PRINTER_NOTIFY_INFO结构的地址 (。 如果未添加新通知信息,可以为 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) |
Library | Spoolss.lib |
DLL | Spoolss.dll |