aboutsummaryrefslogtreecommitdiff
path: root/src/libs
diff options
context:
space:
mode:
authorNir Bar <nir.bar@panel-sw.co.il>2022-12-06 13:22:41 +0200
committerSean Hall <r.sean.hall@gmail.com>2022-12-12 21:50:39 -0600
commit50e24e9cf2084b6cb67b5d8fc509163061408bb6 (patch)
tree05c9df57480eb6308c3462c13847b43288f9dbb4 /src/libs
parentc54f3083489827a1e57c6fd7f3d76f62ddc6e85e (diff)
downloadwix-50e24e9cf2084b6cb67b5d8fc509163061408bb6.tar.gz
wix-50e24e9cf2084b6cb67b5d8fc509163061408bb6.tar.bz2
wix-50e24e9cf2084b6cb67b5d8fc509163061408bb6.zip
Use MSI transaction end result to detect whether reboot is needed
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/dutil/WixToolset.DUtil/inc/wiutil.h3
-rw-r--r--src/libs/dutil/WixToolset.DUtil/wiutil.cpp8
2 files changed, 7 insertions, 4 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/inc/wiutil.h b/src/libs/dutil/WixToolset.DUtil/inc/wiutil.h
index 0ddcd893..71f40e8a 100644
--- a/src/libs/dutil/WixToolset.DUtil/inc/wiutil.h
+++ b/src/libs/dutil/WixToolset.DUtil/inc/wiutil.h
@@ -392,7 +392,8 @@ HRESULT DAPI WiuBeginTransaction(
392HRESULT DAPI WiuEndTransaction( 392HRESULT DAPI WiuEndTransaction(
393 __in DWORD dwTransactionState, 393 __in DWORD dwTransactionState,
394 __in DWORD dwLogMode, 394 __in DWORD dwLogMode,
395 __in_z LPCWSTR szLogPath 395 __in_z LPCWSTR szLogPath,
396 __out WIU_RESTART *pRestart
396 ); 397 );
397BOOL DAPI WiuIsMsiTransactionSupported( 398BOOL DAPI WiuIsMsiTransactionSupported(
398 ); 399 );
diff --git a/src/libs/dutil/WixToolset.DUtil/wiutil.cpp b/src/libs/dutil/WixToolset.DUtil/wiutil.cpp
index 4ed0e2c5..dac57a3d 100644
--- a/src/libs/dutil/WixToolset.DUtil/wiutil.cpp
+++ b/src/libs/dutil/WixToolset.DUtil/wiutil.cpp
@@ -317,7 +317,7 @@ extern "C" HRESULT DAPI WiuGetComponentPath(
317 } 317 }
318 318
319 // If the actual path length is greater than or equal to the original buffer 319 // If the actual path length is greater than or equal to the original buffer
320 // allocate a larger buffer and get the path again, just in case we are 320 // allocate a larger buffer and get the path again, just in case we are
321 // missing any part of the path. 321 // missing any part of the path.
322 if (cchCompare <= cch) 322 if (cchCompare <= cch)
323 { 323 {
@@ -369,7 +369,7 @@ extern "C" HRESULT DAPI WiuLocateComponent(
369 } 369 }
370 370
371 // If the actual path length is greater than or equal to the original buffer 371 // If the actual path length is greater than or equal to the original buffer
372 // allocate a larger buffer and get the path again, just in case we are 372 // allocate a larger buffer and get the path again, just in case we are
373 // missing any part of the path. 373 // missing any part of the path.
374 if (cchCompare <= cch) 374 if (cchCompare <= cch)
375 { 375 {
@@ -993,7 +993,8 @@ LExit:
993extern "C" HRESULT DAPI WiuEndTransaction( 993extern "C" HRESULT DAPI WiuEndTransaction(
994 __in DWORD dwTransactionState, 994 __in DWORD dwTransactionState,
995 __in DWORD dwLogMode, 995 __in DWORD dwLogMode,
996 __in_z LPCWSTR szLogPath 996 __in_z LPCWSTR szLogPath,
997 __out WIU_RESTART *pRestart
997 ) 998 )
998{ 999{
999 HRESULT hr = S_OK; 1000 HRESULT hr = S_OK;
@@ -1008,6 +1009,7 @@ extern "C" HRESULT DAPI WiuEndTransaction(
1008 WiuExitOnFailure(hr, "Failed to enable logging for MSI transaction"); 1009 WiuExitOnFailure(hr, "Failed to enable logging for MSI transaction");
1009 1010
1010 er = vpfnMsiEndTransaction(dwTransactionState); 1011 er = vpfnMsiEndTransaction(dwTransactionState);
1012 er = CheckForRestartErrorCode(er, pRestart);
1011 WiuExitOnWin32Error(er, hr, "Failed to end transaction."); 1013 WiuExitOnWin32Error(er, hr, "Failed to end transaction.");
1012 1014
1013LExit: 1015LExit: