aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wix/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs110
-rw-r--r--src/wix/WixToolset.Core.WindowsInstaller/Decompile/Names.cs1
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs24
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/TestData/Decompile/ExpectedUI.wxs563
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/TestData/Decompile/ui.msibin0 -> 290816 bytes
5 files changed, 632 insertions, 66 deletions
diff --git a/src/wix/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs b/src/wix/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs
index c953316d..e2a6750e 100644
--- a/src/wix/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs
+++ b/src/wix/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs
@@ -256,6 +256,11 @@ namespace WixToolset.Core.WindowsInstaller.Decompile
256 } 256 }
257 } 257 }
258 258
259 private static XAttribute XAttributeIfNotNull(string attributeName, string value)
260 {
261 return value is null ? null : new XAttribute(attributeName, value);
262 }
263
259 private static XAttribute XAttributeIfNotNull(string attributeName, Row row, int column) 264 private static XAttribute XAttributeIfNotNull(string attributeName, Row row, int column)
260 { 265 {
261 return row.IsColumnNull(column) ? null : new XAttribute(attributeName, row.FieldAsString(column)); 266 return row.IsColumnNull(column) ? null : new XAttribute(attributeName, row.FieldAsString(column));
@@ -352,62 +357,15 @@ namespace WixToolset.Core.WindowsInstaller.Decompile
352 new XAttribute("Action", actionSymbol.Action), 357 new XAttribute("Action", actionSymbol.Action),
353 String.IsNullOrEmpty(actionSymbol.Condition) ? null : new XAttribute("Condition", actionSymbol.Condition)); 358 String.IsNullOrEmpty(actionSymbol.Condition) ? null : new XAttribute("Condition", actionSymbol.Condition));
354 359
355 switch (actionSymbol.Sequence) 360 AssignActionSequence(actionSymbol, xAction);
356 {
357 case (-4):
358 xAction.SetAttributeValue("OnExit", "suspend");
359 break;
360 case (-3):
361 xAction.SetAttributeValue("OnExit", "error");
362 break;
363 case (-2):
364 xAction.SetAttributeValue("OnExit", "cancel");
365 break;
366 case (-1):
367 xAction.SetAttributeValue("OnExit", "success");
368 break;
369 default:
370 if (null != actionSymbol.Before)
371 {
372 xAction.SetAttributeValue("Before", actionSymbol.Before);
373 }
374 else if (null != actionSymbol.After)
375 {
376 xAction.SetAttributeValue("After", actionSymbol.After);
377 }
378 else if (actionSymbol.Sequence.HasValue)
379 {
380 xAction.SetAttributeValue("Sequence", actionSymbol.Sequence.Value);
381 }
382 break;
383 }
384 } 361 }
385 else if (this.DecompilerHelper.TryGetIndexedElement("Dialog", actionSymbol.Action, out var _)) // dialog 362 else if (this.DecompilerHelper.TryGetIndexedElement("Dialog", actionSymbol.Action, out var _)) // dialog
386 { 363 {
387 xAction = new XElement(Names.CustomElement, 364 xAction = new XElement(Names.ShowElement,
388 new XAttribute("Dialog", actionSymbol.Action), 365 new XAttribute("Dialog", actionSymbol.Action),
389 new XAttribute("Condition", actionSymbol.Condition)); 366 XAttributeIfNotNull("Condition", actionSymbol.Condition));
390 367
391 switch (actionSymbol.Sequence) 368 AssignActionSequence(actionSymbol, xAction);
392 {
393 case (-4):
394 xAction.SetAttributeValue("OnExit", "suspend");
395 break;
396 case (-3):
397 xAction.SetAttributeValue("OnExit", "error");
398 break;
399 case (-2):
400 xAction.SetAttributeValue("OnExit", "cancel");
401 break;
402 case (-1):
403 xAction.SetAttributeValue("OnExit", "success");
404 break;
405 default:
406 SetAttributeIfNotNull(xAction, "Before", actionSymbol.Before);
407 SetAttributeIfNotNull(xAction, "After", actionSymbol.After);
408 SetAttributeIfNotNull(xAction, "Sequence", actionSymbol.Sequence);
409 break;
410 }
411 } 369 }
412 else // possibly a standard action without suggested sequence information 370 else // possibly a standard action without suggested sequence information
413 { 371 {
@@ -868,7 +826,7 @@ namespace WixToolset.Core.WindowsInstaller.Decompile
868 // add tabbable controls 826 // add tabbable controls
869 while (null != xControl) 827 while (null != xControl)
870 { 828 {
871 var controlId = xControl.Attribute("Id"); 829 var controlId = xControl.Attribute("Id").Value;
872 var controlRow = controlRows[String.Concat(dialogId, DecompilerConstants.PrimaryKeyDelimiter, controlId)]; 830 var controlRow = controlRows[String.Concat(dialogId, DecompilerConstants.PrimaryKeyDelimiter, controlId)];
873 831
874 xControl.SetAttributeValue("TabSkip", "no"); 832 xControl.SetAttributeValue("TabSkip", "no");
@@ -913,7 +871,7 @@ namespace WixToolset.Core.WindowsInstaller.Decompile
913 } 871 }
914 872
915 // set cancel control 873 // set cancel control
916 var controlCancel = dialogRow.FieldAsString(8); 874 var controlCancel = dialogRow.FieldAsString(9);
917 if (!String.IsNullOrEmpty(controlCancel)) 875 if (!String.IsNullOrEmpty(controlCancel))
918 { 876 {
919 if (this.DecompilerHelper.TryGetIndexedElement("Control", dialogId, controlCancel, out var xCancelControl)) 877 if (this.DecompilerHelper.TryGetIndexedElement("Control", dialogId, controlCancel, out var xCancelControl))
@@ -3428,7 +3386,7 @@ namespace WixToolset.Core.WindowsInstaller.Decompile
3428 new XAttribute("Y", controlRow.Y), 3386 new XAttribute("Y", controlRow.Y),
3429 new XAttribute("Width", controlRow.Width), 3387 new XAttribute("Width", controlRow.Width),
3430 new XAttribute("Height", controlRow.Height), 3388 new XAttribute("Height", controlRow.Height),
3431 new XAttribute("Text", controlRow.Text)); 3389 XAttributeIfNotNull("Text", controlRow.Text));
3432 3390
3433 if (!controlRow.IsColumnNull(7)) 3391 if (!controlRow.IsColumnNull(7))
3434 { 3392 {
@@ -3699,8 +3657,13 @@ namespace WixToolset.Core.WindowsInstaller.Decompile
3699 3657
3700 foreach (var row in table.Rows) 3658 foreach (var row in table.Rows)
3701 { 3659 {
3702 var xPublish = new XElement(Names.PublishElement, 3660 var xPublish = new XElement(Names.PublishElement);
3703 new XAttribute("Condition", row.FieldAsString(4))); 3661 var condition = row.FieldAsString(4);
3662
3663 if (!String.IsNullOrEmpty(condition) && condition != "1")
3664 {
3665 xPublish.Add(new XAttribute("Condition", condition));
3666 }
3704 3667
3705 var publishEvent = row.FieldAsString(2); 3668 var publishEvent = row.FieldAsString(2);
3706 if (publishEvent.StartsWith("[", StringComparison.Ordinal) && publishEvent.EndsWith("]", StringComparison.Ordinal)) 3669 if (publishEvent.StartsWith("[", StringComparison.Ordinal) && publishEvent.EndsWith("]", StringComparison.Ordinal))
@@ -7455,7 +7418,7 @@ namespace WixToolset.Core.WindowsInstaller.Decompile
7455 { 7418 {
7456 var xUiText = new XElement(Names.UITextElement, 7419 var xUiText = new XElement(Names.UITextElement,
7457 new XAttribute("Id", row.FieldAsString(0)), 7420 new XAttribute("Id", row.FieldAsString(0)),
7458 new XAttribute("Value", row.FieldAsString(1))); 7421 XAttributeIfNotNull("Value", row, 1));
7459 7422
7460 this.UIElement.Add(xUiText); 7423 this.UIElement.Add(xUiText);
7461 } 7424 }
@@ -7538,6 +7501,39 @@ namespace WixToolset.Core.WindowsInstaller.Decompile
7538 } 7501 }
7539 } 7502 }
7540 7503
7504 private static void AssignActionSequence(WixActionSymbol actionSymbol, XElement xAction)
7505 {
7506 switch (actionSymbol.Sequence)
7507 {
7508 case (-4):
7509 xAction.SetAttributeValue("OnExit", "suspend");
7510 break;
7511 case (-3):
7512 xAction.SetAttributeValue("OnExit", "error");
7513 break;
7514 case (-2):
7515 xAction.SetAttributeValue("OnExit", "cancel");
7516 break;
7517 case (-1):
7518 xAction.SetAttributeValue("OnExit", "success");
7519 break;
7520 default:
7521 if (null != actionSymbol.Before)
7522 {
7523 xAction.SetAttributeValue("Before", actionSymbol.Before);
7524 }
7525 else if (null != actionSymbol.After)
7526 {
7527 xAction.SetAttributeValue("After", actionSymbol.After);
7528 }
7529 else if (actionSymbol.Sequence.HasValue)
7530 {
7531 xAction.SetAttributeValue("Sequence", actionSymbol.Sequence.Value);
7532 }
7533 break;
7534 }
7535 }
7536
7541 /// <summary> 7537 /// <summary>
7542 /// Checks the InstallExecuteSequence table to determine where RemoveExistingProducts is scheduled and removes it. 7538 /// Checks the InstallExecuteSequence table to determine where RemoveExistingProducts is scheduled and removes it.
7543 /// </summary> 7539 /// </summary>
diff --git a/src/wix/WixToolset.Core.WindowsInstaller/Decompile/Names.cs b/src/wix/WixToolset.Core.WindowsInstaller/Decompile/Names.cs
index db65bbf7..e49c1df9 100644
--- a/src/wix/WixToolset.Core.WindowsInstaller/Decompile/Names.cs
+++ b/src/wix/WixToolset.Core.WindowsInstaller/Decompile/Names.cs
@@ -15,6 +15,7 @@ namespace WixToolset.Core.WindowsInstaller.Decompile
15 public static readonly XName SummaryInformationElement = WxsNamespace + "SummaryInformation"; 15 public static readonly XName SummaryInformationElement = WxsNamespace + "SummaryInformation";
16 16
17 public static readonly XName CustomElement = WxsNamespace + "Custom"; 17 public static readonly XName CustomElement = WxsNamespace + "Custom";
18 public static readonly XName ShowElement = WxsNamespace + "Show";
18 19
19 public static readonly XName AdminExecuteSequenceElement = WxsNamespace + "AdminExecuteSequence"; 20 public static readonly XName AdminExecuteSequenceElement = WxsNamespace + "AdminExecuteSequence";
20 public static readonly XName AdminUISequenceElement = WxsNamespace + "AdminUISequence"; 21 public static readonly XName AdminUISequenceElement = WxsNamespace + "AdminUISequence";
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs
index 77311302..a4915a3a 100644
--- a/src/wix/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs
@@ -9,7 +9,7 @@ namespace WixToolsetTest.CoreIntegration
9 9
10 public class DecompileFixture 10 public class DecompileFixture
11 { 11 {
12 private static void DecompileAndCompare(string sourceFolder, string msiName, string expectedWxsName) 12 private static void DecompileAndCompare(string msiName, string expectedWxsName, params string[] sourceFolder)
13 { 13 {
14 var folder = TestData.Get(sourceFolder); 14 var folder = TestData.Get(sourceFolder);
15 15
@@ -35,19 +35,19 @@ namespace WixToolsetTest.CoreIntegration
35 [Fact] 35 [Fact]
36 public void CanDecompileSingleFileCompressed() 36 public void CanDecompileSingleFileCompressed()
37 { 37 {
38 DecompileAndCompare(@"TestData\DecompileSingleFileCompressed", "example.msi", "Expected.wxs"); 38 DecompileAndCompare("example.msi", "Expected.wxs", "TestData", "DecompileSingleFileCompressed");
39 } 39 }
40 40
41 [Fact] 41 [Fact]
42 public void CanDecompile64BitSingleFileCompressed() 42 public void CanDecompile64BitSingleFileCompressed()
43 { 43 {
44 DecompileAndCompare(@"TestData\DecompileSingleFileCompressed64", "example.msi", "Expected.wxs"); 44 DecompileAndCompare("example.msi", "Expected.wxs", "TestData", "DecompileSingleFileCompressed64");
45 } 45 }
46 46
47 [Fact] 47 [Fact]
48 public void CanDecompileNestedDirSearchUnderRegSearch() 48 public void CanDecompileNestedDirSearchUnderRegSearch()
49 { 49 {
50 DecompileAndCompare(@"TestData\AppSearch", "NestedDirSearchUnderRegSearch.msi", "DecompiledNestedDirSearchUnderRegSearch.wxs"); 50 DecompileAndCompare("NestedDirSearchUnderRegSearch.msi", "DecompiledNestedDirSearchUnderRegSearch.wxs", "TestData", "AppSearch");
51 } 51 }
52 52
53 [Fact] 53 [Fact]
@@ -56,31 +56,37 @@ namespace WixToolsetTest.CoreIntegration
56 // The input MSI was not created using standard methods, it is an example of a real world database that needs to be decompiled. 56 // The input MSI was not created using standard methods, it is an example of a real world database that needs to be decompiled.
57 // The Class/@Feature_ column has length of 32, the File/@Attributes has length of 2, 57 // The Class/@Feature_ column has length of 32, the File/@Attributes has length of 2,
58 // and numerous foreign key relationships are missing. 58 // and numerous foreign key relationships are missing.
59 DecompileAndCompare(@"TestData\Class", "OldClassTableDef.msi", "DecompiledOldClassTableDef.wxs"); 59 DecompileAndCompare("OldClassTableDef.msi", "DecompiledOldClassTableDef.wxs", "TestData", "Class");
60 } 60 }
61 61
62 [Fact] 62 [Fact]
63 public void CanDecompileSequenceTables() 63 public void CanDecompileSequenceTables()
64 { 64 {
65 DecompileAndCompare(@"TestData\SequenceTables", "SequenceTables.msi", "DecompiledSequenceTables.wxs"); 65 DecompileAndCompare("SequenceTables.msi", "DecompiledSequenceTables.wxs", "TestData", "SequenceTables");
66 } 66 }
67 67
68 [Fact] 68 [Fact]
69 public void CanDecompileShortcuts() 69 public void CanDecompileShortcuts()
70 { 70 {
71 DecompileAndCompare(@"TestData\Shortcut", "shortcuts.msi", "DecompiledShortcuts.wxs"); 71 DecompileAndCompare("shortcuts.msi", "DecompiledShortcuts.wxs", "TestData", "Shortcut");
72 } 72 }
73 73
74 [Fact] 74 [Fact]
75 public void CanDecompileNullComponent() 75 public void CanDecompileNullComponent()
76 { 76 {
77 DecompileAndCompare(@"TestData\DecompileNullComponent", "example.msi", "Expected.wxs"); 77 DecompileAndCompare("example.msi", "Expected.wxs", "TestData", "DecompileNullComponent");
78 } 78 }
79 79
80 [Fact] 80 [Fact]
81 public void CanDecompileMergeModuleWithTargetDirComponent() 81 public void CanDecompileMergeModuleWithTargetDirComponent()
82 { 82 {
83 DecompileAndCompare(@"TestData\DecompileTargetDirMergeModule", "MergeModule1.msm", "Expected.wxs"); 83 DecompileAndCompare("MergeModule1.msm", "Expected.wxs", "TestData", "DecompileTargetDirMergeModule");
84 }
85
86 [Fact]
87 public void CanDecompileUI()
88 {
89 DecompileAndCompare("ui.msi", "ExpectedUI.wxs", "TestData", "Decompile");
84 } 90 }
85 } 91 }
86} 92}
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/Decompile/ExpectedUI.wxs b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/Decompile/ExpectedUI.wxs
new file mode 100644
index 00000000..0526efc1
--- /dev/null
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/Decompile/ExpectedUI.wxs
@@ -0,0 +1,563 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Package Codepage="1252" UpgradeCode="{4C0904C8-C924-43D8-ACB7-6F3938768BB8}" Manufacturer="Test" ProductCode="{81780708-3CDC-4735-95FF-FAD79E98CA22}" Language="1033" Name="ui" Version="1.0.0.0" InstallerVersion="200">
4 <Binary Id="WixUIWixca" SourceFile="FILE NOT EXPORTED" />
5 <Binary Id="WixUI_Bmp_Banner" SourceFile="FILE NOT EXPORTED" />
6 <Binary Id="WixUI_Bmp_Dialog" SourceFile="FILE NOT EXPORTED" />
7 <Binary Id="WixUI_Ico_Exclam" SourceFile="FILE NOT EXPORTED" />
8 <Binary Id="WixUI_Ico_Info" SourceFile="FILE NOT EXPORTED" />
9 <Binary Id="WixUI_Bmp_New" SourceFile="FILE NOT EXPORTED" />
10 <Binary Id="WixUI_Bmp_Up" SourceFile="FILE NOT EXPORTED" />
11 <Property Id="WixUIRMOption" Value="UseRM" />
12 <Property Id="ARPNOMODIFY" Value="1" />
13 <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
14 <Property Id="WixUI_Mode" Value="InstallDir" />
15 <Property Id="ErrorDialog" Value="ErrorDlg" />
16 <StandardDirectory Id="ProgramFilesFolder">
17 <Directory Id="INSTALLFOLDER" Name="ui">
18 <Component Id="ProductComponent" Guid="{03A6CA75-3469-5323-B60B-5F50CD2C9C04}" Bitness="always32">
19 <File Id="Product.wxs" Name="Product.wxs" KeyPath="yes" Source="SourceDir\File\Product.wxs" />
20 </Component>
21 </Directory>
22 </StandardDirectory>
23 <UI>
24 <Dialog Id="FatalError" X="50" Y="50" Width="370" Height="270" Title="[ProductName] Setup">
25 <Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Finish" TabSkip="no" Default="yes" Cancel="yes">
26 <Publish Event="EndDialog" Value="Exit" />
27 </Control>
28 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="Cancel" Disabled="yes" TabSkip="no" />
29 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" Text="WixUI_Bmp_Dialog" Disabled="yes" TabSkip="no" />
30 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back" Disabled="yes" TabSkip="no" />
31 <Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="80" Text="[ProductName] Setup Wizard ended prematurely because of an error. Your system has not been modified. To install this program at a later time, run Setup Wizard again. Click the Finish button to exit the Setup Wizard." Transparent="yes" NoPrefix="yes" TabSkip="yes" />
32 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Text="{\WixUI_Font_Bigger}[ProductName] Setup Wizard ended prematurely" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
33 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
34 </Dialog>
35 <Dialog Id="UserExit" X="50" Y="50" Width="370" Height="270" Title="[ProductName] Setup">
36 <Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Finish" TabSkip="no" Default="yes" Cancel="yes">
37 <Publish Event="EndDialog" Value="Exit" />
38 </Control>
39 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="Cancel" Disabled="yes" TabSkip="no" />
40 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" Text="WixUI_Bmp_Dialog" Disabled="yes" TabSkip="no" />
41 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back" Disabled="yes" TabSkip="no" />
42 <Control Id="Description" Type="Text" X="135" Y="80" Width="220" Height="80" Text="[ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again. Click the Finish button to exit the Setup Wizard." Transparent="yes" NoPrefix="yes" TabSkip="yes" />
43 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Text="{\WixUI_Font_Bigger}[ProductName] Setup Wizard was interrupted" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
44 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
45 </Dialog>
46 <Dialog Id="ExitDialog" X="50" Y="50" Width="370" Height="270" Title="[ProductName] Setup">
47 <Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Finish" TabSkip="no" Default="yes" Cancel="yes">
48 <Publish Event="EndDialog" Value="Return" />
49 </Control>
50 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="Cancel" Disabled="yes" TabSkip="no" />
51 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" Text="WixUI_Bmp_Dialog" Disabled="yes" TabSkip="no" />
52 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back" Disabled="yes" TabSkip="no" />
53 <Control Id="OptionalCheckBox" Type="CheckBox" X="135" Y="190" Width="220" Height="40" Text="[WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT]" Hidden="yes" ShowCondition="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT AND NOT Installed" Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" CheckBoxValue="1" TabSkip="no" />
54 <Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="40" Text="Click the Finish button to exit the Setup Wizard." Transparent="yes" NoPrefix="yes" TabSkip="yes" />
55 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Text="{\WixUI_Font_Bigger}Completed the [ProductName] Setup Wizard" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
56 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
57 <Control Id="OptionalText" Type="Text" X="135" Y="110" Width="220" Height="80" Text="[WIXUI_EXITDIALOGOPTIONALTEXT]" Hidden="yes" Transparent="yes" NoPrefix="yes" ShowCondition="WIXUI_EXITDIALOGOPTIONALTEXT AND NOT Installed" TabSkip="yes" />
58 </Dialog>
59 <Dialog Id="BrowseDlg" X="50" Y="50" Width="370" Height="270" Title="[ProductName] Setup">
60 <Control Id="PathEdit" Type="PathEdit" X="25" Y="202" Width="320" Height="18" Indirect="yes" Property="_BrowseProperty" TabSkip="no" />
61 <Control Id="OK" Type="PushButton" X="240" Y="243" Width="56" Height="17" Text="OK" TabSkip="no" Default="yes">
62 <Publish Event="SetTargetPath" Value="[_BrowseProperty]" />
63 <Publish Event="EndDialog" Value="Return" />
64 <Publish Event="DoAction" Value="WixUIValidatePath" />
65 <Publish Condition="NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID&lt;&gt;&quot;1&quot;" Event="SpawnDialog" Value="InvalidDirDlg" />
66 </Control>
67 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="Cancel" TabSkip="no" Cancel="yes">
68 <Publish Event="Reset" Value="0" />
69 <Publish Event="EndDialog" Value="Return" />
70 </Control>
71 <Control Id="ComboLabel" Type="Text" X="25" Y="58" Width="44" Height="10" Text="&amp;Look in:" TabSkip="no" />
72 <Control Id="DirectoryCombo" Type="DirectoryCombo" X="70" Y="55" Width="220" Height="80" Indirect="yes" Fixed="yes" Remote="yes" Property="_BrowseProperty" TabSkip="no">
73 <Subscribe Event="IgnoreChange" Attribute="IgnoreChange" />
74 </Control>
75 <Control Id="WixUI_Bmp_Up" Type="PushButton" X="298" Y="55" Width="19" Height="19" Text="WixUI_Bmp_Up" Icon="yes" FixedSize="yes" IconSize="16" ToolTip="Up one level" TabSkip="no">
76 <Publish Event="DirectoryListUp" Value="0" />
77 </Control>
78 <Control Id="NewFolder" Type="PushButton" X="325" Y="55" Width="19" Height="19" Text="WixUI_Bmp_New" Icon="yes" FixedSize="yes" IconSize="16" ToolTip="Create a new folder" TabSkip="no">
79 <Publish Event="DirectoryListNew" Value="0" />
80 </Control>
81 <Control Id="DirectoryList" Type="DirectoryList" X="25" Y="83" Width="320" Height="98" Indirect="yes" Sunken="yes" Property="_BrowseProperty" TabSkip="no" />
82 <Control Id="PathLabel" Type="Text" X="25" Y="190" Width="320" Height="10" Text="&amp;Folder name:" TabSkip="no" />
83 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Text="WixUI_Bmp_Banner" Disabled="yes" TabSkip="no" />
84 <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Text="Browse to the destination folder" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
85 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Text="{\WixUI_Font_Title}Change destination folder" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
86 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
87 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
88 </Dialog>
89 <Dialog Id="DiskCostDlg" X="50" Y="50" Width="370" Height="270" Title="[ProductName] Setup">
90 <Control Id="OK" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="OK" TabSkip="no" Default="yes" Cancel="yes">
91 <Publish Event="EndDialog" Value="Return" />
92 </Control>
93 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Text="WixUI_Bmp_Banner" Disabled="yes" TabSkip="no" />
94 <Control Id="Description" Type="Text" X="20" Y="20" Width="280" Height="20" Text="The disk space required for the installation of the selected features." Transparent="yes" NoPrefix="yes" TabSkip="yes" />
95 <Control Id="Text" Type="Text" X="20" Y="53" Width="330" Height="50" Text="Highlighted volumes do not have enough disk space available for selected features. You can either remove some files from the highlighted volumes, install fewer features, or select different destination drives." TabSkip="yes" />
96 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Text="{\WixUI_Font_Title}Disk Space Requirements" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
97 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
98 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
99 <Control Id="VolumeList" Type="VolumeCostList" X="20" Y="100" Width="330" Height="120" Text="{120}{70}{70}{70}{70}" Sunken="yes" Fixed="yes" Remote="yes" TabSkip="yes" />
100 </Dialog>
101 <Dialog Id="ErrorDlg" X="50" Y="50" Width="270" Height="105" ErrorDialog="yes" Title="[ProductName] Setup">
102 <Control Id="ErrorText" Type="Text" X="48" Y="15" Width="205" Height="60" Text="Information text" NoPrefix="yes" TabSkip="no" />
103 <Control Id="N" Type="PushButton" X="100" Y="80" Width="56" Height="17" Text="&amp;No" TabSkip="yes">
104 <Publish Event="EndDialog" Value="ErrorNo" />
105 </Control>
106 <Control Id="Y" Type="PushButton" X="100" Y="80" Width="56" Height="17" Text="&amp;Yes" TabSkip="yes">
107 <Publish Event="EndDialog" Value="ErrorYes" />
108 </Control>
109 <Control Id="A" Type="PushButton" X="100" Y="80" Width="56" Height="17" Text="Cancel" TabSkip="yes">
110 <Publish Event="EndDialog" Value="ErrorAbort" />
111 </Control>
112 <Control Id="C" Type="PushButton" X="100" Y="80" Width="56" Height="17" Text="Cancel" TabSkip="yes">
113 <Publish Event="EndDialog" Value="ErrorCancel" />
114 </Control>
115 <Control Id="ErrorIcon" Type="Icon" X="15" Y="15" Width="24" Height="24" Text="WixUI_Ico_Info" Disabled="yes" FixedSize="yes" IconSize="32" ToolTip="Information icon" TabSkip="yes" />
116 <Control Id="I" Type="PushButton" X="100" Y="80" Width="56" Height="17" Text="&amp;Ignore" TabSkip="yes">
117 <Publish Event="EndDialog" Value="ErrorIgnore" />
118 </Control>
119 <Control Id="O" Type="PushButton" X="100" Y="80" Width="56" Height="17" Text="OK" TabSkip="yes">
120 <Publish Event="EndDialog" Value="ErrorOk" />
121 </Control>
122 <Control Id="R" Type="PushButton" X="100" Y="80" Width="56" Height="17" Text="&amp;Retry" TabSkip="yes">
123 <Publish Event="EndDialog" Value="ErrorRetry" />
124 </Control>
125 </Dialog>
126 <Dialog Id="FilesInUse" X="50" Y="50" Width="370" Height="270" KeepModeless="yes" Title="[ProductName] Setup">
127 <Control Id="Retry" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="&amp;Retry" TabSkip="no" Default="yes" Cancel="yes">
128 <Publish Event="EndDialog" Value="Retry" />
129 </Control>
130 <Control Id="Ignore" Type="PushButton" X="235" Y="243" Width="56" Height="17" Text="&amp;Ignore" TabSkip="no">
131 <Publish Event="EndDialog" Value="Ignore" />
132 </Control>
133 <Control Id="Exit" Type="PushButton" X="166" Y="243" Width="56" Height="17" Text="E&amp;xit" TabSkip="no">
134 <Publish Event="EndDialog" Value="Exit" />
135 </Control>
136 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Text="WixUI_Bmp_Banner" Disabled="yes" TabSkip="no" />
137 <Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Text="Some files that need to be updated are currently in use." Transparent="yes" NoPrefix="yes" TabSkip="yes" />
138 <Control Id="Text" Type="Text" X="20" Y="55" Width="330" Height="30" Text="The following applications are using files that need to be updated by this setup. Close these applications and then click &amp;Retry to continue setup or Exit to exit it." TabSkip="yes" />
139 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Text="{\WixUI_Font_Title}Files in Use" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
140 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
141 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
142 <Control Id="List" Type="ListBox" X="20" Y="87" Width="330" Height="130" Sunken="yes" Property="FileInUseProcess" TabSkip="yes" />
143 </Dialog>
144 <Dialog Id="MsiRMFilesInUse" X="50" Y="50" Width="370" Height="270" KeepModeless="yes" Title="[ProductName] Setup">
145 <Control Id="OK" Type="PushButton" X="240" Y="243" Width="56" Height="17" Text="OK" TabSkip="no" Default="yes">
146 <Publish Event="EndDialog" Value="Return" />
147 <Publish Condition="WixUIRMOption~=&quot;UseRM&quot;" Event="RMShutdownAndRestart" Value="0" />
148 </Control>
149 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="Cancel" TabSkip="no" Cancel="yes">
150 <Publish Event="EndDialog" Value="Exit" />
151 </Control>
152 <Control Id="ShutdownOption" Type="RadioButtonGroup" X="26" Y="190" Width="305" Height="45" Property="WixUIRMOption" TabSkip="no" />
153 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Text="WixUI_Bmp_Banner" Disabled="yes" TabSkip="no" />
154 <Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Text="Some files that need to be updated are currently in use." Transparent="yes" NoPrefix="yes" TabSkip="yes" />
155 <Control Id="Text" Type="Text" X="20" Y="55" Width="330" Height="45" Text="The following applications are using files that need to be updated by this setup. You can let Setup Wizard close them and attempt to restart them or reboot the machine later." TabSkip="yes" />
156 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Text="{\WixUI_Font_Title}Files in Use" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
157 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
158 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
159 <Control Id="List" Type="ListBox" X="20" Y="100" Width="330" Height="80" Sunken="yes" Property="FileInUseProcess" TabSkip="yes" />
160 </Dialog>
161 <Dialog Id="PrepareDlg" X="50" Y="50" Width="370" Height="270" Modeless="yes" Title="[ProductName] Setup">
162 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="Cancel" TabSkip="no" Default="yes" Cancel="yes">
163 <Publish Event="SpawnDialog" Value="CancelDlg" />
164 </Control>
165 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" Text="WixUI_Bmp_Dialog" Disabled="yes" TabSkip="no" />
166 <Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="20" Text="Please wait while the Setup Wizard prepares to guide you through the installation." Transparent="yes" NoPrefix="yes" TabSkip="yes" />
167 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Text="{\WixUI_Font_Bigger}Welcome to the [ProductName] Setup Wizard" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
168 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
169 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back" Disabled="yes" TabSkip="yes" />
170 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Next" Disabled="yes" TabSkip="yes" />
171 <Control Id="ActionData" Type="Text" X="135" Y="125" Width="220" Height="30" Transparent="yes" NoPrefix="yes" TabSkip="yes">
172 <Subscribe Event="ActionData" Attribute="Text" />
173 </Control>
174 <Control Id="ActionText" Type="Text" X="135" Y="100" Width="220" Height="20" Transparent="yes" NoPrefix="yes" TabSkip="yes">
175 <Subscribe Event="ActionText" Attribute="Text" />
176 </Control>
177 </Dialog>
178 <Dialog Id="CancelDlg" X="50" Y="50" Width="260" Height="85" Title="[ProductName] Setup">
179 <Control Id="No" Type="PushButton" X="132" Y="57" Width="56" Height="17" Text="&amp;No" TabSkip="no" Default="yes" Cancel="yes">
180 <Publish Event="EndDialog" Value="Return" />
181 </Control>
182 <Control Id="Yes" Type="PushButton" X="72" Y="57" Width="56" Height="17" Text="&amp;Yes" TabSkip="no">
183 <Publish Event="EndDialog" Value="Exit" />
184 </Control>
185 <Control Id="Text" Type="Text" X="48" Y="15" Width="194" Height="30" Text="Are you sure you want to cancel [ProductName] installation?" NoPrefix="yes" TabSkip="yes" />
186 <Control Id="Icon" Type="Icon" X="15" Y="15" Width="24" Height="24" Text="WixUI_Ico_Info" Disabled="yes" FixedSize="yes" IconSize="32" ToolTip="Information icon" TabSkip="yes" />
187 </Dialog>
188 <Dialog Id="ProgressDlg" X="50" Y="50" Width="370" Height="270" Modeless="yes" Title="[ProductName] Setup">
189 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="Cancel" TabSkip="no" Default="yes" Cancel="yes">
190 <Publish Event="SpawnDialog" Value="CancelDlg" />
191 </Control>
192 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Text="WixUI_Bmp_Banner" Disabled="yes" TabSkip="no" />
193 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back" Disabled="yes" TabSkip="no" />
194 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Next" Disabled="yes" TabSkip="no" />
195 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
196 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
197 <Control Id="ActionText" Type="Text" X="70" Y="100" Width="285" Height="10" TabSkip="yes">
198 <Subscribe Event="ActionText" Attribute="Text" />
199 </Control>
200 <Control Id="TextInstalling" Type="Text" X="20" Y="65" Width="330" Height="35" Text="Please wait while the Setup Wizard installs [ProductName]." Hidden="yes" NoPrefix="yes" ShowCondition="NOT Installed OR (Installed AND (RESUME OR Preselected) AND NOT PATCH)" TabSkip="yes" />
201 <Control Id="TitleInstalling" Type="Text" X="20" Y="15" Width="330" Height="15" Text="{\WixUI_Font_Title}Installing [ProductName]" Hidden="yes" Transparent="yes" NoPrefix="yes" ShowCondition="NOT Installed OR (Installed AND (RESUME OR Preselected) AND NOT PATCH)" TabSkip="yes" />
202 <Control Id="TextChanging" Type="Text" X="20" Y="65" Width="330" Height="35" Text="Please wait while the Setup Wizard changes [ProductName]." Hidden="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Change&quot;" TabSkip="yes" />
203 <Control Id="TitleChanging" Type="Text" X="20" Y="15" Width="330" Height="15" Text="{\WixUI_Font_Title}Changing [ProductName]" Hidden="yes" Transparent="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Change&quot;" TabSkip="yes" />
204 <Control Id="TextRepairing" Type="Text" X="20" Y="65" Width="330" Height="35" Text="Please wait while the Setup Wizard repairs [ProductName]." Hidden="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Repair&quot;" TabSkip="yes" />
205 <Control Id="TitleRepairing" Type="Text" X="20" Y="15" Width="330" Height="15" Text="{\WixUI_Font_Title}Repairing [ProductName]" Hidden="yes" Transparent="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Repair&quot;" TabSkip="yes" />
206 <Control Id="TextRemoving" Type="Text" X="20" Y="65" Width="330" Height="35" Text="Please wait while the Setup Wizard removes [ProductName]." Hidden="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Remove&quot;" TabSkip="yes" />
207 <Control Id="TitleRemoving" Type="Text" X="20" Y="15" Width="330" Height="15" Text="{\WixUI_Font_Title}Removing [ProductName]" Hidden="yes" Transparent="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Remove&quot;" TabSkip="yes" />
208 <Control Id="TextUpdating" Type="Text" X="20" Y="65" Width="330" Height="35" Text="Please wait while the Setup Wizard updates [ProductName]." Hidden="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Update&quot;" TabSkip="yes" />
209 <Control Id="TitleUpdating" Type="Text" X="20" Y="15" Width="330" Height="15" Text="{\WixUI_Font_Title}Updating [ProductName]" Hidden="yes" Transparent="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Update&quot;" TabSkip="yes" />
210 <Control Id="ProgressBar" Type="ProgressBar" X="20" Y="115" Width="330" Height="10" Text="Progress done" Disabled="yes" ProgressBlocks="yes" TabSkip="yes">
211 <Subscribe Event="SetProgress" Attribute="Progress" />
212 </Control>
213 <Control Id="StatusLabel" Type="Text" X="20" Y="100" Width="50" Height="10" Text="Status:" TabSkip="yes" />
214 </Dialog>
215 <Dialog Id="ResumeDlg" X="50" Y="50" Width="370" Height="270" Title="[ProductName] Setup">
216 <Control Id="Install" Type="PushButton" X="212" Y="243" Width="80" Height="17" Text="&amp;Install" Hidden="yes" ElevationShield="yes" ShowCondition="ALLUSERS" TabSkip="no">
217 <Publish Condition="1 OR CostingComplete = 1" Event="SpawnWaitDialog" Value="WaitForCostingDlg" />
218 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="EndDialog" Value="Return" />
219 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST=&quot;P&quot; OR NOT PROMPTROLLBACKCOST)" Event="SpawnDialog" Value="OutOfRbDiskDlg" />
220 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EndDialog" Value="Return" />
221 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EnableRollback" Value="False" />
222 <Publish Condition="(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST=&quot;F&quot;)" Event="SpawnDialog" Value="OutOfDiskDlg" />
223 </Control>
224 <Control Id="InstallNoShield" Type="PushButton" X="212" Y="243" Width="80" Height="17" Text="&amp;Install" Hidden="yes" ShowCondition="NOT ALLUSERS" TabSkip="no" Default="yes">
225 <Publish Condition="1 OR CostingComplete = 1" Event="SpawnWaitDialog" Value="WaitForCostingDlg" />
226 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="EndDialog" Value="Return" />
227 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST=&quot;P&quot; OR NOT PROMPTROLLBACKCOST)" Event="SpawnDialog" Value="OutOfRbDiskDlg" />
228 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EndDialog" Value="Return" />
229 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EnableRollback" Value="False" />
230 <Publish Condition="(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST=&quot;F&quot;)" Event="SpawnDialog" Value="OutOfDiskDlg" />
231 </Control>
232 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="Cancel" TabSkip="no" Cancel="yes">
233 <Publish Event="SpawnDialog" Value="CancelDlg" />
234 </Control>
235 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" Text="WixUI_Bmp_Dialog" Disabled="yes" TabSkip="no" />
236 <Control Id="Back" Type="PushButton" X="156" Y="243" Width="56" Height="17" Text="&amp;Back" Disabled="yes" TabSkip="no" />
237 <Control Id="Description" Type="Text" X="135" Y="80" Width="220" Height="60" Text="The Setup Wizard will complete the installation of [ProductName] on your computer. Click Install to continue or Cancel to exit the Setup Wizard." Transparent="yes" NoPrefix="yes" TabSkip="yes" />
238 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Text="{\WixUI_Font_Bigger}Resuming the [ProductName] Setup Wizard" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
239 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
240 </Dialog>
241 <Dialog Id="WaitForCostingDlg" X="50" Y="50" Width="260" Height="85" Title="[ProductName] Setup">
242 <Control Id="Return" Type="PushButton" X="102" Y="57" Width="56" Height="17" Text="&amp;Return" TabSkip="no" Default="yes" Cancel="yes">
243 <Publish Event="EndDialog" Value="Exit" />
244 </Control>
245 <Control Id="Text" Type="Text" X="48" Y="15" Width="194" Height="30" Text="Please wait while the installer finishes determining your disk space requirements." TabSkip="yes" />
246 <Control Id="Icon" Type="Icon" X="15" Y="15" Width="24" Height="24" Text="WixUI_Ico_Exclam" Disabled="yes" FixedSize="yes" IconSize="32" ToolTip="Exclamation icon" TabSkip="yes" />
247 </Dialog>
248 <Dialog Id="OutOfRbDiskDlg" X="50" Y="50" Width="370" Height="270" Title="[ProductName] Setup">
249 <Control Id="No" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="&amp;No" TabSkip="no" Default="yes" Cancel="yes">
250 <Publish Event="EndDialog" Value="Return" />
251 </Control>
252 <Control Id="Yes" Type="PushButton" X="240" Y="243" Width="56" Height="17" Text="&amp;Yes" TabSkip="no">
253 <Publish Event="EnableRollback" Value="False" />
254 <Publish Event="EndDialog" Value="Return" />
255 </Control>
256 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Text="WixUI_Bmp_Banner" Disabled="yes" TabSkip="no" />
257 <Control Id="Description" Type="Text" X="20" Y="20" Width="280" Height="20" Text="Disk space required for the installation exceeds available disk space." Transparent="yes" NoPrefix="yes" TabSkip="yes" />
258 <Control Id="Text" Type="Text" X="20" Y="53" Width="330" Height="90" Text="The highlighted volumes do not have enough disk space available for the currently selected features. You can remove some files from the highlighted volumes, install fewer features, or select a different destination drive. Alternatively, you may choose to disable the installer's rollback functionality. Disabling rollback prevents the installer from restoring your computer's original state should the installation be interrupted in any way. Click Yes if you wish to take the risk of disabling rollback." TabSkip="yes" />
259 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Text="{\WixUI_Font_Title}Out of Disk Space" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
260 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
261 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
262 <Control Id="VolumeList" Type="VolumeCostList" X="20" Y="150" Width="330" Height="70" Text="{120}{70}{70}{70}{70}" Sunken="yes" Fixed="yes" Remote="yes" ShowRollbackCost="yes" TabSkip="yes" />
263 </Dialog>
264 <Dialog Id="OutOfDiskDlg" X="50" Y="50" Width="370" Height="270" Title="[ProductName] Setup">
265 <Control Id="OK" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="OK" TabSkip="no" Default="yes" Cancel="yes">
266 <Publish Event="EndDialog" Value="Return" />
267 </Control>
268 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Text="WixUI_Bmp_Banner" Disabled="yes" TabSkip="no" />
269 <Control Id="Description" Type="Text" X="20" Y="20" Width="280" Height="20" Text="Disk space required for the installation exceeds available disk space." Transparent="yes" NoPrefix="yes" TabSkip="yes" />
270 <Control Id="Text" Type="Text" X="20" Y="53" Width="330" Height="60" Text="The highlighted volumes do not have enough disk space available for the currently selected features. You can remove some files from the highlighted volumes, install fewer features, or select a different destination drive." TabSkip="yes" />
271 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Text="{\WixUI_Font_Title}Out of Disk Space" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
272 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
273 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
274 <Control Id="VolumeList" Type="VolumeCostList" X="20" Y="120" Width="330" Height="100" Text="{120}{70}{70}{70}{70}" Sunken="yes" Fixed="yes" Remote="yes" TabSkip="yes" />
275 </Dialog>
276 <Dialog Id="InvalidDirDlg" X="50" Y="50" Width="260" Height="85" Title="[ProductName] Setup">
277 <Control Id="OK" Type="PushButton" X="102" Y="57" Width="56" Height="17" Text="OK" TabSkip="no" Default="yes" Cancel="yes">
278 <Publish Event="EndDialog" Value="Return" />
279 </Control>
280 <Control Id="Text" Type="Text" X="48" Y="22" Width="194" Height="30" Text="Installation directory must be on a local hard drive." TabSkip="yes" />
281 <Control Id="Icon" Type="Icon" X="15" Y="15" Width="24" Height="24" Text="WixUI_Ico_Info" Disabled="yes" FixedSize="yes" IconSize="32" ToolTip="Information icon" TabSkip="yes" />
282 </Dialog>
283 <Dialog Id="WelcomeDlg" X="50" Y="50" Width="370" Height="270" Title="[ProductName] Setup">
284 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Next" TabSkip="no" Default="yes">
285 <Publish Condition="Installed AND PATCH" Property="WixUI_InstallMode" Value="Update" />
286 <Publish Condition="NOT Installed" Event="NewDialog" Value="LicenseAgreementDlg" />
287 <Publish Condition="Installed AND PATCH" Event="NewDialog" Value="VerifyReadyDlg" />
288 </Control>
289 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="Cancel" TabSkip="no" Cancel="yes">
290 <Publish Event="SpawnDialog" Value="CancelDlg" />
291 </Control>
292 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" Text="WixUI_Bmp_Dialog" Disabled="yes" TabSkip="no" />
293 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back" Disabled="yes" TabSkip="no" />
294 <Control Id="Description" Type="Text" X="135" Y="80" Width="220" Height="60" Text="The Setup Wizard will install [ProductName] on your computer. Click Next to continue or Cancel to exit the Setup Wizard." Transparent="yes" NoPrefix="yes" ShowCondition="NOT Installed OR NOT PATCH" HideCondition="Installed AND PATCH" TabSkip="yes" />
295 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Text="{\WixUI_Font_Bigger}Welcome to the [ProductName] Setup Wizard" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
296 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
297 <Control Id="PatchDescription" Type="Text" X="135" Y="80" Width="220" Height="60" Text="The Setup Wizard will update [ProductName] on your computer. Click Next to continue or Cancel to exit the Setup Wizard." Transparent="yes" NoPrefix="yes" ShowCondition="Installed AND PATCH" HideCondition="NOT Installed OR NOT PATCH" TabSkip="yes" />
298 </Dialog>
299 <Dialog Id="LicenseAgreementDlg" X="50" Y="50" Width="370" Height="270" Title="[ProductName] Setup">
300 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Text="WixUI_Bmp_Banner" Disabled="yes" TabSkip="no" />
301 <Control Id="LicenseAcceptedCheckBox" Type="CheckBox" X="20" Y="207" Width="330" Height="18" Text="I &amp;accept the terms in the License Agreement" Property="LicenseAccepted" CheckBoxValue="1" TabSkip="no" />
302 <Control Id="Print" Type="PushButton" X="112" Y="243" Width="56" Height="17" Text="&amp;Print" TabSkip="no">
303 <Publish Event="DoAction" Value="WixUIPrintEula" />
304 </Control>
305 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back" TabSkip="no">
306 <Publish Event="NewDialog" Value="WelcomeDlg" />
307 </Control>
308 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Next" DisableCondition="LicenseAccepted &lt;&gt; &quot;1&quot;" EnableCondition="LicenseAccepted = &quot;1&quot;" TabSkip="no" Default="yes">
309 <Publish Condition="LicenseAccepted = &quot;1&quot;" Event="NewDialog" Value="InstallDirDlg" />
310 <Publish Condition="1 OR CostingComplete = 1" Event="SpawnWaitDialog" Value="WaitForCostingDlg" />
311 </Control>
312 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="Cancel" TabSkip="no" Cancel="yes">
313 <Publish Event="SpawnDialog" Value="CancelDlg" />
314 </Control>
315 <Control Id="LicenseText" Type="ScrollableText" X="20" Y="60" Width="330" Height="140" Text="{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033\deflangfe1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Tahoma;}}&#xD;&#xA;{\*\generator Riched20 6.3.9600}\viewkind4\uc1 &#xD;&#xA;\pard\sa200\sl276\slmult1\f0\fs20 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\par&#xD;&#xA;}&#xD;&#xA;&#xA;" Sunken="yes" TabSkip="no" />
316 <Control Id="Description" Type="Text" X="25" Y="23" Width="340" Height="15" Text="Please read the following license agreement carefully" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
317 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Text="{\WixUI_Font_Title}End-User License Agreement" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
318 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
319 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
320 </Dialog>
321 <Dialog Id="VerifyReadyDlg" X="50" Y="50" Width="370" Height="270" TrackDiskSpace="yes" Title="[ProductName] Setup">
322 <Control Id="Install" Type="PushButton" X="212" Y="243" Width="80" Height="17" Text="&amp;Install" Disabled="yes" Hidden="yes" ElevationShield="yes" ShowCondition="NOT Installed AND ALLUSERS" EnableCondition="NOT Installed" DefaultCondition="NOT Installed" TabSkip="no">
323 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="EndDialog" Value="Return" />
324 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST=&quot;P&quot; OR NOT PROMPTROLLBACKCOST)" Event="SpawnDialog" Value="OutOfRbDiskDlg" />
325 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EndDialog" Value="Return" />
326 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EnableRollback" Value="False" />
327 <Publish Condition="(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST=&quot;F&quot;)" Event="SpawnDialog" Value="OutOfDiskDlg" />
328 </Control>
329 <Control Id="InstallNoShield" Type="PushButton" X="212" Y="243" Width="80" Height="17" Text="&amp;Install" Disabled="yes" Hidden="yes" ShowCondition="NOT Installed AND NOT ALLUSERS" EnableCondition="NOT Installed" DefaultCondition="NOT Installed" TabSkip="no">
330 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="EndDialog" Value="Return" />
331 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST=&quot;P&quot; OR NOT PROMPTROLLBACKCOST)" Event="SpawnDialog" Value="OutOfRbDiskDlg" />
332 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EndDialog" Value="Return" />
333 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EnableRollback" Value="False" />
334 <Publish Condition="(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST=&quot;F&quot;)" Event="SpawnDialog" Value="OutOfDiskDlg" />
335 </Control>
336 <Control Id="Change" Type="PushButton" X="212" Y="243" Width="80" Height="17" Text="&amp;Change" Disabled="yes" Hidden="yes" ElevationShield="yes" ShowCondition="WixUI_InstallMode = &quot;Change&quot; AND ALLUSERS AND (ADDLOCAL OR REMOVE)" EnableCondition="WixUI_InstallMode = &quot;Change&quot;" DefaultCondition="WixUI_InstallMode = &quot;Change&quot;" TabSkip="no">
337 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="EndDialog" Value="Return" />
338 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST=&quot;P&quot; OR NOT PROMPTROLLBACKCOST)" Event="SpawnDialog" Value="OutOfRbDiskDlg" />
339 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EndDialog" Value="Return" />
340 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EnableRollback" Value="False" />
341 <Publish Condition="(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST=&quot;F&quot;)" Event="SpawnDialog" Value="OutOfDiskDlg" />
342 </Control>
343 <Control Id="ChangeNoShield" Type="PushButton" X="212" Y="243" Width="80" Height="17" Text="&amp;Change" Disabled="yes" Hidden="yes" ShowCondition="WixUI_InstallMode = &quot;Change&quot; AND (NOT ALLUSERS OR (NOT ADDLOCAL AND NOT REMOVE))" EnableCondition="WixUI_InstallMode = &quot;Change&quot;" DefaultCondition="WixUI_InstallMode = &quot;Change&quot;" TabSkip="no">
344 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="EndDialog" Value="Return" />
345 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST=&quot;P&quot; OR NOT PROMPTROLLBACKCOST)" Event="SpawnDialog" Value="OutOfRbDiskDlg" />
346 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EndDialog" Value="Return" />
347 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EnableRollback" Value="False" />
348 <Publish Condition="(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST=&quot;F&quot;)" Event="SpawnDialog" Value="OutOfDiskDlg" />
349 </Control>
350 <Control Id="Repair" Type="PushButton" X="212" Y="243" Width="80" Height="17" Text="Re&amp;pair" Disabled="yes" Hidden="yes" ShowCondition="WixUI_InstallMode = &quot;Repair&quot;" EnableCondition="WixUI_InstallMode = &quot;Repair&quot;" DefaultCondition="WixUI_InstallMode = &quot;Repair&quot;" TabSkip="no" Default="yes">
351 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="ReinstallMode" Value="ecmus" />
352 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="Reinstall" Value="All" />
353 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="EndDialog" Value="Return" />
354 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST=&quot;P&quot; OR NOT PROMPTROLLBACKCOST)" Event="SpawnDialog" Value="OutOfRbDiskDlg" />
355 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EndDialog" Value="Return" />
356 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EnableRollback" Value="False" />
357 <Publish Condition="(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST=&quot;F&quot;)" Event="SpawnDialog" Value="OutOfDiskDlg" />
358 </Control>
359 <Control Id="Remove" Type="PushButton" X="212" Y="243" Width="80" Height="17" Text="&amp;Remove" Disabled="yes" Hidden="yes" ElevationShield="yes" ShowCondition="WixUI_InstallMode = &quot;Remove&quot; AND ALLUSERS" EnableCondition="WixUI_InstallMode = &quot;Remove&quot;" TabSkip="no">
360 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="Remove" Value="All" />
361 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="EndDialog" Value="Return" />
362 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST=&quot;P&quot; OR NOT PROMPTROLLBACKCOST)" Event="SpawnDialog" Value="OutOfRbDiskDlg" />
363 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EndDialog" Value="Return" />
364 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EnableRollback" Value="False" />
365 <Publish Condition="(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST=&quot;F&quot;)" Event="SpawnDialog" Value="OutOfDiskDlg" />
366 </Control>
367 <Control Id="RemoveNoShield" Type="PushButton" X="212" Y="243" Width="80" Height="17" Text="&amp;Remove" Disabled="yes" Hidden="yes" ShowCondition="WixUI_InstallMode = &quot;Remove&quot; AND NOT ALLUSERS" EnableCondition="WixUI_InstallMode = &quot;Remove&quot;" TabSkip="no">
368 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="Remove" Value="All" />
369 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="EndDialog" Value="Return" />
370 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST=&quot;P&quot; OR NOT PROMPTROLLBACKCOST)" Event="SpawnDialog" Value="OutOfRbDiskDlg" />
371 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EndDialog" Value="Return" />
372 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EnableRollback" Value="False" />
373 <Publish Condition="(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST=&quot;F&quot;)" Event="SpawnDialog" Value="OutOfDiskDlg" />
374 </Control>
375 <Control Id="Update" Type="PushButton" X="212" Y="243" Width="80" Height="17" Text="&amp;Update" Disabled="yes" Hidden="yes" ElevationShield="yes" ShowCondition="WixUI_InstallMode = &quot;Update&quot; AND ALLUSERS" EnableCondition="WixUI_InstallMode = &quot;Update&quot;" TabSkip="no">
376 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="EndDialog" Value="Return" />
377 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST=&quot;P&quot; OR NOT PROMPTROLLBACKCOST)" Event="SpawnDialog" Value="OutOfRbDiskDlg" />
378 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EndDialog" Value="Return" />
379 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EnableRollback" Value="False" />
380 <Publish Condition="(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST=&quot;F&quot;)" Event="SpawnDialog" Value="OutOfDiskDlg" />
381 </Control>
382 <Control Id="UpdateNoShield" Type="PushButton" X="212" Y="243" Width="80" Height="17" Text="&amp;Update" Disabled="yes" Hidden="yes" ShowCondition="WixUI_InstallMode = &quot;Update&quot; AND NOT ALLUSERS" EnableCondition="WixUI_InstallMode = &quot;Update&quot;" TabSkip="no">
383 <Publish Condition="OutOfDiskSpace &lt;&gt; 1" Event="EndDialog" Value="Return" />
384 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST=&quot;P&quot; OR NOT PROMPTROLLBACKCOST)" Event="SpawnDialog" Value="OutOfRbDiskDlg" />
385 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EndDialog" Value="Return" />
386 <Publish Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST=&quot;D&quot;" Event="EnableRollback" Value="False" />
387 <Publish Condition="(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST=&quot;F&quot;)" Event="SpawnDialog" Value="OutOfDiskDlg" />
388 </Control>
389 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="Cancel" TabSkip="no" Cancel="yes">
390 <Publish Event="SpawnDialog" Value="CancelDlg" />
391 </Control>
392 <Control Id="Back" Type="PushButton" X="156" Y="243" Width="56" Height="17" Text="&amp;Back" DefaultCondition="WixUI_InstallMode = &quot;Remove&quot;" TabSkip="no">
393 <Publish Condition="NOT Installed" Event="NewDialog" Value="InstallDirDlg" />
394 <Publish Condition="Installed AND NOT PATCH" Event="NewDialog" Value="MaintenanceTypeDlg" />
395 <Publish Condition="Installed AND PATCH" Event="NewDialog" Value="WelcomeDlg" />
396 </Control>
397 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Text="WixUI_Bmp_Banner" Disabled="yes" TabSkip="no" />
398 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
399 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
400 <Control Id="InstallTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Text="{\WixUI_Font_Title}Ready to install [ProductName]" Hidden="yes" Transparent="yes" NoPrefix="yes" ShowCondition="NOT Installed" TabSkip="yes" />
401 <Control Id="InstallText" Type="Text" X="25" Y="70" Width="320" Height="80" Text="Click Install to begin the installation. Click Back to review or change any of your installation settings. Click Cancel to exit the wizard." Hidden="yes" ShowCondition="NOT Installed" TabSkip="yes" />
402 <Control Id="ChangeTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Text="{\WixUI_Font_Title}Ready to change [ProductName]" Hidden="yes" Transparent="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Change&quot;" TabSkip="yes" />
403 <Control Id="ChangeText" Type="Text" X="25" Y="70" Width="320" Height="80" Text="Click Change to begin the installation. Click Back to review or change any of your installation settings. Click Cancel to exit the wizard." Hidden="yes" ShowCondition="WixUI_InstallMode = &quot;Change&quot;" TabSkip="yes" />
404 <Control Id="RepairTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Text="{\WixUI_Font_Title}Ready to repair [ProductName]" Hidden="yes" Transparent="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Repair&quot;" TabSkip="yes" />
405 <Control Id="RepairText" Type="Text" X="25" Y="70" Width="320" Height="80" Text="Click Repair to repair the installation of [ProductName]. Click Back to review or change any of your installation settings. Click Cancel to exit the wizard." Hidden="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Repair&quot;" TabSkip="yes" />
406 <Control Id="RemoveTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Text="{\WixUI_Font_Title}Ready to remove [ProductName]" Hidden="yes" Transparent="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Remove&quot;" TabSkip="yes" />
407 <Control Id="RemoveText" Type="Text" X="25" Y="70" Width="320" Height="80" Text="Click Remove to remove [ProductName] from your computer. Click Back to review or change any of your installation settings. Click Cancel to exit the wizard." Hidden="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Remove&quot;" TabSkip="yes" />
408 <Control Id="UpdateTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Text="{\WixUI_Font_Title}Ready to update [ProductName]" Hidden="yes" Transparent="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Update&quot;" TabSkip="yes" />
409 <Control Id="UpdateText" Type="Text" X="25" Y="70" Width="320" Height="80" Text="Click Update to update [ProductName] from your computer. Click Back to review or change any of your installation settings. Click Cancel to exit the wizard." Hidden="yes" NoPrefix="yes" ShowCondition="WixUI_InstallMode = &quot;Update&quot;" TabSkip="yes" />
410 </Dialog>
411 <Dialog Id="InstallDirDlg" X="50" Y="50" Width="370" Height="270" Title="[ProductName] Setup">
412 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Next" TabSkip="no" Default="yes">
413 <Publish Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" />
414 <Publish Condition="NOT WIXUI_DONTVALIDATEPATH" Event="DoAction" Value="WixUIValidatePath" />
415 <Publish Condition="NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID&lt;&gt;&quot;1&quot;" Event="SpawnDialog" Value="InvalidDirDlg" />
416 <Publish Condition="WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID=&quot;1&quot;" Event="NewDialog" Value="VerifyReadyDlg" />
417 </Control>
418 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back" TabSkip="no">
419 <Publish Event="NewDialog" Value="LicenseAgreementDlg" />
420 </Control>
421 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="Cancel" TabSkip="no" Cancel="yes">
422 <Publish Event="SpawnDialog" Value="CancelDlg" />
423 </Control>
424 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Text="WixUI_Bmp_Banner" Disabled="yes" TabSkip="no" />
425 <Control Id="Folder" Type="PathEdit" X="20" Y="100" Width="320" Height="18" Indirect="yes" Property="WIXUI_INSTALLDIR" TabSkip="no" />
426 <Control Id="ChangeFolder" Type="PushButton" X="20" Y="120" Width="56" Height="17" Text="&amp;Change..." TabSkip="no">
427 <Publish Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" />
428 <Publish Event="SpawnDialog" Value="BrowseDlg" />
429 </Control>
430 <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Text="Click Next to install to the default folder or click Change to choose another." Transparent="yes" NoPrefix="yes" TabSkip="yes" />
431 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Text="{\WixUI_Font_Title}Destination Folder" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
432 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
433 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
434 <Control Id="FolderLabel" Type="Text" X="20" Y="60" Width="290" Height="30" Text="Install [ProductName] to:" NoPrefix="yes" TabSkip="yes" />
435 </Dialog>
436 <Dialog Id="MaintenanceTypeDlg" X="50" Y="50" Width="370" Height="270" Title="[ProductName] Setup">
437 <Control Id="ChangeButton" Type="PushButton" X="40" Y="65" Width="80" Height="17" Text="&amp;Change" ToolTip="Change Installation" DisableCondition="ARPNOMODIFY" TabSkip="no" Default="yes">
438 <Publish Property="WixUI_InstallMode" Value="Change" />
439 </Control>
440 <Control Id="RepairButton" Type="PushButton" X="40" Y="118" Width="80" Height="17" Text="Re&amp;pair" ToolTip="Repair Installation" DisableCondition="ARPNOREPAIR" TabSkip="no">
441 <Publish Property="WixUI_InstallMode" Value="Repair" />
442 <Publish Event="NewDialog" Value="VerifyReadyDlg" />
443 </Control>
444 <Control Id="RemoveButton" Type="PushButton" X="40" Y="171" Width="80" Height="17" Text="&amp;Remove" ToolTip="Remove Installation" DisableCondition="ARPNOREMOVE" TabSkip="no">
445 <Publish Property="WixUI_InstallMode" Value="Remove" />
446 <Publish Event="NewDialog" Value="VerifyReadyDlg" />
447 </Control>
448 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back" TabSkip="no">
449 <Publish Event="NewDialog" Value="MaintenanceWelcomeDlg" />
450 </Control>
451 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Next" Disabled="yes" TabSkip="no" />
452 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="Cancel" TabSkip="no" Cancel="yes">
453 <Publish Event="SpawnDialog" Value="CancelDlg" />
454 </Control>
455 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Text="WixUI_Bmp_Banner" Disabled="yes" TabSkip="no" />
456 <Control Id="Description" Type="Text" X="25" Y="23" Width="340" Height="20" Text="Select the operation you wish to perform." Transparent="yes" NoPrefix="yes" TabSkip="yes" />
457 <Control Id="Title" Type="Text" X="15" Y="6" Width="340" Height="15" Text="{\WixUI_Font_Title}Change, repair, or remove installation" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
458 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
459 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
460 <Control Id="ChangeText" Type="Text" X="60" Y="85" Width="280" Height="20" Text="Lets you change the way features are installed." HideCondition="ARPNOMODIFY" TabSkip="yes" />
461 <Control Id="RepairText" Type="Text" X="60" Y="138" Width="280" Height="30" Text="Repairs errors in the most recent installation by fixing missing and corrupt files, shortcuts, and registry entries." HideCondition="ARPNOREPAIR" TabSkip="yes" />
462 <Control Id="RemoveText" Type="Text" X="60" Y="191" Width="280" Height="20" Text="Removes [ProductName] from your computer." NoPrefix="yes" HideCondition="ARPNOREMOVE" TabSkip="yes" />
463 <Control Id="ChangeDisabledText" Type="Text" X="60" Y="85" Width="280" Height="20" Text="[ProductName] has no independently selectable features." Hidden="yes" NoPrefix="yes" ShowCondition="ARPNOMODIFY" TabSkip="yes" />
464 <Control Id="RepairDisabledText" Type="Text" X="60" Y="138" Width="280" Height="30" Text="[ProductName] cannot be repaired." Hidden="yes" NoPrefix="yes" ShowCondition="ARPNOREPAIR" TabSkip="yes" />
465 <Control Id="RemoveDisabledText" Type="Text" X="60" Y="191" Width="280" Height="20" Text="[ProductName] cannot be removed." Hidden="yes" NoPrefix="yes" ShowCondition="ARPNOREMOVE" TabSkip="yes" />
466 </Dialog>
467 <Dialog Id="MaintenanceWelcomeDlg" X="50" Y="50" Width="370" Height="270" Title="[ProductName] Setup">
468 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Next" TabSkip="no" Default="yes">
469 <Publish Event="NewDialog" Value="MaintenanceTypeDlg" />
470 <Publish Condition="1 OR CostingComplete = 1" Event="SpawnWaitDialog" Value="WaitForCostingDlg" />
471 </Control>
472 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="Cancel" TabSkip="no" Cancel="yes">
473 <Publish Event="SpawnDialog" Value="CancelDlg" />
474 </Control>
475 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" Text="WixUI_Bmp_Dialog" Disabled="yes" TabSkip="no" />
476 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back" Disabled="yes" TabSkip="no" />
477 <Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="60" Text="The Setup Wizard allows you to change the way [ProductName] features are installed on your computer or to remove it from your computer. Click Next to continue or Cancel to exit the Setup Wizard." Transparent="yes" NoPrefix="yes" TabSkip="yes" />
478 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Text="{\WixUI_Font_Bigger}Welcome to the [ProductName] Setup Wizard" Transparent="yes" NoPrefix="yes" TabSkip="yes" />
479 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" Disabled="yes" TabSkip="yes" />
480 </Dialog>
481 <RadioButtonGroup Property="WixUIRMOption">
482 <RadioButton Value="UseRM" X="0" Y="0" Width="295" Height="16" Text="&amp;Close the applications and attempt to restart them." />
483 <RadioButton Value="DontUseRM" X="0" Y="20" Width="295" Height="16" Text="&amp;Do not close applications. A reboot will be required." />
484 </RadioButtonGroup>
485 <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
486 <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
487 <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
488 <UIText Id="NewFolder" Value="Folder|New Folder" />
489 <UIText Id="AbsentPath" />
490 <UIText Id="bytes" Value="bytes" />
491 <UIText Id="GB" Value="GB" />
492 <UIText Id="KB" Value="KB" />
493 <UIText Id="MB" Value="MB" />
494 <UIText Id="MenuAbsent" Value="Entire feature will be unavailable" />
495 <UIText Id="MenuAdvertise" Value="Feature will be installed when required" />
496 <UIText Id="MenuAllCD" Value="Entire feature will be installed to run from CD" />
497 <UIText Id="MenuAllLocal" Value="Entire feature will be installed on local hard drive" />
498 <UIText Id="MenuAllNetwork" Value="Entire feature will be installed to run from network" />
499 <UIText Id="MenuCD" Value="Will be installed to run from CD" />
500 <UIText Id="MenuLocal" Value="Will be installed on local hard drive" />
501 <UIText Id="MenuNetwork" Value="Will be installed to run from network" />
502 <UIText Id="ScriptInProgress" Value="Gathering required information..." />
503 <UIText Id="SelAbsentAbsent" Value="This feature will remain uninstalled" />
504 <UIText Id="SelAbsentAdvertise" Value="This feature will be set to be installed when required" />
505 <UIText Id="SelAbsentCD" Value="This feature will be installed to run from CD" />
506 <UIText Id="SelAbsentLocal" Value="This feature will be installed on the local hard drive" />
507 <UIText Id="SelAbsentNetwork" Value="This feature will be installed to run from the network" />
508 <UIText Id="SelAdvertiseAbsent" Value="This feature will become unavailable" />
509 <UIText Id="SelAdvertiseAdvertise" Value="Will be installed when required" />
510 <UIText Id="SelAdvertiseCD" Value="This feature will be available to run from CD" />
511 <UIText Id="SelAdvertiseLocal" Value="This feature will be installed on your local hard drive" />
512 <UIText Id="SelAdvertiseNetwork" Value="This feature will be available to run from the network" />
513 <UIText Id="SelCDAbsent" Value="This feature will be uninstalled completely, you won't be able to run it from CD" />
514 <UIText Id="SelCDAdvertise" Value="This feature will change from run from CD state to set to be installed when required" />
515 <UIText Id="SelCDCD" Value="This feature will remain to be run from CD" />
516 <UIText Id="SelCDLocal" Value="This feature will change from run from CD state to be installed on the local hard drive" />
517 <UIText Id="SelChildCostNeg" Value="This feature frees up [1] on your hard drive." />
518 <UIText Id="SelChildCostPos" Value="This feature requires [1] on your hard drive." />
519 <UIText Id="SelCostPending" Value="Compiling cost for this feature..." />
520 <UIText Id="SelLocalAbsent" Value="This feature will be completely removed" />
521 <UIText Id="SelLocalAdvertise" Value="This feature will be removed from your local hard drive, but will be set to be installed when required" />
522 <UIText Id="SelLocalCD" Value="This feature will be removed from your local hard drive, but will be still available to run from CD" />
523 <UIText Id="SelLocalLocal" Value="This feature will remain on your local hard drive" />
524 <UIText Id="SelLocalNetwork" Value="This feature will be removed from your local hard drive, but will be still available to run from the network" />
525 <UIText Id="SelNetworkAbsent" Value="This feature will be uninstalled completely, you won't be able to run it from the network" />
526 <UIText Id="SelNetworkAdvertise" Value="This feature will change from run from network state to set to be installed when required" />
527 <UIText Id="SelNetworkLocal" Value="This feature will change from run from network state to be installed on the local hard drive" />
528 <UIText Id="SelNetworkNetwork" Value="This feature will remain to be run from the network" />
529 <UIText Id="SelParentCostNegNeg" Value="This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive." />
530 <UIText Id="SelParentCostNegPos" Value="This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive." />
531 <UIText Id="SelParentCostPosNeg" Value="This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive." />
532 <UIText Id="SelParentCostPosPos" Value="This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive." />
533 <UIText Id="TimeRemaining" Value="Time remaining: {[1] minutes }{[2] seconds}" />
534 <UIText Id="VolumeCostAvailable" Value="Available" />
535 <UIText Id="VolumeCostDifference" Value="Difference" />
536 <UIText Id="VolumeCostRequired" Value="Required" />
537 <UIText Id="VolumeCostSize" Value="Disk Size" />
538 <UIText Id="VolumeCostVolume" Value="Volume" />
539 </UI>
540 <CustomAction Id="WixUIValidatePath" Return="ignore" BinaryRef="WixUIWixca" DllEntry="ValidatePath" />
541 <CustomAction Id="WixUIPrintEula" Return="ignore" BinaryRef="WixUIWixca" DllEntry="PrintEula" />
542 <Feature Id="ProductFeature" Title="ui" Level="1">
543 <ComponentRef Id="ProductComponent" />
544 </Feature>
545 <Media Id="1" Cabinet="cab1.cab" />
546 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
547 <AdminUISequence>
548 <Show Dialog="FatalError" OnExit="error" />
549 <Show Dialog="UserExit" OnExit="cancel" />
550 <Show Dialog="ExitDialog" OnExit="success" />
551 </AdminUISequence>
552 <InstallUISequence>
553 <Show Dialog="FatalError" OnExit="error" />
554 <Show Dialog="UserExit" OnExit="cancel" />
555 <Show Dialog="ExitDialog" OnExit="success" />
556 <Show Dialog="PrepareDlg" Before="AppSearch" />
557 <Show Dialog="MaintenanceWelcomeDlg" Condition="Installed AND NOT RESUME AND NOT Preselected AND NOT PATCH" Before="ResumeDlg" />
558 <Show Dialog="ResumeDlg" Condition="Installed AND (RESUME OR Preselected)" Before="WelcomeDlg" />
559 <Show Dialog="WelcomeDlg" Condition="NOT Installed OR PATCH" Before="ProgressDlg" />
560 <Show Dialog="ProgressDlg" Before="ExecuteAction" />
561 </InstallUISequence>
562 </Package>
563</Wix>
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/Decompile/ui.msi b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/Decompile/ui.msi
new file mode 100644
index 00000000..20395fb0
--- /dev/null
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/Decompile/ui.msi
Binary files differ