Next 函数
检索某个枚举中的下一个属性,该枚举以对 BeginEnumeration 的调用开始。
注意
此 API 仅供内部使用。 不应从开发人员代码中使用。
语法
HRESULT Next (
[in] int vFunc,
[in] IWbemClassObject* ptr,
[in] LONG lFlags,
[out] BSTR* pstrName,
[out] VARIANT* pVal,
[out] CIMTYPE* pvtType,
[out] LONG* plFlavor
);
参数
vFunc
[in] 未使用此参数。
ptr
[in] 指向 IWbemClassObject 实例的指针。
lFlags
[in] 保留。 此参数必须为 0。
pstrName
[out] 一个包含属性名称的新 BSTR
。 如果该名称不是必需的,可以将此参数设置为 null
。
pVal
[out] 用属性的值填充的 VARIANT
。 如果不需要该值,可以将此参数设置为 null
。 如果函数返回错误代码,则传递给 pVal
的 VARIANT
会保持不变。
pvtType
[out] 指向 CIMTYPE
变量(属性类型所放置到的 LONG
)的指针。 此属性的值可以是 VT_NULL_VARIANT
,在这种情况下,需要确定属性的实际类型。 此参数也可以为 null
。
plFlavor
[out] null
或一个值,该值接收有关属性来源的信息。 请参阅 [注解] 部分了解可能的值。
返回值
此函数返回的以下值是在 WbemCli.h 头文件中定义的,你也可以在代码中将这些值定义为常数:
常数 | Value | 说明 |
---|---|---|
WBEM_E_FAILED |
0x80041001 | 发生一般性故障。 |
WBEM_E_INVALID_PARAMETER |
0x80041008 | 参数无效。 |
WBEM_E_UNEXPECTED |
0x8004101d | 没有对 BeginEnumeration 函数的调用。 |
WBEM_E_OUT_OF_MEMORY |
0x80041006 | 内存不足,无法开始新的枚举。 |
WBEM_E_TRANSPORT_FAILURE |
0x80041015 | 当前进程与 Windows Management 之间的远程过程调用失败。 |
WBEM_S_NO_ERROR |
0 | 函数调用成功。 |
WBEM_S_NO_MORE_DATA |
0x40005 | 枚举中没有更多属性。 |
注解
此函数包装对 IWbemClassObject::Next 方法的调用。
此方法还返回系统属性。
如果属性的基础类型是对象路径、日期或时间或其他特殊类型,则返回的类型包含的信息将不足。 调用方必须检查指定属性的 CIMTYPE
,以确定该属性是对象引用、日期或时间还是其他特殊类型。
如果 plFlavor
不是 null
,则 LONG
值会接收有关属性来源的信息,如下所示:
常数 | Value | 说明 |
---|---|---|
WBEM_FLAVOR_ORIGIN_SYSTEM |
0x40 | 属性是标准系统属性。 |
WBEM_FLAVOR_ORIGIN_PROPAGATED |
0x20 | 对于类:属性继承自父类。 对于实例:属性虽然继承自父类,但未被实例修改。 |
WBEM_FLAVOR_ORIGIN_LOCAL |
0 | 对于类:属性属于派生类。 对于实例:属性将被实例修改;即,会提供某个值,或添加或修改某个限定符。 |
要求
平台:请参阅系统要求。
标头:WMINet_Utils.idl
.NET Framework 版本:自 4.7.2 起可用