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