Interface IEnumWbemClassObject (wbemcli.h)
A interface IEnumWbemClassObject é usada para enumerar objetos CIM ( Common Information Model ) e é semelhante a um enumerador COM padrão.
Um objeto do tipo IEnumWbemClassObject é recebido de chamadas para os seguintes métodos:
- IWbemServices::ExecQuery
- IWbemServices::CreateInstanceEnum
- IWbemServices::CreateClassEnum
- IWbemServices::ExecNotificationQuery
Herança
A interface IEnumWbemClassObject herda da interface IUnknown . IEnumWbemClassObject também tem estes tipos de membros:
Métodos
A interface IEnumWbemClassObject tem esses métodos.
IEnumWbemClassObject::Clone O método IEnumWbemClassObject::Clone faz uma cópia lógica de todo o enumerador, mantendo sua posição atual em uma enumeração. |
IEnumWbemClassObject::Next Use o método IEnumWbemClassObject::Next para obter um ou mais objetos começando na posição atual em uma enumeração. |
IEnumWbemClassObject::NextAsync Use o método NextAsync quando for necessária uma recuperação assíncrona controlada de objetos em um coletor. |
IEnumWbemClassObject::Reset O método IEnumWbemClassObject::Reset redefine uma sequência de enumeração de volta ao início. Como os objetos CIM são dinâmicos, chamar esse método não necessariamente retorna a mesma lista de objetos obtidos anteriormente. |
IEnumWbemClassObject::Skip Você pode usar o método IEnumWbemClassObject::Skip para mover a posição atual em uma enumeração à frente por um número especificado de objetos. Além disso, isso afeta as chamadas subsequentes para NextAsync, mas não afeta as entregas pendentes iniciadas com NextAsync. |
Comentários
IEnumWbemClassObject é o objeto retornado de uma consulta WMI e é usado para enumerar por meio dos valores retornados. Para obter mais informações sobre como usar essa classe, consulte Consultando WMI e Enumerando WMI.
Exemplos
O exemplo de código C++ a seguir descreve como recuperar um 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 com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | wbemcli.h (inclua Wbemidl.h) |