Método IWbemClassObject::Get (wbemcli.h)

El método IWbemClassObject::Get recupera el valor de propiedad especificado, si existe. Este método también puede devolver propiedades del sistema.

Sintaxis

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

Parámetros

[in] wszName

Nombre de la propiedad deseada. Se trata como de solo lectura.

[in] lFlags

Reservado. Este parámetro debe ser 0 (cero).

[out] pVal

Cuando se ejecuta correctamente, a este parámetro se le asigna el tipo y el valor correctos para el calificador, y se llama a la función VariantInit en pVal. Es responsabilidad del autor de la llamada llamar a VariantClear en pVal cuando el valor no es necesario. Si se produce un error, el valor al que apunta pVal no se modifica. Si se pasa un valor pVal sin inicializar al método , el autor de la llamada debe comprobar el valor devuelto del método y llamar a VariantClear solo cuando el método se realiza correctamente.

[out, optional] pType

Puede ser NULL. Si no es NULL, recibe el tipo CIM de la propiedad, es decir, una de las constantes de tipo CIM, como CIM_SINT32, CIM_STRING, etc. Para obtener más información sobre estos valores, consulte CIMTYPE_ENUMERATION. Esto indica la semántica CIM del valor de propiedad empaquetado en VARIANT.

[out, optional] plFlavor

Puede ser NULL. Si no es NULL, el valor LONG al que apunta recibe información sobre el origen de la propiedad. Para obtener más información, vea Tipos de calificador y WBEM_FLAVOR_TYPE.

WBEM_FLAVOR_ORIGIN_SYSTEM

La propiedad es una propiedad del sistema estándar.

WBEM_FLAVOR_ORIGIN_PROPAGATED

Solo para clases. La propiedad se heredó de la clase primaria.

Solo para instancias. La propiedad se hereda de la clase primaria, pero no se ha modificado en el nivel de instancia.

WBEM_FLAVOR_ORIGIN_LOCAL

Solo para clases. La propiedad pertenece a la clase secundaria derivada.

Solo para instancias. La propiedad se modifica en el nivel de instancia, es decir, se proporcionó un valor o se agregó o modificó un calificador.

Valor devuelto

Este método devuelve un valor HRESULT que indica el estado de la llamada al método. En la lista siguiente se muestra el valor contenido en un HRESULT. Para obtener valores HRESULT generales, consulte Códigos de error del sistema.

Comentarios

Si el tipo de la propiedad es una ruta de acceso de objeto, una cadena de fecha y hora u otro tipo especial, los valores devueltos en variant no contienen suficiente información para identificar el tipo true. El parámetro pvtType out indica esto.

Para obtener el formato de cadena del tipo Common Information Model (CIM) de la propiedad, se debe obtener el puntero IWbemQualifierSet para la propiedad y el calificador Cimtype recuperado. Ese calificador es la forma de cadena del tipo CIM, como sint32 frente a CIM_SINT32, que es una constante numérica.

Nota Al crear un nuevo objeto mediante IWbemClassObject::SpawnInstance, es importante tener en cuenta que algunas propiedades del sistema no se establecen hasta que el objeto se escribe en Instrumental de administración de Windows (WMI). En todos los casos, IWbemClassObject::Get tiene éxito en el acceso a la propiedad del sistema solicitada, pero la VARIANT devuelta puede contener VT_NULL.
 

Ejemplos

Para obtener una explicación extendida y un ejemplo de cómo realizar consultas en C++ y WMI, consulte Realización de consultas WMI en C++ en CodeProject.

En el siguiente ejemplo de C++ se muestra cómo recuperar el nombre de clase CIM de un objeto mediante la propiedad del sistema __CLASS. El código requiere las siguientes instrucciones #include y referencias para compilar.
#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);



Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado wbemcli.h (include Wbemidl.h)
Library WbemUuid.lib
Archivo DLL CIMWin32.dll; Esscli.dll; Fastprox.dll; FrameDyn.dll; FrameDynOS.dll; Krnlprov.dll; Ncprov.dll; Wbemcore.dll; Wbemess.dll; Wmipiprt.dll

Consulte también

IWbemClassObject

IWbemClassObject::GetPropertyQualifierSet

Calificadores de WMI

Clases del sistema WMI

Propiedades del sistema de WMI