BitMap- und BitValue-Qualifizierer
Eine Bitmap ist eine ganze Zahl, die mit einer Eigenschaft mit den Qualifizierern BitMap und BitValue verknüpft ist. Jedes Bit des Eigenschaftswerts fungiert als Index im Array von Werten in der BitValue-Liste. Da mehrere Bits im Eigenschaftswert gleichzeitig "on" sein können, ist es möglich, einen einzelnen Eigenschaftswert zu verwenden, um mehrere gleichzeitige Werte anzugeben.
Im folgenden MOF-Codebeispiel wird beispielsweise die FileType-Eigenschaft so festgelegt, dass sie über die Qualifizierer BitMap und BitValues verspricht. Außerdem wird festgelegt, dass das niedrige Bit (Bit 0) dem Wert "Schreibgeschützt" entspricht. Das nächste Bit (Bit 1) entspricht "Hidden" und so weiter. (Nicht alle Bits müssen von Bedeutung sein. In diesem Acht-Bit-System haben die beiden hohen Bits 6 und 7 keine Bedeutung.)
[BitMap("0","1","2","3","4","5"),
BitValues("Read Only",
"Hidden",
"System",
"Volume Label",
"Subdirectory",
"Archive")]
byte FileType;
Wenn die FileType-Eigenschaft den Wert 7 (Bits 0000 0111) meldet, lautet die Datei "Read Only", "System" und "Hidden". Wenn die FileType-Eigenschaft den Wert 18 (0x12, Bits 0001 0010) meldet, handelt es sich um ein ausgeblendetes Unterverzeichnis.
Es gibt zwei verschiedene Arten von Bitmaps, die MOF-Code verwenden:
Aufeinander folgende signifikante Bits beginnend mit dem niedrigen Bit (Bit 0)
Sie können ein Array von Bitwerten definieren, ohne explizit die signifikanten Bits anzugeben, wenn die signifikanten Bits mit dem niedrigwertigen Bit (Bit 0) beginnen und ohne Unterbrechung durch alle Elemente im BitValue-Array nach oben gehen. Im folgenden MOF-Codebeispiel wird die gleiche Funktion wie im vorherigen Beispiel verwendet.
[BitValues("Read Only", "Hidden", "System", "Volume Label", "Subdirectory", "Archive")] byte FileType;Signifikantes Bit, dem ein nicht signifikantes Bit vorangegangen ist
Wenn das niedrigwertige Bit nicht signifikant ist oder die Sequenz der signifikanten Bits nicht kontinuierlich ist, müssen Sie sowohl die BitMap- als auch die BitValues-Qualifizierer angeben. Das folgende MOF-Codebeispiel zeigt eine Situation, in der das niedrig geordnete Bit nicht signifikant ist und es eine Lücke in der Sequenz der signifikanten Bits gibt.
[BitMap("1","4","5"), BitValues("Follow-up","Delivery receipt","Read receipt")] sint32 MailOptions;In diesem Fall hat das Festlegen des niedrigen Bits (Bit 0) keine Bedeutung und wird ignoriert. Das Festlegen von Bit 1 (0x2) gibt jedoch an, dass diese E-Mail-Nachricht für die Nachbestellung gekennzeichnet ist. Das Festlegen von Bit 4 (0x8) gibt an, dass ein Zustellbeleg an den Absender gesendet werden soll, wenn die E-Mail-Nachricht im Postfach des Empfängers eingetroffen ist, und das Festlegen von Bit 5 (0x10) gibt an, dass ein Lesebeleg an den Absender gesendet werden soll, wenn die E-Mail-Nachricht vom Empfänger geöffnet wird. Das Festlegen aller drei signifikanten Bits (0x1A) gibt alle drei Bedingungen für die E-Mail-Nachricht an.
Bemerkungen
Bestimmen Sie bei der Entscheidung, ob die BitMap / BitValues- oder ValueMap / Values-Qualifizierer verwendet werden, ob einer der angegebenen Werte gleichzeitig auftreten kann. Wenn mehrere gleichzeitige Werte vorhanden sein können, müssen Sie BitMap / BitValues verwenden. Wenn sich alle Werte gegenseitig ausschließen, sollten Sie die ValueMap / Values-Qualifizierer verwenden.