Share via


WS_ENUM_DESCRIPTION struttura (webservices.h)

Descrizione del tipo utilizzata con WS_ENUM_TYPE ed è necessaria. Fornisce informazioni usate per serializzare e deserializzare i valori di un'enumerazione.

Sintassi

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

Members

values

Punta a una matrice di valori di enumerazione e ai relativi nomi corrispondenti.

Non devono essere presenti valori o nomi duplicati nella matrice.

valueCount

Numero di elementi nella matrice di valori.

maxByteCount

Lunghezza, in byte UTF8, del nome più lungo nella matrice dei valori.

nameIndices

Matrice facoltativa che fornisce informazioni che possono migliorare le prestazioni dei valori di enumerazione di mapping ai nomi e indietro. Questa matrice può essere NULL, nel qual caso viene usata una ricerca O(n), che può essere sufficiente per piccoli numeri di valori enumerati.

Se non null, è necessario che sia true:

  • La matrice dei valori deve essere ordinata in base al valore, in ordine crescente.
  • La matrice nameIndices punta a una matrice con elementi valueCount.
  • La matrice nameIndices fornisce gli indici degli elementi nella matrice di valori come se fossero ordinati in base al nome in ordine crescente. I nomi devono essere ordinati eseguendo un confronto byte-wise della stringa utf-8.

Commenti

Gli esempi seguenti illustrano l'inizializzazione di una descrizione dell'enumerazione. In questo esempio viene illustrato l'uso del campo nameIndices, ma questo campo potrebbe essere 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;

Requisiti

   
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Intestazione webservices.h