Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |