首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActiveX控件中的OnReadyStateChange事件

ActiveX控件中的OnReadyStateChange事件
EN

Stack Overflow用户
提问于 2009-02-17 09:34:04
回答 1查看 1.2K关注 0票数 1

我写了一个允许托管ActiveX控件的火狐插件(只与FF3自动取款机兼容)。

在火焰开始之前-这不是这个问题的主要主题,这个插件的设计考虑到了安全性,所以它不会破坏我最喜欢的浏览器。如果您感兴趣,可以在http://code.google.com/p/ff-activex-host/上进行托管。

现在,我注意到在IE中所有的ActiveX控件都有一个名为OnReadyStateChange的事件可用,然而,并不是所有的ActiveX控件都在其TypeLib中列出了该事件。因此,我的插件无法为每个ActiveX控件注册此事件的处理程序。

用OleView打开这样的控件,我也找不到OnReadyStateChange事件--这让我相信IE可能在这里“作弊”才能让它工作。当OleView显示这样一个处理程序(就像Shockwave ActiveX控件一样)时,我可以毫不费力地为它注册处理程序。

这种控制的一个例子是微软的终端服务ActiveX。但这并不是一个仅限于MS ActiveX控件的问题。

我不是COM对象方面的专家,我是以错误的方式还是在错误的位置搜索事件?

现在我想我这样做是对的,因为OleView也找不到它,所以...

我是否可以像IE一样“作弊”,并使此事件可用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-02-17 09:59:44

是的,IE会作弊。您在IE中实际拥有的是在COM世界中我们称为聚合对象的东西。IE将创建一个COM类的实例,用于表示ActiveX对象,并将该实例与ActiveX类的实际实例聚合,从而创建一个复合对象。

此组合看起来是具有新功能的单个对象。

因此,我认为你根本不需要担心OnReadyStateChange。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/556091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档