BitMap 和 BitValue 限定詞
點陣圖是連結至具有 BitMap 和 BitValue 限定詞之屬性的整數。 屬性值的每個位都會做為 BitValue 清單中值陣列的索引。 因為屬性值中的多個位可以同時「開啟」,所以可以使用單一屬性值來表示多個並行值。
例如,下列 MOF 程式碼範例會將 FileType 屬性建立為具有 BitMap 和 BitValues 限定詞。 它會進一步建立低序位 (位 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;
有效位前面加上非有效位
如果低序位不重要,或有效位序列不連續,您必須同時指定 BitMap 和 BitValues 限定詞。 下列 MOF 程式碼範例顯示低序位不重要,且有效位序列有間距的情況。
[BitMap("1","4","5"), BitValues("Follow-up","Delivery receipt","Read receipt")] sint32 MailOptions;
在此情況下,設定低序位 (位 0) 沒有意義,而且會被忽略。 不過,設定位 1 (0x2) 表示此電子郵件已標示為待處理,設定 bit 4 (0x8) 表示當電子郵件訊息到達收件者的信箱時,應該將傳遞收據傳送給寄件者,並設定位 5 (0x10) 指定在收件者開啟電子郵件訊息時,應傳送讀取收據給寄件者。 設定這三個有效位 (0x1A) 指定電子郵件訊息的所有三個條件。
備註
在決定是否要使用BitMap/BitValues或ValueMap/值限定詞時,判斷是否有任何要同時指出的值。 如果有多個並行值存在,您必須使用BitMap/BitValues。 如果所有值互斥,您應該使用ValueMap/值限定詞。
相關主題