• Sign in
 
  •  
  • MSDN Blogs
  • Microsoft Blog Images
  • More ...

  • About
  • Email Blog Author
  • RSS for posts
  • Atom
  • RSS for comments
    • OK
  • CDO (25)
  • Code Snippet (43)
  • Custom Providers (17)
  • Debugging (7)
  • DevMsgTeam (301)
  • Documentation (109)
  • DST (8)
  • EWS (7)
  • Exchange (109)
  • Gotchas (97)
  • Hotfix (28)
  • MAPI (240)
  • MAPI Download (54)
  • MFCMAPI (101)
  • MSDN (59)
  • Non Dev (11)
  • OOM (17)
  • Outlook (171)
  • Outlook 2007 Auxiliary Reference (45)
  • Outlook Integration API (12)
  • Protocol Docs (20)
  • PST/OST (23)
  • Referrals (8)
  • Vista (12)
  • WrapPST (18)
Links:
  • Download MFCMAPI
  • MFCMAPI on Facebook
  • Troubleshooting Outlook Crashes
  • Office Update Center
  • Developer Messaging Team Blog
This site is provided "AS IS" with no warranties, and confers no rights. Use of included code samples are subject to the terms specified in the Terms of Use.
Archives
  • May 2013 (3)
  • April 2013 (1)
  • March 2013 (2)
  • February 2013 (2)
  • January 2013 (2)
  • December 2012 (4)
  • November 2012 (2)
  • October 2012 (2)
  • September 2012 (1)
  • August 2012 (3)
  • June 2012 (2)
  • May 2012 (1)
  • April 2012 (3)
  • March 2012 (3)
  • February 2012 (3)
  • January 2012 (1)
  • December 2011 (3)
  • November 2011 (1)
  • October 2011 (3)
  • September 2011 (1)
  • August 2011 (1)
  • July 2011 (4)
  • June 2011 (3)
  • May 2011 (3)
  • April 2011 (3)
  • March 2011 (5)
  • February 2011 (1)
  • January 2011 (2)
  • December 2010 (1)
  • November 2010 (4)
  • October 2010 (1)
  • September 2010 (3)
  • August 2010 (5)
  • July 2010 (3)
  • June 2010 (3)
  • May 2010 (1)
  • April 2010 (3)
  • March 2010 (3)
  • February 2010 (3)
  • January 2010 (2)
  • December 2009 (3)
  • November 2009 (5)
  • October 2009 (4)
  • September 2009 (5)
  • August 2009 (5)
  • July 2009 (11)
  • June 2009 (6)
  • May 2009 (5)
  • April 2009 (3)
  • March 2009 (18)
  • February 2009 (10)
  • January 2009 (3)
  • December 2008 (2)
  • November 2008 (2)
  • October 2008 (5)
  • September 2008 (4)
  • August 2008 (10)
  • July 2008 (6)
  • June 2008 (8)
  • May 2008 (2)
  • April 2008 (4)
  • March 2008 (2)
  • February 2008 (2)
  • January 2008 (5)
  • December 2007 (3)
  • November 2007 (2)
  • October 2007 (3)
  • September 2007 (1)
  • August 2007 (4)
  • July 2007 (5)
  • June 2007 (3)
  • May 2007 (4)
  • April 2007 (1)
  • March 2007 (6)
  • February 2007 (3)
  • January 2007 (2)
  • December 2006 (4)
  • November 2006 (3)
  • October 2006 (1)
  • August 2006 (1)
  • June 2006 (5)
  • May 2006 (5)
  • December 2005 (1)
  • November 2005 (4)
  • October 2005 (2)
  • September 2005 (1)
  • April 2005 (3)
  • December 2004 (2)
  • September 2004 (2)
  • August 2004 (3)
  • July 2004 (3)
Blogs I Read
  • Exchange

  • Raymond Chen [MSFT]

  • Larry Osterman [MSFT]

  • Peter David

  • Aaron Margosis [MSFT]

  • Jason Johnston [MSFT]

  • Matt Stehle (MSFT)

  • Patrick Creehan [MSFT]

  • Ryan Gregg [MSFT]

    Outlook PM
  • WebDav 101

    Dan Bagley (MSFT)
  • Dave Vespa [MSFT]

  • Randy Topken

    Outlook EE

April, 2011

MSDN Blogs > SGriffin's MAPI Internals > April, 2011
  • Subscribe via RSS
Sort by: Most Recent | Most Views | Most Comments
Excerpt View | Full Post View
  • SGriffin's MAPI Internals

    SetSearchPath? Not Really

    Posted over 2 years ago
    by Stephen Griffin - MSFT
    • 7 Comments

    This is a follow up to our documentation on PR_AB_CHOOSE_DIRECTORY_AUTOMATICALLY. There, we discussed how Outlook 2010 has a property which can override the container specified in SetDefaultDir. Today, we’re going to override SetSearchPath. Let’s look at our dialog again:

    Address Book Tools Options Dialog

    That list of address books under Custom is what we set using SetSearchPath. How can we set “Start with Global Address List” or “Start with contact folders”? There’s a prop for that: PR_AB_SEARCH_PATH_CUSTOMIZATION, which you’ll find in the same place as PR_AB_CHOOSE_DIRECTORY_AUTOMATICALLY, on the profile section IID_CAPONE_PROF.

    Here's the property definition:

    #define PR_AB_SEARCH_PATH_CUSTOMIZATION( PT_LONG, 0x3D1B)

    Here are the valid settings:

    typedef enum _SearchPathReorderType
    
    {
    
                    SEARCHPATHREORDERTYPE_RAW = 0,
    
                    SEARCHPATHREORDERTYPE_ACCT_PREFERGAL,
    
                    SEARCHPATHREORDERTYPE_ACCT_PREFERCONTACTS,
    
    } SearchPathReorderType;

    Finally, here's a description of each of the settings:

    • SEARCHPATHREORDERTYPE_RAW:
      Return a list of the containers that are in the persisted MAPI search path. This is the "Custom" search path option in the UI.
    • SEARCHPATHREORDERTYPE_ACCT_PREFERGAL:
      Group the search path based on the mail accounts in the profile, prefer the given sending account, and within each account, prefer the GAL. An example reordering here sending from account B would be the following:

      Persisted search Path:
      Contacts A
      GAL A
      GAL B
      GAL C
      Contacts D
      Contacts D2
      Contacts C
      Contacts B

      Reordered Search Path sending from B with this option:
      GAL B
      Contacts B
      GAL A
      Contacts A
      GAL C
      Contacts C
      Contacts D
      Contacts D2

    • SEARCHPATHREORDERTYPE_ACCT_PREFERCONTACTS
      Group the search path based on the mail accounts in the profile, prefer the given sending account, and within each account, prefer that account's contacts folders. An example reordering here sending from account B would be the following:

      Persisted search Path:
      Contacts A
      GAL A
      GAL B
      GAL C
      Contacts D
      Contacts D2
      Contacts C
      Contacts B

      Reordered Search Path sending from B with this option:
      Contacts B
      GAL B
      Contacts A
      GAL A
      Contacts C
      GAL C
      Contacts D
      Contacts D2

    Enjoy!

  • SGriffin's MAPI Internals

    Picking an API

    Posted over 2 years ago
    by Stephen Griffin - MSFT
    • 0 Comments

    Angela just posted an article on extending Outlook on her blog, and an article on picking the right API on the MSDN. Both articles make several mentions of MFCMAPI and are thus worthwhile reads. The MSDN article is an especially good one-stop overview of all the APIs and technologies available in Outlook, with special attention paid to details such as managed vs unmanaged code, bitness, and threading

    Note that both articles are written very much from Outlook’s point of view. The presumption is that Outlook is part of your solution. This may not necessarily be the case. If you are considering server side solutions, your top choices will likely be either Exchange Web Services (EWS) or the MAPI download, though there several other Exchange based APIs which you can read about in the Exchange Server 2010 SDK.

    Enjoy!

  • SGriffin's MAPI Internals

    April 2011 Release of MFCMAPI.Net

    Posted over 2 years ago
    by Stephen Griffin - MSFT
    • 8 Comments

    The April 2011 Release (build 7.0.0.1234) is live: http://mfcmapi.codeplex.com.

    I know I just released the March update a few days ago, but I just got permission from development to release this. I have thrown off the shackles of C++ and fully embraced the awesome power of the CLR. MFCMAPI.NET is a complete rewrite of MFCMAPI using the .Net framework.

    The productivity gains were immediate. I was able to completely rewrite MFCMAPI, from scratch, in just 20 minutes. Since I had allotted a full hour for the conversion, I spent the extra time adding some new features, such as:

    • Fix My Calendar: This feature will automatically identify whatever problem is plaguing your calendar and Fix It.
    • Do That Thing I Just Did, But Everywhere: Ever found a problem on a large number of messages that you could fix just by editing a single property? With this revolutionary new feature, MFCMAPI.Net will record the steps you performed on one message and play them back on all of the other messages. What if you only need to edit a subset of your messages? Don’t worry, this feature Just Knows which messages to update. It’s that easy!
    • No MAPI Required: The most amazing feature of MFCMAPI.Net, and the one of which I am most proud, is No MAPI Required. That’s right – MFCMAPI.Net doesn’t need MAPI installed to function! In fact, it doesn’t need an Exchange server either. How does it work? Simple: the cloud.

    Even after implementing those amazing features, I still had a half hour left, so I decided to fix a few other outstanding issues for the Outlook and Exchange product teams. Look for announcements soon of the following hotfixes:

    • Unicode MSG file and PSTs in MAPICDO.
    • 64 bit support in MAPICDO.
    • Unified 32 and 64 bit support in all versions of Outlook and MAPI. That’s right – all 32 bit MAPI code will now work without any changes against 64 bit MAPI, and vice versa.
    • Return of Exchange Client Extensions in Outlook 2010 and above.
    • The EDK is back!

    All in all, it was a super productive 45 minutes coding with .Net. I even had time for a nap! I look forward to doing it again.

    Enjoy.

Page 1 of 1 (3 items)
  • © 2013 Microsoft Corporation.
  • Terms of Use
  • Trademarks
  • Privacy & Cookies
  • Report Abuse
  • 5.6.426.415