Metodo IPrintAsyncNotifyCallback::ChannelClosed (prnasnot.h)
Consiglia a un membro di un canale di comunicazione di notificare all'altro membro che il canale viene chiuso.
Sintassi
HRESULT ChannelClosed(
[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 o la risposta.
Valore restituito
HRESULT | Gravità | Significato |
---|---|---|
S_OK | SUCCESS | Questa funzione è stata completata correttamente. |
CHANNEL_ALREADY_CLOSED | ERRORE | Il canale è già stato chiuso. |
I valori restituiti sono codici di errore COM. Poiché questa funzione potrebbe completare correttamente l'operazione ma restituisce un valore HRESULT diverso da S_OK è consigliabile utilizzare la macro SUCCEEDED o FAILED per determinare l'esito positivo della chiamata. Per ottenere l'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 utilizzare 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 CHANNEL_ALREADY_CLOSED:
// Some action
break;
default:
// Default action
break;
}
} else {
// Call succeeded
}
Commenti
Quando un componente ospitato dallo spooler di stampa chiude un canale di comunicazione con un'applicazione in ascolto, il componente deve chiamare il metodo ChannelClosed dell'oggetto IPrintAsyncNotifyCallback , che l'applicazione in ascolto fornita al momento della registrazione per le notifiche. Se il server di stampa si arresta in modo anomalo, lo spooler di stampa tenterà di chiamare il metodo OnEventNotify dell'oggetto IPrintAsyncNotifyCallback fornito dall'applicazione in ascolto. Invierà una notifica di tipo NOTIFICATION_RELEASE.
Se l'applicazione in ascolto chiude un canale di comunicazione bidirezionale, deve chiamare il metodo ChannelClosed dell'oggetto IPrintAsyncNotifyCallback fornito dal componente al momento della creazione del canale. Se l'applicazione in ascolto si arresta in modo anomalo, lo spooler di stampa chiamerà il metodo OnEventNotify dell'oggetto IPrintAsyncNotifyCallback fornito dal componente ospitato dallo spooler di stampa. Invierà una notifica di tipo NOTIFICATION_RELEASE.
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 |