COMサーバー

最近、まったく書いてる余裕が無い、、、。
というより色々と思考が行き詰まってしまっているのが原因。
 
最近、ようやくCOMサーバーのやり口が理解できてきたので少し気も楽だ。
しかし、VBスクリプトJavaスクリプトの配列が問題。
VBスクリプトはSafeArrayという配列形式なのでJavaスクリプト側では扱えない。
もっと変態的なのが a[0]とかa[1]とかJavaスクリプトの配列はなんと
a.0 とか a.1 といったプロパティーになっている点。これに気が付くまで大変悩んだ。
さて、じゃぁSafeArrayをどうしてくれるのか?
 
function VB2JSArray( objVBArray )
{
    return new VBArray( objVBArray ).toArray();
}
とやればよろしい。しかし、この逆はどうっても出来ない。Javaスクリプト側でやるにはどうやら
 
function JS2VBArray( objJSArray )
{
    var dictionary = new ActiveXObject( "Scripting.Dictionary" );
    for ( var i = 0; i < objJSArray.length; i++ )
    {
        dictionary.add( i, objJSArray[ i ] );
    }
    return dictionary.Items();
}
とするしかないようだ。トホホホ