September 2015 Release of MFCMAPI and MrMAPI

The September 2015 Release (build is live:

It’s amazing – how much I don’t get to work on MFCMAPI when I’m no longer in Developer Support. That’s no excuse for leaving it alone for a year! I did patch quite a bit in the past year.

Here's a change list - see the Issue Tracker and ChangeSets on Codeplex for more details:

  • SmartView: Completely rewrote the engine to be much more modular and easier to maintain
  • MrMAPI: Fixed several crashes, leaks, and hangs
  • Migrated a metric ton of old CString and manual string handling to wstring
  • Performance: Did a whole bunch of performance tweaks – everything should be much snappier


Comments (5)

  1. Fabio Oliveira says:

    Hi I found your tool at the codeproject web site and try to use it to delete a stuck message in my outbox (outlook 2013), but I got the msg:
    Code: MAPI_E_SUBMITTED == 0x80040608
    Function lpMDB->AbortSubmit( lpMessageEID->cb, (LPENTRYID)lpMessageEID->lpb, NULL)
    File FolderDlg.cpp
    Line 2089

    and I cant delete the message.

    Could you please help me?


  2. Hi Stephen,
    I am working on a requirement where we need to import e-mails in MSG format into PST files. I have written a tool in C++ and used MAPI API to import MSG files into PSTs. The tool consists of a .dll that uses different MAPI APIs to read MSG file and import it into a PST and a .exe that passes MSG filename and PST filename to the .dll. We need to invoke .exe thousands of time to import thousands of MSG files into PSTs.

    I am observing following behaviour in my testing with outlook 2010:-

    1) When we are running single .exe repeatedly thousand of times by passing different MSG filenames and PST filenames each time, it works well without any error.
    2) When we are running multiple .exes simultaneously (thousand of times) by passing different MSG filenames and PST filenames each time, I am seeing random MAPI API failues as follows:-

    m_pIProfAdmin->CreateProfile() failed :: -2147024891 (MAPI_E_NO_ACCESS)
    MAPILogonEx failed :: -2147221231 (MAPI_E_LOGON_FAILED)
    m_pSvcAdmin->CreateMsgService() failed :: -2147467259 (MAPI_E_CALL_FAILED)
    OpenMsgStore() failed :: -2147221226 (MAPI_E_DISK_ERROR)

    Such failures are random in nature and about 10 transactions out of 500 are showing such failures.
    In single process mode run, I never saw any failure at all. I also tried putting inter-process locks around MAPI API calls so that they become serial in nature, still I am getting these errors when I am invoking multiple .exes simultaneously.

    Are you aware of any known issue related to multi-process invocation of MAPI API related to profile management? How to address such failures in multi-process execution?

    Your inputs will help me to proceed ahead with my implementation.

    Thanks in advance,

  3. Ted Wengelaar says:

    Hi Stephen,
    Using Office 2007, with Outlook.pst file, and now using Office 2016 with the same Outlook.pst file from 2007. But in this file there is an appointment that still popping up without a way to open it. The only option is delete it, but still comming back the next time I start Outlook again.

    Please, can you help me out of this?

    Thanks in advance,

    Ted Wengelaar

  4. Sameer Ranade says:

    Is it possible to add functionality to directly open a .msg file instead of connecting to outlook profile. I have some affected / corrupt messages but don’t have exchange mailbox (outlook is installed though)

    Thanks a lot.

    – Sameer

    1. That’s already in there under Advanced/Import.

Skip to main content