WS_ENUM_DESCRIPTION structure (webservices.h)
Description de type utilisée avec WS_ENUM_TYPE et obligatoire. Il fournit des informations utilisées pour sérialiser et désérialiser les valeurs d’une énumération.
Syntaxe
typedef struct _WS_ENUM_DESCRIPTION {
WS_ENUM_VALUE *values;
ULONG valueCount;
ULONG maxByteCount;
ULONG *nameIndices;
} WS_ENUM_DESCRIPTION;
Membres
values
Pointe vers un tableau de valeurs d’énumération et leurs noms correspondants.
Le tableau ne doit pas contenir de valeurs ou de noms en double.
valueCount
Nombre d’éléments dans le tableau de valeurs.
maxByteCount
Longueur, en octets UTF8, du nom le plus long dans le tableau de valeurs.
nameIndices
Tableau facultatif qui fournit des informations qui peuvent améliorer les performances du mappage des valeurs d’énumération aux noms et aux retours. Ce tableau peut avoir la valeur NULL, auquel cas une recherche O(n) est utilisée, ce qui peut être suffisant pour un petit nombre de valeurs énumérées.
Si la valeur n’est pas NULL, les conditions suivantes doivent être remplies :
- Le tableau de valeurs doit être trié par valeur, dans l’ordre croissant.
- Le tableau nameIndices pointe vers un tableau qui contient des éléments valueCount.
- Le tableau nameIndices fournit les index des éléments du tableau de valeurs comme s’ils étaient triés par nom dans l’ordre croissant. Les noms doivent être triés en effectuant une comparaison en octets de la chaîne utf-8.
Remarques
Les exemples suivants illustrent l’initialisation d’une description d’énumération. Cet exemple illustre l’utilisation du champ nameIndices, mais ce champ peut être NULL à la place.
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;
Configuration requise
Client minimal pris en charge | Windows 7 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 R2 [applications de bureau uniquement] |
En-tête | webservices.h |