Support bundle updates in WixStdBA.
Fixes https://github.com/wixtoolset/issues/issues/6894.
Bob Arnson committed
Sep 9, 2022 at 21:23 UTC
5059f83d7dccd7221458fca414a0756bb83466a5
11 files changed
+152
-4
src/burn/engine/detect.cpp
+1
-1
@@ -400,7 +400,7 @@ static HRESULT DetectAtomFeedUpdate(
400
APPLICATION_UPDATE_ENTRY* pAppUpdateEntry = &pApupChain->rgEntries[i];
401
APPLICATION_UPDATE_ENCLOSURE* pEnclosure = pAppUpdateEntry->rgEnclosures;
402
403
- if (pEnclosure)
403
+ if (pEnclosure && pEnclosure->rgbDigest && *pEnclosure->rgbDigest)
404
{
405
hr = StrAllocHexEncode(pEnclosure->rgbDigest, pEnclosure->cbDigest, &sczHash);
406
ExitOnFailure(hr, "Failed to encode hash as string.");
src/ext/Bal/wixstdba/Resources/HyperlinkLargeTheme.xml
+5
@@ -12,6 +12,9 @@
12
<ImageControl X="11" Y="11" Width="64" Height="64" ImageFile="logo.png" Visible="yes"/>
13
<Label X="80" Y="11" Width="-11" Height="64" FontId="1" Visible="yes" DisablePrefix="yes">#(loc.Title)</Label>
14
15
+ <Page Name="Loading">
16
+ <Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes" Visible="no" Name="CheckingForUpdatesLabel" />
17
+ </Page>
18
<Page Name="Help">
19
<Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.HelpHeader)</Label>
20
<Label X="11" Y="112" Width="-11" Height="-35" FontId="3" DisablePrefix="yes">#(loc.HelpText)</Label>
@@ -29,6 +32,7 @@
32
<Hypertext Name="EulaHyperlink" X="11" Y="-107" Width="-11" Height="17" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.InstallLicenseLinkText)</Hypertext>
33
<Label Name="InstallVersion" X="11" Y="-73" Width="246" Height="17" FontId="3" DisablePrefix="yes" VisibleCondition="WixStdBAShowVersion">#(loc.InstallVersion)</Label>
34
<Checkbox Name="EulaAcceptCheckbox" X="-11" Y="-41" Width="260" Height="17" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.InstallAcceptCheckbox)</Checkbox>
35
+ <Button Name="InstallUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button>
36
<Button Name="OptionsButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" VisibleCondition="NOT WixStdBASuppressOptionsUI">
37
<Text>#(loc.InstallOptionsButton)</Text>
38
<ChangePageAction Page="Options" />
@@ -65,6 +69,7 @@
69
</Page>
70
<Page Name="Modify">
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>
73
<Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.ModifyRepairButton)</Button>
74
<Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ModifyUninstallButton)</Button>
75
<Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">
src/ext/Bal/wixstdba/Resources/HyperlinkSidebarTheme.xml
+5
@@ -19,6 +19,9 @@
19
<CloseWindowAction />
20
</Button>
21
</Page>
22
+ <Page Name="Loading">
23
+ <Label X="185" Y="50" Width="-11" Height="30" FontId="2" DisablePrefix="yes" Visible="no" Name="CheckingForUpdatesLabel" />
24
+ </Page>
25
<Page Name="Install">
26
<Label X="185" Y="11" Width="-11" Height="32" FontId="1" DisablePrefix="yes">#(loc.Title)</Label>
27
<ImageControl X="11" Y="11" Width="165" Height="400" ImageFile="logoside.png"/>
@@ -30,6 +33,7 @@
33
<Hypertext Name="EulaHyperlink" X="185" Y="-111" Width="-11" Height="17" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.InstallLicenseLinkText)</Hypertext>
34
<Label Name="InstallVersion" X="185" Y="-81" Width="-11" Height="17" FontId="3" DisablePrefix="yes" VisibleCondition="WixStdBAShowVersion">#(loc.InstallVersion)</Label>
35
<Checkbox Name="EulaAcceptCheckbox" X="185" Y="-51" Width="-11" Height="17" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.InstallAcceptCheckbox)</Checkbox>
36
+ <Button Name="InstallUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button>
37
<Button Name="OptionsButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" VisibleCondition="NOT WixStdBASuppressOptionsUI">
38
<Text>#(loc.InstallOptionsButton)</Text>
39
<ChangePageAction Page="Options" />
@@ -72,6 +76,7 @@
76
<Label X="185" Y="11" Width="-11" Height="32" FontId="1" DisablePrefix="yes">#(loc.Title)</Label>
77
<ImageControl X="11" Y="11" Width="165" Height="400" ImageFile="logoside.png"/>
78
<Label X="185" Y="50" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label>
79
+ <Button Name="ModifyUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button>
80
<Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.ModifyRepairButton)</Button>
81
<Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ModifyUninstallButton)</Button>
82
<Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">
src/ext/Bal/wixstdba/Resources/HyperlinkTheme.wxl
+2
@@ -5,6 +5,8 @@
5
<WixLocalization Culture="en-us" Language="1033" xmlns="http://wixtoolset.org/schemas/v4/wxl">
6
<String Id="Caption">[WixBundleName] Setup</String>
7
<String Id="Title">[WixBundleName]</String>
8
+ <String Id="CheckingForUpdatesLabel">Checking for updates</String>
9
+ <String Id="UpdateButton">&Update to version [WixStdBAUpdateAvailable]</String>
10
<String Id="InstallHeader">Welcome</String>
11
<String Id="InstallMessage">Setup will install [WixBundleName] on your computer. Click Install to continue or Cancel to exit.</String>
12
<String Id="InstallMessageOptions">Setup will install [WixBundleName] on your computer. Click Install to continue, Options to set installation options, or Cancel to exit.</String>
src/ext/Bal/wixstdba/Resources/HyperlinkTheme.xml
+5
@@ -20,9 +20,13 @@
20
<CloseWindowAction />
21
</Button>
22
</Page>
23
+ <Page Name="Loading">
24
+ <Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes" Visible="no" Name="CheckingForUpdatesLabel" />
25
+ </Page>
26
<Page Name="Install">
27
<Hypertext Name="EulaHyperlink" X="11" Y="121" Width="-11" Height="51" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.InstallLicenseLinkText)</Hypertext>
28
<Checkbox Name="EulaAcceptCheckbox" X="-11" Y="-41" Width="260" Height="17" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.InstallAcceptCheckbox)</Checkbox>
29
+ <Button Name="InstallUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button>
30
<Button Name="OptionsButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" VisibleCondition="NOT WixStdBASuppressOptionsUI">
31
<Text>#(loc.InstallOptionsButton)</Text>
32
<ChangePageAction Page="Options" />
@@ -59,6 +63,7 @@
63
</Page>
64
<Page Name="Modify">
65
<Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label>
66
+ <Button Name="ModifyUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button>
67
<Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.ModifyRepairButton)</Button>
68
<Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ModifyUninstallButton)</Button>
69
<Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">
src/ext/Bal/wixstdba/Resources/RtfLargeTheme.xml
+5
@@ -20,11 +20,15 @@
20
<CloseWindowAction />
21
</Button>
22
</Page>
23
+ <Page Name="Loading">
24
+ <Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes" Visible="no" Name="CheckingForUpdatesLabel" />
25
+ </Page>
26
<Page Name="Install">
27
<Label X="11" Y="80" Width="-11" Height="-70" TabStop="no" FontId="2" HexStyle="800000" DisablePrefix="yes" />
28
<Richedit Name="EulaRichedit" X="12" Y="81" Width="-12" Height="-71" TabStop="yes" FontId="0" />
29
<Label Name="InstallVersion" X="11" Y="-41" Width="210" Height="17" FontId="3" DisablePrefix="yes" VisibleCondition="WixStdBAShowVersion">#(loc.InstallVersion)</Label>
30
<Checkbox Name="EulaAcceptCheckbox" X="-11" Y="-41" Width="260" Height="17" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.InstallAcceptCheckbox)</Checkbox>
31
+ <Button Name="InstallUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button>
32
<Button Name="OptionsButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" VisibleCondition="NOT WixStdBASuppressOptionsUI">
33
<Text>#(loc.InstallOptionsButton)</Text>
34
<ChangePageAction Page="Options" />
@@ -61,6 +65,7 @@
65
</Page>
66
<Page Name="Modify">
67
<Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label>
68
+ <Button Name="ModifyUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button>
69
<Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.ModifyRepairButton)</Button>
70
<Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ModifyUninstallButton)</Button>
71
<Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">
src/ext/Bal/wixstdba/Resources/RtfTheme.wxl
+2
@@ -5,6 +5,8 @@
5
<WixLocalization Culture="en-us" Language="1033" xmlns="http://wixtoolset.org/schemas/v4/wxl">
6
<String Id="Caption">[WixBundleName] Setup</String>
7
<String Id="Title">[WixBundleName]</String>
8
+ <String Id="CheckingForUpdatesLabel">Checking for updates</String>
9
+ <String Id="UpdateButton">&Update to version [WixStdBAUpdateAvailable]</String>
10
<String Id="InstallVersion">Version [WixBundleVersion]</String>
11
<String Id="ConfirmCancelMessage">Are you sure you want to cancel?</String>
12
<String Id="ExecuteUpgradeRelatedBundleMessage">Previous version</String>
src/ext/Bal/wixstdba/Resources/RtfTheme.xml
+5
@@ -20,9 +20,13 @@
20
<CloseWindowAction />
21
</Button>
22
</Page>
23
+ <Page Name="Loading">
24
+ <Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes" Visible="no" Name="CheckingForUpdatesLabel" />
25
+ </Page>
26
<Page Name="Install">
27
<Richedit Name="EulaRichedit" X="11" Y="80" Width="-11" Height="-70" TabStop="yes" FontId="0" HexStyle="800000" />
28
<Checkbox Name="EulaAcceptCheckbox" X="-11" Y="-41" Width="260" Height="17" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.InstallAcceptCheckbox)</Checkbox>
29
+ <Button Name="InstallUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button>
30
<Button Name="OptionsButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" VisibleCondition="NOT WixStdBASuppressOptionsUI">
31
<Text>#(loc.InstallOptionsButton)</Text>
32
<ChangePageAction Page="Options" />
@@ -59,6 +63,7 @@
63
</Page>
64
<Page Name="Modify">
65
<Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label>
66
+ <Button Name="ModifyUpdateButton" X="11" Y="-11" Width="200" Height="23" TabStop="yes" FontId="0" EnableCondition="WixStdBAUpdateAvailable" HideWhenDisabled="yes">#(loc.UpdateButton)</Button>
67
<Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.ModifyRepairButton)</Button>
68
<Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ModifyUninstallButton)</Button>
69
<Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">
src/ext/Bal/wixstdba/WixStandardBootstrapperApplication.cpp
+119
-2
@@ -23,6 +23,7 @@ static const LPCWSTR WIXSTDBA_VARIABLE_LANGUAGE_ID = L"WixStdBALanguageId";
23
static const LPCWSTR WIXSTDBA_VARIABLE_RESTART_REQUIRED = L"WixStdBARestartRequired";
24
static const LPCWSTR WIXSTDBA_VARIABLE_SHOW_VERSION = L"WixStdBAShowVersion";
25
static const LPCWSTR WIXSTDBA_VARIABLE_SUPPRESS_OPTIONS_UI = L"WixStdBASuppressOptionsUI";
26
+static const LPCWSTR WIXSTDBA_VARIABLE_UPDATE_AVAILABLE = L"WixStdBAUpdateAvailable";
27
28
enum WIXSTDBA_STATE
29
{
@@ -98,6 +99,11 @@ enum WIXSTDBA_CONTROL
99
WIXSTDBA_CONTROL_REPAIR_BUTTON,
100
WIXSTDBA_CONTROL_UNINSTALL_BUTTON,
101
102
+ // Updates
103
+ WIXSTDBA_CONTROL_CHECKING_FOR_UPDATES_LABEL,
104
+ WIXSTDBA_CONTROL_INSTALL_UPDATE_BUTTON,
105
+ WIXSTDBA_CONTROL_MODIFY_UPDATE_BUTTON,
106
+
107
// Progress page
108
WIXSTDBA_CONTROL_CACHE_PROGRESS_PACKAGE_TEXT,
109
WIXSTDBA_CONTROL_CACHE_PROGRESS_BAR,
@@ -342,6 +348,70 @@ public: // IBootstrapperApplication
348
}
349
350
351
+ virtual STDMETHODIMP OnDetectUpdateBegin(
352
+ __in_z LPCWSTR wzUpdateLocation,
353
+ __inout BOOL* pfCancel,
354
+ __inout BOOL* pfSkip
355
+ )
356
+ {
357
+#ifdef DEBUG
358
+ BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "WIXSTDBA: OnDetectUpdateBegin() - update location: %ls", wzUpdateLocation);
359
+#endif
360
+
361
+ // Try update detection only if we have a potential update source and are in full UI mode.
362
+ *pfSkip = !wzUpdateLocation
363
+ || !*wzUpdateLocation
364
+ || BOOTSTRAPPER_DISPLAY_FULL != m_command.display;
365
+
366
+ ThemeShowControl(m_pControlCheckingForUpdatesLabel, *pfSkip ? SW_HIDE : SW_SHOW);
367
+
368
+ return __super::OnDetectUpdateBegin(wzUpdateLocation, pfCancel, pfSkip);
369
+ }
370
+
371
+
372
+ virtual STDMETHODIMP OnDetectUpdate(
373
+ __in_z LPCWSTR wzUpdateLocation,
374
+ __in DWORD64 dw64Size,
375
+ __in_z_opt LPCWSTR wzHash,
376
+ __in BOOTSTRAPPER_UPDATE_HASH_TYPE hashAlgorithm,
377
+ __in LPCWSTR wzUpdateVersion,
378
+ __in_z LPCWSTR wzTitle,
379
+ __in_z LPCWSTR wzSummary,
380
+ __in_z LPCWSTR wzContentType,
381
+ __in_z LPCWSTR wzContent,
382
+ __inout BOOL* pfCancel,
383
+ __inout BOOL* pfStopProcessingUpdates
384
+ )
385
+ {
386
+ HRESULT hr = S_OK;
387
+ int nResult = 0;
388
+
389
+ hr = VerCompareStringVersions(m_sczBundleVersion, wzUpdateVersion, TRUE/*fStrict*/, &nResult);
390
+ BalExitOnFailure(hr, "Failed to compare bundle version: %ls to update version: %ls.", m_sczBundleVersion, wzUpdateVersion);
391
+
392
+ // Burn sends the feed in descending version order so we need only the first one.
393
+ *pfStopProcessingUpdates = TRUE;
394
+
395
+ if (0 <= nResult)
396
+ {
397
+ BalLog(BOOTSTRAPPER_LOG_LEVEL_VERBOSE, "WIXSTDBA: Update version: %ls is a match or downgrade for bundle version: %ls.", wzUpdateVersion, m_sczBundleVersion);
398
+ }
399
+ else
400
+ {
401
+ BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "WIXSTDBA: Update v%ls for bundle v%ls available from: %ls.", wzUpdateVersion, m_sczBundleVersion, wzUpdateLocation);
402
+
403
+ hr = BalSetVersionVariable(WIXSTDBA_VARIABLE_UPDATE_AVAILABLE, wzUpdateVersion);
404
+ BalExitOnFailure(hr, "Failed to set WixStdBAUpdateAvailable value: %ls.", wzUpdateVersion);
405
+
406
+ hr = m_pEngine->SetUpdate(NULL, wzUpdateLocation, dw64Size, hashAlgorithm, wzHash);
407
+ BalExitOnFailure(hr, "Failed to set update location: %ls.", wzUpdateLocation);
408
+ }
409
+
410
+ LExit:
411
+ return __super::OnDetectUpdate(wzUpdateLocation, dw64Size, wzHash, hashAlgorithm, wzUpdateVersion, wzTitle, wzSummary, wzContentType, wzContent, pfCancel, pfStopProcessingUpdates);
412
+ }
413
+
414
+
415
virtual STDMETHODIMP OnDetectComplete(
416
__in HRESULT hrStatus,
417
__in BOOL /*fEligibleForCleanup*/
@@ -3741,10 +3811,10 @@ private:
3811
3812
m_state = state;
3813
3744
- // If our install is at the end (success or failure) and we're not showing full UI or
3814
+ // If our install is at the end (success or failure) and we're not showing full UI or not updating or
3815
// we successfully installed the prerequisite(s) and either no restart is required or can automatically restart
3816
// then exit.
3747
- if ((WIXSTDBA_STATE_APPLIED <= m_state && BOOTSTRAPPER_DISPLAY_FULL > m_command.display) ||
3817
+ if ((WIXSTDBA_STATE_APPLIED <= m_state && (BOOTSTRAPPER_DISPLAY_FULL > m_command.display || BOOTSTRAPPER_ACTION_UPDATE_REPLACE == m_plannedAction)) ||
3818
(WIXSTDBA_STATE_APPLIED == m_state && m_fPrereq && (!m_fRestartRequired || m_fShouldRestart && m_fAllowRestart)))
3819
{
3820
// Quietly exit.
@@ -4037,6 +4107,15 @@ private:
4107
}
4108
4109
4110
+ //
4111
+ // OnClickUpdateButton - start the update process.
4112
+ //
4113
+ void OnClickUpdateButton()
4114
+ {
4115
+ this->OnPlan(BOOTSTRAPPER_ACTION_UPDATE_REPLACE);
4116
+ }
4117
+
4118
+
4119
//
4120
// OnClickCloseButton - close the application.
4121
//
@@ -4263,6 +4342,13 @@ private:
4342
pResults->lResult = 0;
4343
ExitFunction();
4344
4345
+ case WIXSTDBA_CONTROL_INSTALL_UPDATE_BUTTON:
4346
+ case WIXSTDBA_CONTROL_MODIFY_UPDATE_BUTTON:
4347
+ OnClickUpdateButton();
4348
+ fProcessed = TRUE;
4349
+ pResults->lResult = 0;
4350
+ ExitFunction();
4351
+
4352
case WIXSTDBA_CONTROL_LAUNCH_BUTTON:
4353
OnClickLaunchButton();
4354
fProcessed = TRUE;
@@ -4381,6 +4467,10 @@ LExit:
4467
__in HRESULT hrStatus
4468
)
4469
{
4470
+#ifdef DEBUG
4471
+ BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "WIXSTDBA: SetState() - setting state to %u with status 0x%08x.", state, hrStatus);
4472
+#endif
4473
+
4474
if (FAILED(hrStatus))
4475
{
4476
m_hrFinal = hrStatus;
@@ -4786,6 +4876,27 @@ public:
4876
m_pControlUninstallButton = NULL;
4877
++pAssignControl;
4878
4879
+ pAssignControl->wId = WIXSTDBA_CONTROL_CHECKING_FOR_UPDATES_LABEL;
4880
+ pAssignControl->wzName = L"CheckingForUpdatesLabel";
4881
+ pAssignControl->ppControl = &m_pControlCheckingForUpdatesLabel;
4882
+ pAssignControl->dwAutomaticBehaviorType = dwAutomaticBehaviorType;
4883
+ m_pControlCheckingForUpdatesLabel = NULL;
4884
+ ++pAssignControl;
4885
+
4886
+ pAssignControl->wId = WIXSTDBA_CONTROL_INSTALL_UPDATE_BUTTON;
4887
+ pAssignControl->wzName = L"InstallUpdateButton";
4888
+ pAssignControl->ppControl = &m_pControlInstallUpdateButton;
4889
+ pAssignControl->dwAutomaticBehaviorType = THEME_CONTROL_AUTOMATIC_BEHAVIOR_ALL;
4890
+ m_pControlInstallUpdateButton = NULL;
4891
+ ++pAssignControl;
4892
+
4893
+ pAssignControl->wId = WIXSTDBA_CONTROL_MODIFY_UPDATE_BUTTON;
4894
+ pAssignControl->wzName = L"ModifyUpdateButton";
4895
+ pAssignControl->ppControl = &m_pControlModifyUpdateButton;
4896
+ pAssignControl->dwAutomaticBehaviorType = THEME_CONTROL_AUTOMATIC_BEHAVIOR_ALL;
4897
+ m_pControlModifyUpdateButton = NULL;
4898
+ ++pAssignControl;
4899
+
4900
pAssignControl->wId = WIXSTDBA_CONTROL_CACHE_PROGRESS_PACKAGE_TEXT;
4901
pAssignControl->wzName = L"CacheProgressPackageText";
4902
pAssignControl->ppControl = &m_pControlCacheProgressPackageText;
@@ -4929,6 +5040,7 @@ public:
5040
ReleaseStr(m_sczLicenseUrl);
5041
ReleaseStr(m_sczBundleVersion);
5042
ReleaseStr(m_sczAfterForcedRestartPackage);
5043
+
5044
ReleaseNullObject(m_pEngine);
5045
}
5046
@@ -4966,6 +5078,11 @@ private:
5078
const THEME_CONTROL* m_pControlRepairButton;
5079
const THEME_CONTROL* m_pControlUninstallButton;
5080
5081
+ // Update/loading pages
5082
+ const THEME_CONTROL* m_pControlCheckingForUpdatesLabel;
5083
+ const THEME_CONTROL* m_pControlInstallUpdateButton;
5084
+ const THEME_CONTROL* m_pControlModifyUpdateButton;
5085
+
5086
// Progress page
5087
const THEME_CONTROL* m_pControlCacheProgressPackageText;
5088
const THEME_CONTROL* m_pControlCacheProgressbar;
src/test/burn/TestBA/TestBA.cs
+1
-1
@@ -220,7 +220,7 @@ namespace WixToolset.Test.BA
220
if (!this.UpdateAvailable && this.Engine.CompareVersions(e.Version, this.Version) > 0)
221
{
222
this.Log(String.Format("Selected update v{0}", e.Version));
223
- this.Engine.SetUpdate(null, e.UpdateLocation, e.Size, UpdateHashType.None, null);
223
+ this.Engine.SetUpdate(null, e.UpdateLocation, e.Size, e.HashAlgorithm, e.Hash);
224
this.UpdateAvailable = true;
225
}
226
}
src/test/burn/TestData/WixStdBaTests/BundleA/Bundle.wxs
+2
@@ -4,6 +4,8 @@
4
<Bundle Name="~$(var.TestGroupName) - $(var.BundleName)" Version="$(var.Version)" UpgradeCode="$(var.UpgradeCode)" Compressed="yes" bal:CommandLineVariables="caseSensitive">
5
<Log Prefix="~$(var.TestGroupName)_$(var.BundleName)" />
6
7
+ <Update Location='http://wixtoolset.org/releases/feed/v3.14' />
8
+
9
<Variable Name="TestGroupName" Value="$(var.TestGroupName)" />
10
11
<BootstrapperApplication>