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 |