Interfaz IEnumWbemClassObject (wbemcli.h)
La interfaz IEnumWbemClassObject se usa para enumerar objetos common Information Model (CIM) y es similar a un enumerador COM estándar.
Se recibe un objeto de tipo IEnumWbemClassObject de las llamadas a los métodos siguientes:
- IWbemServices::ExecQuery
- IWbemServices::CreateInstanceEnum
- IWbemServices::CreateClassEnum
- IWbemServices::ExecNotificationQuery
Herencia
La interfaz IEnumWbemClassObject hereda de la interfaz IUnknown . IEnumWbemClassObject también tiene estos tipos de miembros:
Métodos
La interfaz IEnumWbemClassObject tiene estos métodos.
IEnumWbemClassObject::Clone El método IEnumWbemClassObject::Clone realiza una copia lógica de todo el enumerador, conservando su posición actual en una enumeración. |
IEnumWbemClassObject::Next Use el método IEnumWbemClassObject::Next para obtener uno o varios objetos empezando por la posición actual de una enumeración. |
IEnumWbemClassObject::NextAsync Use el método NextAsync cuando se requiera una recuperación asincrónica controlada de objetos en un receptor. |
IEnumWbemClassObject::Reset El método IEnumWbemClassObject::Reset restablece una secuencia de enumeración al principio. Dado que los objetos CIM son dinámicos, llamar a este método no devuelve necesariamente la misma lista de objetos que obtuvo anteriormente. |
IEnumWbemClassObject::Skip Puede usar el método IEnumWbemClassObject::Skip para mover la posición actual en una enumeración por delante por un número especificado de objetos. Además, esto afecta a las llamadas posteriores a NextAsync, pero no afecta a las entregas pendientes iniciadas con NextAsync. |
Comentarios
IEnumWbemClassObject es el objeto devuelto de una consulta WMI y se usa para enumerar los valores devueltos. Para obtener más información sobre cómo usar esta clase, vea Consulta de WMI y Enumeración de WMI.
Ejemplos
En el ejemplo de código de C++ siguiente se describe cómo recuperar un 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();
}
Requisitos
Cliente mínimo compatible | Windows Vista |
Servidor mínimo compatible | Windows Server 2008 |
Plataforma de destino | Windows |
Encabezado | wbemcli.h (include Wbemidl.h) |