If you are new to Windows installation development, you may not know that the Windows Logo Guidelines specify you can not write to ProgramFilesFolder after the initial installation has taken place. Actually, they don’t say that in those exact words.
Here are the exact words from the Windows 7 Client Software Logo document:
Applications should be installed to the Program Files folder by default. User data or application data must never be stored in this location because of the security permissions configured for this folder.
All application data that must be shared among users on the computer should be stored within ProgramData.
Now that you know that, I need to explain something about the folders in InstallShield. If you are trying to assign a destination folder for a feature or component, you will look through the list and find that ProgramData is not there.
Another name for ProgramData is CommonAppDataFolder. That’s what you should choose in the destination folder dialog for your application data folder.
To recap, for applications that are installed for all users of a computer, install the application in the ProgramFilesFolder. For your application data, store that in CommonAppDataFolder. This means use ProgramFilesFolder for the INSTALLDIR folder and use CommonAppDataFolder as the component destination for your data.
Remember that applications and data installed for all users of a computer are also called Per-Machine installations.