Квалификаторы BitMap и BitValue

Растровое изображение — это целое число, связанное со свойством с квалификаторами BitMap и BitValue . Каждый бит значения свойства выступает в качестве индекса в массиве значений в списке BitValue . Так как в значении свойства несколько битов одновременно могут быть "включено", можно использовать одно значение свойства для указания нескольких параллельных значений.

Например, следующий пример кода MOF устанавливает свойство FileType как квалификаторы BitMap и BitValues . Далее устанавливается, что бит с низким порядком (бит 0) соответствует значению "Только для чтения". Следующий бит (бит 1) соответствует "Скрытый" и т. д. (Не все биты должны быть значительными. В этой восьмибитной системе два бита высокого порядка, 6 и 7, не имеют значения.)

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

Если свойство FileType сообщает значение 7 (бит 0000 0111), файл имеет значение "Только чтение", "Система" и "Скрыто". Если свойство FileType сообщает значение 18 (0x12, биты 0001 0010), это скрытый подкаталог.

Существует два разных типа растровых изображений с помощью кода MOF:

  • Последовательные значительные биты, начиная с бита низкого порядка (бит 0)

    Можно определить массив битовых значений без явного указания значимых битов, если значительные биты начинаются с бита низкого порядка (бит 0) и прогресса вверх без прерывания всех элементов в массиве BitValue . В следующем примере кода MOF выполняется та же функция, что и в предыдущем примере.

    [BitValues("Read Only",
               "Hidden",
               "System",
               "Volume Label",
               "Subdirectory",
               "Archive")]
    byte FileType;
    
  • Значительный бит, предшествующий незначаемой биту

    Если бит низкого порядка незначителен или последовательность значимых битов не является непрерывной, необходимо указать квалификаторы BitMap и BitValues . В следующем примере кода MOF показана ситуация, в которой бит низкого порядка не имеет значительного значения и в последовательности значимых битов существует разрыв.

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

    В этом случае задание бита низкого порядка (бит 0) не имеет значения и игнорируется. Тем не менее, если задано значение 1 (0x2), это сообщение помечается для последующего выполнения, установка бита 4 (0x8) указывает, что уведомление о доставке должно быть отправлено отправителю при поступлении сообщения электронной почты в почтовый ящик получателя, а значение бита 5 (0x10) указывает, что уведомление о прочтении должно отправляться отправителю при открытии сообщения электронной почты получателем. Задание всех трех значимых битов (0x1A) указывает все три условия для сообщения электронной почты.

Remarks

При выборе того, следует ли использовать квалификаторы BitMapBitValues/ или ValueMapValues/, определите, может ли любое из указанных значений происходить одновременно. Если может существовать несколько параллельных значений, необходимо использовать BitMapBitValues/. Если все значения являются взаимоисключающими, следует использовать квалификаторы ValueMapValues/.

Квалификаторы ValueMap и Value