Dar suporte a notificações de alteração de impressora
Os aplicativos podem solicitar notificação das ocorrências de eventos de fila de impressão chamando as funções FindFirstPrinterChangeNotification, FindNextPrinterChangeNotification e FindClosePrinterChangeNotification do spooler . Se você acha que os gravadores de aplicativos desejarão solicitar uma notificação de evento para filas de impressão com suporte pelo provedor de impressão parcial, você deve dar suporte à notificação de eventos em seu provedor da seguinte maneira:
Forneça uma função FindFirstPrinterChangeNotification .
O spooler chama essa função para fornecer ao provedor de impressão as seguintes informações:
Um conjunto de sinalizadores que indica os tipos de eventos de impressora para os quais o aplicativo solicitou notificação.
Um identificador para a fila de impressão para a qual as notificações estão sendo solicitadas.
Uma lista de tipos de informações que o aplicativo solicitou que fossem fornecidas quando ocorre um evento.
A função deve retornar um valor de sinalizador que indica se o provedor deve ser sondado para determinar se ocorreram alterações. Provedores não sondados enviam sinais ao cliente sempre que ocorrem alterações. Um provedor que deve ser sondado não envia sinais a um cliente quando ocorrem alterações. Em vez disso, o spooler sinaliza o cliente em intervalos regulares, independentemente de as alterações terem ocorrido ou não.
No nível do provedor, essa função tem argumentos diferentes do nível do Win32.
Acompanhe todos os eventos de fila de impressão que o aplicativo especificou quando chamou FindFirstPrinterChangeNotification.
Para obter uma lista dos tipos de notificações que um aplicativo pode solicitar e para obter uma lista dos tipos de informações que podem ser usados para descrever um evento, consulte a função FindFirstPrinterChangeNotification do Win32. Os tipos de eventos para os quais um aplicativo pode solicitar notificação incluem adicionar ou excluir um trabalho ou formulário de impressão. Os tipos de informações que um aplicativo pode solicitar incluem parâmetros de trabalho ou formulário.
Os provedores de impressão que não são sondados devem chamar PartialReplyPrinterChangeNotification ou ReplyPrinterChangeNotification quando ocorrerem alterações, para fornecer ao spooler informações que descrevem as alterações. A função ReplyPrinterChangeNotification deve ser chamada em algum momento porque faz com que o spooler sinalize o aplicativo, enquanto a função PartialReplyPrinterChangeNotification não. Quando o aplicativo recebe um sinal de ReplyPrinterChangeNotification, ele deve chamar FindNextPrinterChangeNotification. Esta última função fornece ao aplicativo as informações de evento que o spooler recebeu anteriormente do provedor de impressão.
Os provedores de impressão que são sondados devem simplesmente controlar as alterações. O spooler sinaliza o aplicativo em intervalos regulares. Quando o aplicativo recebe um sinal, ele deve chamar a função FindNextPrinterChangeNotification do spooler . Para provedores sondados, essa função chama a função RefreshPrinterChangeNotification do provedor.
Forneça uma função RefreshPrinterChangeNotification .
Essa função deve retornar o estado atual de todas as opções de fila de impressão monitoradas para a fila de impressão especificada. O spooler chama essa função quando um aplicativo chama FindNextPrinterChangeNotification com o sinalizador PRINTER_NOTIFY_OPTIONS_REFRESH definido.
Os aplicativos devem definir esse sinalizador se uma chamada anterior para FindNextPrinterChangeNotification retornar uma estrutura PRINTER_NOTIFY_INFO com o sinalizador PRINTER_NOTIFY_INFO_DISCARDED definido. Os provedores sondados e nãopolados devem dar suporte a RefreshPrinterChangeNotification.
Forneça uma função FindClosePrinterChangeNotification .