BitMap 修飾子と BitValue 修飾子
ビットマップは、BitMap と bitValue 修飾子を プロパティにリンクされた整数です。 プロパティ値の各ビットは、BitValue リスト内の値の配列へのインデックスとして機能します。 プロパティ値内の複数のビットを同時に "オン" にできるため、1 つのプロパティ値を使用して複数の同時実行値を示すことができます。
たとえば、次の MOF コード例では、BitMap と BitValues 修飾子を持つものとして、FileType プロパティを確立します。 さらに、下位ビット (ビット 0) が値 "読み取り専用" に対応することが確立されます。 次のビット (ビット 1) は 、"非表示" に対応しています。 (すべてのビットが重要である必要はありません。この 8 ビット システムでは、2 つの上位ビット (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 コードを使用するビットマップには、次の 2 種類があります。
下位ビットから始まる連続する有効ビット (ビット 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) は、電子メール メッセージが受信者によって開かれたときに開封確認メッセージを送信者に送信することを指定します。 3 つの有効ビット (0x1A) をすべて設定すると、電子メール メッセージの 3 つの条件がすべて指定されます。
備考
BitMap/BitValues または ValueMap/Values 修飾子を使用するかどうかを決定する際に、指定されている値のいずれかが同時に発生する可能性があるかどうかを判断します。 複数の同時実行値が存在する場合は、BitMap /BitValues使用する必要があります。 すべての値が相互に排他的な場合は、ValueMap/Values 修飾子を使用する必要があります。
関連トピック