views:

1110

answers:

2

When in Outlook 2003, open the Address Book, select Tools->Options. You get the Address dialog showing the option "When sending mail, check names using these address lists in the following order:"

For most people, this will contain only "Contacts". For corporate networks, it'll probably also contain "Global Address List". The problem is that in my company the GAL is many tens of thousands large, and it's common that conflicts occur in name resolution when attempting to send email and it goes to the wrong person in another country.

Instead, I would like to place a separate Exchange address list "X" at the top of that list, to first resolve against names in our own company before checking the GAL. Then, resolve against "Contacts", then GAL. This configuration would need to be deployed to many hundreds of PCs.

I've been able to do this on my own PC by hacking registry key: HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\your_profile_name\9207f3e0a3b11019908b08002b2a56c2, Value 11023d05.

This contains a REG_BINARY data structure that lists the IDs of the items of this list. I can reorder them to my liking and Outlook accepts it.

The IDs of the GAL and "X" address list are static. However, the problem is that the "Contacts" ID is apparently not static, perhaps unique to the user and/or computer. Its value appears to be undiscoverable in the registry. This prevents me from simply copying this registry value to all PCs.

Has anyone been able to progammatically reorder the contact name resolution list?

+3  A: 

I have done this for a company in the past. It was a .NET application, that ran on every PC and reordered this listing.

This is where you need to start:

http://msdn.microsoft.com/en-us/library/bb820991.aspx

Stephen Wrighton
Thank you. Using this example, I was able to build a native C++ project to get the job done.
spoulson
+1  A: 

For those interested, I published the MAPI tools I created on my blog with the source in native C++. Enjoy.

http://www.explodingcoder.com/cms/content/programmatically-updating-outlooks-address-book-options-with-a-command-line-tool

spoulson