Why doesn't my Exchange Client Extension load on Windows Vista

We had several cases lately where customers are asking this very question. The answer is basically User Account Control (UAC). If a user is using Vista with UAC enabled Outlook is running with medium Integrity Level (IL). When a process runs with medium IL it cannot delete registry keys from the HKEY_LOCAL_MACHINE hive.

As documented in KB 286408, ECE installation involves creating a “fake” ECE key that signals to Outlook that it needs to reload its EXTEND.DAT file. The problem is that Outlook cannot delete this key once it reloads this file. This causes Outlook to refresh its EXTEND.DAT every time Outlook runs thinking that a new ECE has been installed. This can also occur on a non-Vista machine that has been locked down by an Administrator. To prevent this, when Outlook is unable to delete the key in HKEY_LOCAL_MACHINE it creates a key in “HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Outlook\Exchange Client Extension” (where it has R/W access) and queries this key before reloading the EXTEND.DAT.

So if your ECE doesn’t load on Windows Vista, look for the key in HKEY_CURRENT_USER and delete it and re-launch Outlook. If you are an ECE developer, you’ll need to look for this key before installing your ECE. If this is a multi-user machine, you will need to either run your setup program for each user on the machine or go against each registry hive on the system looking for this key and deleting it when found.