DWebBrowserEvents2 :: CommandStateChange()事件

时间:2011-08-08 09:27:41

标签: internet-explorer events bho

在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

任何想法

0 个答案:

没有答案