Freigeben über


WS_ENUM_DESCRIPTION-Struktur (webservices.h)

Eine Typbeschreibung, die mit WS_ENUM_TYPE verwendet wird und erforderlich ist. Sie stellt Informationen bereit, die zum Serialisieren und Deserialisieren von Werten einer Enumeration verwendet werden.

Syntax

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

Member

values

Zeigt auf ein Array von Enumerationswerten und deren entsprechenden Namen.

Es dürfen keine doppelten Werte oder Namen im Array vorhanden sein.

valueCount

Die Anzahl der Elemente im Wertearray.

maxByteCount

Die Länge in UTF8-Bytes des längsten Namens im Wertearray.

nameIndices

Ein optionales Array, das Informationen bereitstellt, die die Leistung der Zuordnung von Enumerationswerten zu Namen und zurück verbessern können. Dieses Array kann NULL sein. In diesem Fall wird eine O(n)-Suche verwendet, die für eine kleine Anzahl von aufgezählten Werten ausreicht.

Wenn nicht NULL ist, muss Folgendes wahr sein:

  • Das Wertearray muss nach Wert in aufsteigender Reihenfolge sortiert werden.
  • Das NameIndices-Array verweist auf ein Array, das valueCount-Elemente enthält.
  • Das NameIndices-Array stellt die Indizes der Elemente im Wertearray bereit, als wären sie nach Namen in aufsteigender Reihenfolge sortiert. Die Namen sollten sortiert werden, indem sie einen byteweisen Vergleich der utf-8-Zeichenfolge durchführen.

Hinweise

Die folgenden Beispiele veranschaulichen das Initialisieren einer Enumerationsbeschreibung. In diesem Beispiel wird die Verwendung des Felds nameIndices veranschaulicht, aber dieses Feld könnte stattdessen NULL sein.


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;

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Kopfzeile webservices.h