main
cs 123 lines 4.17 KB
Raw
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
3 namespace WixToolset.Util
4 {
5 using System;
6 using WixToolset.Data;
7 using WixToolset.Data.Burn;
8
9 public enum UtilSymbolDefinitionType
10 {
11 EventManifest,
12 FileShare,
13 FileSharePermissions,
14 Group,
15 Perfmon,
16 PerfmonManifest,
17 PerformanceCategory,
18 SecureObjects,
19 ServiceConfig,
20 User,
21 UserGroup,
22 WixCloseApplication,
23 WixFormatFiles,
24 WixInternetShortcut,
25 WixRemoveFolderEx,
26 WixRemoveRegistryKeyEx,
27 WixRestartResource,
28 WixTouchFile,
29 WixWindowsFeatureSearch,
30 XmlConfig,
31 XmlFile,
32 }
33
34 public static partial class UtilSymbolDefinitions
35 {
36 public static IntermediateSymbolDefinition ByName(string name)
37 {
38 if (!Enum.TryParse(name, out UtilSymbolDefinitionType type))
39 {
40 return null;
41 }
42
43 return ByType(type);
44 }
45
46 public static IntermediateSymbolDefinition ByType(UtilSymbolDefinitionType type)
47 {
48 switch (type)
49 {
50 case UtilSymbolDefinitionType.EventManifest:
51 return UtilSymbolDefinitions.EventManifest;
52
53 case UtilSymbolDefinitionType.FileShare:
54 return UtilSymbolDefinitions.FileShare;
55
56 case UtilSymbolDefinitionType.FileSharePermissions:
57 return UtilSymbolDefinitions.FileSharePermissions;
58
59 case UtilSymbolDefinitionType.Group:
60 return UtilSymbolDefinitions.Group;
61
62 case UtilSymbolDefinitionType.Perfmon:
63 return UtilSymbolDefinitions.Perfmon;
64
65 case UtilSymbolDefinitionType.PerfmonManifest:
66 return UtilSymbolDefinitions.PerfmonManifest;
67
68 case UtilSymbolDefinitionType.PerformanceCategory:
69 return UtilSymbolDefinitions.PerformanceCategory;
70
71 case UtilSymbolDefinitionType.SecureObjects:
72 return UtilSymbolDefinitions.SecureObjects;
73
74 case UtilSymbolDefinitionType.ServiceConfig:
75 return UtilSymbolDefinitions.ServiceConfig;
76
77 case UtilSymbolDefinitionType.User:
78 return UtilSymbolDefinitions.User;
79
80 case UtilSymbolDefinitionType.UserGroup:
81 return UtilSymbolDefinitions.UserGroup;
82
83 case UtilSymbolDefinitionType.WixCloseApplication:
84 return UtilSymbolDefinitions.WixCloseApplication;
85
86 case UtilSymbolDefinitionType.WixFormatFiles:
87 return UtilSymbolDefinitions.WixFormatFiles;
88
89 case UtilSymbolDefinitionType.WixInternetShortcut:
90 return UtilSymbolDefinitions.WixInternetShortcut;
91
92 case UtilSymbolDefinitionType.WixRemoveFolderEx:
93 return UtilSymbolDefinitions.WixRemoveFolderEx;
94
95 case UtilSymbolDefinitionType.WixRemoveRegistryKeyEx:
96 return UtilSymbolDefinitions.WixRemoveRegistryKeyEx;
97
98 case UtilSymbolDefinitionType.WixRestartResource:
99 return UtilSymbolDefinitions.WixRestartResource;
100
101 case UtilSymbolDefinitionType.WixTouchFile:
102 return UtilSymbolDefinitions.WixTouchFile;
103
104 case UtilSymbolDefinitionType.WixWindowsFeatureSearch:
105 return UtilSymbolDefinitions.WixWindowsFeatureSearch;
106
107 case UtilSymbolDefinitionType.XmlConfig:
108 return UtilSymbolDefinitions.XmlConfig;
109
110 case UtilSymbolDefinitionType.XmlFile:
111 return UtilSymbolDefinitions.XmlFile;
112
113 default:
114 throw new ArgumentOutOfRangeException(nameof(type));
115 }
116 }
117
118 static UtilSymbolDefinitions()
119 {
120 WixWindowsFeatureSearch.AddTag(BurnConstants.BootstrapperExtensionSearchSymbolDefinitionTag);
121 }
122 }
123 }