BitMap 和 BitValue 限定詞

點陣圖是連結至具有 BitMapBitValue 限定詞之屬性的整數。 屬性值的每個位都會做為 BitValue 清單中值陣列的索引。 因為屬性值中的多個位可以同時「開啟」,所以可以使用單一屬性值來表示多個並行值。

例如,下列 MOF 程式碼範例會將 FileType 屬性建立為具有 BitMapBitValues 限定詞。 它會進一步建立低序位 (位 0) 對應至值 「Read Only」。 下一個位 (位 1) 對應至 「Hidden」,依此類錯。 (並非所有位都必須有效。在這個八位系統中,兩個高階位 6 和 7 沒有意義。)

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

如果 FileType 屬性報告值 7 (位 0000 0111) ,則檔案為 「Read Only」、「System」 和 「Hidden」。 如果 FileType 屬性報告值 18 (0x12,則位為 0001 0010) ,則為隱藏的子目錄。

使用 MOF 程式碼有兩種不同類型的點陣圖:

  • 以低階位開頭的連續有效位 (位 0)

    如果有效位以低序位開頭, (位 0) ,而且在 BitValue 陣列中所有專案不中斷的情況下,您可以定義位值的陣列,而不需明確指定有效位。 下列 MOF 程式碼範例會執行與上一個範例相同的函式。

    [BitValues("Read Only",
               "Hidden",
               "System",
               "Volume Label",
               "Subdirectory",
               "Archive")]
    byte FileType;
    
  • 有效位前面加上非有效位

    如果低序位不重要,或有效位序列不連續,您必須同時指定 BitMapBitValues 限定詞。 下列 MOF 程式碼範例顯示低序位不重要,且有效位序列有間距的情況。

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

    在此情況下,設定低序位 (位 0) 沒有意義,而且會被忽略。 不過,設定位 1 (0x2) 表示此電子郵件已標示為待處理,設定 bit 4 (0x8) 表示當電子郵件訊息到達收件者的信箱時,應該將傳遞收據傳送給寄件者,並設定位 5 (0x10) 指定在收件者開啟電子郵件訊息時,應傳送讀取收據給寄件者。 設定這三個有效位 (0x1A) 指定電子郵件訊息的所有三個條件。

備註

在決定是否要使用BitMap/BitValuesValueMap/限定詞時,判斷是否有任何要同時指出的值。 如果有多個並行值存在,您必須使用BitMap/BitValues。 如果所有值互斥,您應該使用ValueMap/限定詞。

ValueMap 和 Value 限定詞