Access 64 bit Outlook 2010 from 32 bit C++ application

Not open for further replies.



I have a 32 bit application running on a 64 bit Windows 7 machine. On this machine 64 bit Outlook 2010 is installed. My application need to detect Outlook installation and enumerate the Outlook profiles. It then creates a MAPI session and reads/modifies some items such as Calendar etc.

The application used to work fine on 32 bit machines with 32 bit Outlook. However, with 64 bit it is not able to get the profiles as it searches in " HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles" registry keys and profile related keys are in HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles. Please let me know how to access profile related registry keys in a 32 bit app for 64 bit Outlook 2010. Is there any other way apart from registry to enumerate profiles?

Secondly, will MAPI session and other things work from a 32 bit app for 64 bit Outlook? What other issues I can potentially face in my case and what are the best practices around this.


Dave V


First, if you are just reading registry keys and you are a 32 bit application you can disable registry redirection which willl allow you to enumerate the 64 bit registry keys instead of the registry keys in the Wow6432Node. For more information see this MSDN page:

** Please note - The only supported way to manipulate MAPI profiles is via MAPI.

You will not be able to use the MAPI subsystem from a 32 bit application if Outlook 64 bit is installed. This is because a 32 bit application cannot load 64 bit DLLs and vice versa. This is not a restriction of MAPI but of the OS.

" However, 32-bit processes cannot load 64-bit DLLs for execution, and 64-bit processes cannot load 32-bit DLLs for execution"

If you want to use MAPI from your application you will either need to use 32 bit Outlook 2010 or recompile your appliction for 64 bit.

If this post answers your question please mark it as the answer.
Not open for further replies.