とりあえず名前付き引数をサポートする為に
(win32ole:invoke obj wFlag (arg1 arg2..) ((name1 val1) (name2 val2) ...))

という感じにinvokeを変更して、

(win32ole:WithEvent obj func event_name)

という感じにwitheventを実装するつもりです。

どうしたらいいか良くわからないのがイベントループ回り。
こういうのはScheme的にはどう実装する物なんでしょうか?

ほかに、ここのインターフェースはまずい、とかありますか?
現状ではこんなのが動いてます。

(define ie (win32ole:create "InternetExplorer.Application"))
(win32ole:invoke ie *win32ole:DISPATCH_PROPERTYPUT* "visible" t)
(win32ole:invoke ie *win32ole:DISPATCH_METHOD* "GoHome")
(win32ole:invoke ie *win32ole:DISPATCH_METHOD* "Quit")
(win32ole:uninitialize)