- PR -

JavaScriptとActiveXコントロールの連携について

投稿者投稿内容
syo
会議室デビュー日: 2005/03/16
投稿数: 2
投稿日時: 2005-03-16 17:50
はじめまして。

JavaScriptとActiveXコントロールの連携について質問です。

現在、私はJavaScriptによりActiveXコントロールを呼出し、
CallBack関数のように使用したいと考えています。

HomePage上のJavaScriptからActiveXコントロール呼出し後、
ActiveXコントロールは何らかの処理待ち状態になり、
処理がおわった後に、ActiveXコントロールの呼出し元のHomePageに
イベント通知及び、データの受け渡しを行うことは可能でしょうか?

また、JavaScriptとActiveXコントロールの連携について記述された
書籍あるいは、HomePageなどがありましたら教えていただけませんでしょうか?

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



ふーばー
大ベテラン
会議室デビュー日: 2003/06/05
投稿数: 163
投稿日時: 2005-03-16 18:11
コールバックにする必然性がありますか?
単に、ActiveX 呼び出して、処理が終わってデータが返されるのを待っていればいいだけでは?
「JavaScriptからActiveXを」というキーワードでググるといろいろな情報が見つかりますが、自分で調べましたか?
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-03-16 18:13
引用:

HomePage上のJavaScriptからActiveXコントロール呼出し後、
ActiveXコントロールは何らかの処理待ち状態になり、
処理がおわった後に、ActiveXコントロールの呼出し元のHomePageに
イベント通知及び、データの受け渡しを行うことは可能でしょうか?



コード:
hoge.html

<script>
	function window::onload(){
		alert();
	}
</script>



VBScriptだと、ActiveXやDHTMLオブジェクトからイベント受け取るには
「オブジェクト名_イベント名」のメソッドがあれば呼ばれます。
同じようにJavaScriptだと、「オブジェクト名::イベント名」で呼ばれます。

ActiveX側にPublicイベントを定義して、
JavaScript側で上記のルールでメソッドを定義すれば、
独自のイベントを処理する事ができます。

引用:

また、JavaScriptとActiveXコントロールの連携について記述された
書籍あるいは、HomePageなどがありましたら教えていただけませんでしょうか?



http://www.google.co.jp
syo
会議室デビュー日: 2005/03/16
投稿数: 2
投稿日時: 2005-03-16 18:46
早速のご回答、どうもありがとうございました。

>「JavaScriptからActiveXを」というキーワードでググるといろいろな情報が見つかります>が、自分で調べましたか?

接続詞をつけずに「JavaScript ActiveX」で調べてました。
もう少し調べてみます。
Lichtenstein
ベテラン
会議室デビュー日: 2003/11/06
投稿数: 61
投稿日時: 2005-03-17 10:29
>また、JavaScriptとActiveXコントロールの連携について記述された
>書籍あるいは、HomePageなどがありましたら教えていただけませんでしょうか?

一年ほど前に、自分も探していたのですが、網羅的なページは見つかりませんでした。
結局(ActiveXについて掲載されている)VisualBasicの本を購入するはめになりました。

かつのりさんが書かれているように、Publicメソッドを呼び出すのが
おそらく現実解です。Publicメソッドの中でイベント等は呼び出せば大丈夫でしょう?

それ以上を望むなら、Microsoftの文書を漁るしかないと思います。
IISの運用も含めると、解説書も欲しいところです。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-03-17 12:39
今回のFAQはクライアントサイドのActiveXですので、IISは関係ないのでは?

引用:

かつのりさんが書かれているように、Publicメソッドを呼び出すのが
おそらく現実解です。Publicメソッドの中でイベント等は呼び出せば大丈夫でしょう?



ActiveXが自分自身のPublicイベントを呼び出して、
それを実行しているスクリプトがそのイベントをハンドルするのであり、
(オブジェクトのイベントを拾えるように、命名規約に沿ったメソッドを定義する事)
ActiveX自身が実行元のPublicメソッドを呼び出しているのではありません。



>syoさん

いきなり難しい事をせず、サンプル的なソースを作りながらやってみては?

・イベントを持つActiveXDLLを作成
・処理終了後にイベントをコールする

というようなサンプルを作って、

・ブラウザから呼び出す
・イベントをハンドルできるようにする

というように、段を踏んでサンプルを作りながら理解してみてください。
Lichtenstein
ベテラン
会議室デビュー日: 2003/11/06
投稿数: 61
投稿日時: 2005-03-17 13:13
>今回のFAQはクライアントサイドのActiveXですので、IISは関係ないのでは?

ないかもしれませんね?
まあ、関係ないなら、質問者には無視してもらえるでしょう。

>ActiveXが自分自身のPublicイベントを呼び出して、
>それを実行しているスクリプトがそのイベントをハンドルするのであり、
>(オブジェクトのイベントを拾えるように、命名規約に沿ったメソッドを定義する事)
>ActiveX自身が実行元のPublicメソッドを呼び出しているのではありません。

文意はよくわかりませんが、作ったように動くんでしょうね。

DHTMLから、ActiveXコンポーネントのメソッドを呼び出すだけに留めた方が、
質問者にとって現実的なハードルになると思っただけです。
未記入
会議室デビュー日: 2004/06/25
投稿数: 6
投稿日時: 2005-03-17 13:34
>HomePage上のJavaScriptからActiveXコントロール呼出し後、
>ActiveXコントロールは何らかの処理待ち状態になり、
>処理がおわった後に、ActiveXコントロールの呼出し元のHomePageに
>イベント通知及び、データの受け渡しを行うことは可能でしょうか?

こんな感じで連携したことがあります。

<html>
<script>
function body_OnLoad() {
XXXX.StartSpeedCheck();
}
</script>
<script LANGUAGE="JavaScript" FOR="XXXX" EVENT="CheckedSpeed(bytes)">
...
alert("スピード = " + bytes);
...
</script>
<body onLoad="body_OnLoad()">
...
<object id="XXXX" classid="CLSID:ZZZZ" codebase="XXXX.cab" width="1" height="1">
...
</body>
</html>

>また、JavaScriptとActiveXコントロールの連携について記述された
>書籍あるいは、HomePageなどがありましたら教えていただけませんでしょうか?
Lichtenstein が言われているように、まとまったページはないようです。



[ メッセージ編集済み 編集者: 未記入 編集日時 2005-03-17 13:36 ]

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