勇芳软件工作室.汉化:  Windows Management Instrumentation > COM API for WMI > Interfaces > IWbemClassObject >

Get Method

Previous pageReturn to chapter overviewNext page

描述

 

IWbemClassObject.Get方法检索指定的属性值(如果存在)。此方法也可以返回系统属性。

 

C++ 语法

 

HRESULT Get(

[in]             LPCWSTR wszName,

[in]             LONG lFlags,

[out]            VARIANT *pVal,

[out, optional]  CIMTYPE *pvtType,

[out, optional]  LONG *plFlavor

);

 

PowerBASIC 语法

 

METHOD Get ( _

BYREF wszName AS WSTRINGZ, _

BYVAL lFlags AS LONG, _

BYREF pVal AS VARIANT, _

BYREF pvtType AS LONG, _

BYREF plFlavor AS LONG _

) AS LONG

 

参数

 

wszName

 

所需属性的名称。它被视为只读。

 

lFlags

 

保留。该参数必须为0(零)。

 

pVal

 

成功后,为该限制符分配正确的类型和值,并在PVAL上调用VariantInit函数。如果有错误,PVAL指向的值不会被修改。

 

pvtType

 

可以为NULL。如果它不为NULL,它将接收属性的CIM类型,即CIM类型常量之一,如CIM_SINT32CIM_STRING等等。有关这些值的更多信息,请参阅CIMTYPE_ENUMERATION.这表示包含在VARIANT中的属性值的CIM语义。

 

plFlavor

 

可以为NULL。如果不为NULL,则指向的LONG值将接收有关该属性的来源的信息。

 

含义

WBEM_FLAVOR_ORIGIN_SYSTEM

该属性是一个标准的系统属性。

WBEM_FLAVOR_ORIGIN_PROPAGATED

仅限课程该属性从父类继承。

WBEM_FLAVOR_ORIGIN_LOCAL

仅限课程该属性属于派生的子类。

WBEM_FLAVOR_ORIGIN_PROPAGATED

仅适用于实例。该属性从父类继承,但在实例级别尚未修改。

WBEM_FLAVOR_ORIGIN_LOCAL

仅适用于实例。该属性在实例级别—修改,即已提供值,或修饰符已添加或修改。

 

返回值

 

此方法返回一个HRESULT,指示方法调用的状态。下表列出了HRESULT中包含的值。

 

退货代码

描述

WBEM_E_FAILED

有一般的失败。

WBEM_E_INVALID_PARAMETER

一个或多个参数无效。

WBEM_S_NO_ERROR

呼叫成功。

WBEM_E_NOT_FOUND

找不到指定的属性。

WBEM_E_OUT_OF_MEMORY

没有足够的内存来完成操作。

 

示例代码

 

以下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);

 

备注

 

如果属性的类型是对象路径,日期/时间字符串或其他特殊类型,则VARIANT中返回的值不包含足够的信息来标识真实类型。pvtTypeda输出参数指示。

 

要获取属性的公共信息模型(CIM)类型的字符串形式,必须获取属性的IWbemQualifierSet指针,并检索Cimtype限定符。该限定符是CIM类型的字符串形式,例如SINT32对CIM_SINT32,它是一个数字常量。

 

注意使用IWbemClassObject.SpawnInstance创建新对象时,请注意,在将对象写入Windows管理规范(WMI)之前,不会设置某些系统属性。在所有情况下,IWbemClassObject.Get成功访问请求的系统属性,但返回的VARIANT可能包含VT_NULL。

 

要求

 

客户

需要Windows Vista,Windows XP,Windows 2000 Professional,Windows NT Workstation 4.0 SP4及更高版本,Windows Me,Windows 98或Windows 95。

服务器

需要Windows Server 2008,Windows Server 2003,Windows 2000 Server或Windows NT Server 4.0 SP4及更高版本。

在Wbemcli.inc中声明。

DLL

需要Cimwin32.dll。

需要Esscli.dll。

需要Evntrprv.dll。

需要Fastprox.dll。

需要Framedyn.dll。

需要Krnlprov.dll。

需要Ncprov.dll。

需要Wbemcore.dll。

需要Wbemess.dll。

需要Wmipiprt.dll。