472,141 Members | 1,477 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,141 software developers and data experts.

ActiveX event capture question

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
2 4909

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
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.

Similar topics

9 posts views Thread by VK | last post: by
10 posts views Thread by Andrew | last post: by
3 posts views Thread by Chad Johnson | last post: by
2 posts views Thread by =?Utf-8?B?Sm9obiBG?= | last post: by
4 posts views Thread by =?iso-8859-1?Q?Mario_Cer=F3n_Charry?= | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.