estructura de WS_ENUM_DESCRIPTION (webservices.h)

Una descripción de tipo que se usa con WS_ENUM_TYPE y es necesaria. Proporciona información utilizada para serializar y deserializar valores de una enumeración.

Sintaxis

typedef struct _WS_ENUM_DESCRIPTION {
  WS_ENUM_VALUE *values;
  ULONG         valueCount;
  ULONG         maxByteCount;
  ULONG         *nameIndices;
} WS_ENUM_DESCRIPTION;

Miembros

values

Apunta a una matriz de valores de enumeración y sus nombres correspondientes.

No debe haber valores duplicados ni nombres en la matriz.

valueCount

Número de elementos de la matriz de valores.

maxByteCount

Longitud, en bytes UTF8, del nombre más largo de la matriz de valores.

nameIndices

Matriz opcional que proporciona información que puede mejorar el rendimiento de los valores de enumeración de asignación a nombres y retroceso. Esta matriz puede ser NULL, en cuyo caso se usa una búsqueda de O(n), lo que puede ser suficiente para un número reducido de valores enumerados.

Si no es NULL, debe ser true:

  • La matriz de valores debe ordenarse por valor, en orden ascendente.
  • La matriz nameIndices apunta a una matriz que tiene elementos valueCount.
  • La matriz nameIndices proporciona los índices de los elementos de la matriz de valores como si estuvieran ordenados por nombre en orden ascendente. Los nombres deben ordenarse mediante la realización de una comparación de bytes de la cadena utf-8.

Comentarios

En los ejemplos siguientes se muestra cómo inicializar una descripción de enumeración. En este ejemplo se muestra el uso del campo nameIndices, pero este campo podría ser NULL en su lugar.


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 compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Encabezado webservices.h