InstallShield has put out a White Paper on converting from version 5.5 to version 6.x. Although that paper is helpful and fairly accurate as far as it goes, it is incomplete. Here are some additional changes that you may need to look out for.
void, which is required on some function prototypes, is
not documented. The keyword is needed if the function contains a RETURN with no value.
typedefs, the syntax has changed from brackets to parentheses (but not in the online help and
web site documentation).
szElement String [40];szElement String (40);
MODE is now read-only, as stated in the migration white
paper. However, the online help says that you can change it. (The
web site documentation is silent on the subject.)
SdComponentTree),
you need to write source code from scratch.
#include sddialog.rul and one's custom sd*.rul
files would automatically be used. In IS6.2, these files must be
explicitly #included.
nSdDialog.
SUPPORTDIR was c:\temp\_istmp1\_istmp0. Now they look like c:\temp\{2f1301df-7a0a-4c64-899d-cce8b8685fb2}. Also, in IS5.5, if you added additional files to SUPPORTDIR, they would be deleted at the conclusion of the setup and in any event, the entire directory would be deleted. Neither of these functions happens in IS6.2.
LaunchAppAndWait
returned 1 for success. In IS6 this has been changed to 0 to make it consistent with other functions. But the docs haven't been updated.
SdFinishReboot
would not return if the user decided to reboot. In IS6.2, the function returns in all cases; the reboot does not occur until the script exits.
OpenFile
would do so in a mode that allowed other processes to access the file. In IS6, the file is opened with exclusive access. This may also be the case with
CreateFile