interface ITest : IDispatch { HRESULT doSomething([in] ITest* pTest); };
のようなインターフェイスがあったときに、JScriptから
var test = ...; test.doSomething(null);
とやると、型の不一致でランタイムエラーになってしまうんですね。VBScriptなら、
set test = ... test.doSomething Nothing
とするところですが、JScriptでは標準でNothingに相当するものを生成する方法がないようです。しょうがないので、Applicationオブジェクトに、nothingというプロパティを作ってNothingに相当するもの(NULLのIDispatch*)を返すようにしてみました。
var test = ...; test.doSomething(application.nothing);
こう書けるようになると。
MSはサポートしていないと言っているHPC2000でのActiveScriptですが試した範囲では動いているようです。
しかも実はVBScriptも入っているんですね。
Pocket PC版をやるにあたって、ある程度自分でも使ってみようと思ったのですが、家にあるのはPocket PC(2002ではない)のみ。2002だとActiveSyncのデスクトップパススルー機能を使うと、NATがかけられるようですが、無印Pocket PCではダメなようです。しょうがないので、Proxy経由を試してみたのですが、これがまたいまいちうまくいかず。Webをさまよった挙句、USB接続でインターネットを発見し、この通りにやったところうまくいきました。といっても、まだHTTPしか試していないのですが、HTTPが出来ればPOP3やIMAP4は問題ないでしょう。