CFrameworkQuery::GetValuesForProp (LPCWSTR,std.vector<_bstr_t>&) 方法 (frquery.h)
[CFrameworkQuery 类是 WMI 提供程序框架的一部分,现在视为处于最终状态,对于影响这些库的非安全性相关问题,将不会提供进一步的开发、增强或更新。 所有新开发均应使用 MI API。]
GetValuesForProp 方法返回该属性在查询中显示时由该属性生成的所有值。
例如,调用 GetValuesForProp(L"Name", sa) 将返回数组 sa,其中包含需要发送回实例以满足查询的所有“Name”值。 如果 sa 包含 {"a","b"},则必须发送回“Name=a”的所有实例以及“Name=b”的所有实例,以完全满足查询。
如果对“Name”的约束不够限制,则返回空 sa 数组。
语法
HRESULT GetValuesForProp(
LPCWSTR wszPropName,
std::vector<_bstr_t>& vectorNames
);
参数
wszPropName
目标属性的名称。
vectorNames
由 wszPropName 指定的属性的值数组。
返回值
此方法在成功时返回 WBEM_S_NO_ERROR ,在失败时 返回WBEM_E_FAILED或任何其他 HRESULT 错误代码。
注解
给定属性名称后,此方法返回 CHStringArray 或矢量容器中的所有结果值。 矢量容器包含包含结果值的 _bstr_t 对象。
例如,以下列表列出了在 wszPropName 设置为“Drive”的情况下调用时,GetValuesForProp 将为各种查询返回的值。
查询 | 返回值 | 结果 |
---|---|---|
SELECT * FROM Win32_Directory
WHERE 驱动器 = “C:” |
WBEM_S_NO_ERROR | C: |
SELECT * FROM Win32_Directory
WHERE 驱动器 = “C:” OR FileSize = 256 |
WBEM_S_NO_ERROR | 无结果; aszNames 为空。 |
SELECT * FROM Win32_Directory
WHERE Drive = “C:” OR Drive = “D:” |
WBEM_S_NO_ERROR | C:、D: |
SELECT * FROM Win32_Directory
WHERE 驱动器 <> “C:” |
WBEM_S_NO_ERROR | 无结果; aszNames 为空。 |
SELECT * FROM Win32_Directory
WHERE Path = “\DOS” |
WBEM_S_NO_ERROR | 无结果; aszNames 为空。 |
GetValuesForProp 方法仅支持字符串类型。
以下查询,然后调用 GetValuesForProp (“PropInt”,值) ,返回 WBEM_E_INVALID_QUERY 而 GetValuesForProp (“PropStr”,值) 返回 S_OK。
SELECT * FROM Test WHERE PropInt = 32 AND PropStr = "a"
要求
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | frquery.h (包括 FwCommon.h) |
Library | FrameDyn.lib |
DLL | FrameDynOS.dll;FrameDyn.dll |