从2020年4月22日开始,此代码段开始失败:
HRESULT hRes;
MAPIINIT_0 MAPIINIT= { 0, MAPI_MULTITHREAD_NOTIFICATIONS};
hRes = MAPIInitialize(&MAPIINIT); <--- Program halts here.
至少自2000年(20年(以来,此代码一直在运行,没有出现任何问题。
Office 365更新后,此操作至少在一台计算机上失败。然而,这个问题与几个不同的Outlook版本有关:
Office 365版本2005-16.0.12823.20000 64位-Windows Insider。
Office 365 2003版-12624.20520(点击运行(-当前版本。
到目前为止,仅适用于Windows 10。
有人找到运行MAPIInitialize((的方法了吗?
是的,最新的Insider Slow(每月(更新打破了MAPIInitialize
。
微软已经意识到了这个问题,但目前还没有解决办法。唯一的解决办法是安装Insider Fast版本(https://www.msoutlook.info/question/office-365-for-business-office-insider-fast-builds)或降级到以前的版本之一https://support.microsoft.com/en-us/help/2770432/how-to-revert-to-an-earlier-version-of-office-2013-or-office-2016-clic
您也可以尝试修改系统PATH:https://github.com/stephenegriffin/mfcmapi/issues/367
加载
%ProgramFiles%Microsoft OfficerootvfsProgramFilesCommonX86Microsoft SharedOFFICE16Mso20win32client.dll
和
%ProgramFiles%Microsoft OfficerootOffice16OutlookServicing.dll
在调用MAPIInitialize((之前,可以消除崩溃。
对我们来说,系统路径修改效果很好。对于包括32/64位在内的不同版本,确切路径是不同的。我们构建了一个小型可执行文件,以最终用户友好的方式处理此问题:
https://www.companionlink.com/files/special/Fix365MAPI.exe
To add path: fix365mapi
To remove path: fix365mapi /u
Reboot the PC to ensure the path is used.
我们拥有庞大的安装群。我们已经向拥有Insider Slow、Insider Fast、Insider Quick(4月27日更新(和Monthly客户的客户验证了该问题。然而,很明显,只有一小部分我们的安装基础看到了这个问题。因此,除了Office 365更新之外,肯定还有第二个因素,可能是(点击运行(或4月份的Windows 10更新。
在我们的测试中,添加路径修复了这个问题,所以它看起来像一个简单的依赖性问题。