Freigeben über


IPrintAsyncNotifyCallback::ChannelClosed-Methode (prnasnot.h)

Rät einem Mitglied eines Kommunikationskanals, das andere Mitglied darüber zu informieren, dass der Kanal geschlossen wird.

Syntax

HRESULT ChannelClosed(
  [in] IPrintAsyncNotifyChannel    *pChannel,
  [in] IPrintAsyncNotifyDataObject *pData
);

Parameter

[in] pChannel

Ein Zeiger auf den Kanal, der vom Absender und dem Listener verwendet wird.

[in] pData

Ein Zeiger auf das Objekt, das die Benachrichtigungsdaten oder die Antwort enthält.

Rückgabewert

HRESULT Schweregrad Bedeutung
S_OK SUCCESS Diese Funktion wurde erfolgreich abgeschlossen.
CHANNEL_ALREADY_CLOSED ERROR Der Kanal wurde bereits geschlossen.
 

Die Rückgabewerte sind COM-Fehlercodes. Da diese Funktion den Vorgang möglicherweise erfolgreich abgeschlossen hat, aber ein anderes HRESULT als S_OK sollten Sie das Makro SUCCEEDED oder FAILED verwenden, um den Erfolg des Aufrufs zu bestimmen. Verwenden Sie das Makro HRESULT_CODE, um das spezifische HRESULT abzurufen, das von der Funktion zurückgegeben wurde.

Weitere mögliche Rückgabewerte finden Sie unter PrintAsyncNotifyError .

Weitere Informationen zu COM-Fehlercodes finden Sie unter Fehlerbehandlung.

Das folgende Codebeispiel zeigt, wie diese Makros verwendet werden können, um den Rückgabewert auszuwerten.


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 
}

Hinweise

Wenn eine komponente, die vom Druckspooler gehostet wird, einen Kommunikationskanal mit einer lauschenden Anwendung schließt, sollte die Komponente die ChannelClosed-Methode des IPrintAsyncNotifyCallback-Objekts aufrufen, die von der lauschenden Anwendung zum Zeitpunkt der Registrierung für Benachrichtigungen bereitgestellt wurde. Wenn der Druckserver abstürzt, versucht der Druckspooler, die OnEventNotify-Methode des IPrintAsyncNotifyCallback-Objekts aufzurufen, das von der lauschenden Anwendung bereitgestellt wird. Es wird eine Benachrichtigung vom Typ NOTIFICATION_RELEASE gesendet.

Wenn die Lauschanwendung einen bidirektionalen Kommunikationskanal schließt, sollte sie die ChannelClosed-Methode des IPrintAsyncNotifyCallback-Objekts aufrufen, das von der Komponente beim Erstellen des Kanals bereitgestellt wurde. Wenn die lauschenden Anwendung abstürzt, ruft der Druckspooler die OnEventNotify-Methode des IPrintAsyncNotifyCallback-Objekts auf, das von der vom Druckspooler gehosteten Komponente bereitgestellt wird. Es wird eine Benachrichtigung vom Typ NOTIFICATION_RELEASE gesendet.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile prnasnot.h
DLL Prnasnot.dll

Weitere Informationen

Benachrichtigungsschnittstellen für asynchrones Drucken

Fehlerbehandlung

IPrintAsyncNotifyCallback

Drucken