请问IHTMLElement 无法取到 HTMLElementEvents2 接口?

jacksun1120 2005-11-20 12:47:50

我在程序中通过IHTMLElement请求HTMLElementEvents2接口, 却返回了E_NOINTERFACE 接口不存在的错误? 请问我怎样才能得到HTMLElementEvents2接口? 谢谢
...全文
449 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacksun1120 2005-11-26
  • 打赏
  • 举报
回复
谢谢
蒋晟 2005-11-24
  • 打赏
  • 举报
回复
嗯,有些元素支持其他的事件,例如HTMLFormElementEvents2、HTMLDocumentEvents2等等。你需要针对不同的标签名作不同的处理。
IProvideClassInfo2::GetGUID可以用于获得默认的事件DispID。
jacksun1120 2005-11-24
  • 打赏
  • 举报
回复
我篇文章我已经看过了, 照上面的做法, 在

hr = pElem->QueryInterface(IID_IConnectionPointContainer, (void**)&pCPC);

if (SUCCEEDED(hr))
{
// 在这里就会直接返回E_NOINTERFACE
hr = pCPC->FindConnectionPoint(DIID_HTMLElementEvents2, &pCP);

我开始的做法就是参照这篇文章的,所以才会有一开始的问题, 谢谢
蒋晟 2005-11-23
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/workshop/browser/mshtml/tutorials/sink.asp
jacksun1120 2005-11-23
  • 打赏
  • 举报
回复
我实现完此接口后, 如何才能把它同HTML Element挂接起来? 谢谢
蒋晟 2005-11-22
  • 打赏
  • 举报
回复
1 你可以从HTMLElementEvents2派生一个类,或者用MFC/ATL的宏和模板
2 默认方法的Disp是0
jacksun1120 2005-11-21
  • 打赏
  • 举报
回复
HTMLElementEvents2是dispinterface,怎么实现它呢? 还有像IHTMLElement中的put_onclick这样的方法传递给它一个IDSPATCH接口却什么事件都接收不到如何解决呢?
蒋晟 2005-11-20
  • 打赏
  • 举报
回复
HTMLElementEvents2是事件处理接口,要自己实现的,要触发事件的话,可能可以调用IHTMLElement的对应方法
蒋晟 2005-11-20
  • 打赏
  • 举报
回复
你可以访问window.event来获得和事件相关的信息
jacksun1120 2005-11-20
  • 打赏
  • 举报
回复
谢谢您的回答, 目前我使用的是IDISPATCH的事件处理方式,如果我同时在两个HTML标签上绑定Onclick事件处理,当事件发生后, 我无法知道这个Onclick是哪一个HTML标签触发的,因此想使用HTMLElementEvents2来实现事件处理,但不知如何去做,希望您能再指教一下, 谢谢

3,055

社区成员

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

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