我们应用程序的 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/