Partager via


Fonction Put

Affecte une nouvelle valeur à une propriété nommée.

Notes

Cette API est destinée à un usage interne uniquement. Elle n’est pas destinée à être utilisée dans le code du développeur.

Syntaxe

HRESULT Put (
   [in] int               vFunc,
   [in] IWbemClassObject* ptr,
   [in] LPCWSTR           wszName,
   [in] LONG              lFlags,
   [in] VARIANT*          pVal,
   [in] CIMTYPE           vtType
);

Paramètres

vFunc
[in] Ce paramètre est inutilisé.

ptr
[in] Pointeur vers une instance IWbemClassObject.

wszName
[in] Nom de la propriété. Ce paramètre ne peut pas être null.

lFlags
[in] Réservée. Ce paramètre doit être 0.

pVal
[in] Pointeur vers un VARIANT valide qui devient la nouvelle valeur de propriété. Si pVal est null ou pointe vers un VARIANT de type VT_NULL, la propriété est définie sur null.

vtType
[in] Type du VARIANT pointé par pVal. Pour plus d’informations, consultez la section Remarques.

Valeur retournée

Les valeurs suivantes renvoyées par cette fonction sont définies dans le fichier d’en-tête WbemCli.h, ou vous pouvez les définir comme constantes dans votre code :

Constant Valeur Description
WBEM_E_FAILED 0x80041001 Il y a eu une défaillance générale.
WBEM_E_INVALID_PARAMETER 0x80041008 Un ou plusieurs paramètres ne sont pas valides.
WBEM_E_INVALID_PROPERTY_TYPE 0x8004102a Le type de propriété n'est pas reconnu. Cette valeur est retournée lors de la création d’instances de classe si la classe existe déjà.
WBEM_E_OUT_OF_MEMORY 0x80041006 La mémoire n'est pas suffisante pour terminer cette opération.
WBEM_E_TYPE_MISMATCH 0x80041005 Pour les instances : indique que pVal pointe vers un VARIANT dont le type n’est pas valide pour la propriété.
Pour les définitions de classe : la propriété existe déjà dans la classe parente et le nouveau type COM est différent de l’ancien type COM.
WBEM_S_NO_ERROR 0 L’appel de fonction a abouti.

Notes

Cette fonction wrappe un appel à la méthode IWbemClassObject::Put.

Cette fonction remplace toujours la valeur de la propriété actuelle par une nouvelle. Si IWbemClassObject pointe vers une définition de classe, Put crée ou met à jour la valeur de la propriété. Lorsque IWbemClassObject pointe vers une instance CIM, Put met à jour la valeur de propriété uniquement. Put ne peut pas créer de valeur de propriété.

La propriété système __CLASS n’est accessible en écriture que lors de la création de la classe, lorsqu’elle peut ne pas être vide. Toutes les autres propriétés système sont en lecture seule.

Un utilisateur ne peut pas créer de propriétés avec des noms qui commencent ou se terminent par un trait de soulignement (_). Cela est réservé aux classes et aux propriétés système.

Si la propriété définie par la fonction Put existe dans la classe parente, la valeur par défaut de la propriété sera modifiée, sauf si le type de la propriété ne correspond pas au type de la classe parente. Si la propriété n’existe pas et s’il n’y a pas d’incompatibilité de types, la propriété est créée.

Utilisez le paramètre vtType uniquement lorsque vous créez des propriétés dans une définition de classe CIM, et quand pVal est null ou pointe vers un VARIANT de type VT_NULL. Dans ce cas, le paramètre vType spécifie le type CIM de la propriété. Dans tous les autres cas, vtType doit avoir la valeur 0. vtType doit également avoir la valeur 0 si l’objet sous-jacent est une instance (même si Val est null), car le type de la propriété est fixe et ne peut pas être modifié.

Exemple

Pour obtenir un exemple, consultez la méthode IWbemClassObject::Put.

Spécifications

Plateformes : Consultez Configuration requise.

En-tête : WMINet_Utils.idl

Versions de .NET Framework : disponibles depuis la version 4.7.2

Voir aussi