June 2008 Release of MFCMAPI

The June 2008 Release (build is live: http://www.codeplex.com/MFCMAPI

I've been digging through the protocol docs. This update represents my first pass harvesting the easy stuff, like property names and flag values. I definitely plan to get to the more complex stuff, like recurrence blobs. Some of the work done here was putting in plumbing to make that possible, like consolidating all of the property parsing code into one code path. I've also introduced Smart View, which replaces the Flag column, allowing MFCMAPI to parse more kinds of data automatically. Expect to see this feature expanded greatly as I work my way through the protocol documentation.

Here's the change list - see the Issue Tracker on Codeplex for more details, or look at the code:

  • Smart View: I removed the Flags column and replaced it with the Smart View column. This column applies intelligence to the data found in the property. For PT_LONG properties, this means flag parsing. For PT_BINARY properties, this means interpreting the data as a structure!
  • Every property name, guid, error code, flag listed in the protocol docs has been added to MFCMAPI. Lemme know if I missed anything.
  • Flag parsing for named props: I couldn't do this before, but I've added it as part of the Smart View feature.
  • Unicode PST paths
  • Fixed ultra wide dialogs: The minimum width has been capped at 1000 pixels.
  • Multiple names for named props: With the protocol docs, many named props now have two or more names documented. You'll see them all.


Comments (3)

  1. K_M1 says:

    Hi Stephen, I'm trying to access some data in the SmartView that I can see in MFCMapi but I can't get to it from code. I can access the property – var binVal = discontact.PropertyAccessor.GetProperty("schemas.microsoft.com/…/id{00062004-0000-0000-C000-000000000046}/80551102");

    and return the members (members of a local distribution group) and loop through the object. Next I convert the data from binary to UTF8 – string member = Encoding.UTF8.GetString(item); but I can't figure out how you access the smartview.

    Here's the data that I'm attempting to get to in code:

    Wrapped Entry Type = 0xB5 = BFLAGS_MASK_OUTLOOK | Type: BFLAGS_EXTERNAL_MAILUSER | Not a contact

    Exchange Address Entry ID:

    abFlags = 0x00000000

    Provider GUID = {C840A7DC-42C0-1A10-B4B9-08002B2FE182} = muidEMSAB

    Version = 0x00000001 = EMS_VERSION

    Type = 0x00000000 = DT_MAILUSER

    X500DN = /o=KeyCorp/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=94ea51333c60447d98a8a045d136f02

    Can you give me a hint? Thanks!

  2. SmartView is custom code in MFCMAPI. The way to "access" it is to run it.

  3. K_M1 says:

    That’s unfortunate; I was hoping to leverage it in code. Thanks for your comment regardless.  

Skip to main content