【问题标题】:How do I do ConnectionPoint in Delphi?我如何在 Delphi 中做连接点?
【发布时间】:2008-12-11 09:38:25
【问题描述】:

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

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

【问题讨论】:

  • 主要是 Binh Ly 链接。
  • 作为一个德尔福新手(在某些方面)我仍然有点在黑暗中,但在隧道的尽头有一盏灯,我很确定它不是一列快速驶近的火车的头灯。
  • 是的,Binh 的教程曾经让我大开眼界,大约八年前……
  • 顺便说一句:当您谈论“与 Excel 对话的 DLL”时,它实际上是一个 COM 服务器,还是您以某种方式使用从 VBA 调用的导出函数?我仍然觉得通过将整个东西实现为常规插件会更好,可能会放弃 VBA 方面。
  • 当前的问题是在 Delphi 中完成 Herbert Danler 用他的 excelmvf 插件 excelmvf.sourceforge.net> 在 C++ 中已经完成的工作。一旦你看过了,告诉我你是否仍然可以放弃 VBA 方面。

标签: delphi excel idispatch iconnectionpoint


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    【讨论】:

    • 第三个条目,即 gtro 条目,很好地涵盖了这个问题。
    猜你喜欢
    • 2017-11-06
    • 1970-01-01
    • 2012-10-14
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 2019-07-25
    相关资源
    最近更新 更多