使用网页上另一个ActiveX控件的ActiveX控件

时间:2009-07-20 22:27:00

标签: javascript internet-explorer activex

我在编写的ActiveX控件中调用非IDispatch方法时遇到了问题。

我有一个网页,里面有两个独立的Active X对象,我写过这两个对象。我首先在第一个对象上调用一个方法,该方法返回一个指向一个不可共同创建的新COM对象的接口指针。然后我在这个新对象上调用一个方法,将第二个ActiveX对象作为参数传递。在这个方法中,我调用QueryInterface来获取第二个ActiveX对象上的私有/内部接口指针。问题是QueryInterface返回的指针不是指向我对象的有效指针,任何使用它的尝试都会崩溃。

如何获得可以使用的实际对象的界面?我的私有接口使用结构,因此它与IDispatch不兼容,并且作为内部接口,我不希望在类型库中公开它。

1 个答案:

答案 0 :(得分:1)

仅仅描述一下有点难以辨别,但我假设第一个对象上的方法是返回一个IDispatch指针指向它创建的对象? JScript环境只能应付这种情况。

另外,您的QueryInterface实现是否有效?它在非脚本环境中是否适用于您?

我仍然有点不清楚哪些对象有哪些接口,但是如果你有一个IDispatch不友好的接口的对象,也许你可以构建一个简单的包装器对象来保存它,其中包装器对象有一个合适的IDispatch接口?

道歉,如果我不合时宜......我几个月内没有与ActiveX东西搏斗。