写一个ActiveX控件,除了实现在IDL文件中定义的接口之外,还要实现一个系统定义好的接口,
比如IDocHostUIHandler, 应该怎么实现?我在实现类的继承基类中添加了这个接口,并且在COM_MAP中也添加了这个接口的的Entry,而且实现了这个接口定义的方法,但是当编译之后,通过COM/OLE view看不到这个接口的实现。请问应该怎么处理?

解决方案 »

  1.   

    一般情况下这并不影响你的控件的使用。如果确有必要的话,你可以将IDocHostUIHandler接口加到你的coclass中的接口列表中
      

  2.   

    IDocHostUIHandler是在容器的IOleClientSite接口实现的同一个对象上实现的,你在控件中如何插入的浏览器控件?
      

  3.   

    是一个Composite空间,WebBrowser控件是通过对话框资源插入的。
      

  4.   

    我在这个控件的实现类里面添加了上面的接口,但是通过COM/OLE viewer没有看到我添加的接口。急
      

  5.   

    首先得到包装了WebBrowser的那个CAxWindow对象,然后调用SetExternalUIHandler()来设置IDocHostUIHandlerDispatch接口的指针。在你的组建里面实现IDocHostUIHandlerDispatch接口就可以了。
      

  6.   

    首先得到包装了WebBrowser的那个CAxWindow对象,然后调用SetExternalUIHandler()来设置IDocHostUIHandlerDispatch接口的指针。在你的组建里面实现IDocHostUIHandlerDispatch接口