fixed eol-style

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@5529 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2008-02-08 21:10:44 +00:00
parent 54f872da82
commit 98b8b28f98

View file

@ -1,463 +1,463 @@
/* /*
MultiUser.nsh MultiUser.nsh
Installer configuration for multi-user Windows environments Installer configuration for multi-user Windows environments
Copyright © 2008 Joost Verburg Copyright © 2008 Joost Verburg
*/ */
!ifndef MULTIUSER_INCLUDED !ifndef MULTIUSER_INCLUDED
!define MULTIUSER_INCLUDED !define MULTIUSER_INCLUDED
!verbose push !verbose push
!verbose 3 !verbose 3
;Standard NSIS header files ;Standard NSIS header files
!ifdef MULTIUSER_MUI !ifdef MULTIUSER_MUI
!include MUI2.nsh !include MUI2.nsh
!endif !endif
!include nsDialogs.nsh !include nsDialogs.nsh
!include LogicLib.nsh !include LogicLib.nsh
!include WinVer.nsh !include WinVer.nsh
!include FileFunc.nsh !include FileFunc.nsh
;Variables ;Variables
Var MultiUser.Privileges Var MultiUser.Privileges
Var MultiUser.InstallMode Var MultiUser.InstallMode
;Command line installation mode setting ;Command line installation mode setting
!ifdef MULTIUSER_INSTALLMODE_COMMANDLINE !ifdef MULTIUSER_INSTALLMODE_COMMANDLINE
!insertmacro GetParameters !insertmacro GetParameters
!ifndef MULTIUSER_NOUNINSTALLER !ifndef MULTIUSER_NOUNINSTALLER
!insertmacro un.GetParameters !insertmacro un.GetParameters
!endif !endif
!include StrFunc.nsh !include StrFunc.nsh
${StrStr} ${StrStr}
!ifndef MULTIUSER_NOUNINSTALLER !ifndef MULTIUSER_NOUNINSTALLER
${UnStrStr} ${UnStrStr}
!endif !endif
Var MultiUser.Parameters Var MultiUser.Parameters
Var MultiUser.Result Var MultiUser.Result
!endif !endif
;Installation folder stored in registry ;Installation folder stored in registry
!ifdef MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY & MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME !ifdef MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY & MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME
Var MultiUser.InstDir Var MultiUser.InstDir
!endif !endif
!ifdef MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY & MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME !ifdef MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY & MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME
Var MultiUser.DefaultKeyValue Var MultiUser.DefaultKeyValue
!endif !endif
;Windows Vista UAC setting ;Windows Vista UAC setting
!if "${MULTIUSER_EXECUTIONLEVEL}" == Admin !if "${MULTIUSER_EXECUTIONLEVEL}" == Admin
RequestExecutionLevel admin RequestExecutionLevel admin
!define MULTIUSER_EXECUTIONLEVEL_ALLUSERS !define MULTIUSER_EXECUTIONLEVEL_ALLUSERS
!else if "${MULTIUSER_EXECUTIONLEVEL}" == Power !else if "${MULTIUSER_EXECUTIONLEVEL}" == Power
RequestExecutionLevel admin RequestExecutionLevel admin
!define MULTIUSER_EXECUTIONLEVEL_ALLUSERS !define MULTIUSER_EXECUTIONLEVEL_ALLUSERS
!else if "${MULTIUSER_EXECUTIONLEVEL}" == Highest !else if "${MULTIUSER_EXECUTIONLEVEL}" == Highest
RequestExecutionLevel highest RequestExecutionLevel highest
!define MULTIUSER_EXECUTIONLEVEL_ALLUSERS !define MULTIUSER_EXECUTIONLEVEL_ALLUSERS
!else !else
RequestExecutionLevel user RequestExecutionLevel user
!endif !endif
/* /*
Install modes Install modes
*/ */
!macro MULTIUSER_INSTALLMODE_ALLUSERS UNINSTALLER_PREFIX UNINSTALLER_FUNCPREFIX !macro MULTIUSER_INSTALLMODE_ALLUSERS UNINSTALLER_PREFIX UNINSTALLER_FUNCPREFIX
;Install mode initialization - per-machine ;Install mode initialization - per-machine
${ifnot} ${IsNT} ${ifnot} ${IsNT}
${orif} $MultiUser.Privileges == "Admin" ${orif} $MultiUser.Privileges == "Admin"
${orif} $MultiUser.Privileges == "Power" ${orif} $MultiUser.Privileges == "Power"
StrCpy $MultiUser.InstallMode AllUsers StrCpy $MultiUser.InstallMode AllUsers
SetShellVarContext all SetShellVarContext all
!ifdef MULTIUSER_INSTALLMODE_INSTDIR !ifdef MULTIUSER_INSTALLMODE_INSTDIR
StrCpy $INSTDIR "$PROGRAMFILES\${MULTIUSER_INSTALLMODE_INSTDIR}" StrCpy $INSTDIR "$PROGRAMFILES\${MULTIUSER_INSTALLMODE_INSTDIR}"
!endif !endif
!ifdef MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY & MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME !ifdef MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY & MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME
ReadRegStr $MultiUser.InstDir HKLM "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME}" ReadRegStr $MultiUser.InstDir HKLM "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME}"
${if} $MultiUser.InstDir != "" ${if} $MultiUser.InstDir != ""
StrCpy $INSTDIR $MultiUser.InstDir StrCpy $INSTDIR $MultiUser.InstDir
${endif} ${endif}
!endif !endif
!ifdef MULTIUSER_INSTALLMODE_FUNCTION !ifdef MULTIUSER_INSTALLMODE_FUNCTION
Call "${MULTIUSER_INSTALLMODE_${UNINSTALLER_PREFIX}FUNCTION}" Call "${MULTIUSER_INSTALLMODE_${UNINSTALLER_PREFIX}FUNCTION}"
!endif !endif
${endif} ${endif}
!macroend !macroend
!macro MULTIUSER_INSTALLMODE_CURRENTUSER UNINSTALLER_PREFIX UNINSTALLER_FUNCPREFIX !macro MULTIUSER_INSTALLMODE_CURRENTUSER UNINSTALLER_PREFIX UNINSTALLER_FUNCPREFIX
;Install mode initialization - per-user ;Install mode initialization - per-user
${if} ${IsNT} ${if} ${IsNT}
StrCpy $MultiUser.InstallMode CurrentUser StrCpy $MultiUser.InstallMode CurrentUser
SetShellVarContext current SetShellVarContext current
!ifdef MULTIUSER_INSTALLMODE_INSTDIR !ifdef MULTIUSER_INSTALLMODE_INSTDIR
${if} ${AtLeastWin2000} ${if} ${AtLeastWin2000}
StrCpy $INSTDIR "$LOCALAPPDATA\${MULTIUSER_INSTALLMODE_INSTDIR}" StrCpy $INSTDIR "$LOCALAPPDATA\${MULTIUSER_INSTALLMODE_INSTDIR}"
${else} ${else}
StrCpy $INSTDIR "$PROGRAMFILES\${MULTIUSER_INSTALLMODE_INSTDIR}" StrCpy $INSTDIR "$PROGRAMFILES\${MULTIUSER_INSTALLMODE_INSTDIR}"
${endif} ${endif}
!endif !endif
!ifdef MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY & MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME !ifdef MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY & MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME
ReadRegStr $MultiUser.InstDir HKCU "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME}" ReadRegStr $MultiUser.InstDir HKCU "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME}"
${if} $MultiUser.InstDir != "" ${if} $MultiUser.InstDir != ""
StrCpy $INSTDIR $MultiUser.InstDir StrCpy $INSTDIR $MultiUser.InstDir
${endif} ${endif}
!endif !endif
!ifdef MULTIUSER_INSTALLMODE_FUNCTION !ifdef MULTIUSER_INSTALLMODE_FUNCTION
Call "${MULTIUSER_INSTALLMODE_${UNINSTALLER_PREFIX}FUNCTION}" Call "${MULTIUSER_INSTALLMODE_${UNINSTALLER_PREFIX}FUNCTION}"
!endif !endif
${endif} ${endif}
!macroend !macroend
Function MultiUser.InstallMode.AllUsers Function MultiUser.InstallMode.AllUsers
!insertmacro MULTIUSER_INSTALLMODE_ALLUSERS "" "" !insertmacro MULTIUSER_INSTALLMODE_ALLUSERS "" ""
FunctionEnd FunctionEnd
Function MultiUser.InstallMode.CurrentUser Function MultiUser.InstallMode.CurrentUser
!insertmacro MULTIUSER_INSTALLMODE_CURRENTUSER "" "" !insertmacro MULTIUSER_INSTALLMODE_CURRENTUSER "" ""
FunctionEnd FunctionEnd
!ifndef MULTIUSER_NOUNINSTALL !ifndef MULTIUSER_NOUNINSTALL
Function un.MultiUser.InstallMode.AllUsers Function un.MultiUser.InstallMode.AllUsers
!insertmacro MULTIUSER_INSTALLMODE_ALLUSERS UN .un !insertmacro MULTIUSER_INSTALLMODE_ALLUSERS UN .un
FunctionEnd FunctionEnd
Function un.MultiUser.InstallMode.CurrentUser Function un.MultiUser.InstallMode.CurrentUser
!insertmacro MULTIUSER_INSTALLMODE_CURRENTUSER UN .un !insertmacro MULTIUSER_INSTALLMODE_CURRENTUSER UN .un
FunctionEnd FunctionEnd
!endif !endif
/* /*
Installer/uninstaller initialization Installer/uninstaller initialization
*/ */
!macro MULTIUSER_INIT_QUIT UNINSTALLER_FUNCPREFIX !macro MULTIUSER_INIT_QUIT UNINSTALLER_FUNCPREFIX
!ifdef MULTIUSER_INIT_${UNINSTALLER_FUNCPREFIX}FUNCTIONQUIT !ifdef MULTIUSER_INIT_${UNINSTALLER_FUNCPREFIX}FUNCTIONQUIT
Call "${MULTIUSER_INIT_${UNINSTALLER_FUNCPREFIX}FUCTIONQUIT} Call "${MULTIUSER_INIT_${UNINSTALLER_FUNCPREFIX}FUCTIONQUIT}
!else !else
Quit Quit
!endif !endif
!macroend !macroend
!macro MULTIUSER_INIT_TEXTS !macro MULTIUSER_INIT_TEXTS
!ifndef MULTIUSER_INIT_TEXT_ADMINREQUIRED !ifndef MULTIUSER_INIT_TEXT_ADMINREQUIRED
!define MULTIUSER_INIT_TEXT_ADMINREQUIRED "$(^Caption) requires administrator priviledges." !define MULTIUSER_INIT_TEXT_ADMINREQUIRED "$(^Caption) requires administrator priviledges."
!endif !endif
!ifndef MULTIUSER_INIT_TEXT_POWERREQUIRED !ifndef MULTIUSER_INIT_TEXT_POWERREQUIRED
!define MULTIUSER_INIT_TEXT_POWERREQUIRED "$(^Caption) requires at least Power User priviledges." !define MULTIUSER_INIT_TEXT_POWERREQUIRED "$(^Caption) requires at least Power User priviledges."
!endif !endif
!ifndef MULTIUSER_INIT_TEXT_ALLUSERSNOTPOSSIBLE !ifndef MULTIUSER_INIT_TEXT_ALLUSERSNOTPOSSIBLE
!define MULTIUSER_INIT_TEXT_ALLUSERSNOTPOSSIBLE "Your user account does not have sufficient privileges to install $(^Name) for all users of this compuetr." !define MULTIUSER_INIT_TEXT_ALLUSERSNOTPOSSIBLE "Your user account does not have sufficient privileges to install $(^Name) for all users of this compuetr."
!endif !endif
!macroend !macroend
!macro MULTIUSER_INIT_CHECKS UNINSTALLER_PREFIX UNINSTALLER_FUNCPREFIX !macro MULTIUSER_INIT_CHECKS UNINSTALLER_PREFIX UNINSTALLER_FUNCPREFIX
;Installer initialization - check privileges and set install mode ;Installer initialization - check privileges and set install mode
!insertmacro MULTIUSER_INIT_TEXTS !insertmacro MULTIUSER_INIT_TEXTS
UserInfo::GetAccountType UserInfo::GetAccountType
Pop $MultiUser.Privileges Pop $MultiUser.Privileges
${if} ${IsNT} ${if} ${IsNT}
;Check privileges ;Check privileges
!if "${MULTIUSER_EXECUTIONLEVEL}" == Admin !if "${MULTIUSER_EXECUTIONLEVEL}" == Admin
${if} $MultiUser.Privileges != "Admin" ${if} $MultiUser.Privileges != "Admin"
MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_ADMINREQUIRED}" MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_ADMINREQUIRED}"
!insertmacro MULTIUSER_INIT_QUIT "${UNINSTALLER_FUNCPREFIX}" !insertmacro MULTIUSER_INIT_QUIT "${UNINSTALLER_FUNCPREFIX}"
${endif} ${endif}
!else if "${MULTIUSER_EXECUTIONLEVEL}" == Power !else if "${MULTIUSER_EXECUTIONLEVEL}" == Power
${if} $MultiUser.Privileges != "Power" ${if} $MultiUser.Privileges != "Power"
${andif} $MultiUser.Privileges != "Admin" ${andif} $MultiUser.Privileges != "Admin"
${if} ${AtMostWinXP} ${if} ${AtMostWinXP}
MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_POWERREQUIRED}" MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_POWERREQUIRED}"
${else} ${else}
MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_ADMINREQUIRED}" MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_ADMINREQUIRED}"
${endif} ${endif}
!insertmacro MULTIUSER_INIT_QUIT "${UNINSTALLER_FUNCPREFIX}" !insertmacro MULTIUSER_INIT_QUIT "${UNINSTALLER_FUNCPREFIX}"
${endif} ${endif}
!endif !endif
!ifdef MULTIUSER_EXECUTIONLEVEL_ALLUSERS !ifdef MULTIUSER_EXECUTIONLEVEL_ALLUSERS
;Default to per-machine installation if possible ;Default to per-machine installation if possible
${if} $MultiUser.Privileges == "Admin" ${if} $MultiUser.Privileges == "Admin"
${orif} $MultiUser.Privileges == "Power" ${orif} $MultiUser.Privileges == "Power"
!ifndef MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER !ifndef MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER
Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers
!else !else
Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser
!endif !endif
!ifdef MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY & MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME !ifdef MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY & MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME
;Set installation mode to setting from a previous installation ;Set installation mode to setting from a previous installation
!ifndef MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER !ifndef MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER
ReadRegStr $MultiUser.DefaultKeyValue HKLM "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}" ReadRegStr $MultiUser.DefaultKeyValue HKLM "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}"
${if} $MultiUser.DefaultKeyValue == "" ${if} $MultiUser.DefaultKeyValue == ""
ReadRegStr $MultiUser.DefaultKeyValue HKCU "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}" ReadRegStr $MultiUser.DefaultKeyValue HKCU "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}"
${if} $MultiUser.DefaultKeyValue != "" ${if} $MultiUser.DefaultKeyValue != ""
Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers
${endif} ${endif}
${endif} ${endif}
!else !else
ReadRegStr $MultiUser.DefaultKeyValue HKCU "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}" ReadRegStr $MultiUser.DefaultKeyValue HKCU "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}"
${if} $MultiUser.DefaultKeyValue == "" ${if} $MultiUser.DefaultKeyValue == ""
ReadRegStr $MultiUser.DefaultKeyValue HKLM "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}" ReadRegStr $MultiUser.DefaultKeyValue HKLM "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}"
${if} $MultiUser.DefaultKeyValue != "" ${if} $MultiUser.DefaultKeyValue != ""
Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser
${endif} ${endif}
${endif} ${endif}
!endif !endif
!endif !endif
${else} ${else}
Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser
${endif} ${endif}
!else !else
Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser
!endif !endif
!ifdef MULTIUSER_INSTALLMODE_COMMANDLINE !ifdef MULTIUSER_INSTALLMODE_COMMANDLINE
;Check for install mode setting on command line ;Check for install mode setting on command line
${${UNINSTALLER_FUNCPREFIX}GetParameters} $MultiUser.Parameters ${${UNINSTALLER_FUNCPREFIX}GetParameters} $MultiUser.Parameters
${${UNINSTALLER_PREFIX}StrStr} $MultiUser.Result $MultiUser.Parameters "/CurrentUser" ${${UNINSTALLER_PREFIX}StrStr} $MultiUser.Result $MultiUser.Parameters "/CurrentUser"
${if} $MultiUser.Result != "" ${if} $MultiUser.Result != ""
Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser
${endif} ${endif}
${${UNINSTALLER_PREFIX}StrStr} $MultiUser.Result $MultiUser.Parameters "/AllUsers" ${${UNINSTALLER_PREFIX}StrStr} $MultiUser.Result $MultiUser.Parameters "/AllUsers"
${if} $MultiUser.Result != "" ${if} $MultiUser.Result != ""
${if} $MultiUser.Privileges == "Admin" ${if} $MultiUser.Privileges == "Admin"
${orif} $MultiUser.Privileges == "Power" ${orif} $MultiUser.Privileges == "Power"
Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers
${else} ${else}
MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_ALLUSERSNOTPOSSIBLE}" MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_ALLUSERSNOTPOSSIBLE}"
${endif} ${endif}
${endif} ${endif}
!endif !endif
${else} ${else}
;Not running Windows NT, per-user installation not supported ;Not running Windows NT, per-user installation not supported
Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers
${endif} ${endif}
!macroend !macroend
!macro MULTIUSER_INIT !macro MULTIUSER_INIT
!verbose push !verbose push
!verbose 3 !verbose 3
!insertmacro MULTIUSER_INIT_CHECKS "" "" !insertmacro MULTIUSER_INIT_CHECKS "" ""
!verbose pop !verbose pop
!macroend !macroend
!ifndef MULTIUSER_NOUNINSTALL !ifndef MULTIUSER_NOUNINSTALL
!macro MULTIUSER_UNINIT !macro MULTIUSER_UNINIT
!verbose push !verbose push
!verbose 3 !verbose 3
!insertmacro MULTIUSER_INIT_CHECKS Un un. !insertmacro MULTIUSER_INIT_CHECKS Un un.
!verbose pop !verbose pop
!macroend !macroend
!endif !endif
/* /*
Modern UI 2 page Modern UI 2 page
*/ */
!ifdef MULTIUSER_MUI !ifdef MULTIUSER_MUI
!macro MULTIUSER_INSTALLMODEPAGE_INTERFACE !macro MULTIUSER_INSTALLMODEPAGE_INTERFACE
!ifndef MULTIUSER_INSTALLMODEPAGE_INTERFACE !ifndef MULTIUSER_INSTALLMODEPAGE_INTERFACE
!define MULTIUSER_INSTALLMODEPAGE_INTERFACE !define MULTIUSER_INSTALLMODEPAGE_INTERFACE
Var MultiUser.InstallModePage Var MultiUser.InstallModePage
Var MultiUser.InstallModePage.Text Var MultiUser.InstallModePage.Text
Var MultiUser.InstallModePage.AllUsers Var MultiUser.InstallModePage.AllUsers
Var MultiUser.InstallModePage.CurrentUser Var MultiUser.InstallModePage.CurrentUser
Var MultiUser.InstallModePage.ReturnValue Var MultiUser.InstallModePage.ReturnValue
!endif !endif
!macroend !macroend
!macro MULTIUSER_PAGEDECLARATION_INSTALLMODE !macro MULTIUSER_PAGEDECLARATION_INSTALLMODE
!insertmacro MUI_SET MULTIUSER_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLMODEPAGE "" !insertmacro MUI_SET MULTIUSER_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLMODEPAGE ""
!insertmacro MULTIUSER_INSTALLMODEPAGE_INTERFACE !insertmacro MULTIUSER_INSTALLMODEPAGE_INTERFACE
!insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODEPAGE_TEXT_TOP "$(MULTIUSER_INNERTEXT_INSTALLMODE_TOP)" !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODEPAGE_TEXT_TOP "$(MULTIUSER_INNERTEXT_INSTALLMODE_TOP)"
!insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODEPAGE_TEXT_ALLUSERS "$(MULTIUSER_INNERTEXT_INSTALLMODE_ALLUSERS)" !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODEPAGE_TEXT_ALLUSERS "$(MULTIUSER_INNERTEXT_INSTALLMODE_ALLUSERS)"
!insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODEPAGE_TEXT_CURRENTUSER "$(MULTIUSER_INNERTEXT_INSTALLMODE_CURRENTUSER)" !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODEPAGE_TEXT_CURRENTUSER "$(MULTIUSER_INNERTEXT_INSTALLMODE_CURRENTUSER)"
PageEx custom PageEx custom
PageCallbacks MultiUser.InstallModePre_${MUI_UNIQUEID} MultiUser.InstallModeLeave_${MUI_UNIQUEID} PageCallbacks MultiUser.InstallModePre_${MUI_UNIQUEID} MultiUser.InstallModeLeave_${MUI_UNIQUEID}
Caption " " Caption " "
PageExEnd PageExEnd
!insertmacro MULTIUSER_FUNCTION_INSTALLMODEPAGE MultiUser.InstallModePre_${MUI_UNIQUEID} MultiUser.InstallModeLeave_${MUI_UNIQUEID} !insertmacro MULTIUSER_FUNCTION_INSTALLMODEPAGE MultiUser.InstallModePre_${MUI_UNIQUEID} MultiUser.InstallModeLeave_${MUI_UNIQUEID}
!undef MULTIUSER_INSTALLMODEPAGE_TEXT_TOP !undef MULTIUSER_INSTALLMODEPAGE_TEXT_TOP
!undef MULTIUSER_INSTALLMODEPAGE_TEXT_ALLUSERS !undef MULTIUSER_INSTALLMODEPAGE_TEXT_ALLUSERS
!undef MULTIUSER_INSTALLMODEPAGE_TEXT_CURRENTUSER !undef MULTIUSER_INSTALLMODEPAGE_TEXT_CURRENTUSER
!macroend !macroend
!macro MULTIUSER_PAGE_INSTALLMODE !macro MULTIUSER_PAGE_INSTALLMODE
;Modern UI page for install mode ;Modern UI page for install mode
!verbose push !verbose push
!verbose 3 !verbose 3
!ifndef MULTIUSER_EXECUTIONLEVEL_ALLUSERS !ifndef MULTIUSER_EXECUTIONLEVEL_ALLUSERS
!error "A mixed-mode installation requires MULTIUSER_EXECUTIONLEVEL to be set to Admin, Power or Highest." !error "A mixed-mode installation requires MULTIUSER_EXECUTIONLEVEL to be set to Admin, Power or Highest."
!endif !endif
!insertmacro MUI_PAGE_INIT !insertmacro MUI_PAGE_INIT
!insertmacro MULTIUSER_PAGEDECLARATION_INSTALLMODE !insertmacro MULTIUSER_PAGEDECLARATION_INSTALLMODE
!verbose pop !verbose pop
!macroend !macroend
!macro MULTIUSER_FUNCTION_INSTALLMODEPAGE PRE LEAVE !macro MULTIUSER_FUNCTION_INSTALLMODEPAGE PRE LEAVE
;Page functions of Modern UI page ;Page functions of Modern UI page
Function "${PRE}" Function "${PRE}"
${ifnot} ${IsNT} ${ifnot} ${IsNT}
Abort Abort
${endif} ${endif}
${if} $MultiUser.Privileges != "Power" ${if} $MultiUser.Privileges != "Power"
${andif} $MultiUser.Privileges != "Admin" ${andif} $MultiUser.Privileges != "Admin"
Abort Abort
${endif} ${endif}
!insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
!insertmacro MUI_HEADER_TEXT_PAGE $(MULTIUSER_TEXT_INSTALLMODE_TITLE) $(MULTIUSER_TEXT_INSTALLMODE_SUBTITLE) !insertmacro MUI_HEADER_TEXT_PAGE $(MULTIUSER_TEXT_INSTALLMODE_TITLE) $(MULTIUSER_TEXT_INSTALLMODE_SUBTITLE)
nsDialogs::Create /NOUNLOAD 1018 nsDialogs::Create /NOUNLOAD 1018
Pop $MultiUser.InstallModePage Pop $MultiUser.InstallModePage
${NSD_CreateLabel} 0u 0u 300u 20u "${MULTIUSER_INSTALLMODEPAGE_TEXT_TOP}" ${NSD_CreateLabel} 0u 0u 300u 20u "${MULTIUSER_INSTALLMODEPAGE_TEXT_TOP}"
Pop $MultiUser.InstallModePage.Text Pop $MultiUser.InstallModePage.Text
${NSD_CreateRadioButton} 20u 50u 280u 10u "${MULTIUSER_INSTALLMODEPAGE_TEXT_ALLUSERS}" ${NSD_CreateRadioButton} 20u 50u 280u 10u "${MULTIUSER_INSTALLMODEPAGE_TEXT_ALLUSERS}"
Pop $MultiUser.InstallModePage.AllUsers Pop $MultiUser.InstallModePage.AllUsers
${NSD_CreateRadioButton} 20u 70u 280u 10u "${MULTIUSER_INSTALLMODEPAGE_TEXT_CURRENTUSER}" ${NSD_CreateRadioButton} 20u 70u 280u 10u "${MULTIUSER_INSTALLMODEPAGE_TEXT_CURRENTUSER}"
Pop $MultiUser.InstallModePage.CurrentUser Pop $MultiUser.InstallModePage.CurrentUser
${if} $MultiUser.InstallMode == "AllUsers" ${if} $MultiUser.InstallMode == "AllUsers"
SendMessage $MultiUser.InstallModePage.AllUsers ${BM_SETCHECK} ${BST_CHECKED} 0 SendMessage $MultiUser.InstallModePage.AllUsers ${BM_SETCHECK} ${BST_CHECKED} 0
${else} ${else}
SendMessage $MultiUser.InstallModePage.CurrentUser ${BM_SETCHECK} ${BST_CHECKED} 0 SendMessage $MultiUser.InstallModePage.CurrentUser ${BM_SETCHECK} ${BST_CHECKED} 0
${endif} ${endif}
!insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
nsDialogs::Show nsDialogs::Show
FunctionEnd FunctionEnd
Function "${LEAVE}" Function "${LEAVE}"
SendMessage $MultiUser.InstallModePage.AllUsers ${BM_GETCHECK} 0 0 $MultiUser.InstallModePage.ReturnValue SendMessage $MultiUser.InstallModePage.AllUsers ${BM_GETCHECK} 0 0 $MultiUser.InstallModePage.ReturnValue
${if} $MultiUser.InstallModePage.ReturnValue = ${BST_CHECKED} ${if} $MultiUser.InstallModePage.ReturnValue = ${BST_CHECKED}
Call MultiUser.InstallMode.AllUsers Call MultiUser.InstallMode.AllUsers
${else} ${else}
Call MultiUser.InstallMode.CurrentUser Call MultiUser.InstallMode.CurrentUser
${endif} ${endif}
!insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
FunctionEnd FunctionEnd
!macroend !macroend
!endif !endif
!verbose pop !verbose pop
!endif !endif