質問

私は電話をする必要があり込Win32APIをシリーズの文字列、たいと思い配列を返しの文字列をJavaScriptです。こちらはスクリプトというローカルマシンの管理のためのスクリプト、あるいはウェブブラウザです。

私のIDLファイルのCOMオブジェクトを用いたインターフェースのい出として:

HRESULT GetArrayOfStrings([out, retval] SAFEARRAY(BSTR) * rgBstrStringArray);

この機能を返します正しく、その文字列は"失われた時、それがこれから配属される変数です。

ここでの問いはの適正な取得文字列の配列に返JavaScriptの変数?

役に立ちましたか?

解決

振り返ってみると、私が正しくする必要がありまを包む SAFEARRAY a VARIANT では、その利用 VBArrayオブジェクト 開梱でJSい:

HRESULT GetArrayOfStrings(/*[out, retval]*/ VARIANT* pvarBstrStringArray)
{
   // ...

   _variant_t ret;
   ret.vt = VT_ARRAY|VT_VARIANT;
   ret.parray = rgBstrStringArray;
   *pvarBstrStringArray = ret.Detach();
   return S_OK;
}

その

var jsFriendlyStrings = new VBArray( axOb.GetArrayOfStrings() ).toArray();

他のヒント

Shog9 に通知するものとします。COMスクリプティングを必要とするすべて出力する変更されることもあります。

いることを可能にするために重要に 入力 する異を問わずどなたでも参照の手の内容IDispatchお好みです。でしか味わえないと思っているマジックのデュアルインタフェース実装によるATLおよび類似の層(そうい)を使用していないなどの心配についての質問です。入力バ渡されたの呼び出しのコード変換に合わせ方法の署名前の実際の方法が呼び出されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top