html onclick调用c,c – 在BHO中使用HTMLDocumentEvents2捕获OnClick事件时出现问题

我正在运行BHO,我正在尝试使用

HTMLDocumentEvents2捕获OnClick事件

然而,事件似乎永远不会到达处理程序

这就是我在做的事情:

class ATL_NO_VTABLE CBlastBhoBHO :

public CComObjectRootEx,

public CComCoClass,

public IObjectWithSiteImpl,

public IDispatchImpl,

public IDispEventImpl<0, CBlastBhoBHO, &DIID_HTMLDocumentEvents2, &LIBID_MSHTML, 1, 0>,

public IDispEventImpl<1, CBlastBhoBHO, &DIID_DWebBrowserEvents2, &LIBID_SHDocVw, 1, 1>

BEGIN_SINK_MAP(CBlastBhoBHO)

SINK_ENTRY_EX(0, DIID_HTMLDocumentEvents2, DISPID_HTMLDOCUMENTEVENTS2_ONCLICK, OnClickTrigger)

SINK_ENTRY_EX(1, DIID_DWebBrowserEvents2, DISPID_DOCUMENTCOMPLETE, OnDocumentComplete)

END_SINK_MAP()

// Handlers

void STDMETHODCALLTYPE CBlastBhoBHO::OnDocumentComplete( IDispatch *pDisp, VARIANT *url) { // works fine }

void STDMETHODCALLTYPE CBlastBhoBHO::OnClickTrigger(IHTMLEventObj *pEvtObj) { // Never called }

// From SetSite()

ATL::IDispEventSimpleImpl<1,CBlastBhoBHO,&DIID_DWebBrowserEvents2>::DispEventAdvise(m_spWebBrowser);

// From OnDocumentComplete

CComQIPtr doc_;

m_spWebBrowser->get_Document((IDispatch**) &doc_);

ATL::IDispEventSimpleImpl<0,CBlastBhoBHO,&DIID_HTMLDocumentEvents2>::DispEventAdvise(doc_);

我尝试了几种变体(使用HTMLElementEvents2等)或在不同对象上提供建议或在SetSite上对文档提供建议.我的处理程序从未被调用.

任何帮助将非常感激.我只需要onClick事件.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值