The Library header file can be used to setup dynamic link libraries (DLL) and type libraries (TLB). If necessary, the following actions will be performed:
The macros are stored in the header file Library.nsh, which should be included in scripts using this system:
!include Library.nsh
Note that the library macros are limited on non-Windows platforms. DLL version information is required when compiling on non-Windows platforms.
The InstallLib macro allows you to install a library. It sets the error flag if something went wrong during library setup.
To ask the user for a reboot, if required, use the Modern UI with a Finish page or use IfRebootFlag and make your own page or message box.
libtype shared install localfile destfile tempbasedir
libtype
The type of the library
DLL - Dynamic link library (DLL)
REGDLL - DLL that has to be registered
REGEXE - EXE COM server that has to be registered using /regserver
TLB - Type library or DLL that contains a type library
REGDLLTLB - DLL that has to be registered and contains a type library
shared
Specify whether the library is shared with other applications
NOTSHARED - The library is not shared
$VARNAME - Variable that is empty when the application is installed for the first time, which is when the shared library count will be increased.
install
Specify the installation method
REBOOT_PROTECTED
NOREBOOT_PROTECTED
REBOOT_NOTPROTECTED
NOREBOOT_NOTPROTECTED
localfile
Location of the library on the compiler system
destfile
Location to store the library on the user's system
tempbasedir
Directory on the user's system to store a temporary file when the system has to be rebooted.
For Windows 9x/ME support, this directory should be on the same volume as the destination file (destfile). The Windows temp directory could be located on any volume, so you cannot use this directory.
Define any of the following before inserting a InstallLib macro to modify its behavior as specified.
!insertmacro InstallLib REGDLL NOTSHARED REBOOT_NOTPROTECTED dllname.dll $SYSDIR\dllname.dll $SYSDIR
;Add code here that sets $ALREADY_INSTALLED to a non-zero value if the application is ;already installed. For example: IfFileExists "$INSTDIR\MyApp.exe" 0 new_installation ;Replace MyApp.exe with your application filename StrCpy $ALREADY_INSTALLED 1 new_installation: !insertmacro InstallLib REGDLL $ALREADY_INSTALLED REBOOT_NOTPROTECTED dllname.dll $SYSDIR\dllname.dll $SYSDIR
The UnInstallLib macro allows you to uninstall a library. It sets the error flag if something went wrong during library removal.
libtype shared uninstall file
libtype
The type of the library
DLL - Dynamic link library (DLL)
REGDLL - DLL that has to be unregistered
REGEXE - EXE COM server that has to be unregistered using /unregserver
TLB - Type library or DLL that contains a type library
REGDLLTLB - DLL that has to be unregistered and contains a type library
shared
Specify whether the library is shared with other applications
NOTSHARED - The library is not shared
SHARED - The library is shared and should be removed if the shared library count indicates that the file is not in use anymore..
uninstall
Specify the uninstallation method
NOREMOVE
REBOOT_PROTECTED
NOREBOOT_PROTECTED
REBOOT_NOTPROTECTED
NOREBOOT_NOTPROTECTED
file
Location of the library
Define any of the following before inserting a UnInstallLib macro to modify its behavior as specified.
!insertmacro UnInstallLib REGDLL SHARED REBOOT_NOTPROTECTED $SYSDIR\dllname.dll
A new VB6RunTime.nsh header file is available for the setup of the VB6 run-time files. To obtain the latest run-time files, download vb6runtime.zip and extract this file.
!include VB6RunTime.nsh Var AlreadyInstalled Section "-Install VB6 run-time files" ;Add code here that sets $AlreadyInstalled to a non-zero value if the application is already installed. For example: IfFileExists "$INSTDIR\MyApp.exe" 0 new_installation ;Replace MyApp.exe with your application filename StrCpy $AlreadyInstalled 1 new_installation: !insertmacro VB6RunTimeInstall C:\vb6runtimes $AlreadyInstalled ;Replace C:\vb6runtimes with the location of the files SectionEnd Section "-un.Uninstall VB6 run-time files" !insertmacro VB6RunTimeUnInstall SectionEnd
Remarks: