Metodo IPrintAsyncNotifyCallback::OnEventNotify (prnasnot.h)
Avvisa un listener che una notifica è disponibile in un canale specificato. Questo metodo viene chiamato dal sistema di stampa.
Sintassi
HRESULT OnEventNotify(
[in] IPrintAsyncNotifyChannel *pChannel,
[in] IPrintAsyncNotifyDataObject *pData
);
Parametri
[in] pChannel
Puntatore al canale usato dal mittente e dal listener.
[in] pData
Puntatore all'oggetto contenente i dati di notifica e le relative dimensioni e tipo.
Valore restituito
HRESULT | Gravità | Significato |
---|---|---|
S_OK | SUCCESS | La funzione è stata completata correttamente. |
INTERNAL_NOTIFICATION_QUEUE_IS_FULL | ERRORE | Print Spooler non può contenere altre notifiche in coda. Per impostazione predefinita, la dimensione massima della coda è 10 notifiche. Quando viene restituito questo errore, l'applicazione in ascolto non elabora le notifiche come viene inviata. Questa notifica deve essere reinsediata o eliminata. |
I valori restituiti sono codici di errore COM. Poiché questa funzione potrebbe completare correttamente l'operazione ma restituisce un HRESULT diverso da S_OK è necessario usare la macro SUCCESSED o FAILED per determinare l'esito positivo della chiamata. Per ottenere il valore HRESULT specifico restituito dalla funzione, usare la macro HRESULT_CODE.
Per altri valori restituiti possibili, vedere PrintAsyncNotifyError .
Per altre informazioni sui codici di errore COM, vedere Gestione degli errori.
Nell'esempio di codice seguente viene illustrato come usare queste macro per valutare il valore restituito.
if (SUCCEEDED(hr)){
// Call was successful
}
if (FAILED(hr)) {
// Call failed
}
if (FAILED(hr)) {
// Call failed, check HRESULT value returned
switch (HRESULT_CODE(hr)){
case INTERNAL_NOTIFICATION_QUEUE_IS_FULL:
// Some action
break;
default:
// Default action
break;
}
} else {
// Call succeeded
}
Commenti
Per recapitare una notifica, lo spooler di stampa chiamerà il metodo OnEventNotify dell'oggetto IPrintAsyncNotifyCallback fornito dall'applicazione di ascolto al momento della registrazione per le notifiche. Per le notifiche unidirectionali, pChannel è NULL. Per i canali bidirezionali, pChannel punta a un IPrintAsyncNotifyChannel da usare da un'applicazione in ascolto per inviare una notifica in risposta. Il listener eseguirà questa operazione chiamando il metodo SendNotificationdell'oggetto IPrintAsyncNotifyChannel.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | prnasnot.h |
DLL | Prnasnot.dll |