A primary use for MFCMAPI is to look at objects in an Exchange store and view the MAPI properties on them. MAPI properties are identified by property tags which are 32 bit numbers, like 0x0FFF0102. It’s no fun to have to memorize a bunch of 32 bit numbers in order to make sense of which properties are on an item, so we use constants in header files to give us meaningful names, like PR_ENTRYID.
I like to keep MFCMAPI updated with the latest property tags which have been publically documented. Many generic MAPI property tags are listed in the MAPI headers in the Platform SDK. But Exchange specific property tags are listed in a file which is part of the Exchange SDK: EdkMdb.h. Every time a new EdkMdb.h ships, I update MFCMAPI with the new property tags which have been added.
The last time we shipped a new EdkMdb.h was in the June 2004 Exchange 2003 SDK – note that this is the same EdkMdb.h that’s in the September 2004 Exchange 2003 SDK. It turns out though that we ship an EdkMdb.h which is much newer in an unusual place: our recent hotfixes and rollups! The latest released version of the header is in our August 2004 Exchange 2000 Server Post-Service Pack 3 Update Rollup.
One way to get the header out of this rollup is to install the rollup on an Exchange 2000 server. But there’s an alternative for us developers. You can extract the files from the rollup package like this:
The installer will then prompt you for a directory in which to extract the files. One of the files will be the new edkmdb.h. There’s also a new edkguid.h and even an edkguid.lib if you need it.