htmlelement无法找到htmlelementevent连接点的问题!

cougar87 2003-10-27 07:08:59
我想截获html元素(button)的onclick事件,并处理之,一下是连接事件时的函数
procedure TForm1.connectevent(pelem: IHtmlElement);
var
hr:HResult;
cpc:IConnectionPointContainer;
cp:IConnectionPoint;
dwcookie:integer;
begin
myeventsink:= TMyEventSink.Create(nil);
//到这里我调试后知道pelem指向的确实是我想象中的button
hr:=pelem.QueryInterface(IConnectionPointContainer,cpc);
//该处运行完之后cpc确实指向一个实体的,而且我将之转换为ihtmlbuttonelement
//之后也可以获得该button的value
if SUCCEEDED(hr) then
begin
hr:=cpc.FindConnectionPoint(DIID_HTMLElementEvents2,cp);
//该处运行完了之后cp为nil!!!!!!!!!!
//这个是什么问题??cpc不是应该包含DIID_HTMLElementEvents2的连接点吗?
//怎么cp会为nil呢?
if SUCCEEDED(hr) then
begin
//这里边根本运行不了
cp.Advise(myeventsink,dwcookie);
cp._Release;
end;
cpc._Release;
end;
end;

那位熟悉此道的高手帮帮忙啊,要多少分我给就是了。
...全文
43 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
真的小九九 2003-10-28
  • 打赏
  • 举报
回复
你可以通过连接点容器的枚举连接点方法获得其所支持的所有连接点,然后通过比较连接点的IID来确定是否支持此连接点;
cougar87 2003-10-28
  • 打赏
  • 举报
回复
^_^谢谢。我已经搞定了。使用DIID_HTMLElementEvents连接点的guid就ok了。至于为什么我也不明白,因为我在mshtml中看见有DIID_HTMLElementEvents这个声明。呵呵。给分!!!

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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