다음을 통해 공유


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