- PR -

JavaScriptとActiveXコントロールの値のやりとりについて

1
投稿者投稿内容
もこな
会議室デビュー日: 2005/07/07
投稿数: 12
投稿日時: 2005-07-08 09:07
#この内容は、最初、Java Solution 会議室に投稿してしまい、
#会議室違いであることを教えていただきましたので、こちらで再投稿します。
#Java Solution 会議室もご覧になっている方、重複になって申し訳ありません。

VC++.NETで作ったActiveXコントロールとJavaScriptで値の受け渡し方法で悩んでいます。

JavaScriptからActiveXのメソッドを起動することはできました。↓こんな感じ。

<OBJECT ID="ClassicATLDiceControl" CLASSID="CLSID:xx〜xx"></OBJECT>
<input type="button" onclick="click_button();" value="PUSH">
<script language="javascript">
<!--
function click_button() {
ClassicATLDiceControl.RollDice();
}
-->
</script>

次に、ActiveXコントロールから何か値を受け取ろうと思い、ActiveXコントロール側に次のようなメソッドを作りました。

STDMETHODIMP CClassicATLDiceControl::get_FirstDiceValue(BSTR* param)
{
*param = CComBSTR(L"あいうえお");
return S_OK;
}

このメソッドからパラメータを受け取ろうと、次のようなJavaScriptを書きました。

function click_button2() {
var a;
ClassicATLDiceControl.get_FirstDiceValue( a );
alert( a );
}

特にエラーも無く動くのですが、値("あいうえお")は受け取れていません。調べたところによると、JavaScriptは値渡しになっているようなので、この方法ではダメなのでしょう。これを参照渡しにできれば受け取れるのかも?と思って色々調べてみているのですが、これといった情報に辿り着けません。

上記とは異なる方法でも構わないのですが、ActiveXコントロール側で生成した文字列や数値などを、JavaScriptに渡すにはどのようにすればよいか、どなたかご存知ありませんでしょうか?(ちなみに、この逆も知りたいです。JavaScriptの値をActiveXコントロールに渡す方法)

よろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)