diff options
| author | Bob Arnson <bob@firegiant.com> | 2026-07-25 22:01:07 -0400 |
|---|---|---|
| committer | Bob Arnson <github@bobs.org> | 2026-07-26 10:15:34 -0400 |
| commit | ccfda4f4a158b19f61b018b944eb86272f427f55 (patch) | |
| tree | 28460c23c443fff9811b3093243b1557ab4a35d8 | |
| parent | 3b6428b593ff4b8e1ca5e9c2240d539751a96c9a (diff) | |
| download | wix-ccfda4f4a158b19f61b018b944eb86272f427f55.tar.gz wix-ccfda4f4a158b19f61b018b944eb86272f427f55.tar.bz2 wix-ccfda4f4a158b19f61b018b944eb86272f427f55.zip | |
Add UAC shield for fixed-scope per-machine bundles
Fixes https://github.com/wixtoolset/issues/issues/9321
| -rw-r--r-- | src/api/burn/balutil/balinfo.cpp | 23 | ||||
| -rw-r--r-- | src/api/burn/balutil/inc/balinfo.h | 2 | ||||
| -rw-r--r-- | src/ext/Bal/stdbas/Resources/HyperlinkLargeTheme.xml | 6 | ||||
| -rw-r--r-- | src/ext/Bal/stdbas/Resources/HyperlinkSidebarTheme.xml | 6 | ||||
| -rw-r--r-- | src/ext/Bal/stdbas/Resources/HyperlinkTheme.xml | 6 | ||||
| -rw-r--r-- | src/ext/Bal/stdbas/Resources/RtfLargeTheme.xml | 6 | ||||
| -rw-r--r-- | src/ext/Bal/stdbas/Resources/RtfTheme.xml | 6 | ||||
| -rw-r--r-- | src/ext/Bal/stdbas/WixStandardBootstrapperApplication.cpp | 5 |
8 files changed, 37 insertions, 23 deletions
diff --git a/src/api/burn/balutil/balinfo.cpp b/src/api/burn/balutil/balinfo.cpp index ff0dfd9f..bff848c7 100644 --- a/src/api/burn/balutil/balinfo.cpp +++ b/src/api/burn/balutil/balinfo.cpp | |||
| @@ -124,14 +124,32 @@ DAPI_(HRESULT) BalInfoParseFromXml( | |||
| 124 | HRESULT hr = S_OK; | 124 | HRESULT hr = S_OK; |
| 125 | IXMLDOMNode* pNode = NULL; | 125 | IXMLDOMNode* pNode = NULL; |
| 126 | BOOL fXmlFound = FALSE; | 126 | BOOL fXmlFound = FALSE; |
| 127 | LPWSTR scz = NULL; | ||
| 127 | 128 | ||
| 128 | hr = XmlSelectSingleNode(pixdManifest, L"/BootstrapperApplicationData/WixBundleProperties", &pNode); | 129 | hr = XmlSelectSingleNode(pixdManifest, L"/BootstrapperApplicationData/WixBundleProperties", &pNode); |
| 129 | BalExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to select bundle information."); | 130 | BalExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to select bundle information."); |
| 130 | 131 | ||
| 131 | if (fXmlFound) | 132 | if (fXmlFound) |
| 132 | { | 133 | { |
| 133 | hr = XmlGetYesNoAttribute(pNode, L"PerMachine", &pBundle->fPerMachine); | 134 | hr = XmlGetAttributeEx(pNode, L"Scope", &scz); |
| 134 | BalExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to read bundle information per-machine."); | 135 | BalExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to read bundle information scope."); |
| 136 | |||
| 137 | if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"perMachine", -1, TRUE)) | ||
| 138 | { | ||
| 139 | pBundle->scope = BOOTSTRAPPER_PACKAGE_SCOPE_PER_MACHINE; | ||
| 140 | } | ||
| 141 | else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"perUser", -1, TRUE)) | ||
| 142 | { | ||
| 143 | pBundle->scope = BOOTSTRAPPER_PACKAGE_SCOPE_PER_USER; | ||
| 144 | } | ||
| 145 | else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"perUserOrMachine", -1, TRUE)) | ||
| 146 | { | ||
| 147 | pBundle->scope = BOOTSTRAPPER_PACKAGE_SCOPE_PER_USER_OR_PER_MACHINE; | ||
| 148 | } | ||
| 149 | else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"perMachineOrUser", -1, TRUE)) | ||
| 150 | { | ||
| 151 | pBundle->scope = BOOTSTRAPPER_PACKAGE_SCOPE_PER_MACHINE_OR_PER_USER; | ||
| 152 | } | ||
| 135 | 153 | ||
| 136 | hr = XmlGetAttributeEx(pNode, L"DisplayName", &pBundle->sczName); | 154 | hr = XmlGetAttributeEx(pNode, L"DisplayName", &pBundle->sczName); |
| 137 | BalExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to read bundle information display name."); | 155 | BalExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to read bundle information display name."); |
| @@ -150,6 +168,7 @@ DAPI_(HRESULT) BalInfoParseFromXml( | |||
| 150 | BalExitOnFailure(hr, "Failed to parse bal package information from bootstrapper application data."); | 168 | BalExitOnFailure(hr, "Failed to parse bal package information from bootstrapper application data."); |
| 151 | 169 | ||
| 152 | LExit: | 170 | LExit: |
| 171 | ReleaseStr(scz); | ||
| 153 | ReleaseObject(pNode); | 172 | ReleaseObject(pNode); |
| 154 | 173 | ||
| 155 | return hr; | 174 | return hr; |
diff --git a/src/api/burn/balutil/inc/balinfo.h b/src/api/burn/balutil/inc/balinfo.h index 8baee844..110fb688 100644 --- a/src/api/burn/balutil/inc/balinfo.h +++ b/src/api/burn/balutil/inc/balinfo.h | |||
| @@ -93,7 +93,7 @@ typedef struct _BAL_INFO_OVERRIDABLE_VARIABLES | |||
| 93 | 93 | ||
| 94 | typedef struct _BAL_INFO_BUNDLE | 94 | typedef struct _BAL_INFO_BUNDLE |
| 95 | { | 95 | { |
| 96 | BOOL fPerMachine; | 96 | BOOTSTRAPPER_PACKAGE_SCOPE scope; |
| 97 | LPWSTR sczName; | 97 | LPWSTR sczName; |
| 98 | LPWSTR sczLogVariable; | 98 | LPWSTR sczLogVariable; |
| 99 | BAL_INFO_PACKAGES packages; | 99 | BAL_INFO_PACKAGES packages; |
diff --git a/src/ext/Bal/stdbas/Resources/HyperlinkLargeTheme.xml b/src/ext/Bal/stdbas/Resources/HyperlinkLargeTheme.xml index ddf83ad7..a6b62e4e 100644 --- a/src/ext/Bal/stdbas/Resources/HyperlinkLargeTheme.xml +++ b/src/ext/Bal/stdbas/Resources/HyperlinkLargeTheme.xml | |||
| @@ -37,7 +37,7 @@ | |||
| 37 | <Text>#(loc.InstallOptionsButton)</Text> | 37 | <Text>#(loc.InstallOptionsButton)</Text> |
| 38 | <ChangePageAction Page="Options" /> | 38 | <ChangePageAction Page="Options" /> |
| 39 | </Button> | 39 | </Button> |
| 40 | <Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.InstallInstallButton)</Button> | 40 | <Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.InstallInstallButton)</Button> |
| 41 | <Button Name="InstallCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> | 41 | <Button Name="InstallCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> |
| 42 | <Text>#(loc.InstallCancelButton)</Text> | 42 | <Text>#(loc.InstallCancelButton)</Text> |
| 43 | <CloseWindowAction /> | 43 | <CloseWindowAction /> |
| @@ -74,8 +74,8 @@ | |||
| 74 | <Page Name="Modify"> | 74 | <Page Name="Modify"> |
| 75 | <Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label> | 75 | <Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label> |
| 76 | <Button Name="ModifyUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button> | 76 | <Button Name="ModifyUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button> |
| 77 | <Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.ModifyRepairButton)</Button> | 77 | <Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.ModifyRepairButton)</Button> |
| 78 | <Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.ModifyUninstallButton)</Button> | 78 | <Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.ModifyUninstallButton)</Button> |
| 79 | <Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> | 79 | <Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> |
| 80 | <Text>#(loc.ModifyCancelButton)</Text> | 80 | <Text>#(loc.ModifyCancelButton)</Text> |
| 81 | <CloseWindowAction /> | 81 | <CloseWindowAction /> |
diff --git a/src/ext/Bal/stdbas/Resources/HyperlinkSidebarTheme.xml b/src/ext/Bal/stdbas/Resources/HyperlinkSidebarTheme.xml index 583f1037..13c0ca06 100644 --- a/src/ext/Bal/stdbas/Resources/HyperlinkSidebarTheme.xml +++ b/src/ext/Bal/stdbas/Resources/HyperlinkSidebarTheme.xml | |||
| @@ -38,7 +38,7 @@ | |||
| 38 | <Text>#(loc.InstallOptionsButton)</Text> | 38 | <Text>#(loc.InstallOptionsButton)</Text> |
| 39 | <ChangePageAction Page="Options" /> | 39 | <ChangePageAction Page="Options" /> |
| 40 | </Button> | 40 | </Button> |
| 41 | <Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.InstallInstallButton)</Button> | 41 | <Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.InstallInstallButton)</Button> |
| 42 | <Button Name="InstallCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> | 42 | <Button Name="InstallCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> |
| 43 | <Text>#(loc.InstallCancelButton)</Text> | 43 | <Text>#(loc.InstallCancelButton)</Text> |
| 44 | <CloseWindowAction /> | 44 | <CloseWindowAction /> |
| @@ -81,8 +81,8 @@ | |||
| 81 | <ImageControl X="11" Y="11" Width="165" Height="400" ImageFile="logoside.png"/> | 81 | <ImageControl X="11" Y="11" Width="165" Height="400" ImageFile="logoside.png"/> |
| 82 | <Label X="185" Y="50" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label> | 82 | <Label X="185" Y="50" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label> |
| 83 | <Button Name="ModifyUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button> | 83 | <Button Name="ModifyUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button> |
| 84 | <Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.ModifyRepairButton)</Button> | 84 | <Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.ModifyRepairButton)</Button> |
| 85 | <Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.ModifyUninstallButton)</Button> | 85 | <Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.ModifyUninstallButton)</Button> |
| 86 | <Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> | 86 | <Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> |
| 87 | <Text>#(loc.ModifyCancelButton)</Text> | 87 | <Text>#(loc.ModifyCancelButton)</Text> |
| 88 | <CloseWindowAction /> | 88 | <CloseWindowAction /> |
diff --git a/src/ext/Bal/stdbas/Resources/HyperlinkTheme.xml b/src/ext/Bal/stdbas/Resources/HyperlinkTheme.xml index f7a77629..faeb8ce8 100644 --- a/src/ext/Bal/stdbas/Resources/HyperlinkTheme.xml +++ b/src/ext/Bal/stdbas/Resources/HyperlinkTheme.xml | |||
| @@ -31,7 +31,7 @@ | |||
| 31 | <Text>#(loc.InstallOptionsButton)</Text> | 31 | <Text>#(loc.InstallOptionsButton)</Text> |
| 32 | <ChangePageAction Page="Options" /> | 32 | <ChangePageAction Page="Options" /> |
| 33 | </Button> | 33 | </Button> |
| 34 | <Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.InstallInstallButton)</Button> | 34 | <Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.InstallInstallButton)</Button> |
| 35 | <Button Name="InstallCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> | 35 | <Button Name="InstallCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> |
| 36 | <Text>#(loc.InstallCancelButton)</Text> | 36 | <Text>#(loc.InstallCancelButton)</Text> |
| 37 | <CloseWindowAction /> | 37 | <CloseWindowAction /> |
| @@ -68,8 +68,8 @@ | |||
| 68 | <Page Name="Modify"> | 68 | <Page Name="Modify"> |
| 69 | <Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label> | 69 | <Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label> |
| 70 | <Button Name="ModifyUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button> | 70 | <Button Name="ModifyUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button> |
| 71 | <Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.ModifyRepairButton)</Button> | 71 | <Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.ModifyRepairButton)</Button> |
| 72 | <Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.ModifyUninstallButton)</Button> | 72 | <Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.ModifyUninstallButton)</Button> |
| 73 | <Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> | 73 | <Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> |
| 74 | <Text>#(loc.ModifyCancelButton)</Text> | 74 | <Text>#(loc.ModifyCancelButton)</Text> |
| 75 | <CloseWindowAction /> | 75 | <CloseWindowAction /> |
diff --git a/src/ext/Bal/stdbas/Resources/RtfLargeTheme.xml b/src/ext/Bal/stdbas/Resources/RtfLargeTheme.xml index 104ee1c8..138a8398 100644 --- a/src/ext/Bal/stdbas/Resources/RtfLargeTheme.xml +++ b/src/ext/Bal/stdbas/Resources/RtfLargeTheme.xml | |||
| @@ -33,7 +33,7 @@ | |||
| 33 | <Text>#(loc.InstallOptionsButton)</Text> | 33 | <Text>#(loc.InstallOptionsButton)</Text> |
| 34 | <ChangePageAction Page="Options" /> | 34 | <ChangePageAction Page="Options" /> |
| 35 | </Button> | 35 | </Button> |
| 36 | <Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.InstallInstallButton)</Button> | 36 | <Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.InstallInstallButton)</Button> |
| 37 | <Button Name="InstallCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> | 37 | <Button Name="InstallCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> |
| 38 | <Text>#(loc.InstallCancelButton)</Text> | 38 | <Text>#(loc.InstallCancelButton)</Text> |
| 39 | <CloseWindowAction /> | 39 | <CloseWindowAction /> |
| @@ -70,8 +70,8 @@ | |||
| 70 | <Page Name="Modify"> | 70 | <Page Name="Modify"> |
| 71 | <Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label> | 71 | <Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label> |
| 72 | <Button Name="ModifyUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button> | 72 | <Button Name="ModifyUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button> |
| 73 | <Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.ModifyRepairButton)</Button> | 73 | <Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.ModifyRepairButton)</Button> |
| 74 | <Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.ModifyUninstallButton)</Button> | 74 | <Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.ModifyUninstallButton)</Button> |
| 75 | <Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> | 75 | <Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> |
| 76 | <Text>#(loc.ModifyCancelButton)</Text> | 76 | <Text>#(loc.ModifyCancelButton)</Text> |
| 77 | <CloseWindowAction /> | 77 | <CloseWindowAction /> |
diff --git a/src/ext/Bal/stdbas/Resources/RtfTheme.xml b/src/ext/Bal/stdbas/Resources/RtfTheme.xml index 8a8d7ee9..f9db1bc9 100644 --- a/src/ext/Bal/stdbas/Resources/RtfTheme.xml +++ b/src/ext/Bal/stdbas/Resources/RtfTheme.xml | |||
| @@ -31,7 +31,7 @@ | |||
| 31 | <Text>#(loc.InstallOptionsButton)</Text> | 31 | <Text>#(loc.InstallOptionsButton)</Text> |
| 32 | <ChangePageAction Page="Options" /> | 32 | <ChangePageAction Page="Options" /> |
| 33 | </Button> | 33 | </Button> |
| 34 | <Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.InstallInstallButton)</Button> | 34 | <Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.InstallInstallButton)</Button> |
| 35 | <Button Name="InstallCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> | 35 | <Button Name="InstallCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> |
| 36 | <Text>#(loc.InstallCancelButton)</Text> | 36 | <Text>#(loc.InstallCancelButton)</Text> |
| 37 | <CloseWindowAction /> | 37 | <CloseWindowAction /> |
| @@ -68,8 +68,8 @@ | |||
| 68 | <Page Name="Modify"> | 68 | <Page Name="Modify"> |
| 69 | <Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label> | 69 | <Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label> |
| 70 | <Button Name="ModifyUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button> | 70 | <Button Name="ModifyUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button> |
| 71 | <Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.ModifyRepairButton)</Button> | 71 | <Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.ModifyRepairButton)</Button> |
| 72 | <Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine"'>#(loc.ModifyUninstallButton)</Button> | 72 | <Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" ElevationShieldCondition='(WixBundleAuthoredScope = 1 AND NOT WixBundleElevated) OR ((WixBundleAuthoredScope = 2 OR WixBundleAuthoredScope = 3) AND WixStdBAScope = "PerMachine")'>#(loc.ModifyUninstallButton)</Button> |
| 73 | <Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> | 73 | <Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0"> |
| 74 | <Text>#(loc.ModifyCancelButton)</Text> | 74 | <Text>#(loc.ModifyCancelButton)</Text> |
| 75 | <CloseWindowAction /> | 75 | <CloseWindowAction /> |
diff --git a/src/ext/Bal/stdbas/WixStandardBootstrapperApplication.cpp b/src/ext/Bal/stdbas/WixStandardBootstrapperApplication.cpp index e0b03f98..85ff8263 100644 --- a/src/ext/Bal/stdbas/WixStandardBootstrapperApplication.cpp +++ b/src/ext/Bal/stdbas/WixStandardBootstrapperApplication.cpp | |||
| @@ -3967,8 +3967,6 @@ private: | |||
| 3967 | // Enable disable controls per-page. | 3967 | // Enable disable controls per-page. |
| 3968 | if (m_rgdwPageIds[WIXSTDBA_PAGE_INSTALL] == dwNewPageId) // on the "Install" page, ensure the install button is enabled/disabled correctly. | 3968 | if (m_rgdwPageIds[WIXSTDBA_PAGE_INSTALL] == dwNewPageId) // on the "Install" page, ensure the install button is enabled/disabled correctly. |
| 3969 | { | 3969 | { |
| 3970 | ThemeControlElevates(m_pControlInstallButton, (m_Bundle.fPerMachine && !llElevated)); | ||
| 3971 | |||
| 3972 | // If the EULA control exists, show it only if a license URL is provided as well. | 3970 | // If the EULA control exists, show it only if a license URL is provided as well. |
| 3973 | if (m_pControlEulaHyperlink) | 3971 | if (m_pControlEulaHyperlink) |
| 3974 | { | 3972 | { |
| @@ -3982,9 +3980,6 @@ private: | |||
| 3982 | } | 3980 | } |
| 3983 | else if (m_rgdwPageIds[WIXSTDBA_PAGE_MODIFY] == dwNewPageId) | 3981 | else if (m_rgdwPageIds[WIXSTDBA_PAGE_MODIFY] == dwNewPageId) |
| 3984 | { | 3982 | { |
| 3985 | ThemeControlElevates(m_pControlRepairButton, (m_Bundle.fPerMachine && !llElevated)); | ||
| 3986 | ThemeControlElevates(m_pControlUninstallButton, (m_Bundle.fPerMachine && !llElevated)); | ||
| 3987 | |||
| 3988 | ThemeControlEnable(m_pControlRepairButton, !m_fSuppressRepair); | 3983 | ThemeControlEnable(m_pControlRepairButton, !m_fSuppressRepair); |
| 3989 | } | 3984 | } |
| 3990 | else if (m_rgdwPageIds[WIXSTDBA_PAGE_SUCCESS] == dwNewPageId) // on the "Success" page, check if the restart or launch button should be enabled. | 3985 | else if (m_rgdwPageIds[WIXSTDBA_PAGE_SUCCESS] == dwNewPageId) // on the "Success" page, check if the restart or launch button should be enabled. |
