0

我正在编写一个 DLL,它通过其 IDispatch 接口与 Excel 对话。从 VBA 中,我传入一个 Variant 包含Application.Caller我从中绘制 IDispatch 指针通过.pDispVal.

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

4

2 回答 2

1

我会推荐 Binh Ly 在http://www.techvanguards.com/上的永恒优秀的 (Delphi) COM 教程,其中包括完全致力于IConnectionPoint和相关机制的章节。

他还提供了用于生成 EventSink 代码的免费工具。

Application不过,我有一种强烈的感觉,如果您只想对 Excel对象触发的事件做出反应,那么这根本就没有必要。您是否尝试过简单地使用 Delphi 类型库导入器为您生成的包装对象?当然,您也可以编写自己的包装器。

再说一次,我实际上还没有为 Excel 编写任何插件 - 但我确实为 Outlook 和 Word 编写插件,而 Excel 在这方面确实应该没有太大的不同。

于 2008-12-11T23:16:47.090 回答