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,则必须满足以下条件:
- 值数组需要按值按升序排序。
- 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 |