Uniões encapsuladas
Uma união que está contida com seu discriminante em uma estrutura dentro é uma união encapsulada. A união encapsulada é indicada pela presença do interruptor palavra-chave. Esse tipo de união é assim chamado porque o compilador MIDL encapsula automaticamente a união e seu discriminante em uma estrutura para transmissão durante uma chamada de procedimento remoto.
Se a tag union estiver faltando (U1_TYPE no exemplo acima), o compilador gerará a estrutura com o campo union chamado tagged_union.
A forma dos sindicatos deve ser a mesma em todas as plataformas para garantir a interconectividade.
Para obter uma descrição da forma de uma união encapsulada, consulte união.
Exemplos
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 obter informações relacionadas, consulte de tipos básicos MIDL , char, [context_handle], enum, [first_is], [handle], [ignore], int, [ignore], [last_is], [length_is], [max_is], [ms_union], Uniões não encapsuladas, [ptr], [ref], [size_is], [string], struct, switch, [switch_is], [switch_type], [transmit_as], união, e [único]