第9章 他のアプリケーションとの連携
9.2 ActiveX コントロールを作成する
9.2.3 ActiveXコントロール用インタフェースを定義する
注意
ActiveXコントロールのインタフェースとして使用するカスタムプロパティ、カスタムメソッドおよびカスタムイベントの名前は、そのActiveX コントロールを利用する言語処理系で許される文字セットの範囲で構成されている必要があります。
たとえば、"-"(ハイフン)は、COBOLではデータ名の一部として使用できますが、マイナスの記号として判別される言語では使用できま せん。
カスタムプロパティを定義する
カスタムプロパティとは、ActiveXコントロールの利用者が参照したり、設定したりできる、ActiveXコントロールの各種情報です。
カスタムプロパティは、以下のように定義します。
1. デザインツリーウィンドウでフォームを選択します。
2. ポップアップメニューの[カスタムプロパティの挿入]コマンドを選択します。
3. Prop1のプロパティ設定ダイアログボックスで[名前]を"SelectedColor"に変更します。
4. [読み取り専用]をチェック状態にします。
5. [説明]に"選択されている色を示します。"と記述します。
6. [OK]ボタンをクリックします。
ポイント
・ [名前]に設定した文字列が新しいプロパティ名になります。ただし、すでにフォームがもっているプロパティまたはメソッドと同じ名 前を設定することはできません。
・ [隠し]をチェック状態にすると、手続き編集ウィンドウの[プロパティの挿入]でのプロパティ一覧に表示されなくなります。ただし、
表示されなくなるだけで、利用することは可能です。
・ カスタムプロパティの初期値は、プロジェクトウィンドウのデザインツリーウィンドウでフォームを選択し、右側のプロパティリストウィン ドウから設定できます。
ただし、カスタムプロパティのプロパティ設定ダイアログボックスで、[読み取り専用]または[隠し]がチェック状態の場合、初期値を 設定することができません。初期値を設定する場合は、いったん[読み取り専用]および[隠し]のチェックをはずしてから設定して ください。
カスタムメソッドを定義する
カスタムメソッドとは、ActiveXコントロールの利用者が呼び出すことができる手続きです。
カスタムメソッドは、以下のようにして定義します。
1. デザインツリーウィンドウでフォームを選択します。
2. ポップアップメニューの[カスタムメソッドの挿入]コマンドを選択します。
3. Method1のプロパティ設定ダイアログボックスで[名前]を"SelectColor"に変更します。
4. [型]から"VT_BOOL"を選択します。
5. [説明]に"選択されている色を変更します。"と記述します。
6. [パラメタ]タブを開きます。
7. [追加]ボタンをクリックします。
8. [名前]を"Color"に変更します。
9. [OK]ボタンをクリックします。
ポイント
・ [一般]タブにある[型]は、メソッドの復帰値の型を示します。VT_BOOLは真偽を示すための型です。このサンプルプログラムで は、色の設定が成功した場合TRUE(真)を返却します。パラメタの色が赤、緑、青のどの色でもない場合は、FALSE(偽)を返却します。
型とCOBOLの項類との対応については、『リファレンス』を参照してください。
・ [隠し]をチェック状態にすると、手続き編集ウィンドウの[メソッドの挿入]でのメソッド一覧に表示されなくなります。ただし、表示さ れなくなるだけで、利用することは可能です。
注意
サンプルプログラムでは、パラメタの値を呼び出し元から呼び出し先に渡すために使用しています。このような場合は、パラメタの種類
には"in"を指定します。それに対し、パラメタの値を呼び出し先から呼び出し元へ返すために使用する場合は、"out"を指定してくださ
い。また、呼び出し元から呼び出し先に値を渡し、かつ、呼び出し先から呼び出し元に値を返す場合は、"in,out"を指定してください。
種類が正しく設定されていない場合、OLEのVT型データとCOBOLのデータとの間で値を正しく変換できません。
カスタムイベントを定義する
カスタムイベントとは、ActiveXコントロールの利用者に通知することができるイベントです。利用者は、そのカスタムイベントが発生した ときの手続きを記述することができます。
カスタムイベントは、以下のようにして定義します。
1. デザインツリーウィンドウでフォームを選択します。
2. ポップアップメニューの[カスタムイベントの挿入]コマンドを選択します。
3. Event1のプロパティ設定ダイアログボックスで[名前]を"OnSelect"に変更します。
4. [説明]に"選択されている色が変更されたときに発生します。"と記述します。
5. [パラメタ]タブを開きます。
6. [追加]ボタンをクリックします。
7. [名前]を"Color"に変更します。
8. [OK]ボタンをクリックします。
ポイント
[隠し]をチェック状態にすると、このActiveXコントロールをPowerCOBOLのフォームに配置したとき、イベント手続きの編集対象となる イベントの一覧に表示されなくなります。
注意
サンプルプログラムでは、パラメタの値を呼び出し元から呼び出し先に渡すために使用しています。このような場合は、パラメタの種類
には"in"を指定します。それに対し、パラメタの値を呼び出し先から呼び出し元へ返すために使用する場合は、"out"を指定してくださ
い。また、呼び出し元から呼び出し先に値を渡し、かつ、呼び出し先から呼び出し元に値を返す場合は、"in,out"を指定してください。
種類が正しく設定されていない場合、OLEのVT型データとCOBOLのデータとの間で値を正しく変換できません。