Qualificateurs BitMap et BitValue

Une bitmap est un entier lié à une propriété avec les qualificateurs BitMap et BitValue. Chaque bit de la valeur de propriété agit comme un index dans le tableau de valeurs de la liste BitValue . Étant donné que plusieurs bits dans la valeur de propriété peuvent être « activés » en même temps, il est possible d’utiliser une seule valeur de propriété pour indiquer plusieurs valeurs simultanées.

Par exemple, l’exemple de code MOF suivant établit que la propriété FileType a les qualificateurs BitMap et BitValues. Il établit en outre que le bit d’ordre inférieur (bit 0) correspond à la valeur « Lecture seule ». Le bit suivant (bit 1) correspond à « Hidden », et ainsi de suite. (Tous les bits ne doivent pas être significatifs. Dans ce système à huit bits, les deux bits d’ordre élevé, 6 et 7, n’ont aucune importance.)

[BitMap("0","1","2","3","4","5"),
 BitValues("Read Only",
           "Hidden",
           "System",
           "Volume Label",
           "Subdirectory",
           "Archive")]
byte FileType;

Si la propriété FileType indique la valeur 7 (bits 0000 0111), le fichier est « Lecture seule », « Système » et « Masqué ». Si la propriété FileType indique la valeur 18 (0x12, bits 0001 0010), il s’agit d’un sous-répertoire masqué.

Il existe deux types de bitmaps utilisant du code MOF :

  • Bits significatifs consécutifs commençant par le bit d’ordre inférieur (bit 0)

    Vous pouvez définir un tableau de valeurs de bits sans spécifier explicitement les bits significatifs si les bits significatifs commencent par le bit d’ordre faible (bit 0) et progressent vers le haut sans interruption à travers tous les éléments du tableau BitValue . L'exemple de code MOF suivant exécute la même fonction que l'exemple précédent.

    [BitValues("Read Only",
               "Hidden",
               "System",
               "Volume Label",
               "Subdirectory",
               "Archive")]
    byte FileType;
    
  • Bit significatif précédé d’un bit non significatif

    Si le bit de faible ordre est insignifiant ou si la séquence de bits significatifs n’est pas continue, vous devez spécifier les qualificateurs BitMap et BitValues. L’exemple de code MOF suivant montre une situation dans laquelle le bit de faible ordre n’est pas significatif et où il existe un écart dans la séquence de bits significatifs.

    [BitMap("1","4","5"),
     BitValues("Follow-up","Delivery receipt","Read receipt")]
    sint32 MailOptions;
    

    Dans ce cas, la définition du bit de faible ordre (bit 0) n’a aucune importance et est ignorée. Toutefois, la définition du bit 1 (0x2) indique que ce message électronique est marqué pour le suivi, la définition du bit 4 (0x8) indique qu’un reçu de remise doit être envoyé à l’expéditeur lorsque le message électronique est arrivé à la boîte aux lettres du destinataire, et la définition du bit 5 (0x10) spécifie qu’un accusé de lecture doit être envoyé à l’expéditeur lorsque le message électronique est ouvert par le destinataire. La définition des trois bits significatifs (0x1A) spécifie les trois conditions pour le message électronique.

Notes

Lorsque vous décidez d’utiliser les qualificateurs BitMap/BitValues ou ValueMap /Values, déterminez si l’une des valeurs indiquées peut se produire simultanément. Si plusieurs valeurs simultanées peuvent exister, vous devez utiliser BitMap/BitValues. Si toutes les valeurs s’excluent mutuellement, vous devez utiliser les qualificateurs valeurs ValueMap/.

ValueMap et Qualificateur de valeurs