代码之家  ›  专栏  ›  技术社区  ›  Stephen Nutt

使用网页上其他ActiveX控件中的ActiveX控件

  •  0
  • Stephen Nutt  · 技术社区  · 15 年前

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

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

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

    1 回复  |  直到 15 年前
        1
  •  1
  •   Irwin Coleman    15 年前

    仅仅用一个描述就有点难说了,但是我假设第一个对象上的方法返回一个IDispatch指针到它创建的对象?JScript环境将只能处理这个问题。

    另外,您的QueryInterface实现是否有效?它在非脚本环境下对您有效吗?

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

    很抱歉,如果我偏离目标的话……我几个月没有和ActiveX打交道了。