home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Programming / nsis-2.46-setup.exe / Include / VB6RunTime.nsh < prev    next >
Encoding:
Text File  |  2009-02-01  |  3.4 KB  |  91 lines

  1. /*
  2.  
  3. VB6RunTime.nsh
  4.  
  5. Setup of Visual Basic 6.0 run-time files, including the Oleaut32.dll security update
  6.  
  7. Copyright 2008-2009 Joost Verburg
  8.  
  9. To obtain the run-time files, download and extract
  10. http://nsis.sourceforge.net/vb6runtime.zip
  11.  
  12. Script code for installation:
  13.  
  14. !insertmacro InstallVB6RunTime FOLDER ALREADY_INSTALLED
  15.  
  16. in which FOLDER is the location of the run-time files and ALREADY_INSTALLED is the
  17. name of a variable that is empty when the application is installed for the first time
  18. and non-empty otherwise
  19.  
  20. Script code for uninstallation:
  21.  
  22. !insertmacro UnInstallVB6RunTime
  23.  
  24. Remarks:
  25.  
  26. * You may have to install additional files for such Visual Basic application to work,
  27.   such as OCX files for user interface controls.
  28.   
  29. * Installation of the run-time files requires Administrator or Power User privileges.
  30.   Use the Multi-User header file to verify whether these privileges are available.
  31.  
  32. * Add a Modern UI finish page or another check (see IfRebootFlag in the NSIS Users
  33.   Manual) to allow the user to restart the computer when necessary.
  34.  
  35. */
  36.  
  37. !ifndef VB6_INCLUDED
  38. !define VB6_INCLUDED
  39. !verbose push
  40. !verbose 3
  41.  
  42. !include Library.nsh
  43. !include WinVer.nsh
  44.  
  45. !macro VB6RunTimeInstall FOLDER ALREADY_INSTALLED
  46.  
  47.   !insertmacro InstallLib REGDLL "${ALREADY_INSTALLED}" REBOOT_PROTECTED "${FOLDER}\msvbvm60.dll" "$SYSDIR\msvbvm60.dll" "$SYSDIR"
  48.   
  49.   ;The files below will only be installed on Win9x/NT4
  50.   
  51.   !insertmacro InstallLib REGDLL "${ALREADY_INSTALLED}" REBOOT_PROTECTED    "${FOLDER}\olepro32.dll" "$SYSDIR\olepro32.dll" "$SYSDIR"
  52.   !insertmacro InstallLib REGDLL "${ALREADY_INSTALLED}" REBOOT_PROTECTED    "${FOLDER}\comcat.dll"   "$SYSDIR\comcat.dll"   "$SYSDIR"
  53.   !insertmacro InstallLib DLL    "${ALREADY_INSTALLED}" REBOOT_PROTECTED    "${FOLDER}\asycfilt.dll" "$SYSDIR\asycfilt.dll" "$SYSDIR"
  54.   !insertmacro InstallLib TLB    "${ALREADY_INSTALLED}" REBOOT_PROTECTED    "${FOLDER}\stdole2.tlb"  "$SYSDIR\stdole2.tlb"  "$SYSDIR"
  55.   
  56.   Push $R0
  57.   
  58.   ${if} ${IsNT}
  59.     ${if} ${IsWinNT4}
  60.       ReadRegStr $R0 HKLM "System\CurrentControlSet\Control" "ProductOptions"
  61.       ${if} $R0 == "Terminal Server"
  62.         !insertmacro InstallLib REGDLL "${ALREADY_INSTALLED}" REBOOT_NOTPROTECTED "${FOLDER}\NT4TS\oleaut32.dll" "$SYSDIR\oleaut32.dll" "$SYSDIR"
  63.       ${else}
  64.         !insertmacro InstallLib REGDLL "${ALREADY_INSTALLED}" REBOOT_NOTPROTECTED "${FOLDER}\NT4\oleaut32.dll" "$SYSDIR\oleaut32.dll" "$SYSDIR"
  65.       ${endif}
  66.     ${endif}
  67.   ${else}
  68.     ;No Oleaut32.dll with the security update has been released for Windows 9x.
  69.     ;The NT4 version is used because NT4 and Win9x used to share the same 2.40 version
  70.     ;and version 2.40.4519.0 is reported to work fine on Win9x.
  71.     !insertmacro InstallLib REGDLL "${ALREADY_INSTALLED}" REBOOT_NOTPROTECTED "${FOLDER}\NT4\oleaut32.dll" "$SYSDIR\oleaut32.dll" "$SYSDIR"
  72.   ${endif}
  73.   
  74.   Pop $R0
  75.  
  76. !macroend
  77.  
  78. !macro VB6RunTimeUnInstall
  79.  
  80.    !insertmacro UnInstallLib REGDLL SHARED NOREMOVE "$SYSDIR\msvbvm60.dll"
  81.    !insertmacro UnInstallLib REGDLL SHARED NOREMOVE "$SYSDIR\oleaut32.dll"
  82.    !insertmacro UnInstallLib REGDLL SHARED NOREMOVE "$SYSDIR\olepro32.dll"
  83.    !insertmacro UnInstallLib REGDLL SHARED NOREMOVE "$SYSDIR\comcat.dll"
  84.    !insertmacro UnInstallLib DLL    SHARED NOREMOVE "$SYSDIR\asycfilt.dll"
  85.    !insertmacro UnInstallLib TLB    SHARED NOREMOVE "$SYSDIR\stdole2.tlb"
  86.  
  87. !macroend
  88.  
  89. !verbose pop
  90. !endif
  91.