Uniones encapsuladas

Una unión contenida con su discriminante en una estructura dentro de es una unión encapsulada. La unión encapsulada se indica mediante la presencia de la palabra clave switch . Este tipo de unión se denomina así porque el compilador MIDL encapsula automáticamente la unión y su discriminante en una estructura para la transmisión durante una llamada a procedimiento remoto.

Si falta la etiqueta de unión (U1_TYPE en el ejemplo anterior), el compilador generará la estructura con el campo de unión denominado tagged_union.

La forma de uniones debe ser la misma en todas las plataformas para garantizar la interconectividad.

Para obtener una descripción del formato de una unión encapsulada, vea unión.

Ejemplos

typedef union _S1_TYPE switch (long l1) U1_TYPE 
{ 
    case 1024: 
        float f1; 
    case 2048: 
        double d2; 
} S1_TYPE; 
 
/* in generated header file */ 
typedef struct _S1_TYPE 
{ 
    long l1; 
    union 
    { 
        float f1; 
        double d2; 
    } U1_TYPE; 
} S1_TYPE;

Para obtener información relacionada, vea MIDL Base Types, char, [context_handle], enum, [first_is], [handle], [ignore], int, [ignore], [last_is], [length_is], [max_is], [ ms_union], Nonencapsulated Unions, [ptr], [ref], [size_is], [string], struct, switch, [switch_is], [switch_type], [transmit_as], union y [unique]