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.

Nota Quando você cria um novo objeto usando IWbemClassObject::SpawnInstance, é importante observar que algumas propriedades do sistema não são definidas até que o objeto seja gravado no WMI (Instrumentação de Gerenciamento do Windows). Em todos os casos, IWbemClassObject::Get consegue acessar a propriedade do sistema solicitada, mas a VARIANT retornada pode conter VT_NULL.
 

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

Confira também

IWbemClassObject

IWbemClassObject::GetPropertyQualifierSet

Qualificadores do WMI

Classes de sistema do WMI

Propriedades do sistema do WMI