AtlAdvise事件中如何获得IHTMLElement2的默认的事件DispID

中国蓝计划 2010-12-23 02:42:52
bool IWB::ShowVa(IDispatch * Elem)
{
CComPtr<IHTMLElement2> spElem2;
HRESULT hr = Elem->QueryInterface(IID_IHTMLElement2, (void**)&spElem2);


hr = AtlAdvise(spElem2, (IDispatch*)m_pEventSink,DIID_HTMLImgEvents2,&m_dwCookie);
//我想在这里通过传递的 Elem 动态的获得 spElem2 的事件类型如图片的是DIID_HTMLImgEvents2
//翻遍了帖子和百度 发现就只有 jiangsheng 达人说是通过 IProvideClassInfo2::GetGUID可以用于获得默认的事件DispID
//可是我该如何用啊 ShowVa(IDispatch * Elem) 传递过来的可能是图片 也 可能刷 按钮……
//HRESULT GetGUID(
// [in] DWORD dwGuidKind,
// [out] GUID *pGUID
//);
// 参考 http://topic.csdn.net/t/20051120/00/4405324.html
// http://msdn.microsoft.com/en-us/library/ms679721.aspx
}



达人一定要帮我啊 这里先谢过了!
...全文
162 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国蓝计划 2010-12-25
  • 打赏
  • 举报
回复
呵呵,多谢jameshooo
在这里 已得到 jameshooo 达人的亲自帮助!万分感谢啊!http://blog.csdn.net/jameshooo/archive/2010/12/24/6097229.aspx
skyxie 2010-12-24
  • 打赏
  • 举报
回复
虽然觉得不可思议,但貌似两个接口是一样的...
http://www.evocorp.com/Downloads/IridiumXKnownIntfs.dat
HTMLImgEvents={3050F25B-98B5-11CF-BB82-00AA00BDCE0B}
HTMLImgEvents2={3050F616-98B5-11CF-BB82-00AA00BDCE0B}
skyxie 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jameshooo 的回复:]
引用 6 楼 skyxie 的回复:

虽然觉得不可思议,但貌似两个接口是一样的...
http://www.evocorp.com/Downloads/IridiumXKnownIntfs.dat
HTMLImgEvents={3050F25B-98B5-11CF-BB82-00AA00BDCE0B}
HTMLImgEvents2={3050F616-98B5-11CF-BB82-00……
[/Quote]
jameshooo 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 skyxie 的回复:]

虽然觉得不可思议,但貌似两个接口是一样的...
http://www.evocorp.com/Downloads/IridiumXKnownIntfs.dat
HTMLImgEvents={3050F25B-98B5-11CF-BB82-00AA00BDCE0B}
HTMLImgEvents2={3050F616-98B5-11CF-BB82-00AA00BDCE0B}
[/Quote]

这也算一样?
中国蓝计划 2010-12-23
  • 打赏
  • 举报
回复
为什么获得的结果是DIID_HTMLImgEvents接口,而不是DIID_HTMLImgEvents2接口??
如何获得DIID_HTMLImgEvents2接口呢?
  • 打赏
  • 举报
回复
祝贺! 你的思路是对的
中国蓝计划 2010-12-23
  • 打赏
  • 举报
回复
晕,问题解决
http://www.hxzi.com/article/wangluoshouji/ATL_ActiveX_COM/2009-06-27/24315.html
中国蓝计划 2010-12-23
  • 打赏
  • 举报
回复
bool IWB::ShowVa(IDispatch * Elem)
{
CComPtr<IHTMLElement2> spElem2;
HRESULT hr = Elem->QueryInterface(IID_IHTMLElement2, (void**)&spElem2);

IProvideClassInfo2* pinfo = NULL;
spElem2->QueryInterface(IID_IProvideClassInfo2, (void**)&pinfo);
spElem2->GetGUID(???????,????????????);
中国蓝计划 2010-12-23
  • 打赏
  • 举报
回复
还有1个忘记贴了

http://technet.microsoft.com/zh-cn/subscriptions/ms679721(en-us,VS.85).aspx

3,055

社区成员

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

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