Visual c++ 为VC和x2B实现IDocHostUIHandler接口+;Web浏览器控件

Visual c++ 为VC和x2B实现IDocHostUIHandler接口+;Web浏览器控件,visual-c++,mfc,webbrowser-control,Visual C++,Mfc,Webbrowser Control,我有一个带有web浏览器ActiveX控件的VC++MFC对话框应用程序。我最终想要实现的是不允许在浏览器控件中加载的网页链接上执行单击操作。换句话说,在web浏览器控件内单击网页上的超链接不应该做任何事情(没有重定向到新URL)。在研究了这个问题之后,我发现MSDN和stackoverflow(例如,它们不是在讨论相同的事情,而是定制上下文菜单的类似要求)的理想方法可能是实现IDocHostUIHandler接口,并在IDocHostUIHandler::TranslateUrl中编写我自己的

我有一个带有web浏览器ActiveX控件的VC++MFC对话框应用程序。我最终想要实现的是不允许在浏览器控件中加载的网页链接上执行单击操作。换句话说,在web浏览器控件内单击网页上的超链接不应该做任何事情(没有重定向到新URL)。在研究了这个问题之后,我发现MSDN和stackoverflow(例如,它们不是在讨论相同的事情,而是定制上下文菜单的类似要求)的理想方法可能是实现IDocHostUIHandler接口,并在IDocHostUIHandler::TranslateUrl中编写我自己的自定义代码

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


任何关于如何进行的分步示例方面的帮助都会对我有很大帮助。

一种更简单的方法可能是在导航2之前处理
DISPID\u事件,筛选允许的URL,并将
取消
参数设置为
以停止导航


请参见

MSDN链接中的“实现IDispatch::Invoke方法来处理DISPID_BEFORENAVIGATE2”。这是否与在对话框控件中处理BeforeNavigate2事件的方式与处理任何其他MFC对话框控件事件的方式相同(使用对话框编辑器,选择事件并自动生成一个函数来处理它)?抱歉,我不知道如何处理MFC。我添加了MFC标签。如果对话框编辑器中存在BeforeNavigate2,则可以。试试:-)我使用了web浏览器的BeforeNavigate2事件,并在那里设置了导航限制,它可以正常工作。谢谢你的指点。