[Common Lisp]Allegro CLでOLEオートメーション

;; Allegro CL付属のOLEパッケージをロード
(require :ole)

;; WScript.Shellのクライアントインスタンスを作成
(defvar *obj*
  (ole:ask-for-autotool
   "WScript.Shell"
   ole:clsctx_inproc_server))

;; メソッド呼び出し
;; (ole:auto-method <obj> <method-name-string-or-symbol> &rest <params>) 
(ole:auto-method *obj* :popup "hogehoge!")

;; すると、「hogehoge!」というポップアップウィンドウが出てくる。

JScriptVBScriptと同じように呼び出せた。Allegro CL 8.1のsample08に載っている、Excelラッパーの例を参考にした。

DBに格納された情報をExcelファイルにしてWebからダウンロードできるようにするとか、定型のExcelシートをWebからアップロードしてDBに突っ込んだりとか、そんなのをCommon Lispでも作れそうだ。

OLEクライアントインスタンスメタデータを調べて、自動的にdefmethodするマクロとか作れないかなあ。