关于Invoke HTML中的事件

xjchilli 2010-06-15 10:16:02
HRESULT _stdcall CHtmlEvents::Invoke(
DISPID dispIdMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS* pDispParams,
VARIANT* pVarResult,
EXCEPINFO* pExcepInfo,
unsigned int* puArgErr)

我在Invoke中设置断点,捕获后 不论dispIdMember的值为多少,pDispParams->cArgs的值总是为0,请问为什么呢
...全文
128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjchilli 2010-06-18
  • 打赏
  • 举报
回复
谢谢各位
skyxie 2010-06-17
  • 打赏
  • 举报
回复
你是想sink doc的事件不是element的事件?

如果是element的事件可以参考这里的代码:Handling HTML Element Events
xjchilli 2010-06-16
  • 打赏
  • 举报
回复
void OnDocumentComplete(DISPPARAMS* pDispParams)
{
UNREFERENCED_PARAMETER(pDispParams);

IUnknown* pUnk;
LPDISPATCH lpWBDisp;
HRESULT hr;

pUnk = GetBrowser().GetAXWindow().GetUnknown();

hr = pUnk->QueryInterface(IID_IDispatch, (void**)&lpWBDisp);

LPDISPATCH lpDisp = pDispParams->rgvarg[1].pdispVal;
if ( lpDisp == lpWBDisp )
{
IHTMLDocument2 *pDoc = GetBrowser().GetHTMLDocument2();
if( !pDoc ) return;
IConnectionPointContainer* pcpc;
IConnectionPoint* pcp = NULL;

hr = pDoc-> QueryInterface(__uuidof(IConnectionPointContainer), (void **)&pcpc);
if(FAILED(hr)) return;
hr = pcpc-> FindConnectionPoint(__uuidof(HTMLDocumentEvents), &pcp);
pcpc-> Release();
if(FAILED(hr)) return;

IUnknown *pUnk2 = NULL;
CHtmlEvents *pHtmlEvent = new CHtmlEvents;
hr = pHtmlEvent->QueryInterface(__uuidof(IUnknown),(void **) &pUnk2);
pHtmlEvent->SetSink( this );

DWORD dwCookie;

pcp->Advise( pUnk2, &dwCookie);
pcp->Release();
pUnk->Release();

if (FAILED(hr)) return;
}

}

处理名上,麻烦看一下。。。谢谢
jameshooo 2010-06-16
  • 打赏
  • 举报
回复
你使用的是哪个接口的连接点?DOM对象的连接点触发事件时都有有效的event对象,IWebBrowser2接口不属于DOM,连接点没有event对象。
jameshooo 2010-06-15
  • 打赏
  • 举报
回复
HTML中的事件参数中,只有 dispIdMember是有效的,其它参数无效,要获取事件的上下文信息,需要在事件处理中调用 IHTMLWindow2::get_event 获取 IHTMLEventObj,然后读取事件对象的属性
soswaidao 2010-06-15
  • 打赏
  • 举报
回复
被断下了
xjchilli 2010-06-15
  • 打赏
  • 举报
回复
jameshooo 你好,还想向你问一下就是设置html事件的连接点在什么时候设置呢。我在DocumentComplete里设置的,好像有问题,会多次触发同一个事件,且IHTMLEventObj *pEventObj=NULL;
pWnd2->get_event( &pEventObj );获得的 pEventObj的值为空
xjchilli 2010-06-15
  • 打赏
  • 举报
回复
jameshooo 你好,能详细说一下吗?

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧