From c7bd5d0b0f676e09d036432ee1afb9bf5dcc4fb5 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Wed, 15 Dec 2021 13:19:28 -0600 Subject: Always pass through the return value for FilesInUse messages. --- src/burn/engine/apply.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/burn/engine/apply.cpp') diff --git a/src/burn/engine/apply.cpp b/src/burn/engine/apply.cpp index 9e552ee0..e2939f40 100644 --- a/src/burn/engine/apply.cpp +++ b/src/burn/engine/apply.cpp @@ -3049,6 +3049,7 @@ static int GenericExecuteMessageHandler( BURN_EXECUTE_CONTEXT* pContext = (BURN_EXECUTE_CONTEXT*)pvContext; DWORD dwAllowedResults = pMessage->dwUIHint & MB_TYPEMASK; int nResult = IDNOACTION; + BOOL fPassthrough = FALSE; switch (pMessage->type) { @@ -3065,11 +3066,15 @@ static int GenericExecuteMessageHandler( case GENERIC_EXECUTE_MESSAGE_NETFX_FILES_IN_USE: UserExperienceOnExecuteFilesInUse(pContext->pUX, pContext->pExecutingPackage->sczId, pMessage->filesInUse.cFiles, pMessage->filesInUse.rgwzFiles, BOOTSTRAPPER_FILES_IN_USE_TYPE_NETFX, &nResult); // ignore return value. - dwAllowedResults = BURN_MB_NETFX_FILES_IN_USE; + fPassthrough = TRUE; break; } - nResult = UserExperienceCheckExecuteResult(pContext->pUX, pContext->fRollback, dwAllowedResults, nResult); + if (!fPassthrough) + { + nResult = UserExperienceCheckExecuteResult(pContext->pUX, pContext->fRollback, dwAllowedResults, nResult); + } + return nResult; } @@ -3082,6 +3087,7 @@ static int MsiExecuteMessageHandler( DWORD dwAllowedResults = pMessage->dwUIHint & MB_TYPEMASK; int nResult = IDNOACTION; BOOL fRestartManager = FALSE; + BOOL fPassthrough = FALSE; switch (pMessage->type) { @@ -3107,11 +3113,15 @@ static int MsiExecuteMessageHandler( __fallthrough; case WIU_MSI_EXECUTE_MESSAGE_MSI_FILES_IN_USE: UserExperienceOnExecuteFilesInUse(pContext->pUX, pContext->pExecutingPackage->sczId, pMessage->msiFilesInUse.cFiles, pMessage->msiFilesInUse.rgwzFiles, fRestartManager ? BOOTSTRAPPER_FILES_IN_USE_TYPE_MSI_RM : BOOTSTRAPPER_FILES_IN_USE_TYPE_MSI, &nResult); // ignore return value. - dwAllowedResults = fRestartManager ? BURN_MB_MSI_RM_FILES_IN_USE : BURN_MB_MSI_FILES_IN_USE; + fPassthrough = TRUE; break; } - nResult = UserExperienceCheckExecuteResult(pContext->pUX, pContext->fRollback, dwAllowedResults, nResult); + if (!fPassthrough) + { + nResult = UserExperienceCheckExecuteResult(pContext->pUX, pContext->fRollback, dwAllowedResults, nResult); + } + return nResult; } -- cgit v1.2.3-55-g6feb