Gekapselte Unions

Eine Union, die in ihrer Diskriminanz in einer Struktur in enthalten ist, ist eine gekapselte Union. Die gekapselte Union wird durch das Vorhandensein des switch-Schlüsselworts angegeben. Diese Art von Union wird so benannt, da der MIDL-Compiler die Union und ihre Diskriminanz automatisch in einer -Struktur für die Übertragung während eines Remoteprozeduraufrufs kapselt.

Wenn das Union-Tag fehlt (U1 TYPE im obigen Beispiel), generiert der Compiler die Struktur mit dem Union-Feld mit dem Namen _ tagged _ union.

Die Form von Unions muss plattformübergreifend identisch sein, um die Interkonnektivität sicherzustellen.

Eine Beschreibung der Form einer gekapselten Union finden Sie unter union.

Beispiele

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;

Weitere Informationen finden Sie unter MIDL-Basistypen, char, Kontexthandle [ _ ] , enum , enum, 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 ] , unionund [ unique]