如何在Delphi中进行ConnectionPoint?

时间:2008-12-11 09:38:25

标签: delphi excel idispatch iconnectionpoint

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

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

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

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

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

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

然后,我还没有为Excel编写任何插件 - 但我确实为Outlook和Word编写插件以维持生计,Excel在这方面确实应该没有太大的不同。