I've had considerable problems with an InstallScript msi installation program refusing to create registry keys with 64 bit Vista. I tried running it as administrator, telling the setup to request administrator rights, and so on - all to no avail. I then added code to check the return value of RegDBSetKeyValueEx, and abort the installation if any key creation failed. This didn't result in the expected dialog box or abort, which suggests that RegDBSetKeyValueEx was returning success even though nothing was being written to the registry.
I had no such problems with 32 bit Vista, where the necessary registry keys were created as expected. Is there a known workaround for this issue, or should we just say that the installation is not compatible with the 64 bit version of Vista?
I have also had problems with Vista registry access with some applications compiled using Visual C++ 6.0. The problem was that the CRegKey MFC class used by that version was deprecated. Upgrading to Visual C++ 2009 and replacing the offending registry method calls fixed the problem - which was that requests to update the registry were silently failing with no error code returned. This sounds very familiar...