struktur WS_ENUM_DESCRIPTION (webservices.h)

Deskripsi jenis yang digunakan dengan WS_ENUM_TYPE dan diperlukan. Ini menyediakan informasi yang digunakan dalam menserialisasikan dan mendeserialisasi nilai enumerasi.

Sintaks

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

Anggota

values

Menunjuk ke array nilai enumerasi dan nama yang sesuai.

Tidak boleh ada nilai atau nama duplikat dalam array.

valueCount

Jumlah item dalam array nilai.

maxByteCount

Panjangnya, dalam UTF8 byte, dari nama terpanjang dalam array nilai.

nameIndices

Array opsional yang menyediakan informasi yang dapat meningkatkan performa nilai enumerasi pemetaan ke nama dan kembali. Array ini mungkin NULL, dalam hal ini pencarian O(n) digunakan, yang mungkin cukup untuk sejumlah kecil nilai yang dijumlahkan.

Jika non-NULL, hal berikut ini harus benar:

  • Array nilai diperlukan untuk diurutkan menurut nilai, dalam urutan naik.
  • Array nameIndices menunjuk ke array yang memiliki item valueCount.
  • Array nameIndices menyediakan indeks item dalam array nilai seolah-olah diurutkan menurut nama dalam urutan naik. Nama-nama harus diurutkan dengan melakukan perbandingan byte-wise dari string utf-8.

Keterangan

Contoh berikut mengilustrasikan menginisialisasi deskripsi enum. Contoh ini mengilustrasikan penggunaan bidang nameIndices, tetapi bidang ini bisa null sebagai gantinya.


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;

Persyaratan

   
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 R2 [hanya aplikasi desktop]
Header webservices.h