Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

付録J 旧互換機能> J.1 COM/CORBA連携プログラミング> J.1.5 その他のデータ型の指定方法

J.1.5.3 共用体

 共用体に値を設定するには、CreateType関数またはCreateTypeById関数でオブジェクトのリファレンスを検索し、その結果をObject型変数に格納します。オブジェクトのプロパティに設定することにより、共用体のメンバに値を設定することができます。プロパティのUNION_dは、データの種別を格納した弁別情報です。共用体のVisual Basicでの使用例を以下に示します

IDL言語

  interface example6 {
     typedef union UNI switch(long) {   // long、float、charを持つ共用体
         case 1 : long x; 
         case 2 : float y; 
         default: char z; 
     } Foo; 
     short set(in Foo udata);           // 共用体のパラメタを持つset関数、
                                        // 復帰値short型
     ... 
  } ; 

Visual Basic

  Dim uni1 As Object                           // データ型のリファレンス
  Dim discriminator As Variant                 // 弁別情報格納変数
  Dim ret As Integer                           // 復帰値格納変数
  Dim ans As Variant                           // 共用体データ格納変数

  Set uni1 = factory.CreateType(obj, "Foo")    // データ型のリファレンスの検索
  uni1.x = 100                                 // 共用体にデータを代入
  ret = obj.set(uni1)                          // set関数の呼び出し

  discriminator = uni1.UNION_d                 // 弁別情報の格納
  Select Case discriminator                    // 弁別情報によるデータの判定
  Case 1                                       // long型の処理
      ans = uni1.x
  Case 2
      ans = uni1.y
  Case Else                                    // char型の処理
      ans = uni1.z

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005