打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Variant ole 调用
在Windows平台下的编程,微软提代了一个Variant的数据类型,这个类型支持OLE接口和数据,问题就是当Variant是一个接口时,如何在运行时调用接口的方法,举个例子:
我定义了一个Word
var
word:Variant;
word := CreateOLE("WORD");
Word.Open;  //这是在程序里调用,可以用,但如何在运行时改变这个方法名称?即Open方法是一个字符串?

也就是你的方法具有不确定性,而且不可穷举了?
比如那个方法有可能是将来才会有的新方法?

调用了variants.pas 的_DispInvoke  -->comObj的 VarDispInvoke

其中涉及Type Library, Ole Automation及Dispatch interface方面的问题。

you can visit unit of Variants


建议你看看《Delphi COM 深入编程》。

这个东西应该是跟DELPHI的编译方法有关系吧,不知谁了解这方面的知识,我也知道支持Variant的实例都实现了IDispatch接口,里面的方法调用都是通过去时Invoke方法来执行的,但如何准备Invoke调用中的参数呢?

GETVERB是得到方法.  DoVerb

当进行Variant类型的操作时,编译器将其映射成VariantManager对应的操作.

Variant类型的方法执行,实际是VariantManager的DispInvoke,
也就是对应到variants单元的_DispInvoke方法..你可以查看其中源码.

不外乎IDispatch方式调用的封装.

BCB中用CreateObject创建一个Variant对象,然后可以用OleFunction、OleProcedure、OleGetProperty、OlePutProperty调用函数或设置属性,可以运行时设定函数名称。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Jacob调用COM组件总结,实例
如何对webbrowser和IE编程(六)
Delphi技巧
OLE方式 word中插入图片
6.6.3 OLEDB接口
Excel [分享]成功解决DOC文档写入Access数据库并完整读出的问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服