Une fois une collection récupérée, on utilise une interface IEnumVariant qui implémente des fonctions d’énumération sur des données de type variant.
Elle nécessite le transtypage suivant sur un objet de type collection, ici WmiObjectSet :
ObjectEnumerator:= (WmiObjectSet._NewEnum) as IEnumVariant;
La méthode .Next permet une itération pour un ou plusieurs éléments. Elle renvoie S_OK tant qu’il reste des éléments à extraire.
L’élément récupéré de type OleVariant doit à son tour être transtypé pour permettre de le manipuler correctement :
WmiObject := IUnknown(ArrayVariant) as SWBemObject;
Ici l’objet ArrayVariant est transtypé vers la variable WmiObject de type SWBemObject.
On peut ensuite utiliser les propriétés et méthodes de la variable WmiObject .
Le transtypage de l’élément récupéré doit correspondre au type d’objet de la collection, par exemple pour une variable WmiProperty de type SWBemProperty :
WmiProperty:=IUnknown(ArrayVariant) as SWBemProperty;
Partager