APIとウィンドウメッセージについて、簡単に説明しておきましょう。ここであまり詳しく理解する必要はないですから、ああ、こんなものなのかな、という程度に考えておいてください。APIWindowsは、プログラマが画面出力やユーザー入力などの処理を簡単に行なうために、基本的な機能をはじめから用意しておいて、プログラマがその機能を自由に使うことができるようにしました。いう関数セットの形で与えられています。プログラマは、プログラムの中からこれらのAPIの関数を呼び出すだけで、目的の機能を実現することができるようになったのです。APIを呼び出すことができるようになりました。ver2.6からはloadlib.dllの拡張プラグイン命令が標準命令として実装され、DLLなしで使用できるようになっています。APIで提供されるさまざまな機能を実現させていきましょう。APIはWindowsの基本的な機能を提供するためのものであり、それらの機能の細かい設定を行なうことができるようになっています。それだけに、多くのAPIでは、呼び出すための手続きが非常に煩雑になってしまいます。構造体やポインタといった、本来HSPではまったく現れない概念を導入していかなければなりません。これらはC言語のような他のプログラミング言語から扱うのは容易なのですが、HSPから扱うにはかなり面倒な作業が必要になってきます。HSPの基本機能を使えば実現できるものを、わざわざAPIを使って行なう必要はあまりないでしょうし、いろいろな方々が開発されている拡張プラグインで実現できることならばそれらを使ったほうがよいかもしれません。このページではAPIにこだわって機能実現を図っていくつもりですから、スクリプトも複雑になってきます。挑戦するのならば、そのことを覚悟しておいてください。ウィンドウメッセージユーザーがマウスやキーボード入力を行なったとき、メニューやツールボタンを選択したとき、あるいはアプリケーションを終了しようとしたときなど、ある特定のウィンドウに対して何らかのイベントが発生したときに、Windowsはそのウィンドウに対してメッセージを送るという形でそのイベントが発生したことを知らせます。このメッセージはイベントごとに固有の数値になっていて、その数値がいくつかの付加情報とともにウィンドウに送られます。C言語によるGUIプログラミングでは、ウィンドウにどんなメッセージが送られてきたかによってその後の処理を決定するというのが一般的です。HSPは内部でこのメッセージを独自に処理しており、通常プログラマはメッセージの存在をまったく意識することがありません。HSPの標準機能ではメッセージを取得することはできません。スクリプト内でAPIを呼び出して機能を拡張していくことを考えると、やはりスクリプト内でメッセージの取得ができたほうが便利になってきます。このページではメッセージを取得するために、私ちょくとが開発した拡張プラグインhsgetmsg.dllを使うことにしています。この拡張プラグインは、ウィンドウに送られる任意のメッセージを取得する機能をHSPに追加するものです。ver3.0の開発がおにたまさんによって行なわれている最中ですが、このバージョンからは任意のメッセージが送られたときの割り込み実行機能がサポートされる予定です。3.0の機能を使ったものに書き換えていくつもりです。