Notifiche di modifica della stampante di supporto

Le applicazioni possono richiedere la notifica delle occorrenze degli eventi della coda di stampa chiamando le funzioni FindFirstPrinterChangeNotification, FindNextPrinterChangeNotification e FindClosePrinterChangeNotification . Se si ritiene che gli autori di applicazioni vogliano richiedere la notifica degli eventi per le code di stampa supportate dal provider di stampa parziale, è necessario supportare la notifica degli eventi nel provider come indicato di seguito:

  • Specificare una funzione FindFirstPrinterChangeNotification .

    Il spooler chiama questa funzione per fornire al provider di stampa le informazioni seguenti:

    • Set di flag che indicano i tipi di eventi della stampante per i quali l'applicazione ha richiesto la notifica.

    • Handle per la coda di stampa per cui vengono richieste le notifiche.

    • Un elenco di tipi di informazioni che l'applicazione ha richiesto di specificare quando si verifica un evento.

      La funzione deve restituire un valore di flag che indica se il provider deve essere sottoposto a polling per determinare se si sono verificate modifiche. I provider non con polling inviano segnali al client ogni volta che si verificano modifiche. Un provider che deve essere sottoposto a polling non invia segnali a un client quando si verificano modifiche. Il spooler segnala invece il client a intervalli regolari, indipendentemente dal fatto che le modifiche siano state apportate o meno.

      A livello di provider, questa funzione ha argomenti diversi rispetto a quello di Win32.

  • Tenere traccia di tutti gli eventi della coda di stampa specificati dall'applicazione quando viene chiamata FindFirstPrinterChangeNotification.

    Per un elenco dei tipi di notifiche che un'applicazione può richiedere e per un elenco dei tipi di informazioni che possono essere usati per descrivere un evento, vedere la funzione Win32 FindFirstPrinterChangeNotification . I tipi di eventi per cui un'applicazione potrebbe richiedere la notifica includono l'aggiunta o l'eliminazione di un processo di stampa o di un modulo. I tipi di informazioni che un'applicazione potrebbe richiedere includono parametri di processo o modulo.

    I provider di stampa che non sono in polling devono chiamare PartialReplyPrinterChangeNotification o ReplyPrinterChangeNotification quando si verificano modifiche, per fornire al spooler informazioni che descrivono le modifiche. La funzione ReplyPrinterChangeNotification deve essere chiamata a un certo punto perché fa sì che il spooler segnali l'applicazione, mentre la funzione PartialReplyPrinterChangeNotification non è. Quando l'applicazione riceve un segnale da ReplyPrinterChangeNotification, deve chiamare FindNextPrinterChangeNotification. Questa seconda funzione fornisce all'applicazione le informazioni sull'evento ricevute in precedenza dal provider di stampa.

    I provider di stampa che vengono sottoposto a polling devono semplicemente tenere traccia delle modifiche. Il spooler segnala l'applicazione a intervalli regolari. Quando l'applicazione riceve un segnale, dovrebbe chiamare la funzione FindNextPrinterChangeNotification del spooler. Per i provider con polling, questa funzione chiama la funzione RefreshPrinterChangeNotification del provider.

  • Specificare una funzione RefreshPrinterChangeNotification .

    Questa funzione deve restituire lo stato corrente di tutte le opzioni di coda di stampa monitorate, per la coda di stampa specificata. Il spooler chiama questa funzione quando un'applicazione chiama FindNextPrinterChangeNotification con il flag di PRINTER_NOTIFY_OPTIONS_REFRESH impostato.

    Le applicazioni dovrebbero impostare questo flag se una chiamata precedente a FindNextPrinterChangeNotification restituisce una struttura PRINTER_NOTIFY_INFO con il set di flag PRINTER_NOTIFY_INFO_DISCARDED. Entrambi i provider polled e nonpolled devono supportare RefreshPrinterChangeNotification.

  • Specificare una funzione FindClosePrinterChangeNotification .