为VC ++ Web浏览器控件实现IDocHostUIHandler接口

时间:2014-01-03 11:47:17

标签: visual-c++ mfc webbrowser-control

我有一个带有Web浏览器ActiveX控件的VC ++ MFC对话框应用程序。我最终想要实现的是禁止在浏览器控件中加载的网页中的链接上单击操作。换句话说,单击Web浏览器控件内网页上的超链接应该什么都不做(不重定向到该新URL)。在研究了这个问题之后,我在MSDN上发现了stackoverflow(例如MFC : How to capture a link click event in a web browser control?,它不是同一个东西,而是一个类似于定制上下文菜单的要求),理想的做法可能是实现IDocHostUIHandler接口并在IDocHostUIHandler :: TranslateUrl中编写我自己的自定义代码。

现在我发现了很多代码,作为COM接口的初学者,我无法理解我是如何将这部分引入现有代码的。我是否将接口代码复制粘贴到我的源代码中?或者是否有任何步骤为VC ++自动生成此代码?

任何有关如何解决这个问题的逐步示例方面的帮助都会对我有所帮助。

1 个答案:

答案 0 :(得分:1)

更简单的方法可能是处理DISPID_BEFORENAVIGATE2事件,过滤允许的网址,并将Cancel参数设置为TRUE以停止导航。

请参阅Controlling Navigation