aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Data.WindowsInstaller/WindowsInstallerStandard.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Data.WindowsInstaller/WindowsInstallerStandard.cs')
-rw-r--r--src/WixToolset.Data.WindowsInstaller/WindowsInstallerStandard.cs442
1 files changed, 0 insertions, 442 deletions
diff --git a/src/WixToolset.Data.WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data.WindowsInstaller/WindowsInstallerStandard.cs
deleted file mode 100644
index ee4a5103..00000000
--- a/src/WixToolset.Data.WindowsInstaller/WindowsInstallerStandard.cs
+++ /dev/null
@@ -1,442 +0,0 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace WixToolset.Data
4{
5 using System.Collections.Generic;
6 using System.Reflection;
7 using System.Xml;
8 using WixToolset.Data.Rows;
9
10 /// <summary>
11 /// Represents the Windows Installer standard objects.
12 /// </summary>
13 public static class WindowsInstallerStandard
14 {
15 private static readonly object lockObject = new object();
16
17 private static TableDefinitionCollection tableDefinitions;
18 private static WixActionRowCollection standardActions;
19
20 private static HashSet<string> standardActionNames;
21 private static HashSet<string> standardDirectories;
22 private static HashSet<string> standardProperties;
23
24 /// <summary>
25 /// Gets the table definitions stored in this assembly.
26 /// </summary>
27 /// <returns>Table definition collection for tables stored in this assembly.</returns>
28 public static TableDefinitionCollection GetTableDefinitions()
29 {
30 lock (lockObject)
31 {
32 if (null == WindowsInstallerStandard.tableDefinitions)
33 {
34 using (XmlReader reader = XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream("WixToolset.Data.WindowsInstaller.Data.tables.xml")))
35 {
36 tableDefinitions = TableDefinitionCollection.Load(reader);
37 }
38 }
39 }
40
41 return WindowsInstallerStandard.tableDefinitions;
42 }
43
44 /// <summary>
45 /// Gets the standard actions stored in this assembly.
46 /// </summary>
47 /// <returns>Collection of standard actions in this assembly.</returns>
48 public static WixActionRowCollection GetStandardActions()
49 {
50 lock (lockObject)
51 {
52 if (null == standardActions)
53 {
54 using (XmlReader reader = XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream("WixToolset.Data.WindowsInstaller.Data.actions.xml")))
55 {
56 standardActions = WixActionRowCollection.Load(reader);
57 }
58 }
59 }
60
61 return standardActions;
62 }
63
64 /// <summary>
65 /// Gets (and loads if not yet loaded) the list of standard MSI directories.
66 /// </summary>
67 /// <value>The list of standard MSI directories.</value>
68 public static HashSet<string> GetStandardDirectories()
69 {
70 lock (lockObject)
71 {
72 if (null == standardDirectories)
73 {
74 LoadStandardDirectories();
75 }
76 }
77
78 return standardDirectories;
79 }
80
81 /// <summary>
82 /// Find out if an action is a standard action.
83 /// </summary>
84 /// <param name="actionName">Name of the action.</param>
85 /// <returns>true if the action is standard, false otherwise.</returns>
86 public static bool IsStandardAction(string actionName)
87 {
88 lock (lockObject)
89 {
90 if (null == standardActionNames)
91 {
92 standardActionNames = new HashSet<string>();
93 standardActionNames.Add("AllocateRegistrySpace");
94 standardActionNames.Add("AppSearch");
95 standardActionNames.Add("BindImage");
96 standardActionNames.Add("CCPSearch");
97 standardActionNames.Add("CostFinalize");
98 standardActionNames.Add("CostInitialize");
99 standardActionNames.Add("CreateFolders");
100 standardActionNames.Add("CreateShortcuts");
101 standardActionNames.Add("DeleteServices");
102 standardActionNames.Add("DisableRollback");
103 standardActionNames.Add("DuplicateFiles");
104 standardActionNames.Add("ExecuteAction");
105 standardActionNames.Add("FileCost");
106 standardActionNames.Add("FindRelatedProducts");
107 standardActionNames.Add("ForceReboot");
108 standardActionNames.Add("InstallAdminPackage");
109 standardActionNames.Add("InstallExecute");
110 standardActionNames.Add("InstallExecuteAgain");
111 standardActionNames.Add("InstallFiles");
112 standardActionNames.Add("InstallFinalize");
113 standardActionNames.Add("InstallInitialize");
114 standardActionNames.Add("InstallODBC");
115 standardActionNames.Add("InstallServices");
116 standardActionNames.Add("InstallSFPCatalogFile");
117 standardActionNames.Add("InstallValidate");
118 standardActionNames.Add("IsolateComponents");
119 standardActionNames.Add("LaunchConditions");
120 standardActionNames.Add("MigrateFeatureStates");
121 standardActionNames.Add("MoveFiles");
122 standardActionNames.Add("MsiConfigureServices");
123 standardActionNames.Add("MsiPublishAssemblies");
124 standardActionNames.Add("MsiUnpublishAssemblies");
125 standardActionNames.Add("PatchFiles");
126 standardActionNames.Add("ProcessComponents");
127 standardActionNames.Add("PublishComponents");
128 standardActionNames.Add("PublishFeatures");
129 standardActionNames.Add("PublishProduct");
130 standardActionNames.Add("RegisterClassInfo");
131 standardActionNames.Add("RegisterComPlus");
132 standardActionNames.Add("RegisterExtensionInfo");
133 standardActionNames.Add("RegisterFonts");
134 standardActionNames.Add("RegisterMIMEInfo");
135 standardActionNames.Add("RegisterProduct");
136 standardActionNames.Add("RegisterProgIdInfo");
137 standardActionNames.Add("RegisterTypeLibraries");
138 standardActionNames.Add("RegisterUser");
139 standardActionNames.Add("RemoveDuplicateFiles");
140 standardActionNames.Add("RemoveEnvironmentStrings");
141 standardActionNames.Add("RemoveExistingProducts");
142 standardActionNames.Add("RemoveFiles");
143 standardActionNames.Add("RemoveFolders");
144 standardActionNames.Add("RemoveIniValues");
145 standardActionNames.Add("RemoveODBC");
146 standardActionNames.Add("RemoveRegistryValues");
147 standardActionNames.Add("RemoveShortcuts");
148 standardActionNames.Add("ResolveSource");
149 standardActionNames.Add("RMCCPSearch");
150 standardActionNames.Add("ScheduleReboot");
151 standardActionNames.Add("SelfRegModules");
152 standardActionNames.Add("SelfUnregModules");
153 standardActionNames.Add("SetODBCFolders");
154 standardActionNames.Add("StartServices");
155 standardActionNames.Add("StopServices");
156 standardActionNames.Add("UnpublishComponents");
157 standardActionNames.Add("UnpublishFeatures");
158 standardActionNames.Add("UnregisterClassInfo");
159 standardActionNames.Add("UnregisterComPlus");
160 standardActionNames.Add("UnregisterExtensionInfo");
161 standardActionNames.Add("UnregisterFonts");
162 standardActionNames.Add("UnregisterMIMEInfo");
163 standardActionNames.Add("UnregisterProgIdInfo");
164 standardActionNames.Add("UnregisterTypeLibraries");
165 standardActionNames.Add("ValidateProductID");
166 standardActionNames.Add("WriteEnvironmentStrings");
167 standardActionNames.Add("WriteIniValues");
168 standardActionNames.Add("WriteRegistryValues");
169 }
170 }
171
172 return standardActionNames.Contains(actionName);
173 }
174
175 /// <summary>
176 /// Find out if a directory is a standard directory.
177 /// </summary>
178 /// <param name="directoryName">Name of the directory.</param>
179 /// <returns>true if the directory is standard, false otherwise.</returns>
180 public static bool IsStandardDirectory(string directoryName)
181 {
182 lock (lockObject)
183 {
184 if (null == standardDirectories)
185 {
186 LoadStandardDirectories();
187 }
188 }
189
190 return standardDirectories.Contains(directoryName);
191 }
192
193 /// <summary>
194 /// Find out if a property is a standard property.
195 /// References:
196 /// Title: Property Reference [Windows Installer]:
197 /// URL: http://msdn.microsoft.com/library/en-us/msi/setup/property_reference.asp
198 /// </summary>
199 /// <param name="propertyName">Name of the property.</param>
200 /// <returns>true if a property is standard, false otherwise.</returns>
201 public static bool IsStandardProperty(string propertyName)
202 {
203 lock (lockObject)
204 {
205 if (null == standardProperties)
206 {
207 standardProperties = new HashSet<string>();
208 standardProperties.Add("~"); // REG_MULTI_SZ/NULL marker
209 standardProperties.Add("ACTION");
210 standardProperties.Add("ADDDEFAULT");
211 standardProperties.Add("ADDLOCAL");
212 standardProperties.Add("ADDDSOURCE");
213 standardProperties.Add("AdminProperties");
214 standardProperties.Add("AdminUser");
215 standardProperties.Add("ADVERTISE");
216 standardProperties.Add("AFTERREBOOT");
217 standardProperties.Add("AllowProductCodeMismatches");
218 standardProperties.Add("AllowProductVersionMajorMismatches");
219 standardProperties.Add("ALLUSERS");
220 standardProperties.Add("Alpha");
221 standardProperties.Add("ApiPatchingSymbolFlags");
222 standardProperties.Add("ARPAUTHORIZEDCDFPREFIX");
223 standardProperties.Add("ARPCOMMENTS");
224 standardProperties.Add("ARPCONTACT");
225 standardProperties.Add("ARPHELPLINK");
226 standardProperties.Add("ARPHELPTELEPHONE");
227 standardProperties.Add("ARPINSTALLLOCATION");
228 standardProperties.Add("ARPNOMODIFY");
229 standardProperties.Add("ARPNOREMOVE");
230 standardProperties.Add("ARPNOREPAIR");
231 standardProperties.Add("ARPPRODUCTIONICON");
232 standardProperties.Add("ARPREADME");
233 standardProperties.Add("ARPSIZE");
234 standardProperties.Add("ARPSYSTEMCOMPONENT");
235 standardProperties.Add("ARPULRINFOABOUT");
236 standardProperties.Add("ARPURLUPDATEINFO");
237 standardProperties.Add("AVAILABLEFREEREG");
238 standardProperties.Add("BorderSize");
239 standardProperties.Add("BorderTop");
240 standardProperties.Add("CaptionHeight");
241 standardProperties.Add("CCP_DRIVE");
242 standardProperties.Add("ColorBits");
243 standardProperties.Add("COMPADDLOCAL");
244 standardProperties.Add("COMPADDSOURCE");
245 standardProperties.Add("COMPANYNAME");
246 standardProperties.Add("ComputerName");
247 standardProperties.Add("CostingComplete");
248 standardProperties.Add("Date");
249 standardProperties.Add("DefaultUIFont");
250 standardProperties.Add("DISABLEADVTSHORTCUTS");
251 standardProperties.Add("DISABLEMEDIA");
252 standardProperties.Add("DISABLEROLLBACK");
253 standardProperties.Add("DiskPrompt");
254 standardProperties.Add("DontRemoveTempFolderWhenFinished");
255 standardProperties.Add("EnableUserControl");
256 standardProperties.Add("EXECUTEACTION");
257 standardProperties.Add("EXECUTEMODE");
258 standardProperties.Add("FASTOEM");
259 standardProperties.Add("FILEADDDEFAULT");
260 standardProperties.Add("FILEADDLOCAL");
261 standardProperties.Add("FILEADDSOURCE");
262 standardProperties.Add("IncludeWholeFilesOnly");
263 standardProperties.Add("Installed");
264 standardProperties.Add("INSTALLLEVEL");
265 standardProperties.Add("Intel");
266 standardProperties.Add("Intel64");
267 standardProperties.Add("IsAdminPackage");
268 standardProperties.Add("LeftUnit");
269 standardProperties.Add("LIMITUI");
270 standardProperties.Add("ListOfPatchGUIDsToReplace");
271 standardProperties.Add("ListOfTargetProductCode");
272 standardProperties.Add("LOGACTION");
273 standardProperties.Add("LogonUser");
274 standardProperties.Add("Manufacturer");
275 standardProperties.Add("MEDIAPACKAGEPATH");
276 standardProperties.Add("MediaSourceDir");
277 standardProperties.Add("MinimumRequiredMsiVersion");
278 standardProperties.Add("MsiAMD64");
279 standardProperties.Add("MSIAPRSETTINGSIDENTIFIER");
280 standardProperties.Add("MSICHECKCRCS");
281 standardProperties.Add("MSIDISABLERMRESTART");
282 standardProperties.Add("MSIENFORCEUPGRADECOMPONENTRULES");
283 standardProperties.Add("MSIFASTINSTALL");
284 standardProperties.Add("MsiFileToUseToCreatePatchTables");
285 standardProperties.Add("MsiHiddenProperties");
286 standardProperties.Add("MSIINSTALLPERUSER");
287 standardProperties.Add("MSIINSTANCEGUID");
288 standardProperties.Add("MsiLogFileLocation");
289 standardProperties.Add("MsiLogging");
290 standardProperties.Add("MsiNetAssemblySupport");
291 standardProperties.Add("MSINEWINSTANCE");
292 standardProperties.Add("MSINODISABLEMEDIA");
293 standardProperties.Add("MsiNTProductType");
294 standardProperties.Add("MsiNTSuiteBackOffice");
295 standardProperties.Add("MsiNTSuiteDataCenter");
296 standardProperties.Add("MsiNTSuiteEnterprise");
297 standardProperties.Add("MsiNTSuiteSmallBusiness");
298 standardProperties.Add("MsiNTSuiteSmallBusinessRestricted");
299 standardProperties.Add("MsiNTSuiteWebServer");
300 standardProperties.Add("MsiNTSuitePersonal");
301 standardProperties.Add("MsiPatchRemovalList");
302 standardProperties.Add("MSIPATCHREMOVE");
303 standardProperties.Add("MSIRESTARTMANAGERCONTROL");
304 standardProperties.Add("MsiRestartManagerSessionKey");
305 standardProperties.Add("MSIRMSHUTDOWN");
306 standardProperties.Add("MsiRunningElevated");
307 standardProperties.Add("MsiUIHideCancel");
308 standardProperties.Add("MsiUIProgressOnly");
309 standardProperties.Add("MsiUISourceResOnly");
310 standardProperties.Add("MsiSystemRebootPending");
311 standardProperties.Add("MsiWin32AssemblySupport");
312 standardProperties.Add("NOCOMPANYNAME");
313 standardProperties.Add("NOUSERNAME");
314 standardProperties.Add("OLEAdvtSupport");
315 standardProperties.Add("OptimizePatchSizeForLargeFiles");
316 standardProperties.Add("OriginalDatabase");
317 standardProperties.Add("OutOfDiskSpace");
318 standardProperties.Add("OutOfNoRbDiskSpace");
319 standardProperties.Add("ParentOriginalDatabase");
320 standardProperties.Add("ParentProductCode");
321 standardProperties.Add("PATCH");
322 standardProperties.Add("PATCH_CACHE_DIR");
323 standardProperties.Add("PATCH_CACHE_ENABLED");
324 standardProperties.Add("PatchGUID");
325 standardProperties.Add("PATCHNEWPACKAGECODE");
326 standardProperties.Add("PATCHNEWSUMMARYCOMMENTS");
327 standardProperties.Add("PATCHNEWSUMMARYSUBJECT");
328 standardProperties.Add("PatchOutputPath");
329 standardProperties.Add("PatchSourceList");
330 standardProperties.Add("PhysicalMemory");
331 standardProperties.Add("PIDKEY");
332 standardProperties.Add("PIDTemplate");
333 standardProperties.Add("Preselected");
334 standardProperties.Add("PRIMARYFOLDER");
335 standardProperties.Add("PrimaryVolumePath");
336 standardProperties.Add("PrimaryVolumeSpaceAvailable");
337 standardProperties.Add("PrimaryVolumeSpaceRemaining");
338 standardProperties.Add("PrimaryVolumeSpaceRequired");
339 standardProperties.Add("Privileged");
340 standardProperties.Add("ProductCode");
341 standardProperties.Add("ProductID");
342 standardProperties.Add("ProductLanguage");
343 standardProperties.Add("ProductName");
344 standardProperties.Add("ProductState");
345 standardProperties.Add("ProductVersion");
346 standardProperties.Add("PROMPTROLLBACKCOST");
347 standardProperties.Add("REBOOT");
348 standardProperties.Add("REBOOTPROMPT");
349 standardProperties.Add("RedirectedDllSupport");
350 standardProperties.Add("REINSTALL");
351 standardProperties.Add("REINSTALLMODE");
352 standardProperties.Add("RemoveAdminTS");
353 standardProperties.Add("REMOVE");
354 standardProperties.Add("ReplacedInUseFiles");
355 standardProperties.Add("RestrictedUserControl");
356 standardProperties.Add("RESUME");
357 standardProperties.Add("RollbackDisabled");
358 standardProperties.Add("ROOTDRIVE");
359 standardProperties.Add("ScreenX");
360 standardProperties.Add("ScreenY");
361 standardProperties.Add("SecureCustomProperties");
362 standardProperties.Add("ServicePackLevel");
363 standardProperties.Add("ServicePackLevelMinor");
364 standardProperties.Add("SEQUENCE");
365 standardProperties.Add("SharedWindows");
366 standardProperties.Add("ShellAdvtSupport");
367 standardProperties.Add("SHORTFILENAMES");
368 standardProperties.Add("SourceDir");
369 standardProperties.Add("SOURCELIST");
370 standardProperties.Add("SystemLanguageID");
371 standardProperties.Add("TARGETDIR");
372 standardProperties.Add("TerminalServer");
373 standardProperties.Add("TextHeight");
374 standardProperties.Add("Time");
375 standardProperties.Add("TRANSFORMS");
376 standardProperties.Add("TRANSFORMSATSOURCE");
377 standardProperties.Add("TRANSFORMSSECURE");
378 standardProperties.Add("TTCSupport");
379 standardProperties.Add("UILevel");
380 standardProperties.Add("UpdateStarted");
381 standardProperties.Add("UpgradeCode");
382 standardProperties.Add("UPGRADINGPRODUCTCODE");
383 standardProperties.Add("UserLanguageID");
384 standardProperties.Add("USERNAME");
385 standardProperties.Add("UserSID");
386 standardProperties.Add("Version9X");
387 standardProperties.Add("VersionDatabase");
388 standardProperties.Add("VersionMsi");
389 standardProperties.Add("VersionNT");
390 standardProperties.Add("VersionNT64");
391 standardProperties.Add("VirtualMemory");
392 standardProperties.Add("WindowsBuild");
393 standardProperties.Add("WindowsVolume");
394 }
395 }
396
397 return standardProperties.Contains(propertyName);
398 }
399
400 /// <summary>
401 /// Sets up a hashtable with the set of standard MSI directories
402 /// </summary>
403 private static void LoadStandardDirectories()
404 {
405 lock (lockObject)
406 {
407 if (null == standardDirectories)
408 {
409 standardDirectories = new HashSet<string>();
410 standardDirectories.Add("TARGETDIR");
411 standardDirectories.Add("AdminToolsFolder");
412 standardDirectories.Add("AppDataFolder");
413 standardDirectories.Add("CommonAppDataFolder");
414 standardDirectories.Add("CommonFilesFolder");
415 standardDirectories.Add("DesktopFolder");
416 standardDirectories.Add("FavoritesFolder");
417 standardDirectories.Add("FontsFolder");
418 standardDirectories.Add("LocalAppDataFolder");
419 standardDirectories.Add("MyPicturesFolder");
420 standardDirectories.Add("PersonalFolder");
421 standardDirectories.Add("ProgramFilesFolder");
422 standardDirectories.Add("ProgramMenuFolder");
423 standardDirectories.Add("SendToFolder");
424 standardDirectories.Add("StartMenuFolder");
425 standardDirectories.Add("StartupFolder");
426 standardDirectories.Add("System16Folder");
427 standardDirectories.Add("SystemFolder");
428 standardDirectories.Add("TempFolder");
429 standardDirectories.Add("TemplateFolder");
430 standardDirectories.Add("WindowsFolder");
431 standardDirectories.Add("CommonFiles64Folder");
432 standardDirectories.Add("ProgramFiles64Folder");
433 standardDirectories.Add("System64Folder");
434 standardDirectories.Add("NetHoodFolder");
435 standardDirectories.Add("PrintHoodFolder");
436 standardDirectories.Add("RecentFolder");
437 standardDirectories.Add("WindowsVolume");
438 }
439 }
440 }
441 }
442}