aboutsummaryrefslogtreecommitdiff
path: root/src/libs/dutil
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-12-15 10:48:06 -0600
committerSean Hall <r.sean.hall@gmail.com>2021-12-30 15:00:45 -0600
commit9e2cda60e3852660f235beb5e0af1c746d0045e6 (patch)
tree8fca357e80bf638750fe900c4803a081e16adee8 /src/libs/dutil
parent07599b27596af68f0917c1afc6a748af3a3cda2f (diff)
downloadwix-9e2cda60e3852660f235beb5e0af1c746d0045e6.tar.gz
wix-9e2cda60e3852660f235beb5e0af1c746d0045e6.tar.bz2
wix-9e2cda60e3852660f235beb5e0af1c746d0045e6.zip
FilesInUse messages are too different to unify in the Burn engine.
Fixes #6348
Diffstat (limited to 'src/libs/dutil')
-rw-r--r--src/libs/dutil/WixToolset.DUtil/inc/wiutil.h4
-rw-r--r--src/libs/dutil/WixToolset.DUtil/wiutil.cpp16
2 files changed, 11 insertions, 9 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/inc/wiutil.h b/src/libs/dutil/WixToolset.DUtil/inc/wiutil.h
index 9c2de209..0ddcd893 100644
--- a/src/libs/dutil/WixToolset.DUtil/inc/wiutil.h
+++ b/src/libs/dutil/WixToolset.DUtil/inc/wiutil.h
@@ -9,7 +9,6 @@ extern "C" {
9// constants 9// constants
10 10
11#define IDNOACTION 0 11#define IDNOACTION 0
12#define WIU_MB_OKIGNORECANCELRETRY 0xE
13 12
14#define MAX_DARWIN_KEY 73 13#define MAX_DARWIN_KEY 73
15#define MAX_DARWIN_COLUMN 255 14#define MAX_DARWIN_COLUMN 255
@@ -37,6 +36,7 @@ typedef enum WIU_MSI_EXECUTE_MESSAGE_TYPE
37 WIU_MSI_EXECUTE_MESSAGE_ERROR, 36 WIU_MSI_EXECUTE_MESSAGE_ERROR,
38 WIU_MSI_EXECUTE_MESSAGE_MSI_MESSAGE, 37 WIU_MSI_EXECUTE_MESSAGE_MSI_MESSAGE,
39 WIU_MSI_EXECUTE_MESSAGE_MSI_FILES_IN_USE, 38 WIU_MSI_EXECUTE_MESSAGE_MSI_FILES_IN_USE,
39 WIU_MSI_EXECUTE_MESSAGE_MSI_RM_FILES_IN_USE,
40} WIU_MSI_EXECUTE_MESSAGE_TYPE; 40} WIU_MSI_EXECUTE_MESSAGE_TYPE;
41 41
42 42
@@ -45,7 +45,7 @@ typedef enum WIU_MSI_EXECUTE_MESSAGE_TYPE
45typedef struct _WIU_MSI_EXECUTE_MESSAGE 45typedef struct _WIU_MSI_EXECUTE_MESSAGE
46{ 46{
47 WIU_MSI_EXECUTE_MESSAGE_TYPE type; 47 WIU_MSI_EXECUTE_MESSAGE_TYPE type;
48 DWORD dwAllowedResults; 48 DWORD dwUIHint;
49 49
50 DWORD cData; 50 DWORD cData;
51 LPCWSTR* rgwzData; 51 LPCWSTR* rgwzData;
diff --git a/src/libs/dutil/WixToolset.DUtil/wiutil.cpp b/src/libs/dutil/WixToolset.DUtil/wiutil.cpp
index 7414ac42..da7cffe7 100644
--- a/src/libs/dutil/WixToolset.DUtil/wiutil.cpp
+++ b/src/libs/dutil/WixToolset.DUtil/wiutil.cpp
@@ -113,6 +113,7 @@ static INT SendErrorMessage(
113 ); 113 );
114static INT SendFilesInUseMessage( 114static INT SendFilesInUseMessage(
115 __in WIU_MSI_EXECUTE_CONTEXT* pContext, 115 __in WIU_MSI_EXECUTE_CONTEXT* pContext,
116 __in UINT uiFlags,
116 __in_opt MSIHANDLE hRecord, 117 __in_opt MSIHANDLE hRecord,
117 __in BOOL fRestartManagerRequest 118 __in BOOL fRestartManagerRequest
118 ); 119 );
@@ -1161,7 +1162,7 @@ Trace(REPORT_STANDARD, "MSI install[%x]: %ls", pContext->dwCurrentProgressIndex,
1161 1162
1162 case INSTALLMESSAGE_FILESINUSE: 1163 case INSTALLMESSAGE_FILESINUSE:
1163 case INSTALLMESSAGE_RMFILESINUSE: 1164 case INSTALLMESSAGE_RMFILESINUSE:
1164 nResult = SendFilesInUseMessage(pContext, hRecord, INSTALLMESSAGE_RMFILESINUSE == mt); 1165 nResult = SendFilesInUseMessage(pContext, uiFlags, hRecord, INSTALLMESSAGE_RMFILESINUSE == mt);
1165 break; 1166 break;
1166 1167
1167/* 1168/*
@@ -1401,7 +1402,7 @@ static INT SendMsiMessage(
1401 InitializeMessageData(hRecord, &rgsczData, &cData); 1402 InitializeMessageData(hRecord, &rgsczData, &cData);
1402 1403
1403 message.type = WIU_MSI_EXECUTE_MESSAGE_MSI_MESSAGE; 1404 message.type = WIU_MSI_EXECUTE_MESSAGE_MSI_MESSAGE;
1404 message.dwAllowedResults = uiFlags; 1405 message.dwUIHint = uiFlags;
1405 message.cData = cData; 1406 message.cData = cData;
1406 message.rgwzData = (LPCWSTR*)rgsczData; 1407 message.rgwzData = (LPCWSTR*)rgsczData;
1407 message.msiMessage.mt = mt; 1408 message.msiMessage.mt = mt;
@@ -1445,7 +1446,7 @@ static INT SendErrorMessage(
1445 InitializeMessageData(hRecord, &rgsczData, &cData); 1446 InitializeMessageData(hRecord, &rgsczData, &cData);
1446 1447
1447 message.type = WIU_MSI_EXECUTE_MESSAGE_ERROR; 1448 message.type = WIU_MSI_EXECUTE_MESSAGE_ERROR;
1448 message.dwAllowedResults = uiFlags; 1449 message.dwUIHint = uiFlags;
1449 message.nResultRecommendation = nResult; 1450 message.nResultRecommendation = nResult;
1450 message.cData = cData; 1451 message.cData = cData;
1451 message.rgwzData = (LPCWSTR*)rgsczData; 1452 message.rgwzData = (LPCWSTR*)rgsczData;
@@ -1459,8 +1460,9 @@ static INT SendErrorMessage(
1459 1460
1460static INT SendFilesInUseMessage( 1461static INT SendFilesInUseMessage(
1461 __in WIU_MSI_EXECUTE_CONTEXT* pContext, 1462 __in WIU_MSI_EXECUTE_CONTEXT* pContext,
1463 __in UINT uiFlags,
1462 __in_opt MSIHANDLE hRecord, 1464 __in_opt MSIHANDLE hRecord,
1463 __in BOOL /*fRestartManagerRequest*/ 1465 __in BOOL fRestartManagerRequest
1464 ) 1466 )
1465{ 1467{
1466 INT nResult = IDNOACTION; 1468 INT nResult = IDNOACTION;
@@ -1470,8 +1472,8 @@ static INT SendFilesInUseMessage(
1470 1472
1471 InitializeMessageData(hRecord, &rgsczData, &cData); 1473 InitializeMessageData(hRecord, &rgsczData, &cData);
1472 1474
1473 message.type = WIU_MSI_EXECUTE_MESSAGE_MSI_FILES_IN_USE; 1475 message.type = fRestartManagerRequest ? WIU_MSI_EXECUTE_MESSAGE_MSI_RM_FILES_IN_USE : WIU_MSI_EXECUTE_MESSAGE_MSI_FILES_IN_USE;
1474 message.dwAllowedResults = WIU_MB_OKIGNORECANCELRETRY; 1476 message.dwUIHint = uiFlags;
1475 message.cData = cData; 1477 message.cData = cData;
1476 message.rgwzData = (LPCWSTR*)rgsczData; 1478 message.rgwzData = (LPCWSTR*)rgsczData;
1477 message.msiFilesInUse.cFiles = message.cData; // point the files in use information to the message record information. 1479 message.msiFilesInUse.cFiles = message.cData; // point the files in use information to the message record information.
@@ -1527,7 +1529,7 @@ static INT SendProgressUpdate(
1527#endif 1529#endif
1528 1530
1529 message.type = WIU_MSI_EXECUTE_MESSAGE_PROGRESS; 1531 message.type = WIU_MSI_EXECUTE_MESSAGE_PROGRESS;
1530 message.dwAllowedResults = MB_OKCANCEL; 1532 message.dwUIHint = MB_OKCANCEL;
1531 message.progress.dwPercentage = dwPercentage; 1533 message.progress.dwPercentage = dwPercentage;
1532 nResult = pContext->pfnMessageHandler(&message, pContext->pvContext); 1534 nResult = pContext->pfnMessageHandler(&message, pContext->pvContext);
1533 1535