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 | 返回所有属性名称。 不使用 strQualifierName 和 pQualifierVal 参数。 |
WBEM_FLAG_ONLY_IF_TRUE | 仅返回具有 由参数 strQualifierName 指定的名称的限定符的属性。 如果使用此标志,则必须指定 strQualifierName。 |
WBEM_FLAG_ONLY_IF_FALSE | 仅返回没有参数 strQualifierName 所指定名称的限定符的属性。 如果使用此标志,则必须指定 strQualifierName。 |
WBEM_FLAG_ONLY_IF_IDENTICAL | 仅返回具有参数 QualifierName 所指定名称的限定符的属性,并且其值也与 pQualifierVal 指向的 VARIANT 结构指定的值相同。 如果使用此标志,则必须同时指定 QualifierName 和 pQualifierVal。 |
组 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 |