Condividi tramite


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

Vedi anche

Interfacce di notifica di stampa asincrone

Gestione degli errori

IPrintAsyncNotifyCallback

Stampa