Compartilhar via


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 da opção palavra-chave. Esse tipo de união é denominado assim 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 marca de união estiver ausente (U1_TYPE no exemplo acima), o compilador gerará a estrutura com o campo união denominado tagged_union.

A forma de uniões deve ser a mesma entre 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 midl base types, char, [context_handle], enum, [first_is], [handle], [ignore], int, [ignore], [last_is], [length_is], [max_is], [ms_union], Uniões Nãocapsuladas , [ptr], [ref], [size_is], [cadeia de caracteres],de struct, switch, [switch_is], [switch_type], [transmit_as],sindicale [único ]