Interface IEnumWbemClassObject (wbemcli.h)
L’interface IEnumWbemClassObject est utilisée pour énumérer les objets CIM ( Common Information Model ) et est similaire à un énumérateur COM standard.
Un objet de type IEnumWbemClassObject est reçu à partir d’appels aux méthodes suivantes :
- IWbemServices::ExecQuery
- IWbemServices::CreateInstanceEnum
- IWbemServices::CreateClassEnum
- IWbemServices::ExecNotificationQuery
Héritage
L’interface IEnumWbemClassObject hérite de l’interface IUnknown . IEnumWbemClassObject a également les types de membres suivants :
Méthodes
L’interface IEnumWbemClassObject a ces méthodes.
IEnumWbemClassObject::Clone La méthode IEnumWbemClassObject::Clone effectue une copie logique de l’énumérateur entier, en conservant sa position actuelle dans une énumération. |
IEnumWbemClassObject::Next Utilisez la méthode IEnumWbemClassObject::Next pour obtenir un ou plusieurs objets commençant à la position actuelle dans une énumération. |
IEnumWbemClassObject::NextAsync Utilisez la méthode NextAsync lorsqu’une récupération asynchrone contrôlée d’objets vers un récepteur est requise. |
IEnumWbemClassObject::Reset La méthode IEnumWbemClassObject::Reset réinitialise une séquence d’énumération au début. Étant donné que les objets CIM sont dynamiques, l’appel de cette méthode ne retourne pas nécessairement la même liste d’objets que vous avez obtenue précédemment. |
IEnumWbemClassObject::Skip Vous pouvez utiliser la méthode IEnumWbemClassObject::Skip pour déplacer la position actuelle dans une énumération d’un nombre spécifié d’objets. En outre, cela affecte les appels suivants à NextAsync, mais cela n’affecte pas les remises en attente commencées avec NextAsync. |
Remarques
IEnumWbemClassObject est l’objet retourné à partir d’une requête WMI et est utilisé pour énumérer les valeurs retournées. Pour plus d’informations sur l’utilisation de cette classe, consultez Interrogation de WMI et Énumération de WMI.
Exemples
L’exemple de code C++ suivant décrit comment récupérer 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();
}
Configuration requise
Client minimal pris en charge | Windows Vista |
Serveur minimal pris en charge | Windows Server 2008 |
Plateforme cible | Windows |
En-tête | wbemcli.h (include Wbemidl.h) |