Méthode IPrintAsyncNotifyCallback ::ChannelClosed (prnasnot.h)
Conseille à un membre d’un canal de communication d’informer l’autre membre que le canal est fermé.
Syntaxe
HRESULT ChannelClosed(
[in] IPrintAsyncNotifyChannel *pChannel,
[in] IPrintAsyncNotifyDataObject *pData
);
Paramètres
[in] pChannel
Pointeur vers le canal utilisé par l’expéditeur et l’écouteur.
[in] pData
Pointeur vers l’objet qui contient les données de notification ou la réponse.
Valeur retournée
HRESULT | Gravité | Signification |
---|---|---|
S_OK | SUCCESS | Cette fonction s’est terminée avec succès. |
CHANNEL_ALREADY_CLOSED | ERROR | Le canal a déjà été fermé. |
Les valeurs retournées sont des codes d’erreur COM. Étant donné que cette fonction peut terminer l’opération avec succès tout en renvoyant un HRESULT autre que S_OK vous devez utiliser la macro SUCCEEDED ou FAILED pour déterminer la réussite de l’appel. Pour obtenir le HRESULT spécifique retourné par la fonction, utilisez la macro HRESULT_CODE.
Consultez PrintAsyncNotifyError pour obtenir d’autres valeurs de retour possibles.
Pour plus d’informations sur les codes d’erreur COM, consultez Gestion des erreurs.
L’exemple de code suivant montre comment ces macros peuvent être utilisées pour évaluer la valeur de retour.
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
}
Remarques
Lorsqu’un composant hébergé par le spouleur d’impression ferme un canal de communication avec une application d’écoute, le composant doit appeler la méthode ChannelClosed de l’objet IPrintAsyncNotifyCallback , que l’application d’écoute a fournie au moment où elle a inscrit pour les notifications. Si le serveur d’impression se bloque, le spouleur d’impression tente d’appeler la méthode OnEventNotify de l’objet IPrintAsyncNotifyCallback fourni par l’application d’écoute. Il envoie une notification de type NOTIFICATION_RELEASE.
Si l’application d’écoute ferme un canal de communication bidirectionnel, elle doit appeler la méthode ChannelClosed de l’objet IPrintAsyncNotifyCallback fourni par le composant lors de la création du canal. Si l’application d’écoute se bloque, le spouleur d’impression appelle la méthode OnEventNotify de l’objet IPrintAsyncNotifyCallback fourni par le composant hébergé par le spouleur d’impression. Il envoie une notification de type NOTIFICATION_RELEASE.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | prnasnot.h |
DLL | Prnasnot.dll |