【问题标题】:How to write an outlook add-in using unmanaged code (C++/Delphi)?如何使用非托管代码 (C++/Delphi) 编写 Outlook 插件?
【发布时间】:2021-05-12 19:52:54
【问题描述】:

我使用 C# 开发了一个 Outlook 插件。

我想完全避免因为拖慢 Outlook 启动而受到惩罚。

因此,我想创建一个“加载器”-加载项。它是用 C++/Delphi 编写的,除了在加载自身后启用 C#-Add-in 之外什么都不做。

有很多关于 stackoverflow 等的提示,但没有直接可用的文档。

问题:

  1. 是否有任何关于如何使用 C++/Delphi 编写 Outlook 插件的简单文档?
  2. 是否有任何关于如何编写启用辅助插件的插件的文档?

【问题讨论】:

  • 首先,您应该优化您的加载项,使其加载速度更快。可能会在加载后推迟一些初始化,例如在真正需要的时候。您还可以将加载项拆分为多个 DLL 或 COM 对象,这些对象将在初始加载之后按需加载。

标签: c# c++ delphi outlook outlook-addin


【解决方案1】:

当然——只需实现一个可创建的 COM 对象(除了IUnknown)还公开_IDTExtensibility2 接口——参见https://docs.microsoft.com/en-us/dotnet/api/extensibility.idtextensibility2?view=visualstudiosdk-2019。您还需要将其类名添加到HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Outlook\Addins

如果您想支持功能区或任务窗格,您还需要实现IRibbonExtensibility 和/或ICustomTaskPaneConsumer 接口。

【讨论】:

    【解决方案2】:

    没有关于如何使用 C++/Delphi 编写 Outlook 插件的简单文档,因为 Outlook 插件有两个模型

    1. VSTO(旧)专为 .Net Framework 和 c# 设计。通过 COM (Microsoft.Office.Interop.*) 工作。
    2. 插件专为 TypeScript(outlook Web 插件)而设计。

    更多关于加载VSTO插件的内容,可以阅读Architecture of VSTO Add-ins

    因此,没有简单的方法可以通过 C++ 为 VSTO 编写托管 dll。正确的方法是阅读有关 VSTO 架构的文档,并解决加载插件时的性能问题。

    【讨论】:

    猜你喜欢
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多