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.
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 |