estrutura WS_ENUM_DESCRIPTION (webservices.h)
Uma descrição de tipo usada com WS_ENUM_TYPE e é necessária. Ele fornece informações usadas na serialização e desserialização de valores de uma enumeração.
Sintaxe
typedef struct _WS_ENUM_DESCRIPTION {
WS_ENUM_VALUE *values;
ULONG valueCount;
ULONG maxByteCount;
ULONG *nameIndices;
} WS_ENUM_DESCRIPTION;
Membros
values
Aponta para uma matriz de valores de enumeração e seus nomes correspondentes.
Não deve haver valores ou nomes duplicados na matriz.
valueCount
O número de itens na matriz de valores.
maxByteCount
O comprimento, em bytes UTF8, do nome mais longo na matriz de valores.
nameIndices
Uma matriz opcional que fornece informações que podem melhorar o desempenho dos valores de enumeração de mapeamento para nomes e de volta. Essa matriz pode ser NULL, caso em que uma pesquisa de O(n) é usada, o que pode ser suficiente para pequenos números de valores enumerados.
Se não for NULL, o seguinte deverá ser verdadeiro:
- A matriz de valores é necessária para ser classificada por valor, em ordem crescente.
- A matriz nameIndices aponta para uma matriz que tem itens valueCount.
- A matriz nameIndices fornece os índices dos itens na matriz de valores como se fossem classificados pelo nome em ordem crescente. Os nomes devem ser classificados executando uma comparação byte-wise da cadeia de caracteres utf-8.
Comentários
Os exemplos a seguir ilustram a inicialização de uma descrição de enumeração. Este exemplo ilustra o uso do campo nameIndices, mas esse campo pode ser 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;
Requisitos
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Cabeçalho | webservices.h |