diff options
| author | Rob Mensching <rob@firegiant.com> | 2019-10-18 11:30:10 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2019-10-18 11:34:46 -0700 |
| commit | 6155da0bc9e7faa97612d15def98dd68ea2557cd (patch) | |
| tree | d2a6d9f4c4898b84982f941848b02e4f7ffed037 /src/WixToolset.Core.WindowsInstaller/Bind | |
| parent | 7d699fdbbe8a15c72b69f633ac9799fb757e2acc (diff) | |
| download | wix-6155da0bc9e7faa97612d15def98dd68ea2557cd.tar.gz wix-6155da0bc9e7faa97612d15def98dd68ea2557cd.tar.bz2 wix-6155da0bc9e7faa97612d15def98dd68ea2557cd.zip | |
Small tuple based fixes
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/Bind')
| -rw-r--r-- | src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs | 50 |
1 files changed, 43 insertions, 7 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs index cdda4ebc..ebb494c0 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs | |||
| @@ -50,13 +50,17 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 50 | switch (tuple.Definition.Type) | 50 | switch (tuple.Definition.Type) |
| 51 | { | 51 | { |
| 52 | case TupleDefinitionType.Binary: | 52 | case TupleDefinitionType.Binary: |
| 53 | this.AddTupleDefaultly(tuple, output, true); | 53 | this.AddTupleDefaultly(tuple, output, idIsPrimaryKey: true); |
| 54 | break; | 54 | break; |
| 55 | 55 | ||
| 56 | case TupleDefinitionType.BBControl: | 56 | case TupleDefinitionType.BBControl: |
| 57 | this.AddBBControlTuple((BBControlTuple)tuple, output); | 57 | this.AddBBControlTuple((BBControlTuple)tuple, output); |
| 58 | break; | 58 | break; |
| 59 | 59 | ||
| 60 | case TupleDefinitionType.Class: | ||
| 61 | this.AddClassTuple((ClassTuple)tuple, output); | ||
| 62 | break; | ||
| 63 | |||
| 60 | case TupleDefinitionType.Control: | 64 | case TupleDefinitionType.Control: |
| 61 | this.AddControlTuple((ControlTuple)tuple, output); | 65 | this.AddControlTuple((ControlTuple)tuple, output); |
| 62 | break; | 66 | break; |
| @@ -89,6 +93,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 89 | this.AddFileTuple((FileTuple)tuple, output); | 93 | this.AddFileTuple((FileTuple)tuple, output); |
| 90 | break; | 94 | break; |
| 91 | 95 | ||
| 96 | case TupleDefinitionType.Icon: | ||
| 97 | this.AddTupleDefaultly(tuple, output, idIsPrimaryKey: true); | ||
| 98 | break; | ||
| 99 | |||
| 92 | case TupleDefinitionType.IniFile: | 100 | case TupleDefinitionType.IniFile: |
| 93 | this.AddIniFileTuple((IniFileTuple)tuple, output); | 101 | this.AddIniFileTuple((IniFileTuple)tuple, output); |
| 94 | break; | 102 | break; |
| @@ -118,7 +126,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 118 | break; | 126 | break; |
| 119 | 127 | ||
| 120 | case TupleDefinitionType.MsiShortcutProperty: | 128 | case TupleDefinitionType.MsiShortcutProperty: |
| 121 | this.AddTupleDefaultly(tuple, output, true); | 129 | this.AddTupleDefaultly(tuple, output, idIsPrimaryKey: true); |
| 122 | break; | 130 | break; |
| 123 | 131 | ||
| 124 | case TupleDefinitionType.MoveFile: | 132 | case TupleDefinitionType.MoveFile: |
| @@ -146,7 +154,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 146 | break; | 154 | break; |
| 147 | 155 | ||
| 148 | case TupleDefinitionType.ReserveCost: | 156 | case TupleDefinitionType.ReserveCost: |
| 149 | this.AddTupleDefaultly(tuple, output, true); | 157 | this.AddTupleDefaultly(tuple, output, idIsPrimaryKey: true); |
| 150 | break; | 158 | break; |
| 151 | 159 | ||
| 152 | case TupleDefinitionType.ServiceControl: | 160 | case TupleDefinitionType.ServiceControl: |
| @@ -162,7 +170,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 162 | break; | 170 | break; |
| 163 | 171 | ||
| 164 | case TupleDefinitionType.Signature: | 172 | case TupleDefinitionType.Signature: |
| 165 | this.AddTupleDefaultly(tuple, output, true); | 173 | this.AddTupleDefaultly(tuple, output, idIsPrimaryKey: true); |
| 166 | break; | 174 | break; |
| 167 | 175 | ||
| 168 | case TupleDefinitionType.SummaryInformation: | 176 | case TupleDefinitionType.SummaryInformation: |
| @@ -228,6 +236,25 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 228 | row[8] = tuple.Text; | 236 | row[8] = tuple.Text; |
| 229 | } | 237 | } |
| 230 | 238 | ||
| 239 | private void AddClassTuple(ClassTuple tuple, Output output) | ||
| 240 | { | ||
| 241 | var table = output.EnsureTable(this.TableDefinitions["Class"]); | ||
| 242 | var row = table.CreateRow(tuple.SourceLineNumbers); | ||
| 243 | row[0] = tuple.CLSID; | ||
| 244 | row[1] = tuple.Context; | ||
| 245 | row[2] = tuple.ComponentRef; | ||
| 246 | row[3] = tuple.DefaultProgIdRef; | ||
| 247 | row[4] = tuple.Description; | ||
| 248 | row[5] = tuple.AppIdRef; | ||
| 249 | row[6] = tuple.FileTypeMask; | ||
| 250 | row[7] = tuple.IconRef; | ||
| 251 | row[8] = tuple.IconIndex; | ||
| 252 | row[9] = tuple.DefInprocHandler; | ||
| 253 | row[10] = tuple.Argument; | ||
| 254 | row[11] = tuple.FeatureRef; | ||
| 255 | row[12] = tuple.RelativePath ? (int?)1 : null; | ||
| 256 | } | ||
| 257 | |||
| 231 | private void AddControlTuple(ControlTuple tuple, Output output) | 258 | private void AddControlTuple(ControlTuple tuple, Output output) |
| 232 | { | 259 | { |
| 233 | var text = tuple.Text; | 260 | var text = tuple.Text; |
| @@ -326,7 +353,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 326 | row[1] = type; | 353 | row[1] = type; |
| 327 | row[2] = tuple.Source; | 354 | row[2] = tuple.Source; |
| 328 | row[3] = tuple.Target; | 355 | row[3] = tuple.Target; |
| 329 | row[4] = tuple.PatchUninstall ? WindowsInstallerConstants.MsidbCustomActionTypePatchUninstall : 0; | 356 | row[4] = tuple.PatchUninstall ? (int?)WindowsInstallerConstants.MsidbCustomActionTypePatchUninstall : null; |
| 330 | } | 357 | } |
| 331 | 358 | ||
| 332 | private void AddDialogTuple(DialogTuple tuple, Output output) | 359 | private void AddDialogTuple(DialogTuple tuple, Output output) |
| @@ -775,13 +802,22 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 775 | styleBits |= tuple.Strike ? WindowsInstallerConstants.MsidbTextStyleStyleBitsStrike : 0; | 802 | styleBits |= tuple.Strike ? WindowsInstallerConstants.MsidbTextStyleStyleBitsStrike : 0; |
| 776 | styleBits |= tuple.Underline ? WindowsInstallerConstants.MsidbTextStyleStyleBitsUnderline : 0; | 803 | styleBits |= tuple.Underline ? WindowsInstallerConstants.MsidbTextStyleStyleBitsUnderline : 0; |
| 777 | 804 | ||
| 805 | long? color = null; | ||
| 806 | |||
| 807 | if (tuple.Red.HasValue || tuple.Green.HasValue || tuple.Blue.HasValue) | ||
| 808 | { | ||
| 809 | color = tuple.Red ?? 0; | ||
| 810 | color += (long)(tuple.Green ?? 0) * 256; | ||
| 811 | color += (long)(tuple.Blue ?? 0) * 65536; | ||
| 812 | } | ||
| 813 | |||
| 778 | var table = output.EnsureTable(this.TableDefinitions["TextStyle"]); | 814 | var table = output.EnsureTable(this.TableDefinitions["TextStyle"]); |
| 779 | var row = table.CreateRow(tuple.SourceLineNumbers); | 815 | var row = table.CreateRow(tuple.SourceLineNumbers); |
| 780 | row[0] = tuple.Id.Id; | 816 | row[0] = tuple.Id.Id; |
| 781 | row[1] = tuple.FaceName; | 817 | row[1] = tuple.FaceName; |
| 782 | row[2] = tuple.Size; | 818 | row[2] = tuple.Size; |
| 783 | row[3] = tuple.Color; | 819 | row[3] = color; |
| 784 | row[4] = styleBits; | 820 | row[4] = styleBits == 0 ? null : (int?)styleBits; |
| 785 | } | 821 | } |
| 786 | 822 | ||
| 787 | private void AddUpgradeTuple(UpgradeTuple tuple, Output output) | 823 | private void AddUpgradeTuple(UpgradeTuple tuple, Output output) |
