IWbemClassObject::GetNames 方法 (wbemcli.h)

IWbemClassObject::GetNames 方法检索对象中属性的名称。 此外,根据用户提供的选择条件,它可以检索所有或部分属性。 然后,可以通过对每个名称使用 IWbemClassObject::Get 来访问这些属性。 此方法还可以返回 系统属性

语法

HRESULT GetNames(
  [in]  LPCWSTR   wszQualifierName,
  [in]  long      lFlags,
  [in]  VARIANT   *pQualifierVal,
  [out] SAFEARRAY **pNames
);

参数

[in] wszQualifierName

可以为 NULL 的参数。 如果不是 NULL,则它必须指向有效的 LPCWSTR ,指定作为筛选器的一部分运行的限定符名称。 这是以只读方式处理的。 有关详细信息,请参阅“备注”。

[in] lFlags

有关详细信息,请参阅“备注”。

[in] pQualifierVal

可以为 NULL 的参数。 如果不是 NULL,则必须指向初始化为筛选器值的有效 VARIANT 结构。 此 VARIANT 由 方法处理为只读。 因此,如果需要,调用方必须对其进行 调用 VariantClear 。 有关详细信息,请参阅“备注”。

[out] pNames

不能为 NULL 的参数,但在输入时,此参数必须指向 NULL。 始终分配新的 SAFEARRAY 结构,并将指针设置为指向该结构。 返回的数组可以有 0 个元素,但在 WBEM_S_NO_ERROR 返回时始终分配。 出错时,不会返回新的 SAFEARRAY 结构。

返回值

此方法返回指示方法调用状态的 HRESULT。 以下列表列出了 HRESULT 中包含的值。 有关常规 HRESULT 值,请参阅 系统错误代码

注解

返回的名称由标志和参数的组合控制。 例如,可以指定所有属性的所有名称,或者只能指定键属性,等等。 主筛选器在 lFlags 参数中指定;其他参数因它而异。

标志值为位字段,可以组合使用。 以下每个组中的一个标志可以与其他组中的一个标志组合使用。 组中的标志值是互斥的。

组 1 标志 说明
WBEM_FLAG_ALWAYS 返回所有属性名称。 不使用 strQualifierNamepQualifierVal 参数。
WBEM_FLAG_ONLY_IF_TRUE 仅返回具有 由参数 strQualifierName 指定的名称的限定符的属性。 如果使用此标志,则必须指定 strQualifierName
WBEM_FLAG_ONLY_IF_FALSE 仅返回没有参数 strQualifierName 所指定名称的限定符的属性。 如果使用此标志,则必须指定 strQualifierName
WBEM_FLAG_ONLY_IF_IDENTICAL 仅返回具有参数 QualifierName 所指定名称的限定符的属性,并且其值也与 pQualifierVal 指向的 VARIANT 结构指定的值相同。 如果使用此标志,则必须同时指定 QualifierNamepQualifierVal
 
组 2 标志 说明
WBEM_FLAG_KEYS_ONLY 仅返回一个或多个定义键的属性的名称。
WBEM_FLAG_REFS_ONLY 仅返回作为对象引用的属性名称。
 
组 3 标志 说明
WBEM_FLAG_LOCAL_ONLY 仅返回属于派生最多的类的属性名称。 从父类或父类中排除属性。
WBEM_FLAG_PROPAGATED_ONLY 仅返回属于父类或父类的属性名称。
WBEM_FLAG_SYSTEM_ONLY 仅返回 系统属性
WBEM_FLAG_NONSYSTEM_ONLY 仅返回不是系统属性的属性名称。
 

在没有任何属性与指定筛选器匹配的情况下返回空列表不是错误。

有关使用 BSTR 值的 SAFEARRAY 结构的详细信息,请参阅检索 WMI 实例的一部分

要求

   
最低受支持的客户端 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

另请参阅

IWbemClassObject

IWbemClassObject::BeginEnumeration

IWbemClassObject::Get

WBEM_CONDITION_FLAG_TYPE

WMI 系统属性