IWbemServices::ExecNotificationQueryAsync, méthode (wbemcli.h)
La méthode IWbemServices::ExecNotificationQueryAsync effectue la même tâche que IWbemServices::ExecNotificationQuery , sauf que les événements sont fournis au gestionnaire de réponses spécifié jusqu’à ce que CancelAsyncCall soit appelé pour arrêter la notification d’événement.
Syntaxe
HRESULT ExecNotificationQueryAsync(
[in] const BSTR strQueryLanguage,
[in] const BSTR strQuery,
[in] long lFlags,
[in] IWbemContext *pCtx,
[in] IWbemObjectSink *pResponseHandler
);
Paramètres
[in] strQueryLanguage
BSTR valide qui contient l’un des langages de requête pris en charge par Windows Management. Il doit s’agir de « WQL ».
[in] strQuery
BSTR valide qui contient le texte de la requête liée à l’événement. Cette valeur ne peut pas être NULL. Pour plus d’informations sur la création de chaînes de requête WMI, consultez Interrogation avec WQL et les informations de référence sur WQL.
[in] lFlags
Ce paramètre peut être la valeur suivante.
WBEM_FLAG_SEND_STATUS
Cet indicateur inscrit auprès de Windows Management une demande de réception de rapports de status intermédiaires via l’implémentation du client d’IWbemObjectSink::SetStatus. L’implémentation du fournisseur doit prendre en charge les rapports intermédiaires status pour que cet indicateur modifie le comportement.
[in] pCtx
Généralement NULL. Sinon, il s’agit d’un pointeur vers un objet IWbemContext qui peut être utilisé par le fournisseur qui retourne les événements demandés. Les valeurs de l’objet de contexte doivent être spécifiées dans la documentation du fournisseur en question. Pour plus d’informations sur ce paramètre, consultez Effectuer des appels à WMI.
[in] pResponseHandler
Pointeur vers l’implémentation d’IWbemObjectSink par l’appelant. Ce gestionnaire reçoit les objets du jeu de résultats de requête dès qu’ils deviennent disponibles. Pour cesser de recevoir des événements, l’appelant doit appeler IWbemServices::CancelAsyncCall en utilisant la même valeur de pointeur pour pResponseHandler. À mesure que les événements deviennent disponibles, l’implémentation IWbemObjectSink::Indicate fournie est appelée pour remettre les objets d’événement. La méthode IWbemObjectSink::SetStatus n’est appelée à aucun moment, car il n’existe aucune condition finale ou de fin. L’appel s’exécute indéfiniment jusqu’à ce qu’il soit annulé. Si un code d’erreur est retourné, le pointeur IWbemObjectSink fourni n’est pas utilisé. Si WBEM_S_NO_ERROR est retourné, l’implémentation IWbemObjectSink de l’utilisateur est appelée pour indiquer le résultat de l’opération. Gestion Windows appelle uniquement AddRef sur le pointeur dans les cas où WBEM_S_NO_ERROR retourne. Dans les cas où un code d’erreur retourne, le nombre de références est le même que lors de l’entrée. Pour obtenir une explication détaillée de ce paramètre, consultez Appel d’une méthode.
Valeur retournée
Cette méthode retourne une valeur HRESULT qui indique le statut de l'appel de méthode. La liste suivante répertorie la valeur contenue dans un HRESULT.
En cas d’échec, vous pouvez obtenir toutes les informations disponibles à partir de la fonction COM GetErrorInfo.
D’autres codes d’erreur sont retournés au récepteur d’objets spécifié par le paramètre pResponseHandler .
Les codes d’erreur spécifiques à COM peuvent également être retournés si des problèmes réseau vous font perdre la connexion à distance à Windows Management.
Remarques
La méthode IWbemObjectSink::SetStatus est appelée pour indiquer la fin du jeu de résultats. Il peut également être appelé sans appel intermédiaire à IWbemObjectSink::Indiquer si des conditions d’erreur se produisent.
Étant donné que le rappel n’est peut-être pas retourné au même niveau d’authentification que le client, il est recommandé d’utiliser semi-synchrone au lieu d’une communication asynchrone. Si vous avez besoin d’une communication asynchrone, consultez Appel d’une méthode.
Pour plus d’informations sur l’utilisation semi-synchronisée des méthodes, consultez IWbemServices::ExecNotificationQuery et Appel d’une méthode.
Le nombre de mots clés AND et OR utilisables dans les requêtes WQL est limité. La présence d’un grand nombre de mots clés WQL dans une requête complexe peut amener WMI à renvoyer le code d’erreur WBEM_E_QUOTA_VIOLATION comme valeur HRESULT. La limite des mots clés WQL dépend de la complexité de la requête.
Spécifications
Client minimal pris en charge | Windows Vista |
Serveur minimal pris en charge | Windows Server 2008 |
Plateforme cible | Windows |
En-tête | wbemcli.h (inclure Wbemidl.h) |
Bibliothèque | Wbemuuid.lib |
DLL | Fastprox.dll; Esscli.dll; FrameDyn.dll; FrameDynOS.dll; Ntevt.dll; Stdprov.dll; Viewprov.dll; Wbemcomn.dll; Wbemcore.dll; Wbemess.dll; Wbemsvc.dll; Wmipicmp.dll; Wmidcprv.dll; Wmipjobj.dll; Wmiprvsd.dll |
Voir aussi
Réception des notifications d’événements
Réception d’événements pendant la durée de votre application