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文(オブジェクト指向機能),利用者定義関数を除く)送り出し側作用対象となるバリアントデータ項目が指定できるところおよびバリアントデータ比較の条件式に記述できる。