ActiveX.exe のイベントをWEBページで受け取りたい


やす  2012-03-29 23:47:38  No: 103252

VB6で作られたActiveX.exeコンポーネントを、ブラウザ(IE8)上で動かそうとしています。
ActiveX.exe内のメソッドやプロパティ値を呼び出すことはできるのですが、イベントを取得することができません。
ActiveX.DLLなのであれば成功しているのですが、ActiveX.EXEではできません。これは何が間違っているのか(それともそもそもできないのか)を知りたいと思っています。

どのようにすればよいのか教えていただけませんでしょうか。

下記に動作を試したコードを記します。
ActiveX.DLL を Test01.html で表示させ、ボタンを押下すると
◆DLL内のMsgBox:"TESTFUNC01-CALLED"が表示される
◆html上のスクリプトが動作して "EVENT01-RISED"が表示される

となるのですが、
ActiveX.EXE を Test02.html で同様に行うと、
◆DLL内のMsgBox:"TESTFUNC02-CALLED"が表示される
のみで、htmlスクリプトが動作しません。
これを動作させたく思っております。

'ActiveX.DLL VB6: Class1.cls -----------------------------
  Option Explicit
  Event Event01(ret As String)
  
  Public Sub TESTFUNC()
    MsgBox "01 TESTFUNC01-CALLED"
    RaiseEvent Event01("EVENT01-RISED")
  End Sub

'Test01.html ---------------------------------------------
  <html>
  <head>
    <script type="text/javascript" FOR="TEST01" EVENT="EVENT01(xxx)">
    <!--
    alert(xxx);
    //-->
    </script>
  </head>
  
  </body>
    <input type="button" value="ActiveX-DLL Test" NAME="push1"
           onClick="TEST01.TESTFUNC();"><br>
  
    <object name="TEST01" width="0" height="0" 
       classid="clsid:4EE9EF04-0DA9-4357-A611-D6894876301F">
    </object>
  </html>

==========================

'ActiveX.EXE VB6: Class1.cls -----------------------------
  Option Explicit
  Event Event02(ret As String)
  
  Public Sub TESTFUNC()
    MsgBox "TESTFUNC02-CALLED"
    RaiseEvent Event02("EVENT02-RISED")
  End Sub

'Test02.html ---------------------------------------------
  <html>
  <head>
    <script type="text/javascript" FOR="TEST02" EVENT="EVENT02(xxx)">
    <!--
    alert(xxx);
    //-->
    </script>
  </head>
  
  </body>
    <input type="button" value="ActiveX-EXE Test" NAME="push1"
           onClick="TEST02.TESTFUNC();"><br>
  
    <object name="TEST02" width="0" height="0" 
       classid="clsid:1400590D-046D-4DBB-8324-D5948CBF65B3">
    </object>
  </html>

==========================

ちなみに、ActiveX.EXE の動作の確認として以下の VB6標準EXEを作りました。
この標準EXEでは、
◆DLL内のMsgBox:"TESTFUNC02-CALLED"が表示される
◆標準EXE内のイベントプロシジャが動作して "EVENT02-RISED"が表示される
…となります。
私としては、この標準EXEの様に、前述の Test02.html も動作して欲しいと思っています。

'Form1.frm VB6 標準exe コマンドボタンを1つ配置 -----------
  Option Explicit
  Private WithEvents gTEST02 As TEST02.Class1
  
  Private Sub Command1_Click()
    Set gTEST02 = New TEST02.Class1
    Call gTEST02.TESTFUNC
  End Sub
  
  Private Sub gTEST02_Event02(ret As String)
    MsgBox ret
  End Sub

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加