【求助】安装了XP的KB891781补丁之后,DHTMLEdit的DocumentHTML属性不能用了(200分)

  • 主题发起人 主题发起人 Randolph
  • 开始时间 开始时间
R

Randolph

Unregistered / Unconfirmed
GUEST, unregistred user!
错误描述:
取DHTMLEdit的DocumentHTML属性提示“不支持此接口”错误,Delphi和CBuilder都一样。

错误分析:
从google的知是由于安装了XP的KB891781补丁引起的,VCL的TOleControl类没有实现IOleContainer接口,所以会出现该问题,经测试VB没有这个问题。

解决办法:
已知且不可行的解决办法是:
1、卸载KB891781补丁
此方法简单有效,但不具普遍性,不能保证产品的最终用户也按此方法。
2、给VCL的TOleControl类增加IOleContainer接口实现
此方法需要修改VCL的OleCtrls.pas,有很大的局限性,仅在Delphi环境非runtime packages时有效,在CBuilder无效。

求解决办法:在CBuilder取DHTMLEdit的HTML代码,并且是编译为runtime packages模式。

谢谢各位ActiveX高手!
 
http://www.delphibbs.com/keylife/iblog_show.asp?xid=18909
 
楼上这位大虾,你的笔记里第一个连接打不开,第二个连接是微软的补丁下载,第三个说的是使用MSHTML代替DHTMLEdit。
第三个连接里说的方法是一种解决办法,但是并不是我所想要的,我使用DHTMLEdit写了大量代码,不想就这么放弃。
DHTMLEdit仅仅是DocumentHTML属性不能用,我相信还有别的方法能取出该信息。
CBuilder使用的是VCL的TOleControl来访问DHTML,现在问题就出在TOleControl,VB就没有问题。
我能想到的方法就是,取DocumentHTML属性不使用VCL的方法,可以使用VC的方法实现,可惜我不懂VC是如何实现的。
 
后退
顶部