COBOL2002 言語 拡張仕様編

[目次][索引][前へ][次へ]

18.5.1 CONVERT-TO-VARIANT関数(OLE2オートメーションインタフェース機能)

形式
[図データ]

機能
CONVERT-TO-VARIANT(VARIANT値変換)関数は,引数2で指定したCOBOLのデータ項目と等価な引数1で指定した型のVARIANT値へのポインタを返す。この関数は,OLE2オートメーションインタフェース機能を使ったINVOKE文での引数や,SET文での設定値を,特定の型のVARIANT値として扱う場合に使用する。この関数の型は,バリアントデータ型である。

一般規則
  1. 引数について
    ・引数1は,整数項目(結果が常に整数となる算術式を含む),整数定数,表意定数ZEROを指定しなければならない。
    ・引数1は,変換するVARIANT値の型を示す数値を指定しなければならない。指定する数値とVARIANT値との対応を次に示す。

    表18-3 指定する数値とVARIANT値との対応

    指定する数値 VARIANT値の型
    0 Empty(VT_EMPTY)
    1 Null(VT_NULL)
    2 整数型(VT_I2)
    3 長整数型(VT_I4)
    4 単精度浮動小数点型(VT_R4)
    5 倍精度浮動小数点型(VT_R8)
    6 通貨型(VT_CY)
    7 日付型(VT_DATE)
    8 文字列型(VT_BSTR)
    9 オブジェクト型(VT_DISPATCH)
    11 ブール型(VT_BOOL)
    決められた数値以外のものが指定されたときの結果は保証しない。
    ・引数2は,集団項目,数字項目(算術式を含む),数字編集項目,英字項目,英数字項目,日本語項目,1けたのブール項目,OLEオブジェクト参照データ項目,数字定数,英数字定数,日本語文字定数,1けたのブール定数または表意定数(ZERO,NULL)でなければならない。
    VARIANT値へ変換できないデータ項目が指定されている場合は,実行時にエラーとなる。
    VARIANT値変換では,「表18-1 COBOLデータ項目からVARIANT値への変換規則」に示した変換規則のVARIANT値に合わせてCOBOLデータ項目を指定すること。変換規則で示されていない通貨型,日付型は英数字項目で指定する。なお,日付型は03/01/01 09:00という形式で設定すること。
    ・引数1に0または1が指定された場合,引数2は無視される。2〜11が指定された場合で,引数2が指定されていないときはエラーとなる。
    -UniObjGenオプションを指定した場合,引数2に用途がNATIONALの項目,日本語文字定数および16進日本語文字定数を指定してはならない。-UniObjGenオプションについては,マニュアル「COBOL2002 ユーザーズガイド」のUnicode機能を参照のこと。
  2. 関数値について
    ・関数値は,指定された引数と等価のVARIANT値へのポインタが返される。
  3. 関数の表現形式
    ・VARIANT値へのポインタ
    ・この関数は,(CALL文,INVOKE文(オブジェクト指向機能),利用者定義関数を除く)送り出し側作用対象となるバリアントデータ項目が指定できるところおよびバリアントデータ比較の条件式に記述できる。