如何使用非托管代码(c++ /Delphi)编写outlook插件?



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

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

因此,我想创建一个"加载器"加载项。它是用c++/Delphi编写的,除了在加载后启用c#插件之外什么都不做。

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

问题:

  1. 是否有关于如何使用c++/Delphi编写Outlook插件的直接文档?
  2. 是否有关于如何编写启用辅助外接程序的外接程序的文档?

当然-只需实现一个可创建的COM对象(除了IUnknown)也公开_IDTExtensibility2接口-参见https://learn.microsoft.com/en-us/dotnet/api/extensibility.idtextensibility2?view=visualstudiosdk-2019。您还需要将它的类名添加到HKEY_CURRENT_USERSOFTWAREMicrosoftOfficeOutlookAddins

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

没有关于如何使用c++/Delphi编写Outlook插件的直接文档,因为Outlook插件有两种模型

  1. VSTO (old)是为。net Framework和c#设计的。通过COM (Microsoft.Office.Interop.*)工作。
  2. 插件是为TypeScript (outlook web插件)设计的。

关于加载VSTO插件的更多信息,您可以阅读VSTO插件的架构

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

最新更新