windows - 具有 64 位 Outlook 的 32 位 MAPI 应用程序

标签 windows outlook mapi mapisendmail

我们应用程序的 32 位版本无法使用安装了 64 位 Outlook 的 MAPISendMail 发送电子邮件。它返回错误 0x80004005,除了它似乎是 MAPI 初始化错误这一事实之外,我几乎找不到关于该错误的信息。

根据 this MSDN document , MAPISendMail 是 32 位应用程序不能使用 64 位 MAPI 规则的一个异常(exception)。然而它不起作用(至少在 XP 和 Vista 上——我们还没有测试过 Win7/8)。

任何人都可以阐明这一点吗?

TIA

最佳答案

没有异常(exception):32 位进程无法加载 64 位 dll。 当您拥有 64 位版本的 Outlook 时,64 位版本的 mapi32.dll 包含实际实现。 mapi32.dll 的 32 位版本是一个 stub ,除了返回错误外什么都不做。

关于windows - 具有 64 位 Outlook 的 32 位 MAPI 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12805802/

相关文章:

windows - 超时 = 0 的 WaitForSingleObjects

node.js - 我应该更改环境变量以在 Windows 中的 Cygwin 下使用 npm 脚本吗?

javascript - 对所有用户使用 Office 365 身份验证

c++ - 可以通过 MAPI Prop 更改消息日期吗?

windows - 自动将文件发送到检测到的所有蓝牙设备

域组的 Oracle 的 Windows 身份验证

excel - 对象项不支持此属性或方法

javascript - 使用 C# 打开带有附件的默认邮件客户端窗口,

c# - 获取 contact.LastName 时出现 System.Runtime.InteropServices.COMException (0x800706BE)