diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-05-03 15:30:50 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-05-04 10:05:21 -0500 |
commit | 29f7e00586412163a20e298fbf84505f8a917425 (patch) | |
tree | 30257a3544f6982ded159443ebed0eb933f11a51 /src/test | |
parent | 41d2c12d60ee84cefc26ec99abb328701883c8f5 (diff) | |
download | wix-29f7e00586412163a20e298fbf84505f8a917425.tar.gz wix-29f7e00586412163a20e298fbf84505f8a917425.tar.bz2 wix-29f7e00586412163a20e298fbf84505f8a917425.zip |
Only block shutdown during Apply.
Diffstat (limited to 'src/test')
5 files changed, 76 insertions, 11 deletions
diff --git a/src/test/burn/TestBA/TestBA.cs b/src/test/burn/TestBA/TestBA.cs index b4d74341..5f492efd 100644 --- a/src/test/burn/TestBA/TestBA.cs +++ b/src/test/burn/TestBA/TestBA.cs | |||
@@ -531,15 +531,6 @@ namespace WixToolset.Test.BA | |||
531 | this.ShutdownUiThread(); | 531 | this.ShutdownUiThread(); |
532 | } | 532 | } |
533 | 533 | ||
534 | protected override void OnSystemShutdown(SystemShutdownEventArgs args) | ||
535 | { | ||
536 | // Always prevent shutdown. | ||
537 | this.Log("Disallowed system request to shut down the bootstrapper application."); | ||
538 | args.Cancel = true; | ||
539 | |||
540 | this.ShutdownUiThread(); | ||
541 | } | ||
542 | |||
543 | protected override void OnUnregisterBegin(UnregisterBeginEventArgs args) | 534 | protected override void OnUnregisterBegin(UnregisterBeginEventArgs args) |
544 | { | 535 | { |
545 | if (this.forceKeepRegistration && args.RegistrationType == RegistrationType.None) | 536 | if (this.forceKeepRegistration && args.RegistrationType == RegistrationType.None) |
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp b/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp index 7c533fea..3cf994fc 100644 --- a/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp +++ b/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp | |||
@@ -88,6 +88,56 @@ public: // IBAFunctions | |||
88 | return hr; | 88 | return hr; |
89 | } | 89 | } |
90 | 90 | ||
91 | virtual STDMETHODIMP WndProc( | ||
92 | __in HWND hWnd, | ||
93 | __in UINT uMsg, | ||
94 | __in WPARAM /*wParam*/, | ||
95 | __in LPARAM lParam, | ||
96 | __inout BOOL* pfProcessed, | ||
97 | __inout LRESULT* plResult | ||
98 | ) | ||
99 | { | ||
100 | switch (uMsg) | ||
101 | { | ||
102 | case WM_QUERYENDSESSION: | ||
103 | if (BOOTSTRAPPER_DISPLAY_FULL <= m_command.display) | ||
104 | { | ||
105 | DWORD dwEndSession = static_cast<DWORD>(lParam); | ||
106 | if (ENDSESSION_CRITICAL & dwEndSession) | ||
107 | { | ||
108 | // Return false to get the WM_ENDSESSION message so that critical shutdowns can be delayed. | ||
109 | *plResult = FALSE; | ||
110 | *pfProcessed = TRUE; | ||
111 | } | ||
112 | } | ||
113 | break; | ||
114 | case WM_ENDSESSION: | ||
115 | if (BOOTSTRAPPER_DISPLAY_FULL <= m_command.display) | ||
116 | { | ||
117 | ::MessageBoxW(hWnd, L"WM_ENDSESSION", L"BAFunctions WndProc", MB_OK); | ||
118 | } | ||
119 | break; | ||
120 | } | ||
121 | return S_OK; | ||
122 | } | ||
123 | |||
124 | public: //IBootstrapperApplication | ||
125 | virtual STDMETHODIMP OnExecuteBegin( | ||
126 | __in DWORD /*cExecutingPackages*/, | ||
127 | __inout BOOL* pfCancel | ||
128 | ) | ||
129 | { | ||
130 | if (BOOTSTRAPPER_DISPLAY_FULL <= m_command.display) | ||
131 | { | ||
132 | if (IDCANCEL == ::MessageBoxW(m_hwndParent, L"Shutdown requests should be denied right now.", L"OnExecuteBegin", MB_OKCANCEL)) | ||
133 | { | ||
134 | *pfCancel = TRUE; | ||
135 | } | ||
136 | } | ||
137 | |||
138 | return S_OK; | ||
139 | } | ||
140 | |||
91 | private: | 141 | private: |
92 | HRESULT OnShowTheme() | 142 | HRESULT OnShowTheme() |
93 | { | 143 | { |
@@ -138,6 +188,8 @@ private: | |||
138 | 188 | ||
139 | ThemeInitializeWindowClass(m_pBafTheme, &wc, CBafThmUtilTesting::TestingWndProc, m_hModule, BAFTHMUTILTESTING_WINDOW_CLASS); | 189 | ThemeInitializeWindowClass(m_pBafTheme, &wc, CBafThmUtilTesting::TestingWndProc, m_hModule, BAFTHMUTILTESTING_WINDOW_CLASS); |
140 | 190 | ||
191 | Assert(wc.lpszClassName); | ||
192 | |||
141 | // If the theme did not provide an icon, try using the icon from the bundle engine. | 193 | // If the theme did not provide an icon, try using the icon from the bundle engine. |
142 | if (!wc.hIcon) | 194 | if (!wc.hIcon) |
143 | { | 195 | { |
diff --git a/src/test/burn/TestData/Manual/BundleA/BundleA.wxs b/src/test/burn/TestData/Manual/BundleA/BundleA.wxs index 20706b6a..44abc645 100644 --- a/src/test/burn/TestData/Manual/BundleA/BundleA.wxs +++ b/src/test/burn/TestData/Manual/BundleA/BundleA.wxs | |||
@@ -1,4 +1,4 @@ | |||
1 | <!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> | 1 | <!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> |
2 | 2 | ||
3 | 3 | ||
4 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> | 4 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> |
@@ -8,7 +8,10 @@ | |||
8 | <Payload SourceFile="$(var.BafThmUtilTesting.TargetPath)" bal:BAFunctions="yes" /> | 8 | <Payload SourceFile="$(var.BafThmUtilTesting.TargetPath)" bal:BAFunctions="yes" /> |
9 | </BootstrapperApplication> | 9 | </BootstrapperApplication> |
10 | <PackageGroup Id="BundlePackages"> | 10 | <PackageGroup Id="BundlePackages"> |
11 | <MsiPackage Id="PackageA" SourceFile="$(var.PackageA.TargetPath)" /> | 11 | <MsiPackage Id="PackageA" SourceFile="$(var.PackageA.TargetPath)"> |
12 | <MsiProperty Name="FORCERESTARTCA" Value="[FORCERESTARTCA]" /> | ||
13 | </MsiPackage> | ||
12 | </PackageGroup> | 14 | </PackageGroup> |
15 | <Variable Name="FORCERESTARTCA" bal:Overridable="yes" /> | ||
13 | </Fragment> | 16 | </Fragment> |
14 | </Wix> | 17 | </Wix> |
diff --git a/src/test/burn/TestData/Manual/PackageA/PackageA.wixproj b/src/test/burn/TestData/Manual/PackageA/PackageA.wixproj index c9c81c3a..61dc27ab 100644 --- a/src/test/burn/TestData/Manual/PackageA/PackageA.wixproj +++ b/src/test/burn/TestData/Manual/PackageA/PackageA.wixproj | |||
@@ -2,8 +2,12 @@ | |||
2 | <Project Sdk="WixToolset.Sdk"> | 2 | <Project Sdk="WixToolset.Sdk"> |
3 | <PropertyGroup> | 3 | <PropertyGroup> |
4 | <UpgradeCode>{0D803A6E-8090-4174-8DAC-810ECC2B1BBF}</UpgradeCode> | 4 | <UpgradeCode>{0D803A6E-8090-4174-8DAC-810ECC2B1BBF}</UpgradeCode> |
5 | <ProductComponentsRef>true</ProductComponentsRef> | ||
5 | </PropertyGroup> | 6 | </PropertyGroup> |
6 | <ItemGroup> | 7 | <ItemGroup> |
7 | <Compile Include="..\..\Templates\Package.wxs" Link="Package.wxs" /> | 8 | <Compile Include="..\..\Templates\Package.wxs" Link="Package.wxs" /> |
8 | </ItemGroup> | 9 | </ItemGroup> |
10 | <ItemGroup> | ||
11 | <PackageReference Include="WixToolset.Util.wixext" /> | ||
12 | </ItemGroup> | ||
9 | </Project> \ No newline at end of file | 13 | </Project> \ No newline at end of file |
diff --git a/src/test/burn/TestData/Manual/PackageA/ProductA.wxs b/src/test/burn/TestData/Manual/PackageA/ProductA.wxs new file mode 100644 index 00000000..bf1ef152 --- /dev/null +++ b/src/test/burn/TestData/Manual/PackageA/ProductA.wxs | |||
@@ -0,0 +1,15 @@ | |||
1 | <!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> | ||
2 | |||
3 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> | ||
4 | <Fragment> | ||
5 | <ComponentGroup Id="ProductComponents" /> | ||
6 | |||
7 | <Property Id="FORCERESTARTCA" Secure="yes" /> | ||
8 | <Property Id="ForceRestartCA" Value=""shutdown.exe" -r -f -t 0" /> | ||
9 | <CustomAction Id="ForceRestartCA" DllEntry="WixQuietExec" BinaryRef="Wix4UtilCA_X86" Execute="deferred" Return="ignore" /> | ||
10 | |||
11 | <InstallExecuteSequence> | ||
12 | <Custom Action="ForceRestartCA" After="InstallFiles" Condition="FORCERESTARTCA = 1" /> | ||
13 | </InstallExecuteSequence> | ||
14 | </Fragment> | ||
15 | </Wix> | ||