1/* 2 * This file is part of the LibreOffice project. 3 * 4 * This Source Code Form is subject to the terms of the Mozilla Public 5 * License, v. 2.0. If a copy of the MPL was not distributed with this 6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 * 8 * This file incorporates work covered by the following license notice: 9 * 10 * Licensed to the Apache Software Foundation (ASF) under one or more 11 * contributor license agreements. See the NOTICE file distributed 12 * with this work for additional information regarding copyright 13 * ownership. The ASF licenses this file to you under the Apache 14 * License, Version 2.0 (the "License"); you may not use this file 15 * except in compliance with the License. You may obtain a copy of 16 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 17 */ 18 19#include "macros.inc" 20 21WindowsCustomAction gid_Customaction_RenamePrgFolder 22 Name = "RenamePrgFolder"; 23 Typ = "1"; 24 Source = "shlxtmsi.dll"; 25 Target = "RenamePrgFolder"; 26 Inbinarytable = 1; 27 Assignment1 = ("InstallExecuteSequence", "OLDPRODUCTS And Not REMOVE=\"ALL\" And Not PATCH", "ValidateProductID"); 28End 29 30WindowsCustomAction gid_Customaction_RemovePrgFolder 31 Name = "RemovePrgFolder"; 32 Typ = "1"; 33 Source = "shlxtmsi.dll"; 34 Target = "RemovePrgFolder"; 35 Inbinarytable = 1; 36 Assignment1 = ("InstallExecuteSequence", "OLDPRODUCTS And Not REMOVE=\"ALL\" And Not PATCH", "end"); 37End 38 39WindowsCustomAction gid_Customaction_Regallmsdocdll 40 Name = "Regallmsdocdll"; 41 Typ = "65"; 42 Source = "reg4allmsdoc.dll"; 43 Target = "FindRegisteredExtensions"; 44 Inbinarytable = 1; 45 Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\" And Not PATCH And _IsSetupTypeMin<>\"Custom\"", "CostFinalize"); 46End 47 48WindowsCustomAction gid_Customaction_Restoreregallmsdocdll 49 Name = "Restoreregallmsdocdll"; 50 Typ = "65"; 51 Source = "reg4allmsdoc.dll"; 52 Target = "RestoreRegAllMSDoc"; 53 Inbinarytable = 1; 54 Assignment1 = ("InstallExecuteSequence", "REMOVE=\"ALL\" And Not PATCH", "end"); 55End 56 57WindowsCustomAction gid_Customaction_Regactivexdll1 58 Name = "Regactivexdll1"; 59 Typ = "65"; 60 Source = "regactivex.dll"; 61 Target = "InstallActiveXControl"; 62 Inbinarytable = 1; 63 Assignment1 = ("InstallExecuteSequence", "(\&FEATURETEMPLATE=3 Or (\!FEATURETEMPLATE=3 And \&FEATURETEMPLATE=-1)) And Not PATCH", "end"); 64End 65 66WindowsCustomAction gid_Customaction_Regactivexdll2 67 Name = "Regactivexdll2"; 68 Typ = "65"; 69 Source = "regactivex.dll"; 70 Target = "DeinstallActiveXControl"; 71 Inbinarytable = 1; 72 Assignment1 = ("InstallExecuteSequence", "\&FEATURETEMPLATE=2 And \!FEATURETEMPLATE=3 And Not PATCH", "RemoveExistingProducts"); 73End 74 75#ifdef HAVE_WINDOWS_SDK 76 77WindowsCustomAction gid_Customaction_sdqsmsidll 78 Name = "sdqsmsidll"; 79 Typ = "65"; 80 Source = "sdqsmsi.dll"; 81 Target = "ShutDownQuickstarter"; 82 Inbinarytable = 1; 83 Assignment1 = ("InstallExecuteSequence", "", "CCPSearch"); 84End 85 86WindowsCustomAction gid_Customaction_qslnkmsidll 87 Name = "qslnkmsidll"; 88 Typ = "65"; 89 Source = "qslnkmsi.dll"; 90 Target = "RemoveQuickstarterLink"; 91 Inbinarytable = 1; 92 Assignment1 = ("InstallExecuteSequence", "REMOVE=\"ALL\" And Not PATCH", "sdqsmsidll"); 93End 94 95#endif /* HAVE_WINDOWS_SDK */ 96 97WindowsCustomAction gid_Customaction_Instooofiltmsidll2 98 Name = "Instooofiltmsidll"; 99 Typ = "65"; 100 Source = "instooofiltmsi.dll"; 101 Target = "RestartIndexingService"; 102 Inbinarytable = 1; 103 Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\" And Not PATCH", "end"); 104End 105 106WindowsCustomAction gid_Customaction_Shellextensionsdll3 107 Name = "Shellextensionsdll3"; 108 Typ = "65"; 109 Source = "shlxtmsi.dll"; 110 Target = "InstallStartmenuFolderIcon"; 111 Inbinarytable = 1; 112 Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\" And Not PATCH", "end"); 113End 114 115WindowsCustomAction gid_Customaction_Shellextensionsdll4 116 Name = "Shellextensionsdll4"; 117 Typ = "65"; 118 Source = "shlxtmsi.dll"; 119 Target = "DeinstallStartmenuFolderIcon"; 120 Inbinarytable = 1; 121 Assignment1 = ("InstallExecuteSequence", "REMOVE=\"ALL\" And Not PATCH", "MigrateFeatureStates"); 122End 123 124WindowsCustomAction gid_Customaction_Shellextensionsdll5 125 Name = "Shellextensionsdll5"; 126 Typ = "321"; 127 Source = "shlxtmsi.dll"; 128 Target = "SetProductInstallMode"; 129 Inbinarytable = 1; 130 Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\" And Not PATCH", "FindRelatedProducts"); 131 Assignment2 = ("InstallUISequence", "Not REMOVE=\"ALL\" And Not PATCH", "FindRelatedProducts"); 132End 133 134WindowsCustomAction gid_Customaction_Check_Install_Directory 135 Name = "CheckInstallDirectory"; 136 Typ = "65"; 137 Source = "shlxtmsi.dll"; 138 Target = "CheckInstallDirectory"; 139 Inbinarytable = 1; 140 Assignment1 = ("InstallExecuteSequence", "Not Installed", "CheckVersions"); 141 Assignment2 = ("ControlEvent", "SetupType", "Next", "DoAction", "CheckInstallDirectory", "_IsSetupTypeMin = \"Typical\" And Not Installed", "2"); 142 Assignment3 = ("ControlEvent", "CustomSetup", "Next", "DoAction", "CheckInstallDirectory", "Not Installed", "2"); 143End 144 145WindowsCustomAction gid_Customaction_CheckPatchList 146 Name = "CheckPatchList"; 147 Typ = "65"; 148 Source = "shlxtmsi.dll"; 149 Target = "CheckPatchList"; 150 Inbinarytable = 1; 151 Assignment1 = ("InstallExecuteSequence", "PATCH", "Patch1NotInstalled"); 152End 153 154WindowsCustomAction gid_Customaction_MigrateInstallPath 155 Name = "MigrateInstallPath"; 156 Typ = "321"; 157 Source = "shlxtmsi.dll"; 158 Target = "MigrateInstallPath"; 159 Inbinarytable = 1; 160 Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\" And Not PATCH", "CostInitialize"); 161 Assignment2 = ("InstallUISequence", "Not REMOVE=\"ALL\" And Not PATCH", "CostInitialize"); 162End 163 164WindowsCustomAction gid_Customaction_CompleteInstallPath 165 Name = "CompleteInstallPath"; 166 Typ = "321"; 167 Source = "shlxtmsi.dll"; 168 Target = "CompleteInstallPath"; 169 Inbinarytable = 1; 170 Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\" And Not PATCH", "MigrateInstallPath"); 171 Assignment2 = ("InstallUISequence", "Not REMOVE=\"ALL\" And Not PATCH", "MigrateInstallPath"); 172End 173 174#ifdef HAVE_WINDOWS_SDK 175 176WindowsCustomAction gid_Customaction_CheckVersions 177 Name = "CheckVersions"; 178 Typ = "321"; 179 Source = "sn_tools.dll"; 180 Target = "CheckVersions"; 181 Inbinarytable = 1; 182 Assignment1 = ("InstallExecuteSequence", "NOT Installed", "NewProductFound"); 183 Assignment2 = ("InstallUISequence", "NOT Installed", "NewProductFound"); 184End 185 186WindowsCustomAction gid_Customaction_SelectLanguage 187 Name = "SelectLanguage"; 188 Typ = "321"; 189 Source = "sellangmsi.dll"; 190 Target = "SelectLanguage"; 191 Inbinarytable = 1; 192 Assignment1 = ("InstallExecuteSequence", "NOT Installed And (ADDLOCAL=\"\" Or NOT UI_LANGS=\"\")", "MigrateFeatureStates"); 193 Assignment2 = ("InstallUISequence", "NOT Installed And (ADDLOCAL=\"\" Or NOT UI_LANGS=\"\")", "MigrateFeatureStates"); 194End 195 196WindowsCustomAction gid_Customaction_SortTree 197 Name = "SortTree"; 198 Typ = "321"; 199 Source = "sellangmsi.dll"; 200 Target = "SortTree"; 201 Inbinarytable = 1; 202 Assignment1 = ("ControlEvent", "CustomSetup", "Tree", "DoAction", "SortTree", "1", "1"); 203End 204 205WindowsCustomAction gid_Customaction_LookForRegisteredExtensions 206 Name = "LookForRegisteredExtensions"; 207 Typ = "65"; 208 Source = "reg4allmsdoc.dll"; 209 Target = "LookForRegisteredExtensions"; 210 Inbinarytable = 1; 211 Assignment1 = ("ControlEvent", "CustomSetup", "Next", "DoAction", "LookForRegisteredExtensions", "1", "2"); 212End 213 214WindowsCustomAction gid_Customaction_RegisterSomeExtensions 215 Name = "RegisterSomeExtensions"; 216 Typ = "65"; 217 Source = "reg4allmsdoc.dll"; 218 Target = "RegisterSomeExtensions"; 219 Inbinarytable = 1; 220 Assignment1 = ("ControlEvent", "FileTypeDialog", "Next", "DoAction", "RegisterSomeExtensions", "1", "1"); 221End 222 223#endif /* HAVE_WINDOWS_SDK */ 224 225/* Deferred not-impersonated actions that will call regsvr32 to (un)register DLLs. 226 * Custom action type 1 (msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData) 227 * + 64 (msidbCustomActionTypeContinue) + 1024 (msidbCustomActionTypeInScript) 228 * + 2048 (msidbCustomActionTypeNoImpersonate). 229 * Since deferred actions don't have access to current DB, the actions depend on 230 * immediate-executed action prep_reg_unreg_dlls (see below) that precedes it, and 231 * sets this action's CustomActionData property. 232 */ 233 234WindowsCustomAction gid_Customaction_reg_dlls 235 Name = "reg_dlls"; 236 Typ = "3137"; 237 Source = "reg_dlls.dll"; 238 Target = "RegDLLs"; 239 Inbinarytable = 1; 240 Assignment1 = ("InstallExecuteSequence", "reg_dlls", "InstallFinalize"); 241End 242 243WindowsCustomAction gid_Customaction_unreg_dlls 244 Name = "unreg_dlls"; 245 Typ = "3137"; 246 Source = "reg_dlls.dll"; 247 Target = "UnregDLLs"; 248 Inbinarytable = 1; 249 Assignment1 = ("InstallExecuteSequence", "unreg_dlls", "UnpublishComponents"); 250End 251 252/* Immediately-executed action that adds registration command lines for spsupp_x*.dll 253 * to "[un]reg_dlls" properties. 254 * Custom action type 1 (msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData) 255 * + 64 (msidbCustomActionTypeContinue). 256 */ 257WindowsCustomAction gid_Customaction_prep_reg_dlls 258 Name = "prep_reg_unreg_dlls"; 259 Typ = "65"; 260 Source = "reg_dlls.dll"; 261 Target = "PrepRegUnregDLLs"; 262 Inbinarytable = 1; 263 Assignment1 = ("InstallExecuteSequence", "", "behind_CostFinalize"); 264End 265