実行時関数:ダイアログボックスの ActiveX コントロールにユーザー定義イベント・ハンドラを割り当てます。
モジュール:USE DFLOGM
形式
result = DLGSETCTRLEVENTHANDLER (dlg,controlid,handler,dispid[,iid])
dlg
(入力) 構造型 DIALOG。ダイアログボックス・パラメタを含みます。構造型 DIALOG の成分は,PRIVATE 属性で定義され,ユーザーが変更したり,個別に参照することはできません。
controlid
(入力) 整数型。ダイアログボックス内のコントロールの識別子を指定します。コントロールに対するシンボル名または識別子番号のどちらでも指定することができます。両方ともインクルード・ファイル (.FD 拡張子) に一覧表示されています。
handler
(入力) EXTERNAL。イベントが発生した時に呼び出されるルーチンの名前。
dispid
(入力) 整数型。イベントを識別するイベント・インタフェース中のメソッドのメンバ ID を指定します。
iid
(省略可能,入力) 構造型 GUID。構造型 GUID は DFWINTY モジュールに定義されています。ソース (イベント) インタフェースのインタフェース識別子を指定します。省略された場合,ActiveX コントロールの基本ソース・インタフェースが使われます。
結果
結果の型は INTEGER(4) です。結果は,操作の状態を示す HRESULT です。
ActiveX コントロール・イベントが発生すると,そのイベントに関連したハンドラが呼び出されます。呼び出されるハンドラを指定するために,DLGSETCTRLEVENTHANDLER を呼び出します。
ActiveX コントロールがサポートするイベントとハンドラのインタフェースは,ActiveX コントロールで決定されます。
以下の方法の 1 つでこの情報を捜すことができます。
ActiveX コントロールのマニュアルを読むことによって。
ActiveX コントロールの型情報を試験することができるツールを使うことによって。Visual Fortran プログラム・フォルダの「OLE-COM Object Viewer」はそのようなツールの 1 つです。
ActiveX コントロールへの Fortran インタフェースを含むモジュールを生成する Fortran Module Wizard を使い,生成したモジュールを試験することによって。
アプリケーション中に定義したハンドラは,呼び出し規約とパラメタ渡しメカニズムを含む ActiveX コントロールが期待するインタフェースを持っていなければなりません。そうでなければ,アプリケーションのスタックが不正になるため,アプリケーションが期待しない方法でクラッシュするかもしれません。
オブジェクトは,常にイベント・ハンドラの第 1 パラメタでなければならないことに注意してください。このオブジェクト値は,コントロールのソース (イベント) インタフェースへのポインタで,コントロールの IDispatch ポインタではありません。コントロールの IDispatch ポインタを取り出すために,DLG_IDISPATCH 指標を持つ DLGGET を使うことができます。
詳細は,「ActiveX コントロールの使用」を参照してください。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
DLGGET,DLGINIT,DLGMODAL,DLGMODELESS,DLGSETSUB
例
ret = DlgSetCtrlEventHandler( & dlg, & IDC_ACTIVEMOVIECONTROL1, & ! コントロール識別子 ReadyStateChange, & ! イベント・ハンドラ・ルーチン名 -609, & ! AvitveMovie のコントロールの & ! ReadyStateChange イベントのメンバー ID IID_DActiveMovieEvents2 ) ! ソース (イベント) インタフェース識別子