Unions encapsulées
Une union qui est contenue avec son discriminant dans une structure à l’intérieur est une union encapsulée. L’union encapsulée est indiquée par la présence du commutateur mot clé. Ce type d’union est ainsi nommé, car le compilateur MIDL encapsule automatiquement l’union et son discriminant dans une structure de transmission pendant un appel de procédure distante.
Si la balise d’union est manquante (U1_TYPE dans l’exemple ci-dessus), le compilateur génère la structure avec le champ d’union nommé tagged_union.
La forme des unions doit être la même entre les plateformes pour garantir l’interconnexion.
Pour obtenir une description de la forme d’une union encapsulée, consultez union.
Exemples
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;
Pour plus d’informations, consultez Types de base MIDL, char, [context_handle], enum, [first_is], [handle], [ignore], int, [ignore], [last_is], [length_is], [max_is], [ ms_union], Unions non encapsulées, [ptr], [ref], [size_is], [string], struct, switch, [switch_is], [switch_type], [transmit_as], union et [unique]
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour