- PR -

Javascriptから、ActiveXコントロールが保持する文字列を取得する方法

1
投稿者投稿内容
gt-f
会議室デビュー日: 2006/10/05
投稿数: 18
投稿日時: 2008-10-02 18:19
gt-f と申します。

Javascript から ActiveXコントロールが持つ文字列(エラーメッセージ)を、
取得し、HTMLのテキストエリアに表示しようとしております。
(ActiveXコントロールは、VC++2005 のMFCにて作成)

まずは、エラーメッセージを "abc" に固定して、テキストエリアに表示
させようとしているのですが、-24 と表示されます。

どこが間違えておりますでしょうか。
Javascript と C言語の間で、「文字列」のやり取りを行うことはできない
のでしょうか。
(CHAR型('A' 等)の取得ができるところまでは、動作確認しております)

ネットで情報を探しても解決に至らず、質問させて頂きました。
ご教示の程、よろしくお願いいたします。

------- HTML & Javascript -------
<html>
<head><title>ActiveX Sample</title></head>
<body>

<textarea id="msg1" name = "msg" cols=40 rows=5>
</textarea>
<br><hr><br>

<input type="button" name="BtnInit" value="Init" OnClick="Init()">

<br><hr><br>
<object id="act1" width="0" height="0"
CLASSID="clsid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
CODEBASE="xxxxxxxxxxxxxxxxxx">
</object>

<script>
<!--
var ret ; // ActiveXコントロールの関数の戻り値

// msg をテキストエリアに出力する
function writeMsg(msg)
{
var txtarea = document.getElementById("msg1") ;
txtarea.value = msg ;

}

function Init()
{
// ActiveXコントロールの関数呼び出し
ret = act1.m_initFrameWork() ;

// エラーの時
if (ret == 0) {
var errMsg = act1.m_getErrorMessage() ;

// テキストエリアに、ActiveXコントロールが保持するエラーメッセージを表示
writeMsg(errMsg) ;
}
else {
// テキストエリアに出力
writeMsg("successfully finished!") ;
}

}
-->
</script>

</body>
</html>


------- ActiveXコントロールのメソッド (VC++2005 MFC にて作成) -------
CHAR * TestCtrl::m_getErrorMessage(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());

// TODO: ここにディスパッチ ハンドラ コードを追加してください。
return "abc" ;
}
gt-f
会議室デビュー日: 2006/10/05
投稿数: 18
投稿日時: 2008-10-07 11:09
gt-fです。自己レスです。

とてもおはずかしい質問をしていたことに気付きました。。

規定のプロパティ:Textを使えば、簡単に文字列を取得できました。

 ◆クラスビューで該当クラスの上から2つめを右クリック
  => 追加 => プロパティの追加
 ◆"プロパティ名" セレクトボックス一覧に、デフォルトで
  "Text" プロパティがあるので、それを元にプロパティ作成

難しく考え過ぎておりましたが、答えはこんなところにありました。

失礼いたしましたm(_ _)m
1

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