The best bet to find out what is happening during install maybe is to process monitor and let it monitor the setup.exe during the setup process. Process monitor can monitor, what API calls are done and what files are opened or written and what other processes including regsvr32 are called by it.
And well, in ragard of your understanding, Mike, "Inno decides whether to install in 32-bit or 64-bit mode, depending on the processor"
I hope this is only halfways the truth and I'm quite confident the decision of inno also considers the OS architecture, but mostly the DLL architecture.
Possible combinations:
(CPU/OS/DLL) = (32/32/32):
No problem, no choice, system folder is 32bit.
(CPU/OS/DLL) = (32/64/32)
impossible, because a 64bit OS does not install on a 32bit CPU.
(CPU/OS/DLL) = (64/32/32)
Unusual, as nowadays the OS mostly is bundled with hardware, so you don't get a 32bit OS on 64bit hardware, but it's possible to install a 32bit OS on a 64bit CPU, as CPUs are backward compatible.
This will not make use of the CPU power, but has no problem for the install, as there again only is a 32bit OS system.
(CPU/OS/DLL) = (64/64/32)
Most common nowadays. It's problematic, if the installer does not detect a 32bit dll, and does not register it appropriately. If the installer itself is 32 bit there is no problem, as an OS redirects access of 32bit processes to the 32bit subsystem folders, including installer processes and including what regsvr exe it uses. If the installer itself is 64bit it must be aware of the problem, the OS does not redirect a 64bit installer to the usage of the correct 32bit regsvr version, the OS will only be aware of the wrong usage, if it's already too late, if a 32bit DLL is registered via 64bit regsvr, and that should error, perhaps exactly the error you experience, gendev.
(CPU/OS/DLL) = (64/64/64)
no problem obviously, and it's the only combination you can install a 64bit DLL anyway. OS and CPU also must be 64bit. We don't have that situation, as there is no 64bit VFP, and also Filer.dll is a 32bit DLL.
So, gendev, install process monitor, configure it to monitor your setup, however you call it, before you call it and then see what process monitor finds out. My guess is, the newest innno version you may use is a 64bit process itself, and fails to use the correct way to register filer.dll.
Well, or the problem simply is, you didn't even specify filer.dll must be registered. But then you wouldn't have an error during installation.
Bye, Olaf.