【发布时间】:2009-03-25 03:36:30
【问题描述】:
ActiveX 控件检测其容器(或容器的容器)是否为 Internet Explorer 的好方法是什么?
目前,我通过调用控件的 IOleClientSite::GetContainer 方法并检查容器是否实现了 IHtmlDocument2 接口来执行此操作,但现在,我想检查所有控件的祖先,看看它们是否实现了 IHtmlDocument。
问题是该控件现在包含在 CComCompositeControl 中并使用 CreateActiveXControls(resourceID) 方法创建,该方法将内部控件创建为 CAxHostWindow 实例的子级。在这种情况下,CAxHostWindow 实例将自己报告为它自己的容器,所以我还没有找到一种向上走的方法(如果这个模型中有这样的树)。
【问题讨论】: