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