Metodo IWbemClassObject::Get (wbemcli.h)

Il metodo IWbemClassObject::Get recupera il valore della proprietà specificato, se esistente. Questo metodo può anche restituire proprietà di sistema.

Sintassi

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

Parametri

[in] wszName

Nome della proprietà desiderata. Viene considerato di sola lettura.

[in] lFlags

Riservato. Questo parametro deve essere 0 (zero).

[out] pVal

In caso di esito positivo, a questo parametro viene assegnato il tipo e il valore corretti per il qualificatore e la funzione VariantInit viene chiamata su pVal. È responsabilità del chiamante chiamare VariantClear su pVal quando il valore non è necessario. Se si verifica un errore, il valore a cui pVal punta non viene modificato. Se al metodo viene passato un valore pVal non inizializzato, il chiamante deve controllare il valore restituito del metodo e chiamare VariantClear solo quando il metodo ha esito positivo.

[out, optional] pType

Può essere NULL. Se non è NULL, riceve il tipo CIM della proprietà, ovvero una delle costanti di tipo CIM, ad esempio CIM_SINT32, CIM_STRING e così via. Per altre informazioni su questi valori, vedere CIMTYPE_ENUMERATION. Ciò indica la semantica CIM del valore della proprietà compresso in VARIANT.

[out, optional] plFlavor

Può essere NULL. Se non è NULL, il valore LONG a cui punta riceve informazioni sull'origine della proprietà. Per altre informazioni, vedere Tipi di qualificatore e WBEM_FLAVOR_TYPE.

WBEM_FLAVOR_ORIGIN_SYSTEM

La proprietà è una proprietà di sistema standard.

WBEM_FLAVOR_ORIGIN_PROPAGATED

Solo per le classi. La proprietà è stata ereditata dalla classe padre.

Solo per le istanze. La proprietà viene ereditata dalla classe padre, ma non è stata modificata a livello di istanza.

WBEM_FLAVOR_ORIGIN_LOCAL

Solo per le classi. La proprietà appartiene alla classe figlio derivata.

Solo per le istanze. La proprietà viene modificata a livello di istanza, ovvero è stato fornito un valore o è stato aggiunto o modificato un qualificatore.

Valore restituito

Questo metodo restituisce un valore HRESULT che indica lo stato della chiamata al metodo. L'elenco seguente elenca il valore contenuto in hrESULT. Per i valori HRESULT generali, vedere Codici di errore di sistema.

Commenti

Se il tipo della proprietà è un percorso oggetto, una stringa di data/ora o un altro tipo speciale, i valori restituiti in VARIANT non contengono informazioni sufficienti per identificare il tipo true. Il parametro pvtType out indica questo valore.

Per ottenere il formato stringa del tipo Common Information Model (CIM) per la proprietà, è necessario ottenere il puntatore IWbemQualifierSet per la proprietà e il qualificatore Cimtype recuperato. Tale qualificatore è il formato stringa del tipo CIM, ad esempio sint32 e CIM_SINT32, che è una costante numerica.

Nota Quando si crea un nuovo oggetto usando IWbemClassObject::SpawnInstance, è importante notare che alcune proprietà di sistema non vengono impostate finché l'oggetto non viene scritto in Strumentazione gestione Windows (WMI). In tutti i casi , IWbemClassObject::Get riesce ad accedere alla proprietà di sistema richiesta, ma variant restituito può contenere VT_NULL.
 

Esempio

Per una discussione estesa e un esempio di esecuzione di query in C++ e WMI, vedere Esecuzione di query WMI in C++ in CodeProject.

Nell'esempio C++ seguente viene illustrato come recuperare il nome della classe CIM da un oggetto usando la proprietà di sistema __CLASS. Il codice richiede le istruzioni e i riferimenti #include seguenti per la compilazione.
#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);



Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione wbemcli.h (include Wbemidl.h)
Libreria WbemUuid.lib
DLL CIMWin32.dll; Esscli.dll; Fastprox.dll; FrameDyn.dll; FrameDynOS.dll; Krnlprov.dll; Ncprov.dll; Wbemcore.dll; Wbemess.dll; Wmipiprt.dll

Vedi anche

IWbemClassObject

IWbemClassObject::GetPropertyQualifierSet

Qualificatori WMI

Classi di sistema WMI

Proprietà di sistema WMI