MFCMAPI: A Useful Free Tool

A couple of years ago, in this column (see the first URL below), I wrote about two tools, mdbvu32.exe and OutlookSpy, that I found handy for exploring Outlook's hidden folders and items, such as published custom form definitions. I still use OutlookSpy (see the second URL below) almost every day, but I've replaced mdbvu32.exe with another free Microsoft tool called MFCMAPI, which does everything that mdbvu32.exe does, but with a more intuitive UI and a lot more functionality.
The Microsoft article "SAMPLE: MFCMAPI Demonstrates MAPI Client Code" (see the URL below) provides the MFCMAPI download and explains that Microsoft built the tool as a sample application for Extended Messaging API (MAPI). The C++ source code is available.;en-us;291794
If you search the Microsoft Knowledge Base for MFCMAPI, you'll find a few articles that recommend it for such jobs as resetting permissions on a public folder or viewing custom properties. But the real fun comes from using it to explore Outlook. To get started, run the mfcmapi.exe program, click OK on the first screen, then choose Session, Logon, and Display Store Table. Choose a mail profile (it doesn't have to be the same profile you're using to run Outlook.), then click OK. You'll see a list of information stores for that profile. In the case of an Exchange profile, the list will include the mailbox and the Public Folders hierarchy. Double-click either store to display it in a separate window, then click the + sign in the left-hand pane to expand the list of folders. For the mailbox, you'll see a folder named Top of Information Store, with the Inbox and other default folders listed as subfolders beneath it, plus several hidden folders such as Common Views and Reminders.
The MFCMAPI UI is designed to follow the MAPI hierarchy. Each window represents some sort of MAPI table, such as a message store table, or the hierarchy table or a folder's contents table. For Extended MAPI developers, the intention was to make it easy to play around with the API and learn what you can or can't do. This UI also makes it easy for you to find the folder or item you want to work with. To work with a folder or its properties, select that folder in the hierarchy. To work with an item in a folder, double-click the folder to open that folder in its own window to see its items, then double-click the desired item. Properties will display both hexadecimal values and their text equivalents. (Mdbvu32 shows only hex values.) You can edit, delete, or copy and paste individual properties and items. When you're finished working with a profile, choose Session, Logoff, and you'll be ready to start over with a new profile.
If you need to work with a user's mailbox for which you don't already have a mail profile, you can choose Profile, Launch Profile Wizard and build a new mail profile for any mailbox for which you have permission to log on. However, MFCMAPI also supports a mechanism that lets you work with a mailbox without creating a new profile, a useful feature if you need to check multiple mailboxes for a particular setting or item. You must first follow the instructions in the Microsoft article "XADM: How to Get Service Account Access to All Mailboxes in Exchange 2000" (see the URL below) to grant access to the account you're using to the Exchange mailbox store that contains the mailboxes you want to work with. (Make sure that you follow your organization's security and privacy policies.) After the appropriate permissions are in place, start MFCMAPI and log on with a profile that includes the Exchange service. Then choose MDB, Get Mailbox Table to see a list of available mailboxes. Double-click any mailbox to open it in a new window that shows its folder hierarchy.;en-us;262054
MFCMAPI's features extend beyond exposing the Outlook folder and item hierarchy. The Profiles menu also has a Show Profiles command that lists all the mail profiles for the current user. Because I do a lot of testing of different configurations, I tend to collect profiles and never get around to deleting them. MFCMAPI showed my 79 profiles and let me select the ones I no longer needed, then delete them with one press of the Delete key.
MFCMAPI can also display address lists. The View AB Hierarchy command in the Address Book menu lets you browse all the address lists available in the current mail profile.
No matter which part of the MFCMAPI application you're working in, be sure to right-click and explore the context menu, which contains a host of additional commands. For example, if you right-click any of the visible user folders (e.g., Inbox), you'll see commands to open not only the Contents and Associated Contents (e.g., folder-based views) tables but also the Deleted Contents and Deleted Subfolders tables. Because you can copy and paste items between folders in MFCMAPI, you can recover deleted items by copying and pasting them to an active folder. Other context menu commands empty all items and subfolders from a folder and resend all messages that are embedded in nondelivery reports in the selected folder. You can even export all the items in the folder to individual .msg files. If you want to the compare properties of two items (e.g., a message and a copy of that message that's been replied to), you can save each item as a text file with all the properties listed, then use a tool such as WinDiff to compare them.
Two warnings about MFCMAPI: Deleting or changing the values of individual properties on folders and items could have unexpected consequences, so test thoroughly. Finally, using a powerful tool such as MFCMAPI to explore Outlook and Exchange data can be highly addictive. If you find that it's more fun than doing your "real" work, don't say I didn't warn you.
Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.