aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.WindowsInstaller/Bind
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2019-10-18 11:30:10 -0700
committerRob Mensching <rob@firegiant.com>2019-10-18 11:34:46 -0700
commit6155da0bc9e7faa97612d15def98dd68ea2557cd (patch)
treed2a6d9f4c4898b84982f941848b02e4f7ffed037 /src/WixToolset.Core.WindowsInstaller/Bind
parent7d699fdbbe8a15c72b69f633ac9799fb757e2acc (diff)
downloadwix-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.cs50
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)