LimeChatスクリプトを拡張するライブラリ 「Orthoclase」

国内で開発されたWindows IRCクライアント最大手のLimeChatが、2.25あたりから、従来のマクロ機能に加えて、JScriptによるスクリプティングが可能になり、マクロ作成の自由度がよりいっそう高まったことは記憶に新しい。WWWリソースのスクレイピング、時刻に応じた自動発言、非同期的な処理など、マクロでは対応が難しい、または出来なかったことが、わずか数行から数十行のスクリプトで記述できることにいたく感動したものだ。
しかし、LimeChatスクリプトの制御機能を担っているLimeChatスクリプティングホストには、Windows Scripting Host、いわゆるWSHで指摘されているものを含む機能不足を利用していて感じることがある。
具体的にそれらを挙げていくと、

  • タイプライブラリに含まれる定数のインポートが出来ない
  • JScriptActiveXオブジェクトメソッドの途中引数省略が出来ない(nullが省略を表すとは限らない)
  • イベント接続が出来ない(WSHでは、WScript.ConnectObjectで接続可能)
  • 外部スクリプトのインポートが出来ない(WSHでは、wsf形式でインポート可能)
  • VBにあるFormat関数のようなものがない(WSH VBScriptには型別のFormat関数が存在)

他にも些末な事柄はあると思うけど、とりあえず使っていて不便さを感じたのはこれぐらい。一つ目と五つ目についてはフォローしようがあるんだけど、あとの項目については、スクリプト側の努力では如何ともしがたい。
そこで、これらを解決するための拡張ライブラリを作ってみた。本体はこちらから。
Download (from Mediafire)
ws2_32.dll、つまりWinsock 2のライブラリに見せかけて、LimeChatにこれをロードしてもらい、潜り込んだ先で拡張を施す、って言う仕組みにしてある。幾つかのライブラリと同じファイル名のファイルを、実行ファイルと同じディレクトリに置くと、こちらが置いた方を優先的にロードしてくれるWindowsの機能をうまく利用した感じかな。