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_QUERYGetValuesForProp (“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

另请参阅

CFrameworkQuery

Provider::ExecQuery