我正在编写一个 DLL,它通过 IDispatch 接口与 Excel 进行通信。我从 VBA 传递一个包含以下内容的变体 Application.Caller 我从中绘制 IDispatch 指针 .pDispVal.

我想知道的是如何通过 IDispatch 指针查询接口。我想设置一个连接点容器,并从那里找到一个到 Excel 的连接点。最终目标是将事物与 Excel 的计算事件联系起来并能够操作 Excel 数据。

有帮助吗?

解决方案

我建议平Ly的的永恒优良(DELPHI)COM教程在 http://www.techvanguards.com/ 其中包括完全专用于 IConnectionPoint和相关机制的章节。

他还用于产生EventSink的代码提供一个免费的工具。

不过,我有一个强烈的感觉,这不应该是不必要的,如果你想要做的是反应在Excel中Application对象触发的事件。您是否尝试过简单地使用Delphi的类型库导入为您生成包装对象?你当然也可以写自己的封装。

话又说回来,我还没有真正写为Excel加载宏任何尚未 - 但我写的Outlook和Word加载项为生活和Excel真的不应该在这方面多不同

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top