Méthode IWbemServices::CreateClassEnum (wbemcli.h)
La méthode IWbemServices::CreateClassEnum retourne un énumérateur pour toutes les classes qui répondent aux critères de sélection. L’appelant doit utiliser l’énumérateur retourné pour récupérer les définitions de classe, en appelant IEnumWbemClassObject::Next pour obtenir chaque classe ou chaque bloc de classes. Elle se termine en appelant IEnumWbemClassObject::Release.
Syntaxe
HRESULT CreateClassEnum(
[in] const BSTR strSuperclass,
[in] long lFlags,
[in] IWbemContext *pCtx,
[out] IEnumWbemClassObject **ppEnum
);
Paramètres
[in] strSuperclass
Si ce n’est pas NULL ou vide, spécifie un nom de classe parent. Seules les classes qui sont des sous-classes de cette classe sont retournées dans l’énumérateur. S’il est NULL ou vide et que lFlags est WBEM_FLAG_SHALLOW, seules les classes de niveau supérieur sont retournées (c’est-à-dire les classes qui n’ont pas de classe parente). S’il est NULL ou vide et que lFlags est WBEM_FLAG_DEEP, toutes les classes de l’espace de noms sont retournées.
[in] lFlags
Les indicateurs suivants affectent le comportement de cette méthode. La valeur suggérée pour ce paramètre est WBEM_FLAG_RETURN_IMMEDIATELY et WBEM_FLAG_FORWARD_ONLY pour de meilleures performances.
WBEM_FLAG_USE_AMENDED_QUALIFIERS
Si cet indicateur est défini, WMI récupère les qualificateurs modifiés stockés dans l’espace de noms localisé des paramètres régionaux de la connexion actuelle. S’il n’est pas défini, seuls les qualificateurs stockés dans l’espace de noms immédiat sont récupérés.
WBEM_FLAG_DEEP
Cet indicateur force l’énumération à inclure toutes les sous-classes de la hiérarchie, mais pas cette classe.
WBEM_FLAG_SHALLOW
Cet indicateur force l’énumération à inclure uniquement les instances pures de cette classe, à l’exclusion de toutes les instances de sous-classes qui fournissent des propriétés introuvables dans cette classe.
WBEM_FLAG_RETURN_IMMEDIATELY
Cet indicateur provoque un appel semi-synchrone. Pour plus d’informations, consultez Appel d’une méthode.
WBEM_FLAG_FORWARD_ONLY
Cet indicateur entraîne le retour d’un énumérateur avant uniquement. En règle générale, les énumérateurs avant uniquement sont plus rapides et utilisent moins de mémoire que les énumérateurs conventionnels, mais ils n’autorisent pas les appels à cloner ou réinitialiser.
WBEM_FLAG_BIDIRECTIONAL
Cet indicateur oblige WMI à conserver les pointeurs vers les objets de l’énumération jusqu’à ce que le client libère l’énumérateur. Étant donné que les pointeurs d’objet ne sont pas libérés immédiatement, cette méthode peut échouer avec un HRESULT de WBEM_E_OUT_OF_MEMORY si le client tente d’énumérer un grand nombre d’objets. Cet indicateur est implicite par défaut si vous définissez le paramètre lFlags sur 0 (zéro).
[in] pCtx
Généralement NULL. Sinon, il s’agit d’un pointeur vers un objet IWbemContext qui peut être utilisé par le fournisseur qui fournit les classes demandées. Les valeurs de l’objet de contexte doivent être spécifiées dans la documentation du fournisseur. Pour plus d’informations sur ce paramètre, consultez Effectuer des appels à WMI.
[out] ppEnum
Reçoit le pointeur vers l’énumérateur. L’objet retourné a un nombre de références positif. L’appelant doit appeler Release sur le pointeur quand il n’est plus nécessaire.
Valeur retournée
Cette méthode retourne un HRESULT qui indique la status d’un appel de méthode. La liste suivante répertorie la valeur contenue dans un HRESULT.
En cas d’échec, vous pouvez obtenir les informations disponibles à partir de la fonction COM GetErrorInfo.
Des codes d’erreur spécifiques à COM peuvent également être retournés si des problèmes réseau vous font perdre la connexion à distance à Windows Management.
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) |
Bibliothèque | Wbemuuid.lib |
DLL | Fastprox.dll; Esscli.dll; FrameDyn.dll; FrameDynOS.dll; Ntevt.dll; Stdprov.dll; Viewprov.dll; Wbemcomn.dll; Wbemcore.dll; Wbemess.dll; Wbemsvc.dll; Wmipicmp.dll; Wmidcprv.dll; Wmipjobj.dll; Wmiprvsd.dll |