ActiveX控件,jsp接收不到事件!

xunmengren2009 2010-09-07 03:04:04
先把问题说说,之后给出源码:
1、添加两个事件:
// Event interface has no properties
methods:
// NOTE - ClassWizard will maintain event information here.
// Use extreme caution when editing this section.
//{{AFX_ODL_EVENT(CJoyitWPlayerCtrl)
[id(1)] void PlayerStateChange(long newState);
[id(2)] void playPosChange(long newTime);
//}}AFX_ODL_EVENT

class CJoyitWPlayerCtrl : public COleControl
public:
//{{AFX_EVENT(CJoyitWPlayerCtrl)
void FirePlayerStateChange(long newState)
{FireEvent(eventidPlayerStateChange,EVENT_PARAM(VTS_I4), newState);}
void FirePlayPosChange(long newTime)
{FireEvent(eventidPlayPosChange,EVENT_PARAM(VTS_I4), newTime);}
//}}AFX_EVENT

在控件内部,调用FirePlayerStateChange(long newState),
但是,JS却接收不到事件。
2、用ActiveX Control Pad 测试,放置多个控件是可以的,但JS里放置多个控件,就显示不出来。
我在class CJoyitWPlayerCtrl::OnDraw(){dlg.show(sw_show);}
3、按照网上的方法,实现了这个接口,但JS还是接收不到触发的事件。
DECLARE_INTERFACE_MAP()
BEGIN_INTERFACE_PART(ProvideClassInfo, IProvideClassInfo)
STDMETHOD_(HRESULT, GetClassInfo) ( /*[out] */ITypeInfo** ppTI);

END_INTERFACE_PART(ProvideClassInfo)

4、js调用代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="http://10.8.8.219:8080/PlayerTest/">

<title>My JSP 'Encryption1.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<table>
<tr>
<td>
一个播放器播放多条不加密语音
</td>
</tr>
<tr>
<td>
<object name="JoyitWPlayer1" ID="JoyitWPlayer1" WIDTH="600" HEIGHT="71"
CLASSID="CLSID:642410AE-F742-4E29-8E76-A7A2F34E1E55"
codebase="http://10.8.8.219:8080/PlayerTest/cab/JoyitWPlayer.cab">
<param name="_Version" value="65536">
<param name="strUrl" value="http://10.8.8.219:8080/PlayerTest/20090317171219_H38a6_H39a6_H0003.wav http://10.8.8.219:8080/PlayerTest/20090317171235_H38a6_H39a6_H0005.wav http://10.8.8.219:8080/PlayerTest/20090317173133_H38a6_H39a6_H0003.wav"/>
<param name="bAutoStart" value="true"/>
</objct>
<script for="JoyitWPlayer1" event="PlayerStateChange(newState)" language="JScript">
alert(newState);
</script>
<script for="JoyitWPlayer1" event="playPosChange(newS)" language="JScript">
alert("time:"+newS);
</script>
</td>
</tr>
</table>
</body>
</html>


麻烦大家帮忙看看啊,十分感谢。。。。。。。。。。。
...全文
205 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunyizhyuan 2010-12-13
  • 打赏
  • 举报
回复
看看什么原因
hyf699 2010-09-08
  • 打赏
  • 举报
回复
你试试 添加连接点
xunmengren2009 2010-09-08
  • 打赏
  • 举报
回复
没问题了。。。。。
warroom 2010-09-07
  • 打赏
  • 举报
回复
你这ACTIVEX控件吧。实现ATL 支持控件功能。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧