ActiveX event capture question

J

jva02

Hi,

I'm confused why I can capture an event fired by an ActiveX object when
it's loaded via an <object> tag, but not when loaded using "new
ActiveXObject".

Here's a basic example:
vb ActiveX object:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwmilliseconds As Long)

Public MyProp As Integer

Public Event doPop()

Public Sub FireEvent()
Sleep (2000)
RaiseEvent doPop
MyProp = 3
End Sub

Private Sub Class_Initialize()
MyProp = 1
End Sub
------------------------------------
javascript using the script to load the object:
(This way loads the object - I can get property values.
I just can't capture the event).

<html>

<script type="text/javascript">

var VBxSignaler
function loadTheObject()
{
try {
VBxSignaler = new ActiveXObject('TestControl.VBxSignaler')
} catch (e) { alert( "oops" ); }
getProp();
}

function doAlert() { alert( "It caught the event" ); }
function fireTheAlert() { VBxSignaler.FireEvent(); }
function getProp() { alert( VBxSignaler.MyProp ); }
</script>

<script type="text/javascript" for="VBxSignaler" event="doPop">
getProp();
</script>

<body onload="javascript:loadTheObject();">

<input type=button id=button1
onclick="javascript:VBxSignaler.FireEvent();" value="Fire" /><p>

<p><input type=button id=button2 onclick="javascript:getProp();"
value="Get new Val" /><p>
</body>
</html>

-------------
This is using the <object> tag.
This way allows me to capture the event.
Any help would really be appreciated.

<html>

<div style="display: none">
<object
id="VBxSignaler"
classid="CLSID:B84143D2-3ADB-48E1-9716-05B77BB982B5"
style="display: none;">
</object>
</div>

<script type="text/javascript" for="VBxSignaler" event="doPop">
alert( "I just caught the event!" );
</script>

<body>
<b>This contains the "object" tag</b><br>
<input type=button onclick="VBxSignaler.FireEvent();" value="Fire"
/><p>
</body>
</html>

----------
 
M

Martin Honnen

I'm confused why I can capture an event fired by an ActiveX object when
it's loaded via an <object> tag, but not when loaded using "new
ActiveXObject".

You might want to ask the experts in the MS scripting newsgroups but
ActiveXObject does not provide event binding as you have found out.
For instance when you use JScript in WSH (Windows Script Host) scripts
you do not use ActiveXObject to have events bound but you need to use
WScript.CreateObject.
 
J

jva02

Thanks Martin. Good thought... also always nice to find out I'm not
just losing my mind.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,189
Members
46,734
Latest member
manin

Latest Threads

Top