Description d’un qualificateur avec un type de qualificateur

Un type de qualificateur est un indicateur qui donne des informations supplémentaires sur un qualificateur. Par exemple, le type de qualificateur Restricted indique que WMI ne doit pas propager le qualificateur associé aux classes ou instances dérivées. Vous pouvez définir des types en utilisant du code MOF ou par programmation. Bien que vous puissiez décrire une variété d’effets avec des types, la finalité principale des indicateurs de type est de définir la façon dont WMI propage les qualificateurs via l’héritage.

WMI définit plusieurs types de qualificateur que vous pouvez attacher à n’importe quel qualificateur, quelle que soit l’origine du qualificateur. Toutefois, certaines types ne conviennent pas à tous les types de qualificateur. Le type ToSubClass, par exemple, convient uniquement aux qualificateurs définis pour une classe. Vous ne pouvez pas attacher ToSubClass à un qualificateur utilisé pour décrire une instance.

Vous pouvez utiliser des types afin de décrire une variété d’effets différents pour les qualificateurs. Par exemple, le type peut indiquer si un qualificateur peut être localisé. Toutefois, l’un des principaux objectifs d’un type de qualificateur est de décrire si une classe parente peut passer des qualificateurs à une sous-classe ou une instance de classe. Vous pouvez également utiliser des types pour déterminer si une propriété de classe passe un qualificateur à une propriété d’instance. Enfin, utilisez les types pour indiquer si une sous-classe peut remplacer la valeur d’origine d’un qualificateur hérité. Toutefois, les qualificateurs que vous déclarez pour une classe ou une instance ne se propagent pas aux propriétés de cette classe ou de cette instance. De plus, les types qui établissent des autorisations de remplacement sont valides uniquement si vous définissez également les types ToInstance ou ToSubClass.

Un type peut être affecté globalement à un qualificateur pour un fichier MOF entier à l’aide de la syntaxe suivante, où les espaces blancs servent de délimiteurs quand plusieurs types sont spécifiés.

Qualifier QualifierName : flavor1 <flavor2...>;

Les types globaux s’appliquent à toutes les utilisations suivantes du qualificateur dans le fichier MOF. Les instructions relatives aux types globaux peuvent figurer n’importe où dans le fichier en dehors d’un bloc de déclaration d’objet. Les types redéfinis au niveau de la classe, de l’instance ou de la propriété remplacent les déclarations de type global pour l’étendue de cet objet.

Vous ne pouvez pas définir un nouveau type. Bien que vous puissiez créer un qualificateur, utilisez uniquement les types de qualificateur existants pour décrire votre nouveau qualificateur.

Pour définir des types de qualificateur dans du code MOF

  • Déclarez les types qui décrivent un qualificateur donné après le nom du qualificateur, entre les crochets du qualificateur. Utilisez l’espace blanc en tant que délimiteur entre plusieurs types.

    L’exemple suivant montre le modèle permettant d’attacher des qualificateurs prédéfinis.

    [qualifier1 : flavor1 flavor2 flavor3, qualifier2 : flavor1]
    

Vous pouvez ajouter des types de qualificateur par programmation uniquement en C++. Cette opération n’est pas disponible dans l’API de script pour WMI. Toutefois, vous pouvez ajouter un nouveau qualificateur en appelant SWbemQualifierSet.Add.

Pour affecter un type en C++

  • Appelez la méthode IWbemQualifierSet::Put en affectant au paramètre lFlavor l’une des constantes définies pour la méthode.