Método IWbemClassObject::Get (wbemcli.h)
O método IWbemClassObject::Get recupera o valor da propriedade especificada, se ele existir. Esse método também pode retornar propriedades do sistema.
Sintaxe
HRESULT Get(
[in] LPCWSTR wszName,
[in] long lFlags,
[out] VARIANT *pVal,
[out, optional] CIMTYPE *pType,
[out, optional] long *plFlavor
);
Parâmetros
[in] wszName
Nome da propriedade desejada. Ela é tratada como somente leitura.
[in] lFlags
Reservado. Esse parâmetro deve ser 0 (zero).
[out] pVal
Quando bem-sucedido, esse parâmetro recebe o tipo e o valor corretos para o qualificador e a função VariantInit é chamada em pVal. É responsabilidade do chamador chamar VariantClear no pVal quando o valor não for necessário. Se houver um erro, o valor para o qual pVal aponta não será modificado. Se um valor pVal não inicializado for passado para o método , o chamador deverá marcar o valor retornado do método e chamar VariantClear somente quando o método for bem-sucedido.
[out, optional] pType
Pode ser NULL. Se não for NULL, ele receberá o tipo CIM da propriedade , ou seja, uma das constantes do tipo CIM, como CIM_SINT32, CIM_STRING e assim por diante. Para obter mais informações sobre esses valores, consulte CIMTYPE_ENUMERATION. Isso indica a semântica CIM do valor da propriedade empacotado em VARIANT.
[out, optional] plFlavor
Pode ser NULL. Se não for NULL, o valor LONG apontado para receberá informações sobre a origem da propriedade. Para obter mais informações, consulte Tipos de qualificador e WBEM_FLAVOR_TYPE.
WBEM_FLAVOR_ORIGIN_SYSTEM
A propriedade é uma propriedade padrão do sistema.
WBEM_FLAVOR_ORIGIN_PROPAGATED
Somente para classes. A propriedade foi herdada da classe pai.
Somente para instâncias. A propriedade é herdada da classe pai, mas não foi modificada no nível da instância.
WBEM_FLAVOR_ORIGIN_LOCAL
Somente para classes. A propriedade pertence à classe filho derivada.
Somente para instâncias. A propriedade é modificada no nível da instância, ou seja, um valor foi fornecido ou um qualificador foi adicionado ou modificado.
Retornar valor
Esse método retorna um HRESULT que indica o status da chamada de método. A lista a seguir lista o valor contido em um HRESULT. Para obter valores gerais de HRESULT , consulte Códigos de erro do sistema.
Comentários
Se o tipo da propriedade for um caminho de objeto, uma cadeia de caracteres de data/hora ou outro tipo especial, os valores retornados na VARIANT não conterão informações suficientes para identificar o tipo verdadeiro. O parâmetro pvtType out indica isso.
Para obter a forma de cadeia de caracteres do tipo CIM (Common Information Model) para a propriedade , o ponteiro IWbemQualifierSet para a propriedade deve ser obtido e o qualificador Cimtype recuperado. Esse qualificador é a forma de cadeia de caracteres do tipo CIM, como sint32 versus CIM_SINT32, que é uma constante numérica.
Exemplos
Para obter uma discussão estendida e um exemplo de como fazer consultas em C++ e WMI, consulte Making WMI Queries In C++ on CodeProject.
O exemplo C++ a seguir mostra como recuperar o nome da classe CIM de um objeto usando a propriedade do sistema __CLASS. O código requer as instruções e referências #include a seguir 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 | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | wbemcli.h (inclua Wbemidl.h) |
Biblioteca | WbemUuid.lib |
DLL | CIMWin32.dll; Esscli.dll; Fastprox.dll; FrameDyn.dll; FrameDynOS.dll; Krnlprov.dll; Ncprov.dll; Wbemcore.dll; Wbemess.dll; Wmipiprt.dll |