做过IE浏览器开发的进来,100分请教

tttk 2006-12-09 10:56:04
在Delphi中封装了Webbrowser控件,现在需要实现getExternal功能,以便Javascript中使用window.external调用。

现在我已经在组件中实现了IDispatch接口,也实现了类似window.external.getInfo('t1')这样的一层对象的调用。可是现在我想更深一步,实现多层的external对象,例如:
window.external.getGlobal('g1').getData.getInt(),请问如何实现?

难点在于:
IDispatch接口的Invoke方法中,如何把指定对象传递给varResult变量?
...全文
193 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2006-12-10
  • 打赏
  • 举报
回复
return an IDispatch in the getGlobal method, which in turn has a getData method returning an IDispatch to an object that has a getInt() method
tttk 2006-12-10
  • 打赏
  • 举报
回复
我搞定了,谢谢jiangsheng(蒋晟)。

问题的关键在于对于external后面的每一个方法或属性,都需要通过getIdsofNames和Invoke结合起来,通过字符串比较从而在内部调用某个实现。实际上是无法通过传递对象的办法来自动获得对象方法的调用的。
tttk 2006-12-10
  • 打赏
  • 举报
回复
谢谢 jiangsheng(蒋晟),按照你的意思,是不是调用的每一层都得实现IDispatch接口?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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