This documentation is archived and is not being maintained.


Used with the switch_type attribute in a union.

[ case(
) ]


A possible input value for which you want to provide processing. The type of value can be one of the following types:
  • int
  • char
  • boolean
  • enum

or an identifier of such a type.

Attribute Context

Applies to Member of a class or struct
Repeatable No
Required attributes None
Invalid attributes None

For more information about the attribute contexts, see Attribute Contexts.


The case C++ attribute has the same functionality as the case MIDL attribute. This attribute is only used with the switch_type attribute.


The following code shows a use of the case attribute:

// cpp_attr_ref_case.cpp
// compile with: /LD
#include <unknwn.h>
struct SizedValue2 {
   [switch_type(char), switch_is(kind)] union {
      [case(1), string]
          wchar_t* wval;
      [default, string]
          char* val;
    char kind;

See Also

IDL Attributes | Typedef, Enum, Union, and Struct Attributes | Class Attributes | Attributes Samples