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
成功后,为此参数分配限定符的正确类型和值,并在 pVal 上调用 VariantInit 函数。 当不需要值时,调用方负责在 pVal 上调用 VariantClear。 如果出现错误,则不会修改 pVal 指向的值。 如果将未初始化的 pVal 值传递给方法,则调用方必须检查该方法的返回值,并且仅在该方法成功时调用 VariantClear。
[out, optional] pType
可以为 NULL。 如果不为 NULL,则接收属性的 CIM 类型,即 CIM 类型的常量之一,例如 CIM_SINT32、 CIM_STRING等。 有关这些值的详细信息,请参阅 CIMTYPE_ENUMERATION。 这表示打包到 VARIANT 中的属性值的 CIM 语义。
[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,后者是一个数值常量。
示例
有关使用 C++ 和 WMI 进行查询的扩展讨论和示例,请参阅 CodeProject 上的 在 C++ 中生成 WMI 查询 。
下面的 C++ 示例演示如何使用系统属性__CLASS从对象检索 CIM 类名称 。 代码需要以下 #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 |
标头 | wbemcli.h (包括 Wbemidl.h) |
Library | WbemUuid.lib |
DLL | CIMWin32.dll;Esscli.dll;Fastprox.dll;FrameDyn.dll;FrameDynOS.dll;Krnlprov.dll;Ncprov.dll;Wbemcore.dll;Wbemess.dll;Wmipiprt.dll |