This call works perfectly in Windows 2000 and XP:
lResult = RegOpenKeyEx (hKeyRoot, lpSubKey, 0, KEY_READ, &hKey);
But this one fails in Windows 2000
lResult = RegOpenKeyEx (hKeyRoot, lpSubKey, 0, KEY_READ|KEY_WOW64_32KEY, &hKey);
The difference? The KEY_WOW64_32KEY:
http://msdn.microsoft.com/en-us/library/ms724878%28VS.85%29.aspx