Panoramica della notifica di Spooler
La notifica Spooler è costituita da un set di interfacce COM per i componenti di stampa ospitati dallo spooler che consentono di aprire un canale dati bidirezionale o unidirezionale con applicazioni in esecuzione in sessioni diverse dalla sessione dello spooler.
Questo canale dati è basato su notifica ed è associato a un nome di stampante o a un nome del server. Solo i componenti di stampa ospitati dallo spooler possono aprire il canale di notifica, ma le notifiche possono essere inviate in entrambe le direzioni.
La notifica Spooler include anche un set di interfacce COM che stampano componenti e applicazioni possono usare per eseguire la registrazione per le notifiche di stampa. Le applicazioni possono registrarsi per le notifiche, ma non possono aprire canali di notifica. I componenti di stampa caricati dallo spooler possono registrarsi per le notifiche.
Per i canali bidirezionali, quando viene ricevuta una notifica, il client del listener viene informato anche quale canale può usare per inviare i dati al componente di stampa.
Per i canali unidirezionali, il client del listener riceve solo la notifica, perché non è previsto che risponda alla notifica.
Un componente spooler in-process può aprire un canale di notifica indipendentemente dal fatto che siano presenti listener. Dopo l'apertura del canale, il componente di stampa può inviare notifiche. Se non sono presenti listener, la chiamata avrà comunque esito positivo, ma il valore restituito indica che nessuno ha ricevuto la notifica.
Un componente di stampa caricato dallo spooler o da un'applicazione può registrarsi per le notifiche con una stampante o con un server (locale o remoto), indipendentemente dal fatto che siano presenti o meno canali aperti.
Dopo l'apertura di un canale e l'invio di una notifica, il client del listener riceve la notifica. Il client del listener riceve anche informazioni sul canale usato per la notifica (per i canali bidirezionali).
Il meccanismo di notifica è asincrono. L'ordine delle notifiche è garantito.