Поделиться через


Метод IWbemClassObject::Get (wbemcli.h)

Метод IWbemClassObject::Get извлекает указанное значение свойства, если оно существует. Этот метод также может возвращать системные свойства.

Синтаксис

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

Параметры

[in] wszName

Имя нужного свойства. Он обрабатывается как доступный только для чтения.

[in] lFlags

Зарезервировано. Этот параметр должен иметь значение 0 (ноль).

[out] pVal

При успешном выполнении этому параметру присваивается правильный тип и значение для квалификатора, а функция VariantInit вызывается в pVal. Вызывающий объект отвечает за вызов VariantClear в pVal , если значение не требуется. Если возникает ошибка, значение, на которое указывает pVal , не изменяется. Если методу передается неинициализированное значение pVal, вызывающий объект должен проверка возвращаемое значение метода и вызывать VariantClear только при успешном выполнении метода.

[out, optional] pType

Может иметь значение NULL. Если значение не равно NULL, оно получает тип CIM свойства, т. е. одну из констант типа CIM, например CIM_SINT32, CIM_STRING и т. д. Дополнительные сведения об этих значениях см. в разделе CIMTYPE_ENUMERATION. Это указывает на семантику CIM значения свойства, упакованного в VARIANT.

[out, optional] plFlavor

Может иметь значение NULL. Если значение НЕ РАВНО NULL, значение LONG, на которое указывает, получает сведения о происхождении свойства. Дополнительные сведения см. в разделе Варианты квалификатора и WBEM_FLAVOR_TYPE.

WBEM_FLAVOR_ORIGIN_SYSTEM

Свойство является стандартным системным свойством.

WBEM_FLAVOR_ORIGIN_PROPAGATED

Только для классов. Свойство было унаследовано от родительского класса.

Только для экземпляров. Свойство наследуется от родительского класса, но не было изменено на уровне экземпляра.

WBEM_FLAVOR_ORIGIN_LOCAL

Только для классов. Свойство принадлежит производного дочернего класса.

Только для экземпляров. Свойство изменяется на уровне экземпляра, т. е. указано значение или добавлен или изменен квалификатор.

Возвращаемое значение

Этот метод возвращает HRESULT , указывающий состояние вызова метода. В следующем списке перечислены значения, содержащиеся в HRESULT. Общие значения HRESULT см. в разделе Системные коды ошибок.

Комментарии

Если тип свойства — путь к объекту, строка даты и времени или другой специальный тип, то возвращаемые значения в VARIANT не содержат достаточно сведений для идентификации истинного типа. Это указывает параметр pvtType out.

Чтобы получить строковую форму типа CIM для свойства, необходимо получить указатель IWbemQualifierSet для свойства и получить квалификатор Cimtype . Этот квалификатор представляет собой строковую форму типа CIM, например sint32 и CIM_SINT32, которая является числовой константой.

Примечание При создании нового объекта с помощью IWbemClassObject::SpawnInstance важно отметить, что некоторые системные свойства не задаются, пока объект не будет записан в инструментарий управления Windows (WMI). Во всех случаях IWbemClassObject::Get получает доступ к запрошенным системным свойству, но возвращаемый variant может содержать VT_NULL.
 

Примеры

Подробное обсуждение и пример создания запросов в C++ и WMI см. в статье Создание запросов WMI в C++ в CodeProject.

В следующем примере C++ показано, как получить имя класса CIM из объекта с помощью системного свойства __CLASS. Для компиляции кода требуются следующие #include операторы и ссылки.
#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);



Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header wbemcli.h (включая Wbemidl.h)
Библиотека WbemUuid.lib
DLL CIMWin32.dll; Esscli.dll; Fastprox.dll; FrameDyn.dll; FrameDynOS.dll; Krnlprov.dll; Ncprov.dll; Wbemcore.dll; Wbemess.dll; Wmipiprt.dll

См. также раздел

IWbemClassObject

IWbemClassObject::GetPropertyQualifierSet

Квалификаторы WMI

Системные классы WMI

Свойства системы WMI