May 2011 Release of MFCMAPI and MrMAPI


The May 2011 Release (build 6.0.0.1026) is live: http://mfcmapi.codeplex.com.

This round, the focus was on a new MAPI stub library and Fuzz testing.

The new MAPI Stub Library is the product of months of hard work on the part of a few talented developers and testers in the Outlook organization. I did a good bit of testing myself and even fixed a few issues, but I did not have the honor of writing it. Incorporating this new stub library into MFCMAPI allowed me to ditch a good bit of my own import code. I highly recommend everyone to check this project out.

I found some internal tools to help with Fuzz testing. Using these, I was able to ferret out a number of issues with my SmartView parsers. I’ve actually found far fewer issues than I had expected, so it looks like my parsers were on solid footing already. I’ve fixed everything I’ve found, along with a number of issues reported through Windows Error Reporting.

Here’s a change list – see the Issue Tracker on Codeplex for more details, or look at the code:

  • New MAPI Stub Library
  • MrMAPI: Reduced default help length (use –? to get full help)
  • MrMAPI: Corrected smartview parser to output to console when output file not specified
  • MFCMAPI: Open Profile By Name
  • SmartView: Fixed several crash and hang issues in SmartView parsers.
  • XML Output is now scrubbed for invalid characters.
  • Retail builds are now compiler optimized.

Enjoy.

Comments (5)

  1. Lev says:

    "Fuzzy MAPI" sounds like a step up from the "Fuzzy Math" for a presidential debate.

    Are any of the tools that you used publicly available?  Do you recommend any?

  2. Stephen Griffin says:

    I wish I could. The tools I'm using are, as far as I know, internal only.

  3. Bob says:

    Quick follow-up to my last comment.  I see now why MFCMAPI used to work.  It only used the MSIComponentID/MSIApplicationLCID/MSIOfficeLCID registry values to find the correct library.  The new library is actually a more complete implementation, in that it falls back to the DLLPath/DLLPathEx registry values if the MSI values are not there.  (Outlook Express only has DLLPath/DLLPathEx.)

  4. Bob says:

    Oops.  Looks like my first comment was dropped.  Anyway, here's the gist:  Because the new stub library includes the DLLPath registry value in its initial search, it won't load the correct library on an Exchange 2003 server.  So now before you do a Logon or Initialize, you have to choose Load MAPI, and load the C:Windowssystem32mapi32.dll.  Otherwise, the stub library will load the Outlook Express version of MAPI.

  5. Stephen Griffin says:

    Ah – I had already found that scenario. In the September release of MFCMAPI you'll be able to flip a switch in the options to force MFCMAPI to use the system MAPI. The September release should be out before the end of the month (or else it would be the October release).