Outlook Redemption - 使用RedemptionLoader而不使用regsvr32 DLL

时间:2017-12-14 10:17:05

标签: c# outlook-addin mapi outlook-redemption

我想在没有注册COM dll(regsvr32)的情况下使用邮件功能。 我按照以下信息进行了跟踪:

http://www.dimastr.com/redemption/security.htm#redemptionloader

所以我用

初始化dll
private Redemption.SafeMailItem safeMail = Redemption.RedemptionLoader.new_SafeMailItem();

显示Eval-Popup。都好。 但是当我将outlook邮件项目分配给对象

 safeMail.Item = mail; // of type Microsoft.Office.Interop.Outlook.MailItem

然后出现此异常:

  

无法转换类型为' System .__ ComObject'的COM对象。接口   键入' Redemption.ISafeMailItem'。此操作失败,因为   QueryInterface在具有IID的接口的COM组件上调用   ' {0A95BE2D-1543-46BE-AD6D-18653034BF87}'由于以下原因而失败   错误:不支持此类接口(HRESULT异常:0x80004002   (E_NOINTERFACE))。

用regsvr32注册dll后有效吗?但我不想那样。

我做错了什么?

编辑:

  • 我尝试在开发机器上注册COM
  • 删除COM并使用 Interop.Redemption.dll

在没有注册COM的情况下使用Loader的预期方法是什么?

1 个答案:

答案 0 :(得分:1)

跨过在主线程中初始化加载器并在另一个中调用方法的陷阱......

请参阅Redemption + Clickonce = :-(