ActiveX オブジェクト メソッドには、この署名があります。
long DirectIO(long Command, long* pData, BSTR* pString)
Int32 DirectIO(Int32, Int32 ByRef, System.String ByRef)
このメソッドを JavaScript から呼び出そうとしています。多くの組み合わせを試しましたが、常に「タイプの不一致」エラーが発生します。
参照リンク:
- JavaScript での「出力」パラメータの操作
- VBScript から Foo(..., [out] BSTR * value) を使用して COM メソッドを呼び出す
https://developer.mozilla.org/en/Working_with_out_parameters
- http://blogs.msdn.com/b/ericlippert/archive/2003/09/29/53117.aspx
では、VBScript がここで型の不一致エラーを生成するのはなぜでしょうか? VBScript は違います。オブジェクトはタイプの不一致エラーを生成し、VBScript はこれを忠実に報告します。オブジェクトの Invoke の実装は、タイプ ライブラリの実装によって提供される Invoke の既定の実装を呼び出します。それは、「バリアントへの参照を取得しました。そのバリアントは文字列です。文字列への参照が必要です。それは型の不一致です。」
- http://automation-beyond.com/2009/09/01/gp-automation-utilizing-com/
- http://support.microsoft.com/kb/244012