描述
IWbemClassObject.GetNames方法检索对象中属性的名称。此外,根据用户提供的选择标准,它可以检索所有或一个子集的属性。然后可以使用IWbemClassObject.Get为每个名称访问这些属性。此方法也可以返回系统属性。
C++ 语法
HRESULT GetNames( [in] LPCWSTR wszQualifierName, [in] LONG lFlags, [in] VARIANT *pQualifierValue, [out] SAFEARRAY (BSTR) **pstrNames ); |
PowerBASIC 语法
METHOD GetNames ( _ BYREF wszQualifierName AS WSTRINGZ, _ BYVAL lFlags AS LONG, _ BYREF pQualifierValue AS VARIANT, _ BYREF pstrNames AS DWORD _ ) AS LONG |
参数
wszQualifierName
一个可以为NULL的参数。如果不为NULL,则必须指向一个有效的LPCWSTR,指定作为过滤器一部分运行的限定符名称。这是以只读方式处理的。有关详细信息,请参阅备注。
lFlags
有关详细信息,请参阅备注。
pQualifierValue
一个可以为NULL的参数。如果不为NULL,则必须指向一个有效的VARIANT初始化为过滤器值。此方法将VARIANT处理为只读方式。有关详细信息,请参阅备注。
pstrNames
不能为NULL的参数,但是对于该参数,该参数必须指向NULL。始终分配新的SAFEARRAY结构,并将指针设置为指向它。返回的数组可以有0个元素,但是当WBEM_S_NO_ERROR返回时总是被分配。出现错误时,不会返回新的SAFEARRAY结构。
返回值
此方法返回一个HRESULT,表示方法调用的状态。下表列出了HRESULT中包含的值。
退货代码 |
描述 |
WBEM_E_FAILED |
已经有一般的失败。 |
WBEM_E_INVALID_PARAMETER |
一个或多个参数无效,或者指定了标志和参数的不正确组合。 |
WBEM_E_OUT_OF_MEMORY |
没有足够的内存来完成任务。 |
WBEM_S_NO_ERROR |
通话成功。 |
备注
返回的名称由标志和参数的组合控制。例如,可以指定所有属性的所有名称,或者只能指定关键属性,等等。主过滤器在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结构的更多信息,请参阅检索实例的一部分.
要求
客户 |
需要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。 |


