共用方式為


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 (bits 0000 0111),則檔案為 「只讀」、「系統」和「隱藏」。 如果 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) 表示此電子郵件訊息標示為待處理,設定位 4 (0x8) 表示當電子郵件訊息到達收件者信箱時,應該將傳遞回條傳送給發件者,而設定位 5 (0x10) 會指定當收件者開啟電子郵件訊息時,應該將讀取收據傳送給寄件者。 設定這三個有效位 (0x1A) 會指定電子郵件訊息的所有三個條件。

言論

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

ValueMap 和值限定符