summaryrefslogtreecommitdiff
path: root/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-05-03 15:30:50 -0500
committerSean Hall <r.sean.hall@gmail.com>2022-05-04 10:05:21 -0500
commit29f7e00586412163a20e298fbf84505f8a917425 (patch)
tree30257a3544f6982ded159443ebed0eb933f11a51 /src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp
parent41d2c12d60ee84cefc26ec99abb328701883c8f5 (diff)
downloadwix-29f7e00586412163a20e298fbf84505f8a917425.tar.gz
wix-29f7e00586412163a20e298fbf84505f8a917425.tar.bz2
wix-29f7e00586412163a20e298fbf84505f8a917425.zip
Only block shutdown during Apply.
Diffstat (limited to 'src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp')
-rw-r--r--src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp52
1 files changed, 52 insertions, 0 deletions
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
124public: //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
91private: 141private:
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 {