diff options
| author | Rob Mensching <rob@firegiant.com> | 2019-05-08 13:35:21 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2019-05-08 13:44:59 -0700 |
| commit | ef6485ac4a03333701d343c1e3a52d25805c58f1 (patch) | |
| tree | 3093b1410e651a90c3776b42090bb4e62e98c514 /src/WixToolset.Data/WindowsInstaller | |
| parent | 6e7a3274a1710a734e5369d0a1703b9c9ac9345b (diff) | |
| download | wix-ef6485ac4a03333701d343c1e3a52d25805c58f1.tar.gz wix-ef6485ac4a03333701d343c1e3a52d25805c58f1.tar.bz2 wix-ef6485ac4a03333701d343c1e3a52d25805c58f1.zip | |
Add additional strongly typed tuples
Diffstat (limited to 'src/WixToolset.Data/WindowsInstaller')
4 files changed, 797 insertions, 35 deletions
diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs index 50ef5313..001703ee 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs | |||
| @@ -2,8 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | namespace WixToolset.Data.WindowsInstaller.Rows | 3 | namespace WixToolset.Data.WindowsInstaller.Rows |
| 4 | { | 4 | { |
| 5 | using WixToolset.Data.Msi; | ||
| 6 | |||
| 7 | /// <summary> | 5 | /// <summary> |
| 8 | /// Specialization of a row for the Component table. | 6 | /// Specialization of a row for the Component table. |
| 9 | /// </summary> | 7 | /// </summary> |
| @@ -57,16 +55,16 @@ namespace WixToolset.Data.WindowsInstaller.Rows | |||
| 57 | /// <value>Local only attribute of the component.</value> | 55 | /// <value>Local only attribute of the component.</value> |
| 58 | public bool IsLocalOnly | 56 | public bool IsLocalOnly |
| 59 | { | 57 | { |
| 60 | get { return MsiInterop.MsidbComponentAttributesLocalOnly == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesLocalOnly); } | 58 | get { return WindowsInstallerConstants.MsidbComponentAttributesLocalOnly == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesLocalOnly); } |
| 61 | set | 59 | set |
| 62 | { | 60 | { |
| 63 | if (value) | 61 | if (value) |
| 64 | { | 62 | { |
| 65 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesLocalOnly; | 63 | this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesLocalOnly; |
| 66 | } | 64 | } |
| 67 | else | 65 | else |
| 68 | { | 66 | { |
| 69 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesLocalOnly; | 67 | this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesLocalOnly; |
| 70 | } | 68 | } |
| 71 | } | 69 | } |
| 72 | } | 70 | } |
| @@ -77,16 +75,16 @@ namespace WixToolset.Data.WindowsInstaller.Rows | |||
| 77 | /// <value>Source only attribute of the component.</value> | 75 | /// <value>Source only attribute of the component.</value> |
| 78 | public bool IsSourceOnly | 76 | public bool IsSourceOnly |
| 79 | { | 77 | { |
| 80 | get { return MsiInterop.MsidbComponentAttributesSourceOnly == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesSourceOnly); } | 78 | get { return WindowsInstallerConstants.MsidbComponentAttributesSourceOnly == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesSourceOnly); } |
| 81 | set | 79 | set |
| 82 | { | 80 | { |
| 83 | if (value) | 81 | if (value) |
| 84 | { | 82 | { |
| 85 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesSourceOnly; | 83 | this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesSourceOnly; |
| 86 | } | 84 | } |
| 87 | else | 85 | else |
| 88 | { | 86 | { |
| 89 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesSourceOnly; | 87 | this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesSourceOnly; |
| 90 | } | 88 | } |
| 91 | } | 89 | } |
| 92 | } | 90 | } |
| @@ -97,16 +95,16 @@ namespace WixToolset.Data.WindowsInstaller.Rows | |||
| 97 | /// <value>Optional attribute of the component.</value> | 95 | /// <value>Optional attribute of the component.</value> |
| 98 | public bool IsOptional | 96 | public bool IsOptional |
| 99 | { | 97 | { |
| 100 | get { return MsiInterop.MsidbComponentAttributesOptional == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesOptional); } | 98 | get { return WindowsInstallerConstants.MsidbComponentAttributesOptional == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesOptional); } |
| 101 | set | 99 | set |
| 102 | { | 100 | { |
| 103 | if (value) | 101 | if (value) |
| 104 | { | 102 | { |
| 105 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesOptional; | 103 | this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesOptional; |
| 106 | } | 104 | } |
| 107 | else | 105 | else |
| 108 | { | 106 | { |
| 109 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesOptional; | 107 | this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesOptional; |
| 110 | } | 108 | } |
| 111 | } | 109 | } |
| 112 | } | 110 | } |
| @@ -117,16 +115,16 @@ namespace WixToolset.Data.WindowsInstaller.Rows | |||
| 117 | /// <value>Registry key path attribute of the component.</value> | 115 | /// <value>Registry key path attribute of the component.</value> |
| 118 | public bool IsRegistryKeyPath | 116 | public bool IsRegistryKeyPath |
| 119 | { | 117 | { |
| 120 | get { return MsiInterop.MsidbComponentAttributesRegistryKeyPath == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesRegistryKeyPath); } | 118 | get { return WindowsInstallerConstants.MsidbComponentAttributesRegistryKeyPath == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesRegistryKeyPath); } |
| 121 | set | 119 | set |
| 122 | { | 120 | { |
| 123 | if (value) | 121 | if (value) |
| 124 | { | 122 | { |
| 125 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesRegistryKeyPath; | 123 | this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesRegistryKeyPath; |
| 126 | } | 124 | } |
| 127 | else | 125 | else |
| 128 | { | 126 | { |
| 129 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesRegistryKeyPath; | 127 | this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesRegistryKeyPath; |
| 130 | } | 128 | } |
| 131 | } | 129 | } |
| 132 | } | 130 | } |
| @@ -137,16 +135,16 @@ namespace WixToolset.Data.WindowsInstaller.Rows | |||
| 137 | /// <value>Shared dll ref countattribute of the component.</value> | 135 | /// <value>Shared dll ref countattribute of the component.</value> |
| 138 | public bool IsSharedDll | 136 | public bool IsSharedDll |
| 139 | { | 137 | { |
| 140 | get { return MsiInterop.MsidbComponentAttributesSharedDllRefCount == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesSharedDllRefCount); } | 138 | get { return WindowsInstallerConstants.MsidbComponentAttributesSharedDllRefCount == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesSharedDllRefCount); } |
| 141 | set | 139 | set |
| 142 | { | 140 | { |
| 143 | if (value) | 141 | if (value) |
| 144 | { | 142 | { |
| 145 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesSharedDllRefCount; | 143 | this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesSharedDllRefCount; |
| 146 | } | 144 | } |
| 147 | else | 145 | else |
| 148 | { | 146 | { |
| 149 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesSharedDllRefCount; | 147 | this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesSharedDllRefCount; |
| 150 | } | 148 | } |
| 151 | } | 149 | } |
| 152 | } | 150 | } |
| @@ -157,16 +155,16 @@ namespace WixToolset.Data.WindowsInstaller.Rows | |||
| 157 | /// <value>Permanent attribute of the component.</value> | 155 | /// <value>Permanent attribute of the component.</value> |
| 158 | public bool IsPermanent | 156 | public bool IsPermanent |
| 159 | { | 157 | { |
| 160 | get { return MsiInterop.MsidbComponentAttributesPermanent == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesPermanent); } | 158 | get { return WindowsInstallerConstants.MsidbComponentAttributesPermanent == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesPermanent); } |
| 161 | set | 159 | set |
| 162 | { | 160 | { |
| 163 | if (value) | 161 | if (value) |
| 164 | { | 162 | { |
| 165 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesPermanent; | 163 | this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesPermanent; |
| 166 | } | 164 | } |
| 167 | else | 165 | else |
| 168 | { | 166 | { |
| 169 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesPermanent; | 167 | this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesPermanent; |
| 170 | } | 168 | } |
| 171 | } | 169 | } |
| 172 | } | 170 | } |
| @@ -177,16 +175,16 @@ namespace WixToolset.Data.WindowsInstaller.Rows | |||
| 177 | /// <value>ODBC data source key path attribute of the component.</value> | 175 | /// <value>ODBC data source key path attribute of the component.</value> |
| 178 | public bool IsOdbcDataSourceKeyPath | 176 | public bool IsOdbcDataSourceKeyPath |
| 179 | { | 177 | { |
| 180 | get { return MsiInterop.MsidbComponentAttributesODBCDataSource == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesODBCDataSource); } | 178 | get { return WindowsInstallerConstants.MsidbComponentAttributesODBCDataSource == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesODBCDataSource); } |
| 181 | set | 179 | set |
| 182 | { | 180 | { |
| 183 | if (value) | 181 | if (value) |
| 184 | { | 182 | { |
| 185 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesODBCDataSource; | 183 | this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesODBCDataSource; |
| 186 | } | 184 | } |
| 187 | else | 185 | else |
| 188 | { | 186 | { |
| 189 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesODBCDataSource; | 187 | this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesODBCDataSource; |
| 190 | } | 188 | } |
| 191 | } | 189 | } |
| 192 | } | 190 | } |
| @@ -197,16 +195,16 @@ namespace WixToolset.Data.WindowsInstaller.Rows | |||
| 197 | /// <value>64-bitness of the component.</value> | 195 | /// <value>64-bitness of the component.</value> |
| 198 | public bool Is64Bit | 196 | public bool Is64Bit |
| 199 | { | 197 | { |
| 200 | get { return MsiInterop.MsidbComponentAttributes64bit == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributes64bit); } | 198 | get { return WindowsInstallerConstants.MsidbComponentAttributes64bit == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributes64bit); } |
| 201 | set | 199 | set |
| 202 | { | 200 | { |
| 203 | if (value) | 201 | if (value) |
| 204 | { | 202 | { |
| 205 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributes64bit; | 203 | this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributes64bit; |
| 206 | } | 204 | } |
| 207 | else | 205 | else |
| 208 | { | 206 | { |
| 209 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributes64bit; | 207 | this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributes64bit; |
| 210 | } | 208 | } |
| 211 | } | 209 | } |
| 212 | } | 210 | } |
diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs index 673d2315..cd3660e4 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs | |||
| @@ -5,7 +5,6 @@ namespace WixToolset.Data.WindowsInstaller.Rows | |||
| 5 | using System; | 5 | using System; |
| 6 | using System.Diagnostics; | 6 | using System.Diagnostics; |
| 7 | using System.Globalization; | 7 | using System.Globalization; |
| 8 | using WixToolset.Data.Msi; | ||
| 9 | 8 | ||
| 10 | /// <summary> | 9 | /// <summary> |
| 11 | /// Specialization of a row for the file table. | 10 | /// Specialization of a row for the file table. |
| @@ -174,8 +173,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows | |||
| 174 | { | 173 | { |
| 175 | get | 174 | get |
| 176 | { | 175 | { |
| 177 | bool compressedFlag = (0 < (this.Attributes & MsiInterop.MsidbFileAttributesCompressed)); | 176 | bool compressedFlag = (0 < (this.Attributes & WindowsInstallerConstants.MsidbFileAttributesCompressed)); |
| 178 | bool noncompressedFlag = (0 < (this.Attributes & MsiInterop.MsidbFileAttributesNoncompressed)); | 177 | bool noncompressedFlag = (0 < (this.Attributes & WindowsInstallerConstants.MsidbFileAttributesNoncompressed)); |
| 179 | 178 | ||
| 180 | if (compressedFlag && noncompressedFlag) | 179 | if (compressedFlag && noncompressedFlag) |
| 181 | { | 180 | { |
| @@ -200,22 +199,22 @@ namespace WixToolset.Data.WindowsInstaller.Rows | |||
| 200 | if (YesNoType.Yes == value) | 199 | if (YesNoType.Yes == value) |
| 201 | { | 200 | { |
| 202 | // these are mutually exclusive | 201 | // these are mutually exclusive |
| 203 | this.Attributes |= MsiInterop.MsidbFileAttributesCompressed; | 202 | this.Attributes |= WindowsInstallerConstants.MsidbFileAttributesCompressed; |
| 204 | this.Attributes &= ~MsiInterop.MsidbFileAttributesNoncompressed; | 203 | this.Attributes &= ~WindowsInstallerConstants.MsidbFileAttributesNoncompressed; |
| 205 | } | 204 | } |
| 206 | else if (YesNoType.No == value) | 205 | else if (YesNoType.No == value) |
| 207 | { | 206 | { |
| 208 | // these are mutually exclusive | 207 | // these are mutually exclusive |
| 209 | this.Attributes |= MsiInterop.MsidbFileAttributesNoncompressed; | 208 | this.Attributes |= WindowsInstallerConstants.MsidbFileAttributesNoncompressed; |
| 210 | this.Attributes &= ~MsiInterop.MsidbFileAttributesCompressed; | 209 | this.Attributes &= ~WindowsInstallerConstants.MsidbFileAttributesCompressed; |
| 211 | } | 210 | } |
| 212 | else // not specified | 211 | else // not specified |
| 213 | { | 212 | { |
| 214 | Debug.Assert(YesNoType.NotSet == value); | 213 | Debug.Assert(YesNoType.NotSet == value); |
| 215 | 214 | ||
| 216 | // clear any compression bits | 215 | // clear any compression bits |
| 217 | this.Attributes &= ~MsiInterop.MsidbFileAttributesCompressed; | 216 | this.Attributes &= ~WindowsInstallerConstants.MsidbFileAttributesCompressed; |
| 218 | this.Attributes &= ~MsiInterop.MsidbFileAttributesNoncompressed; | 217 | this.Attributes &= ~WindowsInstallerConstants.MsidbFileAttributesNoncompressed; |
| 219 | } | 218 | } |
| 220 | } | 219 | } |
| 221 | } | 220 | } |
diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerConstants.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerConstants.cs new file mode 100644 index 00000000..c60f2c0d --- /dev/null +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerConstants.cs | |||
| @@ -0,0 +1,259 @@ | |||
| 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.Data.WindowsInstaller | ||
| 4 | { | ||
| 5 | public static class WindowsInstallerConstants | ||
| 6 | { | ||
| 7 | // Component.Attributes | ||
| 8 | public const int MsidbComponentAttributesLocalOnly = 0; | ||
| 9 | public const int MsidbComponentAttributesSourceOnly = 1; | ||
| 10 | public const int MsidbComponentAttributesOptional = 2; | ||
| 11 | public const int MsidbComponentAttributesRegistryKeyPath = 4; | ||
| 12 | public const int MsidbComponentAttributesSharedDllRefCount = 8; | ||
| 13 | public const int MsidbComponentAttributesPermanent = 16; | ||
| 14 | public const int MsidbComponentAttributesODBCDataSource = 32; | ||
| 15 | public const int MsidbComponentAttributesTransitive = 64; | ||
| 16 | public const int MsidbComponentAttributesNeverOverwrite = 128; | ||
| 17 | public const int MsidbComponentAttributes64bit = 256; | ||
| 18 | public const int MsidbComponentAttributesDisableRegistryReflection = 512; | ||
| 19 | public const int MsidbComponentAttributesUninstallOnSupersedence = 1024; | ||
| 20 | public const int MsidbComponentAttributesShared = 2048; | ||
| 21 | |||
| 22 | // BBControl.Attributes & Control.Attributes | ||
| 23 | public const int MsidbControlAttributesVisible = 0x00000001; | ||
| 24 | public const int MsidbControlAttributesEnabled = 0x00000002; | ||
| 25 | public const int MsidbControlAttributesSunken = 0x00000004; | ||
| 26 | public const int MsidbControlAttributesIndirect = 0x00000008; | ||
| 27 | public const int MsidbControlAttributesInteger = 0x00000010; | ||
| 28 | public const int MsidbControlAttributesRTLRO = 0x00000020; | ||
| 29 | public const int MsidbControlAttributesRightAligned = 0x00000040; | ||
| 30 | public const int MsidbControlAttributesLeftScroll = 0x00000080; | ||
| 31 | public const int MsidbControlAttributesBiDi = MsidbControlAttributesRTLRO | MsidbControlAttributesRightAligned | MsidbControlAttributesLeftScroll; | ||
| 32 | |||
| 33 | // Text controls | ||
| 34 | public const int MsidbControlAttributesTransparent = 0x00010000; | ||
| 35 | public const int MsidbControlAttributesNoPrefix = 0x00020000; | ||
| 36 | public const int MsidbControlAttributesNoWrap = 0x00040000; | ||
| 37 | public const int MsidbControlAttributesFormatSize = 0x00080000; | ||
| 38 | public const int MsidbControlAttributesUsersLanguage = 0x00100000; | ||
| 39 | |||
| 40 | // Edit controls | ||
| 41 | public const int MsidbControlAttributesMultiline = 0x00010000; | ||
| 42 | public const int MsidbControlAttributesPasswordInput = 0x00200000; | ||
| 43 | |||
| 44 | // ProgressBar controls | ||
| 45 | public const int MsidbControlAttributesProgress95 = 0x00010000; | ||
| 46 | |||
| 47 | // VolumeSelectCombo and DirectoryCombo controls | ||
| 48 | public const int MsidbControlAttributesRemovableVolume = 0x00010000; | ||
| 49 | public const int MsidbControlAttributesFixedVolume = 0x00020000; | ||
| 50 | public const int MsidbControlAttributesRemoteVolume = 0x00040000; | ||
| 51 | public const int MsidbControlAttributesCDROMVolume = 0x00080000; | ||
| 52 | public const int MsidbControlAttributesRAMDiskVolume = 0x00100000; | ||
| 53 | public const int MsidbControlAttributesFloppyVolume = 0x00200000; | ||
| 54 | |||
| 55 | // VolumeCostList controls | ||
| 56 | public const int MsidbControlShowRollbackCost = 0x00400000; | ||
| 57 | |||
| 58 | // ListBox and ComboBox controls | ||
| 59 | public const int MsidbControlAttributesSorted = 0x00010000; | ||
| 60 | public const int MsidbControlAttributesComboList = 0x00020000; | ||
| 61 | |||
| 62 | // picture button controls | ||
| 63 | public const int MsidbControlAttributesImageHandle = 0x00010000; | ||
| 64 | public const int MsidbControlAttributesPushLike = 0x00020000; | ||
| 65 | public const int MsidbControlAttributesBitmap = 0x00040000; | ||
| 66 | public const int MsidbControlAttributesIcon = 0x00080000; | ||
| 67 | public const int MsidbControlAttributesFixedSize = 0x00100000; | ||
| 68 | public const int MsidbControlAttributesIconSize16 = 0x00200000; | ||
| 69 | public const int MsidbControlAttributesIconSize32 = 0x00400000; | ||
| 70 | public const int MsidbControlAttributesIconSize48 = 0x00600000; | ||
| 71 | public const int MsidbControlAttributesElevationShield = 0x00800000; | ||
| 72 | |||
| 73 | // RadioButton controls | ||
| 74 | public const int MsidbControlAttributesHasBorder = 0x01000000; | ||
| 75 | |||
| 76 | // CustomAction.Type | ||
| 77 | // executable types | ||
| 78 | public const int MsidbCustomActionTypeDll = 0x00000001; // Target = entry point name | ||
| 79 | public const int MsidbCustomActionTypeExe = 0x00000002; // Target = command line args | ||
| 80 | public const int MsidbCustomActionTypeTextData = 0x00000003; // Target = text string to be formatted and set into property | ||
| 81 | public const int MsidbCustomActionTypeJScript = 0x00000005; // Target = entry point name; null if none to call | ||
| 82 | public const int MsidbCustomActionTypeVBScript = 0x00000006; // Target = entry point name; null if none to call | ||
| 83 | public const int MsidbCustomActionTypeInstall = 0x00000007; // Target = property list for nested engine initialization | ||
| 84 | public const int MsidbCustomActionTypeSourceBits = 0x00000030; | ||
| 85 | public const int MsidbCustomActionTypeTargetBits = 0x00000007; | ||
| 86 | public const int MsidbCustomActionTypeReturnBits = 0x000000C0; | ||
| 87 | public const int MsidbCustomActionTypeExecuteBits = 0x00000700; | ||
| 88 | |||
| 89 | // source of code | ||
| 90 | public const int MsidbCustomActionTypeBinaryData = 0x00000000; // Source = Binary.Name; data stored in stream | ||
| 91 | public const int MsidbCustomActionTypeSourceFile = 0x00000010; // Source = File.File; file part of installation | ||
| 92 | public const int MsidbCustomActionTypeDirectory = 0x00000020; // Source = Directory.Directory; folder containing existing file | ||
| 93 | public const int MsidbCustomActionTypeProperty = 0x00000030; // Source = Property.Property; full path to executable | ||
| 94 | |||
| 95 | // return processing; default is syncronous execution; process return code | ||
| 96 | public const int MsidbCustomActionTypeContinue = 0x00000040; // ignore action return status; continue running | ||
| 97 | public const int MsidbCustomActionTypeAsync = 0x00000080; // run asynchronously | ||
| 98 | |||
| 99 | // execution scheduling flags; default is execute whenever sequenced | ||
| 100 | public const int MsidbCustomActionTypeFirstSequence = 0x00000100; // skip if UI sequence already run | ||
| 101 | public const int MsidbCustomActionTypeOncePerProcess = 0x00000200; // skip if UI sequence already run in same process | ||
| 102 | public const int MsidbCustomActionTypeClientRepeat = 0x00000300; // run on client only if UI already run on client | ||
| 103 | public const int MsidbCustomActionTypeInScript = 0x00000400; // queue for execution within script | ||
| 104 | public const int MsidbCustomActionTypeRollback = 0x00000100; // in conjunction with InScript: queue in Rollback script | ||
| 105 | public const int MsidbCustomActionTypeCommit = 0x00000200; // in conjunction with InScript: run Commit ops from script on success | ||
| 106 | |||
| 107 | // security context flag; default to impersonate as user; valid only if InScript | ||
| 108 | public const int MsidbCustomActionTypeNoImpersonate = 0x00000800; // no impersonation; run in system context | ||
| 109 | public const int MsidbCustomActionTypeTSAware = 0x00004000; // impersonate for per-machine installs on TS machines | ||
| 110 | public const int MsidbCustomActionType64BitScript = 0x00001000; // script should run in 64bit process | ||
| 111 | public const int MsidbCustomActionTypeHideTarget = 0x00002000; // don't record the contents of the Target field in the log file. | ||
| 112 | |||
| 113 | public const int MsidbCustomActionTypePatchUninstall = 0x00008000; // run on patch uninstall | ||
| 114 | |||
| 115 | // Dialog.Attributes | ||
| 116 | public const int MsidbDialogAttributesVisible = 0x00000001; | ||
| 117 | public const int MsidbDialogAttributesModal = 0x00000002; | ||
| 118 | public const int MsidbDialogAttributesMinimize = 0x00000004; | ||
| 119 | public const int MsidbDialogAttributesSysModal = 0x00000008; | ||
| 120 | public const int MsidbDialogAttributesKeepModeless = 0x00000010; | ||
| 121 | public const int MsidbDialogAttributesTrackDiskSpace = 0x00000020; | ||
| 122 | public const int MsidbDialogAttributesUseCustomPalette = 0x00000040; | ||
| 123 | public const int MsidbDialogAttributesRTLRO = 0x00000080; | ||
| 124 | public const int MsidbDialogAttributesRightAligned = 0x00000100; | ||
| 125 | public const int MsidbDialogAttributesLeftScroll = 0x00000200; | ||
| 126 | public const int MsidbDialogAttributesBiDi = MsidbDialogAttributesRTLRO | MsidbDialogAttributesRightAligned | MsidbDialogAttributesLeftScroll; | ||
| 127 | public const int MsidbDialogAttributesError = 0x00010000; | ||
| 128 | public const int CommonControlAttributesInvert = MsidbControlAttributesVisible + MsidbControlAttributesEnabled; | ||
| 129 | public const int DialogAttributesInvert = MsidbDialogAttributesVisible + MsidbDialogAttributesModal + MsidbDialogAttributesMinimize; | ||
| 130 | |||
| 131 | // Feature.Attributes | ||
| 132 | public const int MsidbFeatureAttributesFavorLocal = 0; | ||
| 133 | public const int MsidbFeatureAttributesFavorSource = 1; | ||
| 134 | public const int MsidbFeatureAttributesFollowParent = 2; | ||
| 135 | public const int MsidbFeatureAttributesFavorAdvertise = 4; | ||
| 136 | public const int MsidbFeatureAttributesDisallowAdvertise = 8; | ||
| 137 | public const int MsidbFeatureAttributesUIDisallowAbsent = 16; | ||
| 138 | public const int MsidbFeatureAttributesNoUnsupportedAdvertise = 32; | ||
| 139 | |||
| 140 | // File.Attributes | ||
| 141 | public const int MsidbFileAttributesReadOnly = 1; | ||
| 142 | public const int MsidbFileAttributesHidden = 2; | ||
| 143 | public const int MsidbFileAttributesSystem = 4; | ||
| 144 | public const int MsidbFileAttributesVital = 512; | ||
| 145 | public const int MsidbFileAttributesChecksum = 1024; | ||
| 146 | public const int MsidbFileAttributesPatchAdded = 4096; | ||
| 147 | public const int MsidbFileAttributesNoncompressed = 8192; | ||
| 148 | public const int MsidbFileAttributesCompressed = 16384; | ||
| 149 | |||
| 150 | // IniFile.Action & RemoveIniFile.Action | ||
| 151 | public const int MsidbIniFileActionAddLine = 0; | ||
| 152 | public const int MsidbIniFileActionCreateLine = 1; | ||
| 153 | public const int MsidbIniFileActionRemoveLine = 2; | ||
| 154 | public const int MsidbIniFileActionAddTag = 3; | ||
| 155 | public const int MsidbIniFileActionRemoveTag = 4; | ||
| 156 | |||
| 157 | // MoveFile.Options | ||
| 158 | public const int MsidbMoveFileOptionsMove = 1; | ||
| 159 | |||
| 160 | // ServiceInstall.Attributes | ||
| 161 | public const int MsidbServiceInstallOwnProcess = 0x00000010; | ||
| 162 | public const int MsidbServiceInstallShareProcess = 0x00000020; | ||
| 163 | public const int MsidbServiceInstallInteractive = 0x00000100; | ||
| 164 | public const int MsidbServiceInstallAutoStart = 0x00000002; | ||
| 165 | public const int MsidbServiceInstallDemandStart = 0x00000003; | ||
| 166 | public const int MsidbServiceInstallDisabled = 0x00000004; | ||
| 167 | public const int MsidbServiceInstallErrorIgnore = 0x00000000; | ||
| 168 | public const int MsidbServiceInstallErrorNormal = 0x00000001; | ||
| 169 | public const int MsidbServiceInstallErrorCritical = 0x00000003; | ||
| 170 | public const int MsidbServiceInstallErrorControlVital = 0x00008000; | ||
| 171 | |||
| 172 | // ServiceConfig.Event | ||
| 173 | public const int MsidbServiceConfigEventInstall = 0x00000001; | ||
| 174 | public const int MsidbServiceConfigEventUninstall = 0x00000002; | ||
| 175 | public const int MsidbServiceConfigEventReinstall = 0x00000004; | ||
| 176 | |||
| 177 | // ServiceControl.Attributes | ||
| 178 | public const int MsidbServiceControlEventStart = 0x00000001; | ||
| 179 | public const int MsidbServiceControlEventStop = 0x00000002; | ||
| 180 | public const int MsidbServiceControlEventDelete = 0x00000008; | ||
| 181 | public const int MsidbServiceControlEventUninstallStart = 0x00000010; | ||
| 182 | public const int MsidbServiceControlEventUninstallStop = 0x00000020; | ||
| 183 | public const int MsidbServiceControlEventUninstallDelete = 0x00000080; | ||
| 184 | |||
| 185 | // TextStyle.StyleBits | ||
| 186 | public const int MsidbTextStyleStyleBitsBold = 1; | ||
| 187 | public const int MsidbTextStyleStyleBitsItalic = 2; | ||
| 188 | public const int MsidbTextStyleStyleBitsUnderline = 4; | ||
| 189 | public const int MsidbTextStyleStyleBitsStrike = 8; | ||
| 190 | |||
| 191 | // Upgrade.Attributes | ||
| 192 | public const int MsidbUpgradeAttributesMigrateFeatures = 0x00000001; | ||
| 193 | public const int MsidbUpgradeAttributesOnlyDetect = 0x00000002; | ||
| 194 | public const int MsidbUpgradeAttributesIgnoreRemoveFailure = 0x00000004; | ||
| 195 | public const int MsidbUpgradeAttributesVersionMinInclusive = 0x00000100; | ||
| 196 | public const int MsidbUpgradeAttributesVersionMaxInclusive = 0x00000200; | ||
| 197 | public const int MsidbUpgradeAttributesLanguagesExclusive = 0x00000400; | ||
| 198 | |||
| 199 | // Registry Hive Roots | ||
| 200 | public const int MsidbRegistryRootClassesRoot = 0; | ||
| 201 | public const int MsidbRegistryRootCurrentUser = 1; | ||
| 202 | public const int MsidbRegistryRootLocalMachine = 2; | ||
| 203 | public const int MsidbRegistryRootUsers = 3; | ||
| 204 | |||
| 205 | // Locator Types | ||
| 206 | public const int MsidbLocatorTypeDirectory = 0; | ||
| 207 | public const int MsidbLocatorTypeFileName = 1; | ||
| 208 | public const int MsidbLocatorTypeRawValue = 2; | ||
| 209 | public const int MsidbLocatorType64bit = 16; | ||
| 210 | |||
| 211 | public const int MsidbClassAttributesRelativePath = 1; | ||
| 212 | |||
| 213 | // RemoveFile.InstallMode | ||
| 214 | public const int MsidbRemoveFileInstallModeOnInstall = 0x00000001; | ||
| 215 | public const int MsidbRemoveFileInstallModeOnRemove = 0x00000002; | ||
| 216 | public const int MsidbRemoveFileInstallModeOnBoth = 0x00000003; | ||
| 217 | |||
| 218 | // ODBCDataSource.Registration | ||
| 219 | public const int MsidbODBCDataSourceRegistrationPerMachine = 0; | ||
| 220 | public const int MsidbODBCDataSourceRegistrationPerUser = 1; | ||
| 221 | |||
| 222 | // ModuleConfiguration.Format | ||
| 223 | public const int MsidbModuleConfigurationFormatText = 0; | ||
| 224 | public const int MsidbModuleConfigurationFormatKey = 1; | ||
| 225 | public const int MsidbModuleConfigurationFormatInteger = 2; | ||
| 226 | public const int MsidbModuleConfigurationFormatBitfield = 3; | ||
| 227 | |||
| 228 | // ModuleConfiguration.Attributes | ||
| 229 | public const int MsidbMsmConfigurableOptionKeyNoOrphan = 1; | ||
| 230 | public const int MsidbMsmConfigurableOptionNonNullable = 2; | ||
| 231 | |||
| 232 | // ' Windows API function ShowWindow constants - used in Shortcut table | ||
| 233 | public const int SWSHOWNORMAL = 0x00000001; | ||
| 234 | public const int SWSHOWMAXIMIZED = 0x00000003; | ||
| 235 | public const int SWSHOWMINNOACTIVE = 0x00000007; | ||
| 236 | |||
| 237 | public const int MsidbEmbeddedUI = 0x01; | ||
| 238 | public const int MsidbEmbeddedHandlesBasic = 0x02; | ||
| 239 | |||
| 240 | public const int INSTALLLOGMODE_FATALEXIT = 0x00001; | ||
| 241 | public const int INSTALLLOGMODE_ERROR = 0x00002; | ||
| 242 | public const int INSTALLLOGMODE_WARNING = 0x00004; | ||
| 243 | public const int INSTALLLOGMODE_USER = 0x00008; | ||
| 244 | public const int INSTALLLOGMODE_INFO = 0x00010; | ||
| 245 | public const int INSTALLLOGMODE_FILESINUSE = 0x00020; | ||
| 246 | public const int INSTALLLOGMODE_RESOLVESOURCE = 0x00040; | ||
| 247 | public const int INSTALLLOGMODE_OUTOFDISKSPACE = 0x00080; | ||
| 248 | public const int INSTALLLOGMODE_ACTIONSTART = 0x00100; | ||
| 249 | public const int INSTALLLOGMODE_ACTIONDATA = 0x00200; | ||
| 250 | public const int INSTALLLOGMODE_PROGRESS = 0x00400; | ||
| 251 | public const int INSTALLLOGMODE_COMMONDATA = 0x00800; | ||
| 252 | public const int INSTALLLOGMODE_INITIALIZE = 0x01000; | ||
| 253 | public const int INSTALLLOGMODE_TERMINATE = 0x02000; | ||
| 254 | public const int INSTALLLOGMODE_SHOWDIALOG = 0x04000; | ||
| 255 | public const int INSTALLLOGMODE_RMFILESINUSE = 0x02000000; | ||
| 256 | public const int INSTALLLOGMODE_INSTALLSTART = 0x04000000; | ||
| 257 | public const int INSTALLLOGMODE_INSTALLEND = 0x08000000; | ||
| 258 | } | ||
| 259 | } | ||
diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs new file mode 100644 index 00000000..96fbe659 --- /dev/null +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs | |||
| @@ -0,0 +1,506 @@ | |||
| 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.Data.WindowsInstaller | ||
| 4 | { | ||
| 5 | using System.Collections.Generic; | ||
| 6 | using WixToolset.Data.Tuples; | ||
| 7 | |||
| 8 | public static class WindowsInstallerStandard | ||
| 9 | { | ||
| 10 | private static readonly HashSet<string> standardActionNames = new HashSet<string> | ||
| 11 | { | ||
| 12 | "AllocateRegistrySpace", | ||
| 13 | "AppSearch", | ||
| 14 | "BindImage", | ||
| 15 | "CCPSearch", | ||
| 16 | "CostFinalize", | ||
| 17 | "CostInitialize", | ||
| 18 | "CreateFolders", | ||
| 19 | "CreateShortcuts", | ||
| 20 | "DeleteServices", | ||
| 21 | "DisableRollback", | ||
| 22 | "DuplicateFiles", | ||
| 23 | "ExecuteAction", | ||
| 24 | "FileCost", | ||
| 25 | "FindRelatedProducts", | ||
| 26 | "ForceReboot", | ||
| 27 | "InstallAdminPackage", | ||
| 28 | "InstallExecute", | ||
| 29 | "InstallExecuteAgain", | ||
| 30 | "InstallFiles", | ||
| 31 | "InstallFinalize", | ||
| 32 | "InstallInitialize", | ||
| 33 | "InstallODBC", | ||
| 34 | "InstallServices", | ||
| 35 | "InstallSFPCatalogFile", | ||
| 36 | "InstallValidate", | ||
| 37 | "IsolateComponents", | ||
| 38 | "LaunchConditions", | ||
| 39 | "MigrateFeatureStates", | ||
| 40 | "MoveFiles", | ||
| 41 | "MsiConfigureServices", | ||
| 42 | "MsiPublishAssemblies", | ||
| 43 | "MsiUnpublishAssemblies", | ||
| 44 | "PatchFiles", | ||
| 45 | "ProcessComponents", | ||
| 46 | "PublishComponents", | ||
| 47 | "PublishFeatures", | ||
| 48 | "PublishProduct", | ||
| 49 | "RegisterClassInfo", | ||
| 50 | "RegisterComPlus", | ||
| 51 | "RegisterExtensionInfo", | ||
| 52 | "RegisterFonts", | ||
| 53 | "RegisterMIMEInfo", | ||
| 54 | "RegisterProduct", | ||
| 55 | "RegisterProgIdInfo", | ||
| 56 | "RegisterTypeLibraries", | ||
| 57 | "RegisterUser", | ||
| 58 | "RemoveDuplicateFiles", | ||
| 59 | "RemoveEnvironmentStrings", | ||
| 60 | "RemoveExistingProducts", | ||
| 61 | "RemoveFiles", | ||
| 62 | "RemoveFolders", | ||
| 63 | "RemoveIniValues", | ||
| 64 | "RemoveODBC", | ||
| 65 | "RemoveRegistryValues", | ||
| 66 | "RemoveShortcuts", | ||
| 67 | "ResolveSource", | ||
| 68 | "RMCCPSearch", | ||
| 69 | "ScheduleReboot", | ||
| 70 | "SelfRegModules", | ||
| 71 | "SelfUnregModules", | ||
| 72 | "SetODBCFolders", | ||
| 73 | "StartServices", | ||
| 74 | "StopServices", | ||
| 75 | "UnpublishComponents", | ||
| 76 | "UnpublishFeatures", | ||
| 77 | "UnregisterClassInfo", | ||
| 78 | "UnregisterComPlus", | ||
| 79 | "UnregisterExtensionInfo", | ||
| 80 | "UnregisterFonts", | ||
| 81 | "UnregisterMIMEInfo", | ||
| 82 | "UnregisterProgIdInfo", | ||
| 83 | "UnregisterTypeLibraries", | ||
| 84 | "ValidateProductID", | ||
| 85 | "WriteEnvironmentStrings", | ||
| 86 | "WriteIniValues", | ||
| 87 | "WriteRegistryValues", | ||
| 88 | }; | ||
| 89 | |||
| 90 | private static readonly WixActionTuple[] standardActions = new[] | ||
| 91 | { | ||
| 92 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 93 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 94 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 95 | |||
| 96 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallExecute", AccessModifier.Public)) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
| 97 | |||
| 98 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallExecuteAgain", AccessModifier.Public)) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
| 99 | |||
| 100 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 101 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 102 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 103 | |||
| 104 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallFiles", AccessModifier.Public)) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 105 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallFiles", AccessModifier.Public)) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 106 | |||
| 107 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallAdminPackage", AccessModifier.Public)) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 108 | |||
| 109 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 110 | new WixActionTuple(null, new Identifier("AdminUISequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence }, | ||
| 111 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 112 | new WixActionTuple(null, new Identifier("InstallUISequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence }, | ||
| 113 | |||
| 114 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 115 | new WixActionTuple(null, new Identifier("AdminUISequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence }, | ||
| 116 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 117 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 118 | new WixActionTuple(null, new Identifier("InstallUISequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence }, | ||
| 119 | |||
| 120 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 121 | new WixActionTuple(null, new Identifier("AdminUISequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence }, | ||
| 122 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 123 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 124 | new WixActionTuple(null, new Identifier("InstallUISequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence }, | ||
| 125 | |||
| 126 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 127 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 128 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 129 | |||
| 130 | new WixActionTuple(null, new Identifier("AdminUISequence/ExecuteAction", AccessModifier.Public)) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence }, | ||
| 131 | new WixActionTuple(null, new Identifier("InstallUISequence/ExecuteAction", AccessModifier.Public)) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence }, | ||
| 132 | |||
| 133 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CreateShortcuts", AccessModifier.Public)) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 134 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CreateShortcuts", AccessModifier.Public)) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 135 | |||
| 136 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/MsiPublishAssemblies", AccessModifier.Public)) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 137 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/MsiPublishAssemblies", AccessModifier.Public)) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 138 | |||
| 139 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishComponents", AccessModifier.Public)) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 140 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/PublishComponents", AccessModifier.Public)) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 141 | |||
| 142 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishFeatures", AccessModifier.Public)) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 143 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/PublishFeatures", AccessModifier.Public)) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 144 | |||
| 145 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishProduct", AccessModifier.Public)) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 146 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/PublishProduct", AccessModifier.Public)) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 147 | |||
| 148 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterClassInfo", AccessModifier.Public)) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 149 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterClassInfo", AccessModifier.Public)) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 150 | |||
| 151 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterExtensionInfo", AccessModifier.Public)) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 152 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterExtensionInfo", AccessModifier.Public)) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 153 | |||
| 154 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterMIMEInfo", AccessModifier.Public)) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 155 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterMIMEInfo", AccessModifier.Public)) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 156 | |||
| 157 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterProgIdInfo", AccessModifier.Public)) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 158 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterProgIdInfo", AccessModifier.Public)) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 159 | |||
| 160 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/AllocateRegistrySpace", AccessModifier.Public)) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 161 | |||
| 162 | new WixActionTuple(null, new Identifier("InstallUISequence/AppSearch", AccessModifier.Public)) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence }, | ||
| 163 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/AppSearch", AccessModifier.Public)) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 164 | |||
| 165 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/BindImage", AccessModifier.Public)) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 166 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CreateFolders", AccessModifier.Public)) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 167 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/DuplicateFiles", AccessModifier.Public)) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 168 | |||
| 169 | new WixActionTuple(null, new Identifier("InstallUISequence/FindRelatedProducts", AccessModifier.Public)) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence }, | ||
| 170 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/FindRelatedProducts", AccessModifier.Public)) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 171 | |||
| 172 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallODBC", AccessModifier.Public)) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 173 | |||
| 174 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallServices", AccessModifier.Public)) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, | ||
| 175 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/MsiConfigureServices", AccessModifier.Public)) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT>=600" }, | ||
| 176 | |||
| 177 | new WixActionTuple(null, new Identifier("InstallUISequence/IsolateComponents", AccessModifier.Public)) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence }, | ||
| 178 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/IsolateComponents", AccessModifier.Public)) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 179 | |||
| 180 | new WixActionTuple(null, new Identifier("AdminUISequence/LaunchConditions", AccessModifier.Public)) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence }, | ||
| 181 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/LaunchConditions", AccessModifier.Public)) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 182 | new WixActionTuple(null, new Identifier("InstallUISequence/LaunchConditions", AccessModifier.Public)) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence }, | ||
| 183 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/LaunchConditions", AccessModifier.Public)) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 184 | |||
| 185 | new WixActionTuple(null, new Identifier("InstallUISequence/MigrateFeatureStates", AccessModifier.Public)) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence }, | ||
| 186 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/MigrateFeatureStates", AccessModifier.Public)) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 187 | |||
| 188 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/MoveFiles", AccessModifier.Public)) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 189 | |||
| 190 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/PatchFiles", AccessModifier.Public)) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 191 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/PatchFiles", AccessModifier.Public)) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 192 | |||
| 193 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/ProcessComponents", AccessModifier.Public)) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 194 | |||
| 195 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterComPlus", AccessModifier.Public)) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 196 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterFonts", AccessModifier.Public)) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 197 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterProduct", AccessModifier.Public)) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 198 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterTypeLibraries", AccessModifier.Public)) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 199 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterUser", AccessModifier.Public)) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 200 | |||
| 201 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveDuplicateFiles", AccessModifier.Public)) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 202 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveEnvironmentStrings", AccessModifier.Public)) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 203 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveFiles", AccessModifier.Public)) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 204 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveFolders", AccessModifier.Public)) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 205 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveIniValues", AccessModifier.Public)) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 206 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveODBC", AccessModifier.Public)) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 207 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveRegistryValues", AccessModifier.Public)) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 208 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveShortcuts", AccessModifier.Public)) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 209 | |||
| 210 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/SelfRegModules", AccessModifier.Public)) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 211 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/SelfUnregModules", AccessModifier.Public)) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 212 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/SetODBCFolders", AccessModifier.Public)) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 213 | |||
| 214 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CCPSearch", AccessModifier.Public)) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
| 215 | new WixActionTuple(null, new Identifier("InstallUISequence/CCPSearch", AccessModifier.Public)) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Condition="NOT Installed" }, | ||
| 216 | |||
| 217 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/DeleteServices", AccessModifier.Public)) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, | ||
| 218 | |||
| 219 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RMCCPSearch", AccessModifier.Public)) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
| 220 | new WixActionTuple(null, new Identifier("InstallUISequence/RMCCPSearch", AccessModifier.Public)) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Condition="NOT Installed" }, | ||
| 221 | |||
| 222 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/StartServices", AccessModifier.Public)) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, | ||
| 223 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/StopServices", AccessModifier.Public)) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, | ||
| 224 | |||
| 225 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/MsiUnpublishAssemblies", AccessModifier.Public)) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 226 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnpublishComponents", AccessModifier.Public)) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 227 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnpublishFeatures", AccessModifier.Public)) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 228 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterClassInfo", AccessModifier.Public)) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 229 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterComPlus", AccessModifier.Public)) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 230 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterExtensionInfo", AccessModifier.Public)) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 231 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterFonts", AccessModifier.Public)) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 232 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterMIMEInfo", AccessModifier.Public)) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 233 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterProgIdInfo", AccessModifier.Public)) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 234 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterTypeLibraries", AccessModifier.Public)) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 235 | |||
| 236 | new WixActionTuple(null, new Identifier("InstallUISequence/ValidateProductID", AccessModifier.Public)) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence }, | ||
| 237 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/ValidateProductID", AccessModifier.Public)) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 238 | |||
| 239 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteEnvironmentStrings", AccessModifier.Public)) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 240 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteIniValues", AccessModifier.Public)) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 241 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteRegistryValues", AccessModifier.Public)) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 242 | }; | ||
| 243 | |||
| 244 | private static readonly HashSet<string> standardDirectories = new HashSet<string> | ||
| 245 | { | ||
| 246 | "TARGETDIR", | ||
| 247 | "AdminToolsFolder", | ||
| 248 | "AppDataFolder", | ||
| 249 | "CommonAppDataFolder", | ||
| 250 | "CommonFilesFolder", | ||
| 251 | "DesktopFolder", | ||
| 252 | "FavoritesFolder", | ||
| 253 | "FontsFolder", | ||
| 254 | "LocalAppDataFolder", | ||
| 255 | "MyPicturesFolder", | ||
| 256 | "PersonalFolder", | ||
| 257 | "ProgramFilesFolder", | ||
| 258 | "ProgramMenuFolder", | ||
| 259 | "SendToFolder", | ||
| 260 | "StartMenuFolder", | ||
| 261 | "StartupFolder", | ||
| 262 | "System16Folder", | ||
| 263 | "SystemFolder", | ||
| 264 | "TempFolder", | ||
| 265 | "TemplateFolder", | ||
| 266 | "WindowsFolder", | ||
| 267 | "CommonFiles64Folder", | ||
| 268 | "ProgramFiles64Folder", | ||
| 269 | "System64Folder", | ||
| 270 | "NetHoodFolder", | ||
| 271 | "PrintHoodFolder", | ||
| 272 | "RecentFolder", | ||
| 273 | "WindowsVolume", | ||
| 274 | }; | ||
| 275 | |||
| 276 | /// <summary> | ||
| 277 | /// References: | ||
| 278 | /// Title: Property Reference [Windows Installer]: | ||
| 279 | /// URL: http://msdn.microsoft.com/library/en-us/msi/setup/property_reference.asp | ||
| 280 | /// </summary> | ||
| 281 | private static readonly HashSet<string> standardProperties = new HashSet<string> | ||
| 282 | { | ||
| 283 | "~", // REG_MULTI_SZ/NULL marker | ||
| 284 | "ACTION", | ||
| 285 | "ADDDEFAULT", | ||
| 286 | "ADDLOCAL", | ||
| 287 | "ADDDSOURCE", | ||
| 288 | "AdminProperties", | ||
| 289 | "AdminUser", | ||
| 290 | "ADVERTISE", | ||
| 291 | "AFTERREBOOT", | ||
| 292 | "AllowProductCodeMismatches", | ||
| 293 | "AllowProductVersionMajorMismatches", | ||
| 294 | "ALLUSERS", | ||
| 295 | "Alpha", | ||
| 296 | "ApiPatchingSymbolFlags", | ||
| 297 | "ARPAUTHORIZEDCDFPREFIX", | ||
| 298 | "ARPCOMMENTS", | ||
| 299 | "ARPCONTACT", | ||
| 300 | "ARPHELPLINK", | ||
| 301 | "ARPHELPTELEPHONE", | ||
| 302 | "ARPINSTALLLOCATION", | ||
| 303 | "ARPNOMODIFY", | ||
| 304 | "ARPNOREMOVE", | ||
| 305 | "ARPNOREPAIR", | ||
| 306 | "ARPPRODUCTIONICON", | ||
| 307 | "ARPREADME", | ||
| 308 | "ARPSIZE", | ||
| 309 | "ARPSYSTEMCOMPONENT", | ||
| 310 | "ARPULRINFOABOUT", | ||
| 311 | "ARPURLUPDATEINFO", | ||
| 312 | "AVAILABLEFREEREG", | ||
| 313 | "BorderSize", | ||
| 314 | "BorderTop", | ||
| 315 | "CaptionHeight", | ||
| 316 | "CCP_DRIVE", | ||
| 317 | "ColorBits", | ||
| 318 | "COMPADDLOCAL", | ||
| 319 | "COMPADDSOURCE", | ||
| 320 | "COMPANYNAME", | ||
| 321 | "ComputerName", | ||
| 322 | "CostingComplete", | ||
| 323 | "Date", | ||
| 324 | "DefaultUIFont", | ||
| 325 | "DISABLEADVTSHORTCUTS", | ||
| 326 | "DISABLEMEDIA", | ||
| 327 | "DISABLEROLLBACK", | ||
| 328 | "DiskPrompt", | ||
| 329 | "DontRemoveTempFolderWhenFinished", | ||
| 330 | "EnableUserControl", | ||
| 331 | "EXECUTEACTION", | ||
| 332 | "EXECUTEMODE", | ||
| 333 | "FASTOEM", | ||
| 334 | "FILEADDDEFAULT", | ||
| 335 | "FILEADDLOCAL", | ||
| 336 | "FILEADDSOURCE", | ||
| 337 | "IncludeWholeFilesOnly", | ||
| 338 | "Installed", | ||
| 339 | "INSTALLLEVEL", | ||
| 340 | "Intel", | ||
| 341 | "Intel64", | ||
| 342 | "IsAdminPackage", | ||
| 343 | "LeftUnit", | ||
| 344 | "LIMITUI", | ||
| 345 | "ListOfPatchGUIDsToReplace", | ||
| 346 | "ListOfTargetProductCode", | ||
| 347 | "LOGACTION", | ||
| 348 | "LogonUser", | ||
| 349 | "Manufacturer", | ||
| 350 | "MEDIAPACKAGEPATH", | ||
| 351 | "MediaSourceDir", | ||
| 352 | "MinimumRequiredMsiVersion", | ||
| 353 | "MsiAMD64", | ||
| 354 | "MSIAPRSETTINGSIDENTIFIER", | ||
| 355 | "MSICHECKCRCS", | ||
| 356 | "MSIDISABLERMRESTART", | ||
| 357 | "MSIENFORCEUPGRADECOMPONENTRULES", | ||
| 358 | "MSIFASTINSTALL", | ||
| 359 | "MsiFileToUseToCreatePatchTables", | ||
| 360 | "MsiHiddenProperties", | ||
| 361 | "MSIINSTALLPERUSER", | ||
| 362 | "MSIINSTANCEGUID", | ||
| 363 | "MsiLogFileLocation", | ||
| 364 | "MsiLogging", | ||
| 365 | "MsiNetAssemblySupport", | ||
| 366 | "MSINEWINSTANCE", | ||
| 367 | "MSINODISABLEMEDIA", | ||
| 368 | "MsiNTProductType", | ||
| 369 | "MsiNTSuiteBackOffice", | ||
| 370 | "MsiNTSuiteDataCenter", | ||
| 371 | "MsiNTSuiteEnterprise", | ||
| 372 | "MsiNTSuiteSmallBusiness", | ||
| 373 | "MsiNTSuiteSmallBusinessRestricted", | ||
| 374 | "MsiNTSuiteWebServer", | ||
| 375 | "MsiNTSuitePersonal", | ||
| 376 | "MsiPatchRemovalList", | ||
| 377 | "MSIPATCHREMOVE", | ||
| 378 | "MSIRESTARTMANAGERCONTROL", | ||
| 379 | "MsiRestartManagerSessionKey", | ||
| 380 | "MSIRMSHUTDOWN", | ||
| 381 | "MsiRunningElevated", | ||
| 382 | "MsiUIHideCancel", | ||
| 383 | "MsiUIProgressOnly", | ||
| 384 | "MsiUISourceResOnly", | ||
| 385 | "MsiSystemRebootPending", | ||
| 386 | "MsiWin32AssemblySupport", | ||
| 387 | "NOCOMPANYNAME", | ||
| 388 | "NOUSERNAME", | ||
| 389 | "OLEAdvtSupport", | ||
| 390 | "OptimizePatchSizeForLargeFiles", | ||
| 391 | "OriginalDatabase", | ||
| 392 | "OutOfDiskSpace", | ||
| 393 | "OutOfNoRbDiskSpace", | ||
| 394 | "ParentOriginalDatabase", | ||
| 395 | "ParentProductCode", | ||
| 396 | "PATCH", | ||
| 397 | "PATCH_CACHE_DIR", | ||
| 398 | "PATCH_CACHE_ENABLED", | ||
| 399 | "PatchGUID", | ||
| 400 | "PATCHNEWPACKAGECODE", | ||
| 401 | "PATCHNEWSUMMARYCOMMENTS", | ||
| 402 | "PATCHNEWSUMMARYSUBJECT", | ||
| 403 | "PatchOutputPath", | ||
| 404 | "PatchSourceList", | ||
| 405 | "PhysicalMemory", | ||
| 406 | "PIDKEY", | ||
| 407 | "PIDTemplate", | ||
| 408 | "Preselected", | ||
| 409 | "PRIMARYFOLDER", | ||
| 410 | "PrimaryVolumePath", | ||
| 411 | "PrimaryVolumeSpaceAvailable", | ||
| 412 | "PrimaryVolumeSpaceRemaining", | ||
| 413 | "PrimaryVolumeSpaceRequired", | ||
| 414 | "Privileged", | ||
| 415 | "ProductCode", | ||
| 416 | "ProductID", | ||
| 417 | "ProductLanguage", | ||
| 418 | "ProductName", | ||
| 419 | "ProductState", | ||
| 420 | "ProductVersion", | ||
| 421 | "PROMPTROLLBACKCOST", | ||
| 422 | "REBOOT", | ||
| 423 | "REBOOTPROMPT", | ||
| 424 | "RedirectedDllSupport", | ||
| 425 | "REINSTALL", | ||
| 426 | "REINSTALLMODE", | ||
| 427 | "RemoveAdminTS", | ||
| 428 | "REMOVE", | ||
| 429 | "ReplacedInUseFiles", | ||
| 430 | "RestrictedUserControl", | ||
| 431 | "RESUME", | ||
| 432 | "RollbackDisabled", | ||
| 433 | "ROOTDRIVE", | ||
| 434 | "ScreenX", | ||
| 435 | "ScreenY", | ||
| 436 | "SecureCustomProperties", | ||
| 437 | "ServicePackLevel", | ||
| 438 | "ServicePackLevelMinor", | ||
| 439 | "SEQUENCE", | ||
| 440 | "SharedWindows", | ||
| 441 | "ShellAdvtSupport", | ||
| 442 | "SHORTFILENAMES", | ||
| 443 | "SourceDir", | ||
| 444 | "SOURCELIST", | ||
| 445 | "SystemLanguageID", | ||
| 446 | "TARGETDIR", | ||
| 447 | "TerminalServer", | ||
| 448 | "TextHeight", | ||
| 449 | "Time", | ||
| 450 | "TRANSFORMS", | ||
| 451 | "TRANSFORMSATSOURCE", | ||
| 452 | "TRANSFORMSSECURE", | ||
| 453 | "TTCSupport", | ||
| 454 | "UILevel", | ||
| 455 | "UpdateStarted", | ||
| 456 | "UpgradeCode", | ||
| 457 | "UPGRADINGPRODUCTCODE", | ||
| 458 | "UserLanguageID", | ||
| 459 | "USERNAME", | ||
| 460 | "UserSID", | ||
| 461 | "Version9X", | ||
| 462 | "VersionDatabase", | ||
| 463 | "VersionMsi", | ||
| 464 | "VersionNT", | ||
| 465 | "VersionNT64", | ||
| 466 | "VirtualMemory", | ||
| 467 | "WindowsBuild", | ||
| 468 | "WindowsVolume", | ||
| 469 | }; | ||
| 470 | |||
| 471 | /// <summary> | ||
| 472 | /// Find out if an action is a standard action. | ||
| 473 | /// </summary> | ||
| 474 | /// <param name="actionName">Name of the action.</param> | ||
| 475 | /// <returns>true if the action is standard, false otherwise.</returns> | ||
| 476 | public static bool IsStandardAction(string actionName) | ||
| 477 | { | ||
| 478 | return standardActionNames.Contains(actionName); | ||
| 479 | } | ||
| 480 | |||
| 481 | /// <summary> | ||
| 482 | /// Array of standard actions. | ||
| 483 | /// </summary> | ||
| 484 | public static WixActionTuple[] StandardActions() => standardActions; | ||
| 485 | |||
| 486 | /// <summary> | ||
| 487 | /// Find out if a directory is a standard directory. | ||
| 488 | /// </summary> | ||
| 489 | /// <param name="directoryName">Name of the directory.</param> | ||
| 490 | /// <returns>true if the directory is standard, false otherwise.</returns> | ||
| 491 | public static bool IsStandardDirectory(string directoryName) | ||
| 492 | { | ||
| 493 | return standardDirectories.Contains(directoryName); | ||
| 494 | } | ||
| 495 | |||
| 496 | /// <summary> | ||
| 497 | /// Find out if a property is a standard property. | ||
| 498 | /// </summary> | ||
| 499 | /// <param name="propertyName">Name of the property.</param> | ||
| 500 | /// <returns>true if a property is standard, false otherwise.</returns> | ||
| 501 | public static bool IsStandardProperty(string propertyName) | ||
| 502 | { | ||
| 503 | return standardProperties.Contains(propertyName); | ||
| 504 | } | ||
| 505 | } | ||
| 506 | } | ||
