aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/apply.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/apply.cpp')
-rw-r--r--src/burn/engine/apply.cpp18
1 files changed, 14 insertions, 4 deletions
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(
3049 BURN_EXECUTE_CONTEXT* pContext = (BURN_EXECUTE_CONTEXT*)pvContext; 3049 BURN_EXECUTE_CONTEXT* pContext = (BURN_EXECUTE_CONTEXT*)pvContext;
3050 DWORD dwAllowedResults = pMessage->dwUIHint & MB_TYPEMASK; 3050 DWORD dwAllowedResults = pMessage->dwUIHint & MB_TYPEMASK;
3051 int nResult = IDNOACTION; 3051 int nResult = IDNOACTION;
3052 BOOL fPassthrough = FALSE;
3052 3053
3053 switch (pMessage->type) 3054 switch (pMessage->type)
3054 { 3055 {
@@ -3065,11 +3066,15 @@ static int GenericExecuteMessageHandler(
3065 3066
3066 case GENERIC_EXECUTE_MESSAGE_NETFX_FILES_IN_USE: 3067 case GENERIC_EXECUTE_MESSAGE_NETFX_FILES_IN_USE:
3067 UserExperienceOnExecuteFilesInUse(pContext->pUX, pContext->pExecutingPackage->sczId, pMessage->filesInUse.cFiles, pMessage->filesInUse.rgwzFiles, BOOTSTRAPPER_FILES_IN_USE_TYPE_NETFX, &nResult); // ignore return value. 3068 UserExperienceOnExecuteFilesInUse(pContext->pUX, pContext->pExecutingPackage->sczId, pMessage->filesInUse.cFiles, pMessage->filesInUse.rgwzFiles, BOOTSTRAPPER_FILES_IN_USE_TYPE_NETFX, &nResult); // ignore return value.
3068 dwAllowedResults = BURN_MB_NETFX_FILES_IN_USE; 3069 fPassthrough = TRUE;
3069 break; 3070 break;
3070 } 3071 }
3071 3072
3072 nResult = UserExperienceCheckExecuteResult(pContext->pUX, pContext->fRollback, dwAllowedResults, nResult); 3073 if (!fPassthrough)
3074 {
3075 nResult = UserExperienceCheckExecuteResult(pContext->pUX, pContext->fRollback, dwAllowedResults, nResult);
3076 }
3077
3073 return nResult; 3078 return nResult;
3074} 3079}
3075 3080
@@ -3082,6 +3087,7 @@ static int MsiExecuteMessageHandler(
3082 DWORD dwAllowedResults = pMessage->dwUIHint & MB_TYPEMASK; 3087 DWORD dwAllowedResults = pMessage->dwUIHint & MB_TYPEMASK;
3083 int nResult = IDNOACTION; 3088 int nResult = IDNOACTION;
3084 BOOL fRestartManager = FALSE; 3089 BOOL fRestartManager = FALSE;
3090 BOOL fPassthrough = FALSE;
3085 3091
3086 switch (pMessage->type) 3092 switch (pMessage->type)
3087 { 3093 {
@@ -3107,11 +3113,15 @@ static int MsiExecuteMessageHandler(
3107 __fallthrough; 3113 __fallthrough;
3108 case WIU_MSI_EXECUTE_MESSAGE_MSI_FILES_IN_USE: 3114 case WIU_MSI_EXECUTE_MESSAGE_MSI_FILES_IN_USE:
3109 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. 3115 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.
3110 dwAllowedResults = fRestartManager ? BURN_MB_MSI_RM_FILES_IN_USE : BURN_MB_MSI_FILES_IN_USE; 3116 fPassthrough = TRUE;
3111 break; 3117 break;
3112 } 3118 }
3113 3119
3114 nResult = UserExperienceCheckExecuteResult(pContext->pUX, pContext->fRollback, dwAllowedResults, nResult); 3120 if (!fPassthrough)
3121 {
3122 nResult = UserExperienceCheckExecuteResult(pContext->pUX, pContext->fRollback, dwAllowedResults, nResult);
3123 }
3124
3115 return nResult; 3125 return nResult;
3116} 3126}
3117 3127