Partager via


Provider ::ExecMethod(constCInstance&,constBSTR,CInstance*,CInstance*,long) méthode (provider.h)

[La classe Provider fait partie de L’infrastructure de fournisseur WMI, qui est maintenant considérée dans l’état final, et aucun développement, amélioration ou mise à jour supplémentaire ne sera disponible pour les problèmes non liés à la sécurité affectant ces bibliothèques. Les API MI doivent être utilisées dans tout nouveau développement.]

La méthode ExecMethod est appelée par WMI pour appeler une méthode sur une classe ou un instance.

Syntaxe

HRESULT ExecMethod(
  [ref] const CInstance & cInstance,
        const BSTR        bstrMethodName,
        CInstance         *pInParams,
        CInstance         *pOutParams,
        long              lFlags
);

Paramètres

[ref] cInstance

Les propriétés clés du instance en question si le client a appelé une méthode instance. Si le client a appelé une méthode statique, Instance contient un objet de classe.

bstrMethodName

Nom de la méthode appelée.

pInParams

Pointeur vers les paramètres d’entrée de méthode.

pOutParams

Pointeur vers les paramètres de sortie de la méthode.

lFlags

Masque de bits des indicateurs avec des informations sur l’opération d’exécution de méthode. Il s’agit de la valeur spécifiée par le client dans la méthode IWbemServices ::ExecMethod . Peu de clients utilisent les paramètres lFlags . Vous pouvez ignorer en toute sécurité lFlags dans la plupart des implémentations de fournisseurs.

L’indicateur suivant est géré par (et filtré) par WMI :

  • WBEM_FLAG_RETURN_IMMEDIATELY

Valeur retournée

L’implémentation du fournisseur d’infrastructure par défaut de cette méthode retourne WBEM_E_PROVIDER_NOT_CAPABLE à la méthode appelante. La méthode IWbemServices ::ExecMethod répertorie les valeurs de retour les plus courantes, bien que vous puissiez choisir de retourner n’importe quel code de retour COM.

Les valeurs de retour pour les méthodes peuvent être de l’un des deux types suivants :

  • HRESULT est utilisé pour indiquer les erreurs de type WMI : WBEM_E_OUT_OF_MEMORY, WBEM_E_NOT_FOUND, etc.
  • La valeur de retour de la méthode (telle que uint32) retourne le résultat de la méthode .

Remarques

WMI appelle ExecMethod lorsqu’un client appelle IWbemServices ::ExecMethod par rapport à votre classe. Par conséquent, vous devez implémenter ExecMethod si votre fournisseur prend en charge une ou plusieurs méthodes. La liste suivante décrit une implémentation courante de ExecMethod :

  1. Déterminez la méthode que le client a appelée en examinant le paramètre bstrMethodName .
  2. Récupérez les paramètres d’entrée du paramètre pInParams , à l’aide des méthodes Get de la classe CInstance , comme CInstance ::GetCHString.

    Une méthode peut avoir des paramètres d’entrée, des paramètres de sortie, des paramètres d’entrée et de sortie, ou aucun paramètre d’entrée ou de sortie.

  3. Définissez les paramètres de sortie dans le paramètre pOutParams à l’aide des méthodes Set de la classe CInstance , telles que CInstance ::SetByte ou CInstance ::SetStringArray.

    En plus de déclarer les propriétés [out] comme spécifié dans la déclaration de retour, vous devez également déclarer la valeur de retour pour la méthode, comme défini dans la propriété ReturnValue . Vous n’avez pas besoin de déclarer une valeur de retour si la valeur de retour est void.

Pour plus d’informations, consultez IWbemServices ::ExecMethod.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête provider.h (include FwCommon.h)
Bibliothèque FrameDyn.lib
DLL FrameDynOS.dll ; FrameDyn.dll