2003-04-02 [長年日記]

JScriptでNothing

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);

こう書けるようになると。

HPC2000でActiveScript

MSはサポートしていないと言っているHPC2000でのActiveScriptですが試した範囲では動いているようです。

しかも実はVBScriptも入っているんですね。

Pocket PCからUSB接続で外部アクセス

Pocket PC版をやるにあたって、ある程度自分でも使ってみようと思ったのですが、家にあるのはPocket PC(2002ではない)のみ。2002だとActiveSyncのデスクトップパススルー機能を使うと、NATがかけられるようですが、無印Pocket PCではダメなようです。しょうがないので、Proxy経由を試してみたのですが、これがまたいまいちうまくいかず。Webをさまよった挙句、USB接続でインターネットを発見し、この通りにやったところうまくいきました。といっても、まだHTTPしか試していないのですが、HTTPが出来ればPOP3やIMAP4は問題ないでしょう。