カプセル化された共用体

内の構造体に判別と共に含まれる共用体は、カプセル化された共用体です。 カプセル化された共用体は、スイッチ キーワード (keyword)の存在によって示されます。 MIDL コンパイラは、リモート プロシージャ コール中に転送用の構造体に共用体とその判別を自動的にカプセル化するため、この種類の共用体は名前が付けられています。

共用体タグがない場合 (上記の例ではU1_TYPE)、コンパイラは tagged_union という名前の共用体フィールドを使用して構造体 生成します。

相互接続性を確保するには、プラットフォーム間で共用体の形状が同じである必要があります。

カプセル化された共用体の形式の説明については、「 共用体」を参照してください。

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;

関連情報については、「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]structswitch、[switch_is]、[switch_type][transmit_as]unionおよび [unique]