IWbemObjectSink::Indicate, méthode (wbemcli.h)

La méthode Indicate est appelée par une source pour fournir une notification. En règle générale, WMI appelle l’implémentation cliente de cette interface après que le client a exécuté l’une des méthodes asynchrones d’IWbemServices. Dans d’autres cas, différents types de fournisseurs appellent une implémentation exportée par WMI pour remettre des événements. Par conséquent, le code client peut être amené à implémenter cette interface dans certains cas, et à utiliser l’implémentation d’un autre composant dans d’autres cas.

Utilisez cette interface et cette méthode conjointement avec les méthodes asynchrones de l’interface IWbemServices .

Les clients et les fournisseurs doivent implémenter cette interface pour recevoir des notifications ou exécuter les méthodes asynchrones d’IWbemServices. Pour plus d’informations, consultez Appel d’une méthode.

Syntaxe

HRESULT Indicate(
  [in] long             lObjectCount,
  [in] IWbemClassObject **apObjArray
);

Paramètres

[in] lObjectCount

Nombre d’objets dans le tableau de pointeurs suivant.

[in] apObjArray

Tableau de pointeurs vers les interfaces IWbemClassObject . La mémoire du tableau elle-même est en lecture seule et appartient à l’appelant de la méthode . Étant donné qu’il s’agit d’un paramètre in, l’implémentation a la possibilité d’appeler IWbemClassObject::AddRef sur n’importe quel pointeur d’objet dans le tableau et de le maintenir avant de retourner si les objets seront utilisés après le retour de la méthode, conformément aux règles COM. Si les objets sont utilisés uniquement pendant la durée de l’appel Indiquer , vous n’avez pas besoin d’appeler AddRef sur chaque pointeur d’objet.

Valeur retournée

Cette méthode retourne une valeur HRESULT qui indique l’état de l’appel de méthode. La liste suivante répertorie la valeur contenue dans un HRESULT.

Remarques

Lors de l’implémentation d’un récepteur d’abonnement aux événements (IWbemObjectSink ou IWbemEventSink), n’appelez pas WMI à partir de la méthode Indicate sur l’objet récepteur. Par exemple, l’appel de IWbemServices::CancelAsyncCall à partir d’une implémentation d’Indicate peut interférer avec l’état WMI. Pour annuler un abonnement aux événements, définissez un indicateur et appelez IWbemServices::CancelAsyncCall à partir d’un autre thread ou objet. Pour les implémentations qui ne sont pas liées à un récepteur d’événements, telles que les récupérations d’objets, d’énumérations et de requêtes, vous pouvez rappeler WMI.

Les implémentations de récepteur doivent traiter la notification d’événement dans un délai de 100 ms, car le thread WMI qui transmet la notification d’événement ne peut pas effectuer d’autres tâches tant que l’objet récepteur n’a pas terminé le traitement. Si la notification nécessite un traitement important, le récepteur peut utiliser une file d’attente interne pour un autre thread pour gérer le traitement.

Lorsqu’un fournisseur d’événements appelle Indique pour fournir un événement, l’appel peut échouer avec WBEM_E_SERVER_TOO_BUSY. Le fournisseur peut choisir de répondre à ce message en ré-déclencher l’événement.

Note Étant donné que le rappel au récepteur peut ne pas être retourné au même niveau d’authentification que celui requis par le client, il est recommandé d’utiliser des semi-synchronisés au lieu d’une communication asynchrone. Pour plus d’informations, consultez Appel d’une méthode.
 

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 (include Wbemidl.h)
Bibliothèque Wbemuuid.lib
DLL Fastprox.dll

Voir aussi

IWbemObjectSink

IWbemObjectSink::SetStatus

IWbemObjectSinkEx

IWbemServices::ExecQueryAsync