Compartir a través de


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]