WS_ENUM_DESCRIPTION 結構 (webservices.h)
與 WS_ENUM_TYPE 搭配使用的型別描述,而且是必要的。 它提供用來序列化和還原序列化列舉值的資訊。
語法
typedef struct _WS_ENUM_DESCRIPTION {
WS_ENUM_VALUE *values;
ULONG valueCount;
ULONG maxByteCount;
ULONG *nameIndices;
} WS_ENUM_DESCRIPTION;
成員
values
指向列舉值的陣列及其對應名稱。
陣列中不得有重複的值或名稱。
valueCount
值陣列中的專案數。
maxByteCount
值陣列中最長名稱的長度,以 UTF8 位元組為單位。
nameIndices
選擇性陣列,可提供資訊,可改善將列舉值對應至名稱和返回的效能。 此陣列可能會 為 Null,在此情況下,會使用 O (n) 查閱,這可能足以用於少量的列舉值。
如果為非Null,則下列專案必須是 true:
- 值陣列必須以遞增順序依值排序。
- nameIndices 陣列指向具有 valueCount 專案的陣列。
- nameIndices 陣列會提供值陣列中專案的索引,就像依名稱以遞增順序排序一樣。 名稱應該藉由執行 utf-8 字串的位元組比較來排序。
備註
下列範例說明初始化列舉描述。 此範例說明如何使用 nameIndices 欄位,但此欄位可以是 Null 。
enum
{
Red = 10,
Green = 20,
Blue = 30,
};
WS_XML_STRING redString = WS_XML_STRING_VALUE("red");
WS_XML_STRING greenString = WS_XML_STRING_VALUE("green");
WS_XML_STRING blueString = WS_XML_STRING_VALUE("blue");
// sorted by ascending numeric value
WS_ENUM_VALUE valueArray[3] =
{
{ Red, &redString },
{ Green, &greenString },
{ Blue, &blueString },
};
// sorted by ascending name
ULONG nameIndices[3] =
{
2, // "blue"
1, // "green"
0, // "red"
};
WS_ENUM_DESCRIPTION enumDescription;
enumDescription.maxByteCount = 5; // "green"
enumDescription.values = valueArray;
enumDescription.valueCount = 3;
enumDescription.nameIndices = nameIndices;
規格需求
最低支援的用戶端 | Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [僅限傳統型應用程式] |
標頭 | webservices.h |