カプセル化された共用体

構造体内の判別に含まれる共用体は、カプセル化された共用体です。 カプセル化された共用体は、 switch キーワードの存在によって示されます。 この種類の共用体の名前は、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 基本型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]構造体switch[switch_is]、[switch_type]、[transmit_as]共用体および [unique]]