共用方式為


WS_ENUM_DESCRIPTION 結構 (webservices.h)

WS_ENUM_TYPE 搭配使用的型別描述,而且是必要的。 它提供用來序列化和還原序列化列舉值的資訊。

語法

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

成員

values

指向列舉值的陣列及其對應名稱。

陣列中不得有重複的值或名稱。

valueCount

值陣列中的專案數。

maxByteCount

值陣列中最長名稱的長度,以 UTF8 位元組為單位。

nameIndices

選擇性陣列,可提供資訊,可改善將列舉值對應至名稱和返回的效能。 此陣列可能會 為 Null,在此情況下,會使用 O (n) 查閱,這可能足以用於少量的列舉值。

如果為非Null,則下列專案必須是 true:

  • 值陣列必須以遞增順序依值排序。
  • nameIndices 陣列指向具有 valueCount 專案的陣列。
  • nameIndices 陣列會提供值陣列中專案的索引,就像依名稱以遞增順序排序一樣。 名稱應該藉由執行 utf-8 字串的位元組比較來排序。

備註

下列範例說明初始化列舉描述。 此範例說明如何使用 nameIndices 欄位,但此欄位可以是 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;

規格需求

   
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限傳統型應用程式]
標頭 webservices.h