By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,231 Members | 1,707 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,231 IT Pros & Developers. It's quick & easy.

ActiveX event capture question

P: n/a
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>

----------

Jul 23 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a

jv***@yahoo.com wrote:
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.
--

Martin Honnen
http://JavaScript.FAQTs.com/
Jul 23 '05 #2

P: n/a
Thanks Martin. Good thought... also always nice to find out I'm not
just losing my mind.

Jul 23 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.