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.

Note Il ne s’agit pas d’une erreur pour que l’énumérateur retourné ait 0 (zéro) éléments.
 

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

Voir aussi

IEnumWbemClassObject

IWbemServices

IWbemServices::CreateClassEnumAsync

Récupération d’un code d’erreur