Partager via


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

Voir aussi

Interfaces de notification d’impression asynchrone

Gestion des erreurs

IPrintAsyncNotifyCallback

Impression