2012-02-07 54 views
1

我正在使用IWebBrowser2在我的webcontrol上工作。我如何只允许flash activeX,但其他人不允许在我的webcontrol中使用IWebBrowser2?

我希望它播放Flash电影,但不允许其他ActiveX控件。 我发现不允许使用DLCTL_NO_DLACTIVEXCTLS的所有ActiveX控件| DLCTL_NO_RUNACTIVEXCTLS在调用的实现中标记 。 但我已经搜索MSDN的IWebBrowser和相关的接口,我找不到任何解决方案。

我希望在加载ActiveX之前捕捉一个事件,或者只允许使用flash的ActiveX方法。

请大家帮忙。谢谢。

回答

3

Web浏览器的主机可以通过实现IOleClientSite并用一组期望的行为标志响应DISPID_AMBIENT_DLCONTROL来控制它的行为。一个重要的警告:标志DLCTL_NO_RUNACTIVEXCTLS仅阻止文档本身内的OBJECT标签。如果未设置DLCTL_NO_SCRIPTS,它对使用从脚本调用新ActiveXObject(“...”)没有影响。

为了防止在Web浏览器主机中执行ActiveX,请在使用URLACTION_ACTIVEX_RUN调用ProcessURLAction实现时提供IInternetSecurityManager并返回URLPOLICY_DISALLOW和S_FALSE。为了仅允许指定的“允许列表”的控件运行,ProcessURLAction实现可以检查所请求的控件的CLSID;使用pContext参数传入CLSID。

相关问题