Compartilhar via


Qualificadores BitMap e BitValue

Um bitmap é um inteiro vinculado a uma propriedade com os qualificadores BitMap e BitValue. Cada bit do valor da propriedade atua como um índice na matriz de valores na lista BitValue. Como vários bits no valor da propriedade podem estar "ativados" ao mesmo tempo, é possível usar um único valor de propriedade para indicar vários valores simultâneos.

Por exemplo, o exemplo de código MOF a seguir estabelece a propriedade FileType como tendo os qualificadores bitMap e BitValues. Ele ainda estabelece que o bit de ordem baixa (bit 0) corresponde ao valor "Somente Leitura". O bit seguinte (bit 1) corresponde a "Oculto" e assim por diante. (Nem todos os bits devem ser significativos. Neste sistema de oito bits, os dois bits de alta ordem, 6 e 7, não têm significado.)

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

Se a propriedade FileType relatar o valor 7 (bits 0000 0111), o arquivo será "Somente Leitura", "Sistema" e "Oculto". Se a propriedade FileType relatar o valor 18 (0x12, bits 0001 0010), ele será um subdiretório oculto.

Há dois tipos diferentes de bitmaps usando o código MOF:

  • Bits significativos consecutivos começando com o bit de ordem baixa (bit 0)

    Você pode definir uma matriz de valores de bit sem especificar explicitamente os bits significativos se os bits significativos começarem com o bit de ordem baixa (bit 0) e progredirem para cima sem interrupção por meio de todos os itens na matriz bitValue. O exemplo de código MOF a seguir executa a mesma função que o exemplo anterior.

    [BitValues("Read Only",
               "Hidden",
               "System",
               "Volume Label",
               "Subdirectory",
               "Archive")]
    byte FileType;
    
  • Bit significativo precedido por um bit não significativo

    Se o bit de baixa ordem for insignificante ou a sequência de bits significativos não for contínua, você deverá especificar os qualificadores BitMap e BitValues. O exemplo de código MOF a seguir mostra uma situação em que o bit de baixa ordem não é significativo e há uma lacuna na sequência de bits significativos.

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

    Nesse caso, definir o bit de ordem baixa (bit 0) não tem nenhum significado e é ignorado. No entanto, a configuração do bit 1 (0x2) indica que essa mensagem de email está sinalizada para acompanhamento, a configuração do bit 4 (0x8) indica que um recibo de entrega deve ser enviado ao remetente quando a mensagem de email chegou à caixa de correio do destinatário e a configuração do bit 5 (0x10) especifica que um recibo de leitura deve ser enviado ao remetente quando a mensagem de email é aberta pelo destinatário. Definir todos os três bits significativos (0x1A) especifica todas as três condições para a mensagem de email.

Observações

Ao decidir se deseja usar o /BitMap ou /Values qualifiers, determine se qualquer um dos valores indicados pode ocorrer simultaneamente. Se vários valores simultâneos puderem existir, você deverá usar BitMap/BitValues. Se todos os valores forem mutuamente exclusivos, você deverá usar os ValueMap/Values qualifiers.

de ValueMap e Value Qualifiers