3,245
社区成员
发帖
与我相关
我的任务
分享
class XXXXSink: public CCmdTarget
{
DECLARE_DYNAMIC(XXXXSink)
public:
XXXXSink(CHtmlView *pParentHtmlView = NULL);
virtual ~XXXXSink();
void OnHtmlClick(IHTMLEventObj *pEvtObj);
protected:
CHtmlView *m_pParentHtmlView;
DECLARE_MESSAGE_MAP()
DECLARE_DISPATCH_MAP()
DECLARE_INTERFACE_MAP()
};
BEGIN_MESSAGE_MAP(XXXXSink, CCmdTarget)
END_MESSAGE_MAP()
BEGIN_DISPATCH_MAP(XXXXSink, CCmdTarget)
DISP_FUNCTION_ID(XXXXSink,"onclick", DISPID_HTMLELEMENTEVENTS2_ONCLICK, OnHtmlClick, VT_EMPTY, VTS_DISPATCH)
END_DISPATCH_MAP()
BEGIN_INTERFACE_MAP(XXXXSink, CCmdTarget)
INTERFACE_PART(XXXXSink, DIID_HTMLElementEvents2, Dispatch)
END_INTERFACE_MAP()
void XXXXSink::OnHtmlClick(IHTMLEventObj *pEvtObj)
{
IHTMLElement * pElement = NULL;
HRESULT res = pEvtObj->get_srcElement(&pElement);
IHTMLEventObj2* pObjEvent2 = NULL;
res = pEvtObj->QueryInterface(IID_IHTMLEventObj2, (void**)&pObjEvent2);
if(res == S_OK&& pObjEvent2)
{
TRACE("OnHtmlClick---pObjEvent2\r\n");
pObjEvent2->put_clientX(50);
pObjEvent2->put_clientY(50);
}
}
hr = AfxConnectionAdvise(m_pDocument2, DIID_HTMLDocumentEvents2, m_pSink->GetIDispatch(FALSE), FALSE, &m_dwCookie); // m_pSink 已经定义为成员变量