v1_enum attribute
The [v1_enum] attribute directs that the specified enumerated type be transmitted as a 32-bit entity, rather than the 16-bit default.
[v1_enum] enum
{
...
};
This attribute has no parameters.
Using the [v1_enum] attribute to transmit an enumerated type as a 32-bit entity increases the efficiency of marshaling and unmarshaling data when such an enumeration is embedded in structures or unions.
For improved performance, we recommend applying the [v1_enum] attribute to enumerators in 32-bit applications. Keep in mind, however, that on 16-bit platforms the C compiler treats an enumerated type as a 16-bit int. Therefore 16-bit client applications need to convert enum types to long for remote transmission in order to avoid overwriting data or sending incorrect values.
typedef [v1_enum] enum
{
value1,
value2, ...
};