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