IEnumWbemClassObject 接口 (wbemcli.h)
IEnumWbemClassObject 接口用于枚举公共信息模型 (CIM) 对象,类似于标准 COM 枚举器。
从对以下方法的调用接收 IEnumWbemClassObject 类型的对象:
- IWbemServices::ExecQuery
- IWbemServices::CreateInstanceEnum
- IWbemServices::CreateClassEnum
- IWbemServices::ExecNotificationQuery
继承
IEnumWbemClassObject 接口继承自 IUnknown 接口。 IEnumWbemClassObject 也有以下类型的成员:
方法
IEnumWbemClassObject 接口具有这些方法。
IEnumWbemClassObject::Clone IEnumWbemClassObject::Clone 方法会生成整个枚举器的逻辑副本,并保留其在枚举中的当前位置。 |
IEnumWbemClassObject::Next 使用 IEnumWbemClassObject::Next 方法可获取一个或多个从枚举的当前位置开始的对象。 |
IEnumWbemClassObject::NextAsync 当需要对接收器的对象进行受控异步检索时,请使用 NextAsync 方法。 |
IEnumWbemClassObject::Reset IEnumWbemClassObject::Reset 方法将枚举序列重置回开头。 由于 CIM 对象是动态的,因此调用此方法不一定返回之前获取的相同对象列表。 |
IEnumWbemClassObject::Skip 可以使用 IEnumWbemClassObject::Skip 方法将枚举中的当前位置向前移动指定数量的对象。 此外,这会影响对 NextAsync 的后续调用,但不会影响从 NextAsync 开始的挂起传递。 |
注解
IEnumWbemClassObject 是从 WMI 查询返回的对象,用于枚举返回的值。 有关如何使用此类的详细信息,请参阅 查询 WMI 和 枚举 WMI。
示例
以下 C++ 代码示例介绍如何检索 IEnumWbemClassObject。
void ExecQuerySync(IWbemServices *pSvc)
{
// Query for all users and groups.
BSTR Language = SysAllocString(L"WQL");
BSTR Query = SysAllocString(L"SELECT * FROM __Namespace");
// Initialize the IEnumWbemClassObject pointer.
IEnumWbemClassObject *pEnum = 0;
// Issue the query.
HRESULT hRes = pSvc->ExecQuery(
Language,
Query,
WBEM_FLAG_FORWARD_ONLY, // Flags
0, // Context
&pEnum
);
SysFreeString(Query);
SysFreeString(Language);
if (hRes != 0)
{
printf("Error\n");
return;
}
ULONG uTotal = 0;
// Retrieve the objects in the result set.
for (;;)
{
IWbemClassObject *pObj = 0;
ULONG uReturned = 0;
hRes = pEnum->Next(
0, // Time out
1, // One object
&pObj,
&uReturned
);
uTotal += uReturned;
if (uReturned == 0)
break;
// Use the object.
// ...
// Release it.
// ===========
pObj->Release(); // Release objects not owned.
}
// All done.
pEnum->Release();
}
要求
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | wbemcli.h (包括 Wbemidl.h) |