Provider ::ExecMethod(ParsedObjectPath*,BSTR,long,CInstance*,CInstance*,MethodContext*) 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(
ParsedObjectPath *pParsedObjectPath,
BSTR bstrMethodName,
long lFlags,
CInstance *pInParams,
CInstance *pOutParams,
MethodContext *pContext
);
Paramètres
pParsedObjectPath
TBD
bstrMethodName
Nom de la méthode appelée.
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
pInParams
Pointeur vers les paramètres d’entrée de méthode.
pOutParams
Pointeur vers les paramètres de sortie de la méthode.
pContext
TBD
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 :
- Déterminez la méthode que le client a appelée en examinant le paramètre bstrMethodName .
-
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.
-
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.
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 |