具有64位Outlook的32位MAPI应用 [英] 32-bit MAPI app with 64-bit Outlook
问题描述
我们的应用程序的32位版本无法使用安装了64位Outlook的MAPISendMail
发送电子邮件.它返回错误0x80004005,除了似乎是MAPI初始化错误外,我几乎找不到任何其他信息.
The 32-bit version of our app is unable to send email using MAPISendMail
with 64-bit Outlook installed. It returns an error 0x80004005, about which I can find little information beyond the fact that it seems to be a MAPI initialization error.
根据此MSDN文档, MAPISendMail
是32位应用程序不能使用64位MAPI的规则的一个例外.但是它不起作用(至少在XP和Vista中-我们尚未测试Win7/8).
According to this MSDN document, MAPISendMail
is the one exception to the rule that 32-bit apps can't use 64-bit MAPI. And yet it doesn't work (at least with XP and Vista--we haven't tested Win7/8 yet).
任何人都可以阐明这一点吗?
Can anyone shed any light on this?
TIA
推荐答案
没有例外:32位进程无法加载64位dll. 当您具有64位版本的Outlook时,mapi32.dll的64位版本将包含实际的实现. mapi32.dll的32位版本是一个存根,它什么也不做,只返回错误.
There are no exceptions: a 32 bit process cannot load a 64 bit dll. When you have the 64 bit version of Outlook, the 64 bit version of mapi32.dll contains the actual implementation. The 32 bit version of mapi32.dll is a stub that does nothing but return an error.
这篇关于具有64位Outlook的32位MAPI应用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!