RegisterForPrintAsyncNotifications, fonction (prnasnot.h)
Permet à une application de s’inscrire aux notifications des composants d’impression hébergés par un spouleur d’impression, tels que les pilotes d’imprimante, les processeurs d’impression et les moniteurs de port.
Syntaxe
HRESULT RegisterForPrintAsyncNotifications(
[in] PCWSTR pszName,
[in] PrintAsyncNotificationType *pNotificationType,
[in] PrintAsyncNotifyUserFilter eUserFilter,
[in] PrintAsyncNotifyConversationStyle eConversationStyle,
[in] IPrintAsyncNotifyCallback *pCallback,
[out] HANDLE *phNotify
);
Paramètres
[in] pszName
Pointeur vers le nom d’un serveur d’impression ou d’une file d’attente d’impression.
[in] pNotificationType
Pointeur vers le GUID du schéma de données pour le type de notifications que l’application doit recevoir.
[in] eUserFilter
Valeur spécifiant si les notifications seront envoyées à :
- Seules les applications qui s’exécutent comme le même utilisateur que l’expéditeur du plug-in hébergé par le spouleur d’impression.
- Un ensemble plus large d’applications d’écoute.
[in] eConversationStyle
Valeur spécifiant si la communication est bidirectionnelle ou unidirectionnelle.
[in] pCallback
Pointeur vers un objet que le composant print hébergé par un spouleur utilisera pour rappeler l’application. Cela ne doit jamais être NULL.
[out] phNotify
Pointeur vers une structure qui représente l’inscription.
Valeur retournée
HRESULT | Gravité | Signification |
---|---|---|
S_OK | SUCCESS | La fonction s’est terminée avec succès. |
ALREADY_REGISTERED | ERROR | L’objet d’inscription a déjà été inscrit. |
LOCAL_ONLY_REGISTRATION | SUCCESS | L’inscription pour la notification locale a réussi. L’inscription pour les notifications à distance n’était pas. |
MAX_REGISTRATION_COUNT_EXCEEDED | ERROR | Le nombre maximal d’inscriptions a été atteint. Plus aucune inscription n’est autorisée. |
REMOTE_ONLY_REGISTRATION | SUCCESS | L’inscription pour les notifications à distance a réussi. L’inscription pour les notifications locales n’a pas été. |
Les valeurs renvoyées sont des codes d’erreur COM. Étant donné que cette fonction peut terminer l’opération correctement 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.
L’exemple de code suivant montre comment ces macros peuvent être utilisées pour évaluer la valeur de retour.
if (SUCCEEDED(hr)) {
// Call succeeded, check HRESULT value returned
switch (HRESULT_CODE(hr)){
case S_OK:
// Some action
break;
case LOCAL_ONLY_REGISTRATION:
// Some action
break;
case REMOTE_ONLY_REGISTRATION:
// Some action
break;
default:
// Default action
break;
}
} else {
// Call failed, check HRESULT value returned
switch (HRESULT_CODE(hr)){
case ALREADY_REGISTERED:
// Some action
break;
case MAX_REGISTRATION_COUNT_EXCEEDED:
// Some action
break;
default:
// Default action
break;
}
}
Pour plus d’informations sur les codes d’erreur COM, consultez Gestion des erreurs.
Consultez PrintAsyncNotifyError pour connaître les autres valeurs de retour possibles.
Remarques
À la suite d’un appel RegisterForPrintAsyncNotifications , la méthode IUnknown ::AddRef est appelée pour l’objet pCallback . L’appel de UnRegisterForPrintAsyncNotifications libère l’objet pCallback . Le nombre de références de l’objet pCallback est également incrémenté lorsqu’un canal est créé et décrémenté lorsque le canal est fermé.
Le paramètre pSchema est un pointeur GUID que le spouleur accepte et utilise pour filtrer les clients de l’écouteur. Tout client du mécanisme de notification asynchrone du spouleur peut définir son propre type de notification. Même si le spouleur ne connaît pas le type de notification envoyé, il filtre toujours les clients de l’écouteur en fonction du type de notification. Le schéma de notification auquel pSchema fait référence est le schéma utilisé par l’objet de notification qui expose IPrintAsyncNotifyDataObject. Les clients du canal de notification du spouleur peuvent définir leur propre schéma de données et envoyer n’importe quel type de données, et le GUID référencé par pSchema est propre à ce schéma de données.
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 |
Bibliothèque | WinSpool.lib |
DLL | Spoolss.dll |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour