HSP3用拡張プラグイン hpi_exprogctrl
概要
HSP3 のジャンプに関する機能を拡張する拡張プラグインです。
以下の機能が使用可能になります。
- ユーザー定義命令・関数の関数ポインタを取得する。
- 関数ポインタを使って関数を呼び出し任意の型の返却値を受け取る。
- ウィンドウメッセージに対して連鎖式の割り込みジャンプを設定する。
- oncmd 命令を置き換えて割り込みジャンプ設定の衝突を回避する。
このプラグインは hpi_deffptr, hpi_oncmd2 プラグインの機能統合・後継版です。
このプラグインで使用可能になる命令
- oncmd2
ウィンドウメッセージによる割り込みジャンプを設定
HSP のウィンドウにウィンドウメッセージが送られたときに割り込みジャンプが行われるように設定します。
一度の割り込みで複数のジャンプ先に連続してジャンプが行われるように設定することができます。
このプラグインで使用可能になる関数
- deffptr
ユーザー定義命令・関数の関数ポインタを取得
#deffunc, #defcfunc で定義したユーザー定義命令・関数に対応した関数ポインタを取得します。
取得したポインタを使うことでユーザー定義命令・関数の動的な呼び出しや、ユーザー定義命令・関数をコールバック関数に指定しての Windows API の利用などが行えるようになります。
- callfunc2
関数ポインタを使った関数呼び出し (不定型返却値を受け取る)
- callfunc2_i
関数ポインタを使った関数呼び出し (整数型返却値を受け取る)
- callfunc2_d
関数ポインタを使った関数呼び出し (実数型返却値を受け取る)
- callfunc2_s
関数ポインタを使った関数呼び出し (文字列型返却値を受け取る)
- callfunc2_v
関数ポインタを使った関数呼び出し (不定型返却値を受け取る)
- callproc
関数ポインタを使った関数呼び出し (不定型返却値を受け取る)
- callproc_i
関数ポインタを使った関数呼び出し (整数型返却値を受け取る)
- callproc_d
関数ポインタを使った関数呼び出し (実数型返却値を受け取る)
- callproc_s
関数ポインタを使った関数呼び出し (文字列型返却値を受け取る)
- callproc_v
関数ポインタを使った関数呼び出し (不定型返却値を受け取る)
- callsrt
関数ポインタを使った関数呼び出し
deffptr 関数や varptr 関数等で取得した関数ポインタの示す関数を呼び出します。
各関数は書式や返却値の扱い方が異なります。
oncmd の置き換え
HSP標準命令の oncmd は一つのウィンドウメッセージに対して割り込みジャンプの多重設定を行うことができず、既に設定済みのウィンドウメッセージに対して再設定をした場合は以前の設定が破棄されてしまいます。
このため共通のメッセージに対して oncmd 命令で割り込みジャンプ設定を行っている複数のモジュールを一つのプログラム中で併用しようとしても設定の衝突が起こり、意図したとおりの正常な動作は行われません。
(例えばあるメッセージに対してモジュールaで設定した割り込みジャンプ設定がモジュールbでの設定により変更されるとモジュールaは正常な処理を行えなくなります。)
この問題を避けるためには設定の衝突が起きないようにモジュールのソースプログラムを書き換えるという方法がありますが、モジュールソースを解読する必要があったり、書き換えたことにより不具合が生じたり、そもそもそうした作業は本来不要であるべき作業であるといった欠点があります。
このプラグインでは oncmd 命令を標準のものからプラグインが提供するものに置き換えて割り込みジャンプの多重設定を可能にすることで、ほとんど追加の作業を行うことなくモジュール間での設定の衝突を避けることができます。
最新バージョン
最新バージョンは 0.63 です。
ダウンロード
最新正式版はベクターのダウンロードページからダウンロードしてください。
hpi_exprogctrl_063.zip(ベクター)
(以下のバージョンの HSP で使用可能です。)
HSP 3.0, HSP 3.0a, HSP 3.1b1 - b7, HSP 3.1b9 - b10
(HSP 3.1b8 では動作しません。)
主な更新点
・ver 0.63 ( 2007/06/10 )
(全般)正式版として公開。
・ver 0.63 beta1 ( 2007/05/18 )
(deffptr)ローカル変数を使用している命令・関数もポインタを使って呼び出せるようにした。
・ver 0.60 beta2 ( 2007/05/08 )
(全般)hpi_oncmd2 プラグインの機能を統合。
・ver 0.60 beta1 ( 2007/04/16 )
(全般)プラグイン名を hpi_exprogctrl に変更。
(全般)call_func2 系関数, call_proc 系関数, call_srt 関数を追加。