IWbemClassObject ::Get, méthode (wbemcli.h)

La méthode IWbemClassObject ::Get récupère la valeur de propriété spécifiée, si elle existe. Cette méthode peut également retourner des propriétés système.

Syntaxe

HRESULT Get(
  [in]            LPCWSTR wszName,
  [in]            long    lFlags,
  [out]           VARIANT *pVal,
  [out, optional] CIMTYPE *pType,
  [out, optional] long    *plFlavor
);

Paramètres

[in] wszName

Nom de la propriété souhaitée. Il est traité en lecture seule.

[in] lFlags

Réservé. Ce paramètre doit être égal à 0 (zéro).

[out] pVal

En cas de réussite, ce paramètre se voit attribuer le type et la valeur corrects pour le qualificateur, et la fonction VariantInit est appelée sur pVal. Il incombe à l’appelant d’appeler VariantClear sur pVal lorsque la valeur n’est pas nécessaire. En cas d’erreur, la valeur vers laquelle pVal pointe n’est pas modifiée. Si une valeur pVal non initialisée est passée à la méthode, l’appelant doit case activée la valeur de retour de la méthode et appeler VariantClear uniquement lorsque la méthode réussit.

[out, optional] pType

Peut être NULL. S’il n’est pas NULL, il reçoit le type CIM de la propriété, c’est-à-dire l’une des constantes de type CIM, telles que CIM_SINT32, CIM_STRING, etc. Pour plus d’informations sur ces valeurs, consultez CIMTYPE_ENUMERATION. Cela indique la sémantique CIM de la valeur de propriété empaquetée dans VARIANT.

[out, optional] plFlavor

Peut être NULL. Si elle n’est pas NULL, la valeur LONG pointée vers reçoit des informations sur l’origine de la propriété. Pour plus d’informations, consultez Saveurs de qualificateur et WBEM_FLAVOR_TYPE.

WBEM_FLAVOR_ORIGIN_SYSTEM

La propriété est une propriété système standard.

WBEM_FLAVOR_ORIGIN_PROPAGATED

Pour les classes uniquement. La propriété a été héritée de la classe parente.

Pour les instances uniquement. La propriété est héritée de la classe parente, mais n’a pas été modifiée au niveau instance.

WBEM_FLAVOR_ORIGIN_LOCAL

Pour les classes uniquement. La propriété appartient à la classe enfant dérivée.

Pour les instances uniquement. La propriété est modifiée au niveau instance, c’est-à-dire qu’une valeur a été fournie ou qu’un qualificateur a été ajouté ou modifié.

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. Pour connaître les valeurs HRESULT générales, consultez Codes d’erreur système.

Remarques

Si le type de la propriété est un chemin d’accès d’objet, une chaîne de date/heure ou un autre type spécial, les valeurs retournées dans le VARIANT ne contiennent pas suffisamment d’informations pour identifier le type vrai. Le paramètre pvtType out l’indique.

Pour obtenir la forme de chaîne du type CIM (Common Information Model) pour la propriété, le pointeur IWbemQualifierSet de la propriété doit être obtenu et le qualificateur Cimtype récupéré. Ce qualificateur est la forme de chaîne du type CIM, par exemple sint32 par rapport à CIM_SINT32, qui est une constante numérique.

Note Lorsque vous créez un objet à l’aide de IWbemClassObject ::SpawnInstance, il est important de noter que certaines propriétés système ne sont pas définies tant que l’objet n’est pas écrit dans Windows Management Instrumentation (WMI). Dans tous les cas, IWbemClassObject ::Get réussit à accéder à la propriété système demandée, mais le VARIANT retourné peut contenir VT_NULL.
 

Exemples

Pour obtenir une discussion étendue et un exemple de création de requêtes en C++ et WMI, consultez Création de requêtes WMI en C++ sur CodeProject.

L’exemple C++ suivant montre comment récupérer le nom de la classe CIM à partir d’un objet à l’aide de la propriété système __CLASS. Le code nécessite les #include instructions et références suivantes pour la compilation.
#include <iostream>
using namespace std;
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
//Assumes that pObj is defined as a pointer
// to an IWbemClassObject object.

VARIANT v;
BSTR strClassProp = SysAllocString(L"__CLASS");
HRESULT hr;
hr = pObj->Get(strClassProp, 0, &v, 0, 0);
SysFreeString(strClassProp);

// check the HRESULT to see if the action succeeded.

if (SUCCEEDED(hr) && (V_VT(&v) == VT_BSTR))
{
    wprintf(L"The class name is %s\n.", V_BSTR(&v));
}
else
{
    wprintf(L"Error in getting specified object\n");
}
VariantClear(&v);



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 wbemcli.h (inclure Wbemidl.h)
Bibliothèque WbemUuid.lib
DLL CIMWin32.dll ; Esscli.dll ; Fastprox.dll ; FrameDyn.dll ; FrameDynOS.dll ; Krnlprov.dll ; Ncprov.dll ; Wbemcore.dll ; Wbemess.dll ; Wmipiprt.dll

Voir aussi

IWbemClassObject

IWbemClassObject ::GetPropertyQualifierSet

Qualificateurs WMI

Classes système WMI

Propriétés du système WMI