Bug 1237571 - Register as webcal(s):// handler on Windows. r=mkmelin
Differential Revision: https://phabricator.services.mozilla.com/D111220 --HG-- extra : amend_source : 4a76ac4c24d005777ff5dec2d703d251da6985e8
This commit is contained in:
Родитель
4e37e07fa4
Коммит
e165e3ca05
|
@ -72,6 +72,7 @@ typedef enum {
|
||||||
#define CLS_MIDURL "Thunderbird.Url.mid"
|
#define CLS_MIDURL "Thunderbird.Url.mid"
|
||||||
#define CLS_NEWSURL "Thunderbird.Url.news"
|
#define CLS_NEWSURL "Thunderbird.Url.news"
|
||||||
#define CLS_FEEDURL "Thunderbird.Url.feed"
|
#define CLS_FEEDURL "Thunderbird.Url.feed"
|
||||||
|
#define CLS_WEBCALURL "Thunderbird.Url.webcal"
|
||||||
#define CLS_ICS "ThunderbirdICS"
|
#define CLS_ICS "ThunderbirdICS"
|
||||||
#define SOP "\\shell\\open\\command"
|
#define SOP "\\shell\\open\\command"
|
||||||
#define VAL_OPEN "\"%APPPATH%\" \"%1\""
|
#define VAL_OPEN "\"%APPPATH%\" \"%1\""
|
||||||
|
@ -116,6 +117,7 @@ static SETTING gCalendarSettings[] = {
|
||||||
{MAKE_KEY_NAME1(CLS_ICS, SOP), "", VAL_OPEN, APP_PATH_SUBSTITUTION},
|
{MAKE_KEY_NAME1(CLS_ICS, SOP), "", VAL_OPEN, APP_PATH_SUBSTITUTION},
|
||||||
|
|
||||||
// Protocol Handlers
|
// Protocol Handlers
|
||||||
|
{MAKE_KEY_NAME1(CLS_WEBCALURL, SOP), "", VAL_OPEN, APP_PATH_SUBSTITUTION},
|
||||||
{MAKE_KEY_NAME1("webcal", SOP), "", VAL_OPEN, APP_PATH_SUBSTITUTION},
|
{MAKE_KEY_NAME1("webcal", SOP), "", VAL_OPEN, APP_PATH_SUBSTITUTION},
|
||||||
{MAKE_KEY_NAME1("webcals", SOP), "", VAL_OPEN, APP_PATH_SUBSTITUTION},
|
{MAKE_KEY_NAME1("webcals", SOP), "", VAL_OPEN, APP_PATH_SUBSTITUTION},
|
||||||
};
|
};
|
||||||
|
|
|
@ -429,7 +429,8 @@ Section "-Application" APP_IDX
|
||||||
${SetUninstallKeys}
|
${SetUninstallKeys}
|
||||||
|
|
||||||
; On install always add the ThunderbirdEML, Thunderbird.Url.mailto,
|
; On install always add the ThunderbirdEML, Thunderbird.Url.mailto,
|
||||||
; Thunderbird.Url.mid, Thunderbird.Url.news, and ThunderbirdICS keys.
|
; Thunderbird.Url.mid, Thunderbird.Url.news, Thunderbird.webcal and
|
||||||
|
; ThunderbirdICS keys.
|
||||||
${GetLongPath} "$INSTDIR\${FileMainEXE}" $8
|
${GetLongPath} "$INSTDIR\${FileMainEXE}" $8
|
||||||
StrCpy $0 "SOFTWARE\Classes"
|
StrCpy $0 "SOFTWARE\Classes"
|
||||||
StrCpy $1 "$\"$8$\" $\"%1$\""
|
StrCpy $1 "$\"$8$\" $\"%1$\""
|
||||||
|
@ -446,6 +447,8 @@ Section "-Application" APP_IDX
|
||||||
"${AppRegNameNews} URL" "delete" ""
|
"${AppRegNameNews} URL" "delete" ""
|
||||||
${AddHandlerValues} "$0\Thunderbird.Url.mid" "$1" "$8,0" \
|
${AddHandlerValues} "$0\Thunderbird.Url.mid" "$1" "$8,0" \
|
||||||
"${AppRegNameMail} URL" "delete" ""
|
"${AppRegNameMail} URL" "delete" ""
|
||||||
|
${AddHandlerValues} "$0\Thunderbird.Url.webcal" "$1" "$8,0" \
|
||||||
|
"${AppRegNameCalendar} URL" "delete" ""
|
||||||
; An empty string is used for the 5th param because ThunderbirdICS is not a
|
; An empty string is used for the 5th param because ThunderbirdICS is not a
|
||||||
; protocol handler
|
; protocol handler
|
||||||
${AddHandlerValues} "$0\ThunderbirdICS" "$1" "$8,0" \
|
${AddHandlerValues} "$0\ThunderbirdICS" "$1" "$8,0" \
|
||||||
|
@ -457,10 +460,12 @@ Section "-Application" APP_IDX
|
||||||
; Set the Start Menu Mail/News and Registered App HKLM registry keys.
|
; Set the Start Menu Mail/News and Registered App HKLM registry keys.
|
||||||
${SetClientsMail} "HKLM"
|
${SetClientsMail} "HKLM"
|
||||||
${SetClientsNews} "HKLM"
|
${SetClientsNews} "HKLM"
|
||||||
|
${SetClientsCalendar} "HKLM"
|
||||||
${ElseIf} ${AtLeastWin8}
|
${ElseIf} ${AtLeastWin8}
|
||||||
; Set the Start Menu Mail/News and Registered App HKCU registry keys.
|
; Set the Start Menu Mail/News and Registered App HKCU registry keys.
|
||||||
${SetClientsMail} "HKCU"
|
${SetClientsMail} "HKCU"
|
||||||
${SetClientsNews} "HKCU"
|
${SetClientsNews} "HKCU"
|
||||||
|
${SetClientsCalendar} "HKCU"
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
||||||
!ifdef MOZ_MAINTENANCE_SERVICE
|
!ifdef MOZ_MAINTENANCE_SERVICE
|
||||||
|
|
|
@ -60,6 +60,18 @@
|
||||||
${If} "$0" == "$INSTDIR"
|
${If} "$0" == "$INSTDIR"
|
||||||
${SetClientsNews} "HKLM"
|
${SetClientsNews} "HKLM"
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
||||||
|
; Only update the Clients\Calendar registry key values if they don't exist or
|
||||||
|
; this installation is the same as the one set in those keys.
|
||||||
|
ReadRegStr $0 HKLM "Software\Clients\Calendar\${ClientsRegName}\DefaultIcon" ""
|
||||||
|
${GetPathFromString} "$0" $0
|
||||||
|
${GetParent} "$0" $0
|
||||||
|
${If} ${FileExists} "$0"
|
||||||
|
${GetLongPath} "$0" $0
|
||||||
|
${EndIf}
|
||||||
|
${If} "$0" == "$INSTDIR"
|
||||||
|
${SetClientsCalendar} "HKLM"
|
||||||
|
${EndIf}
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
||||||
; Migrate the application's Start Menu directory to a single shortcut in the
|
; Migrate the application's Start Menu directory to a single shortcut in the
|
||||||
|
@ -171,6 +183,7 @@
|
||||||
${SetHandlersNews} ; Uses SHCTX
|
${SetHandlersNews} ; Uses SHCTX
|
||||||
${SetClientsMail} "HKLM"
|
${SetClientsMail} "HKLM"
|
||||||
${SetClientsNews} "HKLM"
|
${SetClientsNews} "HKLM"
|
||||||
|
${SetClientsCalendar} "HKLM"
|
||||||
${SetMailClientForMapi} "HKLM"
|
${SetMailClientForMapi} "HKLM"
|
||||||
${ShowShortcuts}
|
${ShowShortcuts}
|
||||||
!macroend
|
!macroend
|
||||||
|
@ -329,21 +342,12 @@
|
||||||
${AddHandlerValues} "$0\mailto" "$2" "$8,0" "${AppRegNameMail} URL" "true" ""
|
${AddHandlerValues} "$0\mailto" "$2" "$8,0" "${AppRegNameMail} URL" "true" ""
|
||||||
${AddHandlerValues} "$0\Thunderbird.Url.mid" "$1" "$8,0" "${AppRegNameMail} URL" "delete" ""
|
${AddHandlerValues} "$0\Thunderbird.Url.mid" "$1" "$8,0" "${AppRegNameMail} URL" "delete" ""
|
||||||
${AddHandlerValues} "$0\mid" "$1" "$8,0" "${AppRegNameMail} URL" "true" ""
|
${AddHandlerValues} "$0\mid" "$1" "$8,0" "${AppRegNameMail} URL" "true" ""
|
||||||
; An empty string is used for the 5th param because ThunderbirdICS is not a
|
|
||||||
; protocol handler
|
|
||||||
${AddHandlerValues} "$0\ThunderbirdICS" "$1" "$8,0" \
|
|
||||||
"${AppRegNameCalendar} Document" "" ""
|
|
||||||
|
|
||||||
; Associate the file handlers with ThunderbirdEML
|
; Associate the file handlers with ThunderbirdEML
|
||||||
ReadRegStr $6 SHCTX ".eml" ""
|
ReadRegStr $6 SHCTX ".eml" ""
|
||||||
${If} "$6" != "ThunderbirdEML"
|
${If} "$6" != "ThunderbirdEML"
|
||||||
WriteRegStr SHCTX "$0\.eml" "" "ThunderbirdEML"
|
WriteRegStr SHCTX "$0\.eml" "" "ThunderbirdEML"
|
||||||
${EndIf}
|
${EndIf}
|
||||||
;; Associate the file handlers with ThunderbirdICS
|
|
||||||
ReadRegStr $6 SHCTX ".ics" ""
|
|
||||||
${If} "$6" != "ThunderbirdICS"
|
|
||||||
WriteRegStr SHCTX "$0\.ics" "" "ThunderbirdICS"
|
|
||||||
${EndIf}
|
|
||||||
!macroend
|
!macroend
|
||||||
!define SetHandlersMail "!insertmacro SetHandlersMail"
|
!define SetHandlersMail "!insertmacro SetHandlersMail"
|
||||||
|
|
||||||
|
@ -360,6 +364,28 @@
|
||||||
!macroend
|
!macroend
|
||||||
!define SetHandlersNews "!insertmacro SetHandlersNews"
|
!define SetHandlersNews "!insertmacro SetHandlersNews"
|
||||||
|
|
||||||
|
!macro SetHandlersCalendar
|
||||||
|
${GetLongPath} "$INSTDIR\${FileMainEXE}" $8
|
||||||
|
|
||||||
|
StrCpy $0 "SOFTWARE\Classes"
|
||||||
|
StrCpy $1 "$\"$8$\" $\"%1$\""
|
||||||
|
|
||||||
|
${AddHandlerValues} "$0\Thunderbird.Url.webcal" "$1" "$8,0" "${AppRegNameCalendar} URL" "delete" ""
|
||||||
|
${AddHandlerValues} "$0\webcal" "$1" "$8,0" "${AppRegNameCalendar} URL" "true" ""
|
||||||
|
${AddHandlerValues} "$0\webcals" "$1" "$8,0" "${AppRegNameCalendar} URL" "true" ""
|
||||||
|
; An empty string is used for the 5th param because ThunderbirdICS is not a
|
||||||
|
; protocol handler
|
||||||
|
${AddHandlerValues} "$0\ThunderbirdICS" "$1" "$8,0" \
|
||||||
|
"${AppRegNameCalendar} Document" "" ""
|
||||||
|
|
||||||
|
;; Associate the file handlers with ThunderbirdICS
|
||||||
|
ReadRegStr $6 SHCTX ".ics" ""
|
||||||
|
${If} "$6" != "ThunderbirdICS"
|
||||||
|
WriteRegStr SHCTX "$0\.ics" "" "ThunderbirdICS"
|
||||||
|
${EndIf}
|
||||||
|
!macroend
|
||||||
|
!define SetHandlersCalendar "!insertmacro SetHandlersCalendar"
|
||||||
|
|
||||||
; XXXrstrong - there are several values that will be overwritten by and
|
; XXXrstrong - there are several values that will be overwritten by and
|
||||||
; overwrite other installs of the same application.
|
; overwrite other installs of the same application.
|
||||||
!macro SetClientsMail RegKey
|
!macro SetClientsMail RegKey
|
||||||
|
@ -443,7 +469,6 @@
|
||||||
WriteRegStr ${RegKey} "$0\Capabilities" "ApplicationName" "${AppRegNameMail}"
|
WriteRegStr ${RegKey} "$0\Capabilities" "ApplicationName" "${AppRegNameMail}"
|
||||||
WriteRegStr ${RegKey} "$0\Capabilities\FileAssociations" ".eml" "ThunderbirdEML"
|
WriteRegStr ${RegKey} "$0\Capabilities\FileAssociations" ".eml" "ThunderbirdEML"
|
||||||
WriteRegStr ${RegKey} "$0\Capabilities\FileAssociations" ".wdseml" "ThunderbirdEML"
|
WriteRegStr ${RegKey} "$0\Capabilities\FileAssociations" ".wdseml" "ThunderbirdEML"
|
||||||
WriteRegStr ${RegKey} "$0\Capabilities\FileAssociations" ".ics" "ThunderbirdICS"
|
|
||||||
WriteRegStr ${RegKey} "$0\Capabilities\StartMenu" "Mail" "${ClientsRegName}"
|
WriteRegStr ${RegKey} "$0\Capabilities\StartMenu" "Mail" "${ClientsRegName}"
|
||||||
WriteRegStr ${RegKey} "$0\Capabilities\URLAssociations" "mailto" "Thunderbird.Url.mailto"
|
WriteRegStr ${RegKey} "$0\Capabilities\URLAssociations" "mailto" "Thunderbird.Url.mailto"
|
||||||
WriteRegStr ${RegKey} "$0\Capabilities\URLAssociations" "mid" "Thunderbird.Url.mid"
|
WriteRegStr ${RegKey} "$0\Capabilities\URLAssociations" "mid" "Thunderbird.Url.mid"
|
||||||
|
@ -588,6 +613,43 @@
|
||||||
!macroend
|
!macroend
|
||||||
!define SetClientsNews "!insertmacro SetClientsNews"
|
!define SetClientsNews "!insertmacro SetClientsNews"
|
||||||
|
|
||||||
|
!macro SetClientsCalendar RegKey
|
||||||
|
${GetLongPath} "$INSTDIR\${FileMainEXE}" $8
|
||||||
|
${GetLongPath} "$INSTDIR\uninstall\helper.exe" $7
|
||||||
|
${GetLongPath} "$INSTDIR\mozMapi32_InUse.dll" $6
|
||||||
|
|
||||||
|
StrCpy $0 "Software\Clients\Calendar\${ClientsRegName}"
|
||||||
|
|
||||||
|
WriteRegStr ${RegKey} "$0" "" "${ClientsRegName}"
|
||||||
|
WriteRegStr ${RegKey} "$0\DefaultIcon" "" "$8,0"
|
||||||
|
WriteRegStr ${RegKey} "$0" "DLLPath" "$6"
|
||||||
|
|
||||||
|
WriteRegStr ${RegKey} "$0\shell\open\command" "" "$\"$8$\""
|
||||||
|
|
||||||
|
WriteRegStr ${RegKey} "$0\shell\properties" "" "$(CONTEXT_OPTIONS)"
|
||||||
|
WriteRegStr ${RegKey} "$0\shell\properties\command" "" "$\"$8$\" -options"
|
||||||
|
|
||||||
|
WriteRegStr ${RegKey} "$0\shell\safemode" "" "$(CONTEXT_SAFE_MODE)"
|
||||||
|
WriteRegStr ${RegKey} "$0\shell\safemode\command" "" "$\"$8$\" -safe-mode"
|
||||||
|
|
||||||
|
; Protocols
|
||||||
|
StrCpy $1 "$\"$8$\" $\"%1$\""
|
||||||
|
${AddHandlerValues} "$0\Protocols\webcal" "$1" "$8,0" "${AppRegNameCalendar} URL" "true" ""
|
||||||
|
${AddHandlerValues} "$0\Protocols\webcals" "$1" "$8,0" "${AppRegNameCalendar} URL" "true" ""
|
||||||
|
|
||||||
|
; Capabilities registry keys
|
||||||
|
WriteRegStr ${RegKey} "$0\Capabilities" "ApplicationDescription" "$(REG_APP_DESC)"
|
||||||
|
WriteRegStr ${RegKey} "$0\Capabilities" "ApplicationIcon" "$8,0"
|
||||||
|
WriteRegStr ${RegKey} "$0\Capabilities" "ApplicationName" "${AppRegNameCalendar}"
|
||||||
|
WriteRegStr ${RegKey} "$0\Capabilities\FileAssociations" ".ics" "ThunderbirdICS"
|
||||||
|
WriteRegStr ${RegKey} "$0\Capabilities\URLAssociations" "webcal" "Thunderbird.Url.webcal"
|
||||||
|
WriteRegStr ${RegKey} "$0\Capabilities\URLAssociations" "webcals" "Thunderbird.Url.webcal"
|
||||||
|
|
||||||
|
; Registered Application
|
||||||
|
WriteRegStr ${RegKey} "Software\RegisteredApplications" "${AppRegNameCalendar}" "$0\Capabilities"
|
||||||
|
!macroend
|
||||||
|
!define SetClientsCalendar "!insertmacro SetClientsCalendar"
|
||||||
|
|
||||||
; Add Software\Mozilla\ registry entries (uses SHCTX).
|
; Add Software\Mozilla\ registry entries (uses SHCTX).
|
||||||
!macro SetAppKeys
|
!macro SetAppKeys
|
||||||
${GetLongPath} "$INSTDIR" $8
|
${GetLongPath} "$INSTDIR" $8
|
||||||
|
@ -734,6 +796,22 @@
|
||||||
${AddHandlerValues} "SOFTWARE\Classes\nntp" "$2" "$8,0" "" "" ""
|
${AddHandlerValues} "SOFTWARE\Classes\nntp" "$2" "$8,0" "" "" ""
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
||||||
|
${IsHandlerForInstallDir} "Thunderbird.Url.webcal" $R9
|
||||||
|
${If} "$R9" == "true"
|
||||||
|
${AddHandlerValues} "SOFTWARE\Classes\Thunderbird.Url.webcal" "$3" "$8,0" \
|
||||||
|
"${AppRegNameCalendar} URL" "delete" ""
|
||||||
|
${EndIf}
|
||||||
|
|
||||||
|
${IsHandlerForInstallDir} "webcal" $R9
|
||||||
|
${If} "$R9" == "true"
|
||||||
|
${AddHandlerValues} "SOFTWARE\Classes\webcal" "$3" "$8,0" "" "" ""
|
||||||
|
${EndIf}
|
||||||
|
|
||||||
|
${IsHandlerForInstallDir} "webcals" $R9
|
||||||
|
${If} "$R9" == "true"
|
||||||
|
${AddHandlerValues} "SOFTWARE\Classes\webcals" "$3" "$8,0" "" "" ""
|
||||||
|
${EndIf}
|
||||||
|
|
||||||
${IsHandlerForInstallDir} "ThunderbirdICS" $R9
|
${IsHandlerForInstallDir} "ThunderbirdICS" $R9
|
||||||
${If} "$R9" == "true"
|
${If} "$R9" == "true"
|
||||||
${AddHandlerValues} "SOFTWARE\Classes\ThunderbirdICS" "$3" "$8,0" \
|
${AddHandlerValues} "SOFTWARE\Classes\ThunderbirdICS" "$3" "$8,0" \
|
||||||
|
@ -1244,6 +1322,32 @@ Function SetAsDefaultAppUser
|
||||||
${EndIf}
|
${EndIf}
|
||||||
${EndUnless}
|
${EndUnless}
|
||||||
|
|
||||||
|
ClearErrors
|
||||||
|
${GetOptions} "$R0" "Calendar" $R1
|
||||||
|
${Unless} ${Errors}
|
||||||
|
; Check if this install location registered as the Calendar client
|
||||||
|
ClearErrors
|
||||||
|
ReadRegStr $0 HKLM "Software\Clients\Calendar\${ClientsRegName}\DefaultIcon" ""
|
||||||
|
${GetPathFromString} "$0" $0
|
||||||
|
${GetParent} "$0" $0
|
||||||
|
${If} ${FileExists} "$0"
|
||||||
|
${GetLongPath} "$0" $0
|
||||||
|
${If} "$0" == "$INSTDIR"
|
||||||
|
; Check if this is running in an elevated process
|
||||||
|
ClearErrors
|
||||||
|
${GetParameters} $0
|
||||||
|
${GetOptions} "$0" "/UAC:" $0
|
||||||
|
${If} ${Errors} ; Not elevated
|
||||||
|
Call SetAsDefaultCalendarAppUserHKCU
|
||||||
|
${Else} ; Elevated - execute the function in the unelevated process
|
||||||
|
GetFunctionAddress $0 SetAsDefaultCalendarAppUserHKCU
|
||||||
|
UAC::ExecCodeSegment $0
|
||||||
|
${EndIf}
|
||||||
|
Return ; Nothing more needs to be done
|
||||||
|
${EndIf}
|
||||||
|
${EndIf}
|
||||||
|
${EndUnless}
|
||||||
|
|
||||||
; The code after ElevateUAC won't be executed when the user:
|
; The code after ElevateUAC won't be executed when the user:
|
||||||
; a) is a member of the administrators group (e.g. elevation is required)
|
; a) is a member of the administrators group (e.g. elevation is required)
|
||||||
; b) is not a member of the administrators group and chooses to elevate
|
; b) is not a member of the administrators group and chooses to elevate
|
||||||
|
@ -1252,6 +1356,7 @@ Function SetAsDefaultAppUser
|
||||||
SetShellVarContext all ; Set SHCTX to all users (e.g. HKLM)
|
SetShellVarContext all ; Set SHCTX to all users (e.g. HKLM)
|
||||||
${SetClientsMail} "HKLM"
|
${SetClientsMail} "HKLM"
|
||||||
${SetClientsNews} "HKLM"
|
${SetClientsNews} "HKLM"
|
||||||
|
${SetClientsCalendar} "HKLM"
|
||||||
|
|
||||||
${RemoveDeprecatedKeys}
|
${RemoveDeprecatedKeys}
|
||||||
${MigrateTaskBarShortcut}
|
${MigrateTaskBarShortcut}
|
||||||
|
@ -1364,4 +1469,40 @@ Function SetAsDefaultNewsAppUserHKCU
|
||||||
${EndUnless}
|
${EndUnless}
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|
||||||
|
; Sets this installation as the default calendar client by setting the registry keys
|
||||||
|
; under HKEY_CURRENT_USER via registry calls and using the AppAssocReg NSIS
|
||||||
|
; plugin. This is a function instead of a macro so it is
|
||||||
|
; easily called from an elevated instance of the binary. Since this can be
|
||||||
|
; called by an elevated instance logging is not performed in this function.
|
||||||
|
Function SetAsDefaultCalendarAppUserHKCU
|
||||||
|
; Only set as the user's Calendar client if the StartMenuInternet
|
||||||
|
; registry keys are for this install.
|
||||||
|
ClearErrors
|
||||||
|
ReadRegStr $0 HKLM "Software\Clients\Calendar\${ClientsRegName}\DefaultIcon" ""
|
||||||
|
${Unless} ${Errors}
|
||||||
|
${GetPathFromString} "$0" $0
|
||||||
|
${GetParent} "$0" $0
|
||||||
|
${If} ${FileExists} "$0"
|
||||||
|
${GetLongPath} "$0" $0
|
||||||
|
${If} "$0" == "$INSTDIR"
|
||||||
|
WriteRegStr HKCU "Software\Clients\Calendar" "" "${ClientsRegName}"
|
||||||
|
${EndIf}
|
||||||
|
${EndIf}
|
||||||
|
${EndUnless}
|
||||||
|
|
||||||
|
SetShellVarContext current ; Set SHCTX to the current user (e.g. HKCU)
|
||||||
|
|
||||||
|
${If} ${AtLeastWin8}
|
||||||
|
${SetHandlersCalendar}
|
||||||
|
${EndIf}
|
||||||
|
|
||||||
|
ClearErrors
|
||||||
|
ReadRegStr $0 HKLM "Software\RegisteredApplications" "${AppRegNameCalendar}"
|
||||||
|
; Only register as the handler if the app registry name exists
|
||||||
|
; under the RegisteredApplications registry key.
|
||||||
|
${Unless} ${Errors}
|
||||||
|
AppAssocReg::SetAppAsDefaultAll "${AppRegNameCalendar}"
|
||||||
|
${EndUnless}
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
!endif
|
!endif
|
||||||
|
|
|
@ -301,6 +301,7 @@ Section "Uninstall"
|
||||||
${un.RegCleanAppHandler} "Thunderbird.Url.mailto"
|
${un.RegCleanAppHandler} "Thunderbird.Url.mailto"
|
||||||
${un.RegCleanAppHandler} "Thunderbird.Url.mid"
|
${un.RegCleanAppHandler} "Thunderbird.Url.mid"
|
||||||
${un.RegCleanAppHandler} "Thunderbird.Url.news"
|
${un.RegCleanAppHandler} "Thunderbird.Url.news"
|
||||||
|
${un.RegCleanAppHandler} "Thunderbird.Url.webcal"
|
||||||
${un.RegCleanAppHandler} "ThunderbirdEML"
|
${un.RegCleanAppHandler} "ThunderbirdEML"
|
||||||
${un.RegCleanAppHandler} "ThunderbirdICS"
|
${un.RegCleanAppHandler} "ThunderbirdICS"
|
||||||
${un.RegCleanProtocolHandler} "mailto"
|
${un.RegCleanProtocolHandler} "mailto"
|
||||||
|
@ -308,6 +309,8 @@ Section "Uninstall"
|
||||||
${un.RegCleanProtocolHandler} "news"
|
${un.RegCleanProtocolHandler} "news"
|
||||||
${un.RegCleanProtocolHandler} "nntp"
|
${un.RegCleanProtocolHandler} "nntp"
|
||||||
${un.RegCleanProtocolHandler} "snews"
|
${un.RegCleanProtocolHandler} "snews"
|
||||||
|
${un.RegCleanProtocolHandler} "webcal"
|
||||||
|
${un.RegCleanProtocolHandler} "webcals"
|
||||||
|
|
||||||
ClearErrors
|
ClearErrors
|
||||||
ReadRegStr $R9 HKCR "ThunderbirdEML" ""
|
ReadRegStr $R9 HKCR "ThunderbirdEML" ""
|
||||||
|
@ -345,8 +348,8 @@ Section "Uninstall"
|
||||||
${un.RemoveQuotesFromPath} "$R1" $R1
|
${un.RemoveQuotesFromPath} "$R1" $R1
|
||||||
${un.GetParent} "$R1" $R1
|
${un.GetParent} "$R1" $R1
|
||||||
|
|
||||||
; Only remove the Clients\Mail and Clients\News key if it refers to this
|
; Only remove the Clients\Mail & Clients\News & Clients\Calendar key if it
|
||||||
; install location. The Clients\Mail & Clients\News keys are independent
|
; refers to this install location. The Clients\* keys are independent
|
||||||
; of the default app for the OS settings. The XPInstall base un-installer
|
; of the default app for the OS settings. The XPInstall base un-installer
|
||||||
; always removes these keys if it is uninstalling the default app and it
|
; always removes these keys if it is uninstalling the default app and it
|
||||||
; will always replace the keys when installing even if there is another
|
; will always replace the keys when installing even if there is another
|
||||||
|
@ -356,8 +359,10 @@ Section "Uninstall"
|
||||||
${If} "$INSTDIR" == "$R1"
|
${If} "$INSTDIR" == "$R1"
|
||||||
DeleteRegKey HKLM "Software\Clients\Mail\${ClientsRegName}"
|
DeleteRegKey HKLM "Software\Clients\Mail\${ClientsRegName}"
|
||||||
DeleteRegKey HKLM "Software\Clients\News\${ClientsRegName}"
|
DeleteRegKey HKLM "Software\Clients\News\${ClientsRegName}"
|
||||||
|
DeleteRegKey HKLM "Software\Clients\Calendar\${ClientsRegName}"
|
||||||
DeleteRegValue HKLM "Software\RegisteredApplications" "${AppRegNameMail}"
|
DeleteRegValue HKLM "Software\RegisteredApplications" "${AppRegNameMail}"
|
||||||
DeleteRegValue HKLM "Software\RegisteredApplications" "${AppRegNameNews}"
|
DeleteRegValue HKLM "Software\RegisteredApplications" "${AppRegNameNews}"
|
||||||
|
DeleteRegValue HKLM "Software\RegisteredApplications" "${AppRegNameCalendar}"
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
||||||
StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\App Paths\${FileMainEXE}"
|
StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\App Paths\${FileMainEXE}"
|
||||||
|
|
Загрузка…
Ссылка в новой задаче