COBOL2002 言語 拡張仕様編

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

18.1.1 言語の概念(OLE2オートメーションインタフェース機能)

<この項の構成>
(1) OLEオブジェクト
(2) OLEプロパティ
(3) OLEメソッド
(4) インスタンス
(5) コレクション
(6) コンテナ
(7) VARIANT値
(8) OLEオブジェクト参照データ項目
(9) バリアントデータ項目

(1) OLEオブジェクト

OLEオブジェクトは,操作する対象であり,OLEプロパティとOLEメソッドを持つ。OLEオブジェクトがどんなOLEプロパティやOLEメソッドを持っているかは,OLEオブジェクトごとに異なる。

(2) OLEプロパティ

OLEプロパティは,OLEオブジェクトの状態または属性であり,値を設定してOLEオブジェクトの状態を変更したり,値を取得してOLEオブジェクトの状態を調べることができる。

(3) OLEメソッド

OLEメソッドは,OLEオブジェクトに対する操作であり,OLEオブジェクトまたはOLEオブジェクト内のデータに対して,指定した操作を実行できる。OLEメソッドによっては,別のOLEオブジェクトを戻り値として返すものもある。

(4) インスタンス

インスタンスは,実行中のアプリケーションのOLEオブジェクトであり,アプリケーションによっては同時に複数のインスタンスを生成することもできる。

(5) コレクション

コレクションは,関連するOLEオブジェクトの集合であり,コレクション自体も一つのOLEオブジェクトである。

コレクション中の一つのOLEオブジェクトを指定するために,コレクションに特定のOLEオブジェクトを表す文字列や,インデクスを指定することで,一つのOLEオブジェクトを参照できる。

(6) コンテナ

コンテナは,ほかのOLEオブジェクトを含んでいるOLEオブジェクトである。OLEオブジェクトへの参照に,そのコンテナへの参照を含む場合は,コンテナとOLEオブジェクトをピリオド(.)で区切らなければならない。

(7) VARIANT値

VARIANT値は,OLE2オートメーション機能(「OLE2オートメーションインタフェース機能」の手続き文,「サービスルーチンを使ったOLE2オートメーションクライアント機能」)で取り扱うデータであり,さまざまな型のデータを扱うことができる。VARIANT値には,COBOLが取り扱うデータ項目の項類の概念は適用されない。

(8) OLEオブジェクト参照データ項目

OLEオブジェクト参照データ項目は,USAGE句で用途がOLEオブジェクト参照(OBJECT REFERENCE OLE)と指定された項目である。インスタンス化されたOLEオブジェクトを保持するために, 4バイト(64bit版PC(x64) COBOL2002では8バイト)の記憶領域が確保される。OLEオブジェクト参照データ項目には,COBOLが取り扱うデータ項目の項類の概念は適用されない。

(9) バリアントデータ項目

バリアントデータ項目は,USAGE句で用途がバリアント(VARIANT)と指定された項目である。

OLE2オートメーションインタフェース機能でOLEオブジェクトのOLEプロパティやOLEメソッドを操作する場合には,すべてVARIANT値で受け渡しをする。INVOKE文やSET文で取り扱うVARIANT値をCOBOLのデータ項目に変換せずに,そのままVARIANT値として格納するためにバリアントデータ項目を使用する。バリアントデータ項目には,VARIANT値そのものではなく,VARIANT値を指すポインタが実際には格納される。バリアントデータ項目には,COBOLが取り扱うデータ項目の項類の概念は適用されない。