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 |