在BHO我需要捕捉后退/前进按钮。
为此我在我的项目中声明了方法:
BEGIN_SINK_MAP(CAddonHandler)
...
SINK_ENTRY_EX(1, DIID_DWebBrowserEvents2, DISPID_COMMANDSTATECHANGE, CommandStateChange)
.....
END_SINK_MAP()
void STDMETHODCALLTYPE CommandStateChange( long Command, VARIANT_BOOL Enable);
定义该方法:
void STDMETHODCALLTYPE CAddonHandler::CommandStateChange( long Command, VARIANT_BOOL Enable)
{
if ((Command == CSC_NAVIGATEFORWARD) || (Command == CSC_NAVIGATEBACK))
m_numberTransition = 5;
}
构建并运行该方法后,确实开始捕获IE的所有事件:
从地址栏输入网址,点击链接等等。为什么?
我注意到浏览器两次调用该方法:
第一个用于CSC_NAVIGATEBACK,第二个用于CSC_NAVIGATEFORWARD
任何想法