diff options
Diffstat (limited to 'src')
67 files changed, 1240 insertions, 1108 deletions
diff --git a/src/ca/CloseApps.cpp b/src/ca/CloseApps.cpp index a3f28ed3..63be353c 100644 --- a/src/ca/CloseApps.cpp +++ b/src/ca/CloseApps.cpp | |||
| @@ -4,10 +4,8 @@ | |||
| 4 | 4 | ||
| 5 | #define DEFAULT_PROCESS_EXIT_WAIT_TIME 5000 | 5 | #define DEFAULT_PROCESS_EXIT_WAIT_TIME 5000 |
| 6 | 6 | ||
| 7 | // WixCloseApplication Target Description Condition Attributes Sequence | ||
| 8 | |||
| 9 | // structs | 7 | // structs |
| 10 | LPCWSTR wzQUERY_CLOSEAPPS = L"SELECT `WixCloseApplication`, `Target`, `Description`, `Condition`, `Attributes`, `Property`, `TerminateExitCode`, `Timeout` FROM `WixCloseApplication` ORDER BY `Sequence`"; | 8 | LPCWSTR wzQUERY_CLOSEAPPS = L"SELECT `Wix4CloseApplication`, `Target`, `Description`, `Condition`, `Attributes`, `Property`, `TerminateExitCode`, `Timeout` FROM `Wix4CloseApplication` ORDER BY `Sequence`"; |
| 11 | enum eQUERY_CLOSEAPPS { QCA_ID = 1, QCA_TARGET, QCA_DESCRIPTION, QCA_CONDITION, QCA_ATTRIBUTES, QCA_PROPERTY, QCA_TERMINATEEXITCODE, QCA_TIMEOUT }; | 9 | enum eQUERY_CLOSEAPPS { QCA_ID = 1, QCA_TARGET, QCA_DESCRIPTION, QCA_CONDITION, QCA_ATTRIBUTES, QCA_PROPERTY, QCA_TERMINATEEXITCODE, QCA_TIMEOUT }; |
| 12 | 10 | ||
| 13 | // CloseApplication.Attributes | 11 | // CloseApplication.Attributes |
| @@ -294,14 +292,14 @@ extern "C" UINT __stdcall WixCloseApplications( | |||
| 294 | // loop through all the objects to be secured | 292 | // loop through all the objects to be secured |
| 295 | // | 293 | // |
| 296 | hr = WcaOpenExecuteView(wzQUERY_CLOSEAPPS, &hView); | 294 | hr = WcaOpenExecuteView(wzQUERY_CLOSEAPPS, &hView); |
| 297 | ExitOnFailure(hr, "failed to open view on WixCloseApplication table"); | 295 | ExitOnFailure(hr, "failed to open view on Wix4CloseApplication table"); |
| 298 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) | 296 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) |
| 299 | { | 297 | { |
| 300 | hr = WcaGetRecordString(hRec, QCA_ID, &pwzId); | 298 | hr = WcaGetRecordString(hRec, QCA_ID, &pwzId); |
| 301 | ExitOnFailure(hr, "failed to get id from WixCloseApplication table"); | 299 | ExitOnFailure(hr, "failed to get id from Wix4CloseApplication table"); |
| 302 | 300 | ||
| 303 | hr = WcaGetRecordString(hRec, QCA_CONDITION, &pwzCondition); | 301 | hr = WcaGetRecordString(hRec, QCA_CONDITION, &pwzCondition); |
| 304 | ExitOnFailure(hr, "failed to get condition from WixCloseApplication table"); | 302 | ExitOnFailure(hr, "failed to get condition from Wix4CloseApplication table"); |
| 305 | 303 | ||
| 306 | if (pwzCondition && *pwzCondition) | 304 | if (pwzCondition && *pwzCondition) |
| 307 | { | 305 | { |
| @@ -309,7 +307,7 @@ extern "C" UINT __stdcall WixCloseApplications( | |||
| 309 | if (MSICONDITION_ERROR == condition) | 307 | if (MSICONDITION_ERROR == condition) |
| 310 | { | 308 | { |
| 311 | hr = E_INVALIDARG; | 309 | hr = E_INVALIDARG; |
| 312 | ExitOnFailure(hr, "failed to process condition for WixCloseApplication '%ls'", pwzId); | 310 | ExitOnFailure(hr, "failed to process condition for Wix4CloseApplication '%ls'", pwzId); |
| 313 | } | 311 | } |
| 314 | else if (MSICONDITION_FALSE == condition) | 312 | else if (MSICONDITION_FALSE == condition) |
| 315 | { | 313 | { |
| @@ -318,16 +316,16 @@ extern "C" UINT __stdcall WixCloseApplications( | |||
| 318 | } | 316 | } |
| 319 | 317 | ||
| 320 | hr = WcaGetRecordFormattedString(hRec, QCA_TARGET, &pwzTarget); | 318 | hr = WcaGetRecordFormattedString(hRec, QCA_TARGET, &pwzTarget); |
| 321 | ExitOnFailure(hr, "failed to get target from WixCloseApplication table"); | 319 | ExitOnFailure(hr, "failed to get target from Wix4CloseApplication table"); |
| 322 | 320 | ||
| 323 | hr = WcaGetRecordFormattedString(hRec, QCA_DESCRIPTION, &pwzDescription); | 321 | hr = WcaGetRecordFormattedString(hRec, QCA_DESCRIPTION, &pwzDescription); |
| 324 | ExitOnFailure(hr, "failed to get description from WixCloseApplication table"); | 322 | ExitOnFailure(hr, "failed to get description from Wix4CloseApplication table"); |
| 325 | 323 | ||
| 326 | hr = WcaGetRecordInteger(hRec, QCA_ATTRIBUTES, reinterpret_cast<int*>(&dwAttributes)); | 324 | hr = WcaGetRecordInteger(hRec, QCA_ATTRIBUTES, reinterpret_cast<int*>(&dwAttributes)); |
| 327 | ExitOnFailure(hr, "failed to get attributes from WixCloseApplication table"); | 325 | ExitOnFailure(hr, "failed to get attributes from Wix4CloseApplication table"); |
| 328 | 326 | ||
| 329 | hr = WcaGetRecordFormattedString(hRec, QCA_PROPERTY, &pwzProperty); | 327 | hr = WcaGetRecordFormattedString(hRec, QCA_PROPERTY, &pwzProperty); |
| 330 | ExitOnFailure(hr, "failed to get property from WixCloseApplication table"); | 328 | ExitOnFailure(hr, "failed to get property from Wix4CloseApplication table"); |
| 331 | 329 | ||
| 332 | hr = WcaGetRecordInteger(hRec, QCA_TERMINATEEXITCODE, reinterpret_cast<int*>(&dwTerminateExitCode)); | 330 | hr = WcaGetRecordInteger(hRec, QCA_TERMINATEEXITCODE, reinterpret_cast<int*>(&dwTerminateExitCode)); |
| 333 | if (S_FALSE == hr) | 331 | if (S_FALSE == hr) |
| @@ -335,7 +333,7 @@ extern "C" UINT __stdcall WixCloseApplications( | |||
| 335 | dwTerminateExitCode = 0; | 333 | dwTerminateExitCode = 0; |
| 336 | hr = S_OK; | 334 | hr = S_OK; |
| 337 | } | 335 | } |
| 338 | ExitOnFailure(hr, "failed to get timeout from WixCloseApplication table"); | 336 | ExitOnFailure(hr, "failed to get timeout from Wix4CloseApplication table"); |
| 339 | 337 | ||
| 340 | hr = WcaGetRecordInteger(hRec, QCA_TIMEOUT, reinterpret_cast<int*>(&dwTimeout)); | 338 | hr = WcaGetRecordInteger(hRec, QCA_TIMEOUT, reinterpret_cast<int*>(&dwTimeout)); |
| 341 | if (S_FALSE == hr) | 339 | if (S_FALSE == hr) |
| @@ -343,7 +341,7 @@ extern "C" UINT __stdcall WixCloseApplications( | |||
| 343 | dwTimeout = DEFAULT_PROCESS_EXIT_WAIT_TIME; | 341 | dwTimeout = DEFAULT_PROCESS_EXIT_WAIT_TIME; |
| 344 | hr = S_OK; | 342 | hr = S_OK; |
| 345 | } | 343 | } |
| 346 | ExitOnFailure(hr, "failed to get timeout from WixCloseApplication table"); | 344 | ExitOnFailure(hr, "failed to get timeout from Wix4CloseApplication table"); |
| 347 | 345 | ||
| 348 | // Before trying any changes to the machine, prompt if requested. | 346 | // Before trying any changes to the machine, prompt if requested. |
| 349 | if (dwAttributes & CLOSEAPP_ATTRIBUTE_PROMPTTOCONTINUE) | 347 | if (dwAttributes & CLOSEAPP_ATTRIBUTE_PROMPTTOCONTINUE) |
| @@ -433,8 +431,8 @@ extern "C" UINT __stdcall WixCloseApplications( | |||
| 433 | { | 431 | { |
| 434 | Assert(0 < cCloseApps); | 432 | Assert(0 < cCloseApps); |
| 435 | 433 | ||
| 436 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"WixCloseApplicationsDeferred"), pwzCustomActionData, cCloseApps * COST_CLOSEAPP); | 434 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"CloseApplicationsDeferred"), pwzCustomActionData, cCloseApps * COST_CLOSEAPP); |
| 437 | ExitOnFailure(hr, "failed to schedule WixCloseApplicationsDeferred action"); | 435 | ExitOnFailure(hr, "failed to schedule CloseApplicationsDeferred action"); |
| 438 | } | 436 | } |
| 439 | 437 | ||
| 440 | LExit: | 438 | LExit: |
diff --git a/src/ca/FormatFiles.cpp b/src/ca/FormatFiles.cpp index 6a816700..464b92d6 100644 --- a/src/ca/FormatFiles.cpp +++ b/src/ca/FormatFiles.cpp | |||
| @@ -27,9 +27,9 @@ extern "C" UINT __stdcall WixSchedFormatFiles( | |||
| 27 | PSCZ sczRollbackCustomActionData; | 27 | PSCZ sczRollbackCustomActionData; |
| 28 | 28 | ||
| 29 | LPCWSTR wzQuery = | 29 | LPCWSTR wzQuery = |
| 30 | L"SELECT `WixFormatFiles`.`Binary_`, `WixFormatFiles`.`File_`, `File`.`Component_` " | 30 | L"SELECT `Wix4FormatFile`.`Binary_`, `Wix4FormatFile`.`File_`, `File`.`Component_` " |
| 31 | L"FROM `WixFormatFiles`, `File` " | 31 | L"FROM `Wix4FormatFile`, `File` " |
| 32 | L"WHERE `WixFormatFiles`.`File_` = `File`.`File`"; | 32 | L"WHERE `Wix4FormatFile`.`File_` = `File`.`File`"; |
| 33 | enum eQuery { eqBinaryKey = 1, eqFileKey, eqComponentKey }; | 33 | enum eQuery { eqBinaryKey = 1, eqFileKey, eqComponentKey }; |
| 34 | 34 | ||
| 35 | // initialize | 35 | // initialize |
| @@ -38,7 +38,7 @@ extern "C" UINT __stdcall WixSchedFormatFiles( | |||
| 38 | 38 | ||
| 39 | // query and loop through all the files | 39 | // query and loop through all the files |
| 40 | hr = WcaOpenExecuteView(wzQuery, &hView); | 40 | hr = WcaOpenExecuteView(wzQuery, &hView); |
| 41 | ExitOnFailure(hr, "Failed to open view on WixFormatFiles table"); | 41 | ExitOnFailure(hr, "Failed to open view on Wix4FormatFile table"); |
| 42 | 42 | ||
| 43 | DWORD cFiles = 0; | 43 | DWORD cFiles = 0; |
| 44 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) | 44 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) |
| @@ -100,19 +100,19 @@ extern "C" UINT __stdcall WixSchedFormatFiles( | |||
| 100 | { | 100 | { |
| 101 | hr = S_OK; | 101 | hr = S_OK; |
| 102 | } | 102 | } |
| 103 | ExitOnFailure(hr, "Failure occurred while processing WixFormatFiles table"); | 103 | ExitOnFailure(hr, "Failure occurred while processing Wix4FormatFile table"); |
| 104 | 104 | ||
| 105 | // schedule deferred CAs if there's anything to do | 105 | // schedule deferred CAs if there's anything to do |
| 106 | if (sczRollbackCustomActionData && *sczRollbackCustomActionData) | 106 | if (sczRollbackCustomActionData && *sczRollbackCustomActionData) |
| 107 | { | 107 | { |
| 108 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"WixRollbackFormatFiles"), sczRollbackCustomActionData, cFiles * COST_FILEFORMATTING); | 108 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackFormatFiles"), sczRollbackCustomActionData, cFiles * COST_FILEFORMATTING); |
| 109 | ExitOnFailure(hr, "Failed to schedule WixRollbackFormatFiles"); | 109 | ExitOnFailure(hr, "Failed to schedule RollbackFormatFiles"); |
| 110 | } | 110 | } |
| 111 | 111 | ||
| 112 | if (sczExecCustomActionData && *sczExecCustomActionData) | 112 | if (sczExecCustomActionData && *sczExecCustomActionData) |
| 113 | { | 113 | { |
| 114 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"WixExecFormatFiles"), sczExecCustomActionData, cFiles * COST_FILEFORMATTING); | 114 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecFormatFiles"), sczExecCustomActionData, cFiles * COST_FILEFORMATTING); |
| 115 | ExitOnFailure(hr, "Failed to schedule WixExecFormatFiles"); | 115 | ExitOnFailure(hr, "Failed to schedule ExecFormatFiles"); |
| 116 | } | 116 | } |
| 117 | 117 | ||
| 118 | LExit: | 118 | LExit: |
diff --git a/src/ca/RemoveFoldersEx.cpp b/src/ca/RemoveFoldersEx.cpp index 194c6662..ce64c2c2 100644 --- a/src/ca/RemoveFoldersEx.cpp +++ b/src/ca/RemoveFoldersEx.cpp | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | #include "precomp.h" | 3 | #include "precomp.h" |
| 4 | 4 | ||
| 5 | LPCWSTR vcsRemoveFolderExQuery = L"SELECT `WixRemoveFolderEx`, `Component_`, `Property`, `InstallMode` FROM `WixRemoveFolderEx`"; | 5 | LPCWSTR vcsRemoveFolderExQuery = L"SELECT `Wix4RemoveFolderEx`, `Component_`, `Property`, `InstallMode` FROM `Wix4RemoveFolderEx`"; |
| 6 | enum eRemoveFolderExQuery { rfqId = 1, rfqComponent, rfqProperty, feqMode }; | 6 | enum eRemoveFolderExQuery { rfqId = 1, rfqComponent, rfqProperty, feqMode }; |
| 7 | 7 | ||
| 8 | static HRESULT RecursePath( | 8 | static HRESULT RecursePath( |
| @@ -81,10 +81,10 @@ static HRESULT RecursePath( | |||
| 81 | 81 | ||
| 82 | // Add the row to remove any files and another row to remove the folder. | 82 | // Add the row to remove any files and another row to remove the folder. |
| 83 | hr = WcaAddTempRecord(phTable, phColumns, L"RemoveFile", NULL, 1, 5, L"RfxFiles", wzComponent, L"*.*", sczProperty, iMode); | 83 | hr = WcaAddTempRecord(phTable, phColumns, L"RemoveFile", NULL, 1, 5, L"RfxFiles", wzComponent, L"*.*", sczProperty, iMode); |
| 84 | ExitOnFailure(hr, "Failed to add row to remove all files for WixRemoveFolderEx row: %S under path:", wzId, wzPath); | 84 | ExitOnFailure(hr, "Failed to add row to remove all files for Wix4RemoveFolderEx row: %S under path:", wzId, wzPath); |
| 85 | 85 | ||
| 86 | hr = WcaAddTempRecord(phTable, phColumns, L"RemoveFile", NULL, 1, 5, L"RfxFolder", wzComponent, NULL, sczProperty, iMode); | 86 | hr = WcaAddTempRecord(phTable, phColumns, L"RemoveFile", NULL, 1, 5, L"RfxFolder", wzComponent, NULL, sczProperty, iMode); |
| 87 | ExitOnFailure(hr, "Failed to add row to remove folder for WixRemoveFolderEx row: %S under path: %S", wzId, wzPath); | 87 | ExitOnFailure(hr, "Failed to add row to remove folder for Wix4RemoveFolderEx row: %S under path: %S", wzId, wzPath); |
| 88 | 88 | ||
| 89 | LExit: | 89 | LExit: |
| 90 | if (INVALID_HANDLE_VALUE != hFind) | 90 | if (INVALID_HANDLE_VALUE != hFind) |
| @@ -122,15 +122,15 @@ extern "C" UINT WINAPI WixRemoveFoldersEx( | |||
| 122 | ExitOnFailure(hr, "Failed to initialize WixRemoveFoldersEx."); | 122 | ExitOnFailure(hr, "Failed to initialize WixRemoveFoldersEx."); |
| 123 | 123 | ||
| 124 | // anything to do? | 124 | // anything to do? |
| 125 | if (S_OK != WcaTableExists(L"WixRemoveFolderEx")) | 125 | if (S_OK != WcaTableExists(L"Wix4RemoveFolderEx")) |
| 126 | { | 126 | { |
| 127 | WcaLog(LOGMSG_STANDARD, "WixRemoveFolderEx table doesn't exist, so there are no folders to remove."); | 127 | WcaLog(LOGMSG_STANDARD, "Wix4RemoveFolderEx table doesn't exist, so there are no folders to remove."); |
| 128 | ExitFunction(); | 128 | ExitFunction(); |
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | // query and loop through all the remove folders exceptions | 131 | // query and loop through all the remove folders exceptions |
| 132 | hr = WcaOpenExecuteView(vcsRemoveFolderExQuery, &hView); | 132 | hr = WcaOpenExecuteView(vcsRemoveFolderExQuery, &hView); |
| 133 | ExitOnFailure(hr, "Failed to open view on WixRemoveFolderEx table"); | 133 | ExitOnFailure(hr, "Failed to open view on Wix4RemoveFolderEx table"); |
| 134 | 134 | ||
| 135 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) | 135 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) |
| 136 | { | 136 | { |
| @@ -173,7 +173,7 @@ extern "C" UINT WINAPI WixRemoveFoldersEx( | |||
| 173 | { | 173 | { |
| 174 | hr = S_OK; | 174 | hr = S_OK; |
| 175 | } | 175 | } |
| 176 | ExitOnFailure(hr, "Failure occured while processing WixRemoveFolderEx table"); | 176 | ExitOnFailure(hr, "Failure occured while processing Wix4RemoveFolderEx table"); |
| 177 | 177 | ||
| 178 | LExit: | 178 | LExit: |
| 179 | if (hColumns) | 179 | if (hColumns) |
diff --git a/src/ca/RestartManager.cpp b/src/ca/RestartManager.cpp index 3cfc07ee..c31819c1 100644 --- a/src/ca/RestartManager.cpp +++ b/src/ca/RestartManager.cpp | |||
| @@ -18,8 +18,8 @@ enum eRmuResourceType | |||
| 18 | }; | 18 | }; |
| 19 | 19 | ||
| 20 | LPCWSTR vcsRestartResourceQuery = | 20 | LPCWSTR vcsRestartResourceQuery = |
| 21 | L"SELECT `WixRestartResource`.`WixRestartResource`, `WixRestartResource`.`Component_`, `WixRestartResource`.`Resource`, `WixRestartResource`.`Attributes` " | 21 | L"SELECT `Wix4RestartResource`.`Wix4RestartResource`, `Wix4RestartResource`.`Component_`, `Wix4RestartResource`.`Resource`, `Wix4RestartResource`.`Attributes` " |
| 22 | L"FROM `WixRestartResource`"; | 22 | L"FROM `Wix4RestartResource`"; |
| 23 | enum eRestartResourceQuery { rrqRestartResource = 1, rrqComponent, rrqResource, rrqAttributes }; | 23 | enum eRestartResourceQuery { rrqRestartResource = 1, rrqComponent, rrqResource, rrqAttributes }; |
| 24 | 24 | ||
| 25 | /******************************************************************** | 25 | /******************************************************************** |
| @@ -58,9 +58,9 @@ extern "C" UINT __stdcall WixRegisterRestartResources( | |||
| 58 | ExitOnFailure(hr, "Failed to initialize."); | 58 | ExitOnFailure(hr, "Failed to initialize."); |
| 59 | 59 | ||
| 60 | // Skip if the table doesn't exist. | 60 | // Skip if the table doesn't exist. |
| 61 | if (S_OK != WcaTableExists(L"WixRestartResource")) | 61 | if (S_OK != WcaTableExists(L"Wix4RestartResource")) |
| 62 | { | 62 | { |
| 63 | WcaLog(LOGMSG_STANDARD, "The RestartResource table does not exist; there are no resources to register with Restart Manager."); | 63 | WcaLog(LOGMSG_STANDARD, "The Wix4RestartResource table does not exist; there are no resources to register with Restart Manager."); |
| 64 | ExitFunction(); | 64 | ExitFunction(); |
| 65 | } | 65 | } |
| 66 | 66 | ||
diff --git a/src/ca/TouchFile.cpp b/src/ca/TouchFile.cpp index 1c40a3eb..e704f922 100644 --- a/src/ca/TouchFile.cpp +++ b/src/ca/TouchFile.cpp | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | #include "precomp.h" | 3 | #include "precomp.h" |
| 4 | 4 | ||
| 5 | LPCWSTR vcsTouchFileQuery = L"SELECT `WixTouchFile`, `Component_`, `Path`, `Attributes` FROM `WixTouchFile`"; | 5 | LPCWSTR vcsTouchFileQuery = L"SELECT `Wix4TouchFile`, `Component_`, `Path`, `Attributes` FROM `Wix4TouchFile`"; |
| 6 | enum TOUCH_FILE_QUERY { tfqId = 1, tfqComponent, tfqPath, tfqTouchFileAttributes }; | 6 | enum TOUCH_FILE_QUERY { tfqId = 1, tfqComponent, tfqPath, tfqTouchFileAttributes }; |
| 7 | 7 | ||
| 8 | enum TOUCH_FILE_ATTRIBUTE | 8 | enum TOUCH_FILE_ATTRIBUTE |
| @@ -134,7 +134,7 @@ static HRESULT ProcessTouchFileTable( | |||
| 134 | LPWSTR sczRollbackData = NULL; | 134 | LPWSTR sczRollbackData = NULL; |
| 135 | LPWSTR sczExecuteData = NULL; | 135 | LPWSTR sczExecuteData = NULL; |
| 136 | 136 | ||
| 137 | if (S_OK != WcaTableExists(L"WixTouchFile")) | 137 | if (S_OK != WcaTableExists(L"Wix4TouchFile")) |
| 138 | { | 138 | { |
| 139 | ExitFunction(); | 139 | ExitFunction(); |
| 140 | } | 140 | } |
| @@ -142,7 +142,7 @@ static HRESULT ProcessTouchFileTable( | |||
| 142 | ::GetSystemTimeAsFileTime(&ftModified); | 142 | ::GetSystemTimeAsFileTime(&ftModified); |
| 143 | 143 | ||
| 144 | hr = WcaOpenExecuteView(vcsTouchFileQuery, &hView); | 144 | hr = WcaOpenExecuteView(vcsTouchFileQuery, &hView); |
| 145 | ExitOnFailure(hr, "Failed to open view on WixTouchFile table"); | 145 | ExitOnFailure(hr, "Failed to open view on Wix4TouchFile table"); |
| 146 | 146 | ||
| 147 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) | 147 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) |
| 148 | { | 148 | { |
| @@ -181,18 +181,18 @@ static HRESULT ProcessTouchFileTable( | |||
| 181 | { | 181 | { |
| 182 | hr = S_OK; | 182 | hr = S_OK; |
| 183 | } | 183 | } |
| 184 | ExitOnFailure(hr, "Failure occured while processing WixTouchFile table"); | 184 | ExitOnFailure(hr, "Failure occured while processing Wix4TouchFile table"); |
| 185 | 185 | ||
| 186 | if (sczRollbackData) | 186 | if (sczRollbackData) |
| 187 | { | 187 | { |
| 188 | hr = WcaDoDeferredAction(L"WixRollbackTouchFile", sczRollbackData, 0); | 188 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackTouchFile"), sczRollbackData, 0); |
| 189 | ExitOnFailure(hr, "Failed to schedule WixRollbackTouchFile"); | 189 | ExitOnFailure(hr, "Failed to schedule RollbackTouchFile"); |
| 190 | } | 190 | } |
| 191 | 191 | ||
| 192 | if (sczExecuteData) | 192 | if (sczExecuteData) |
| 193 | { | 193 | { |
| 194 | hr = WcaDoDeferredAction(L"WixExecuteTouchFile", sczExecuteData, 0); | 194 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecuteTouchFile"), sczExecuteData, 0); |
| 195 | ExitOnFailure(hr, "Failed to schedule WixExecuteTouchFile"); | 195 | ExitOnFailure(hr, "Failed to schedule ExecuteTouchFile"); |
| 196 | } | 196 | } |
| 197 | 197 | ||
| 198 | LExit: | 198 | LExit: |
diff --git a/src/ca/XmlConfig.cpp b/src/ca/XmlConfig.cpp index c12b2bc2..8c60979d 100644 --- a/src/ca/XmlConfig.cpp +++ b/src/ca/XmlConfig.cpp | |||
| @@ -30,9 +30,9 @@ enum eXmlPreserveDate | |||
| 30 | }; | 30 | }; |
| 31 | 31 | ||
| 32 | LPCWSTR vcsXmlConfigQuery = | 32 | LPCWSTR vcsXmlConfigQuery = |
| 33 | L"SELECT `XmlConfig`.`XmlConfig`, `XmlConfig`.`File`, `XmlConfig`.`ElementPath`, `XmlConfig`.`VerifyPath`, `XmlConfig`.`Name`, " | 33 | L"SELECT `Wix4XmlConfig`.`Wix4XmlConfig`, `Wix4XmlConfig`.`File`, `Wix4XmlConfig`.`ElementPath`, `Wix4XmlConfig`.`VerifyPath`, `Wix4XmlConfig`.`Name`, " |
| 34 | L"`XmlConfig`.`Value`, `XmlConfig`.`Flags`, `XmlConfig`.`Component_`, `Component`.`Attributes` " | 34 | L"`Wix4XmlConfig`.`Value`, `Wix4XmlConfig`.`Flags`, `Wix4XmlConfig`.`Component_`, `Component`.`Attributes` " |
| 35 | L"FROM `XmlConfig`,`Component` WHERE `XmlConfig`.`Component_`=`Component`.`Component` ORDER BY `File`, `Sequence`"; | 35 | L"FROM `Wix4XmlConfig`,`Component` WHERE `Wix4XmlConfig`.`Component_`=`Component`.`Component` ORDER BY `File`, `Sequence`"; |
| 36 | enum eXmlConfigQuery { xfqXmlConfig = 1, xfqFile, xfqElementPath, xfqVerifyPath, xfqName, xfqValue, xfqXmlFlags, xfqComponent, xfqCompAttributes }; | 36 | enum eXmlConfigQuery { xfqXmlConfig = 1, xfqFile, xfqElementPath, xfqVerifyPath, xfqName, xfqValue, xfqXmlFlags, xfqComponent, xfqCompAttributes }; |
| 37 | 37 | ||
| 38 | struct XML_CONFIG_CHANGE | 38 | struct XML_CONFIG_CHANGE |
| @@ -146,7 +146,7 @@ static HRESULT ReadXmlConfigTable( | |||
| 146 | 146 | ||
| 147 | // loop through all the xml configurations | 147 | // loop through all the xml configurations |
| 148 | hr = WcaOpenExecuteView(vcsXmlConfigQuery, &hView); | 148 | hr = WcaOpenExecuteView(vcsXmlConfigQuery, &hView); |
| 149 | ExitOnFailure(hr, "failed to open view on XmlConfig table"); | 149 | ExitOnFailure(hr, "failed to open view on Wix4XmlConfig table"); |
| 150 | 150 | ||
| 151 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) | 151 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) |
| 152 | { | 152 | { |
| @@ -155,13 +155,13 @@ static HRESULT ReadXmlConfigTable( | |||
| 155 | 155 | ||
| 156 | // Get record Id | 156 | // Get record Id |
| 157 | hr = WcaGetRecordString(hRec, xfqXmlConfig, &pwzData); | 157 | hr = WcaGetRecordString(hRec, xfqXmlConfig, &pwzData); |
| 158 | ExitOnFailure(hr, "failed to get XmlConfig record Id"); | 158 | ExitOnFailure(hr, "failed to get Wix4XmlConfig record Id"); |
| 159 | hr = StringCchCopyW((*ppxfcTail)->wzId, countof((*ppxfcTail)->wzId), pwzData); | 159 | hr = StringCchCopyW((*ppxfcTail)->wzId, countof((*ppxfcTail)->wzId), pwzData); |
| 160 | ExitOnFailure(hr, "failed to copy XmlConfig record Id"); | 160 | ExitOnFailure(hr, "failed to copy Wix4XmlConfig record Id"); |
| 161 | 161 | ||
| 162 | // Get component name | 162 | // Get component name |
| 163 | hr = WcaGetRecordString(hRec, xfqComponent, &pwzData); | 163 | hr = WcaGetRecordString(hRec, xfqComponent, &pwzData); |
| 164 | ExitOnFailure(hr, "failed to get component name for XmlConfig: %ls", (*ppxfcTail)->wzId); | 164 | ExitOnFailure(hr, "failed to get component name for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId); |
| 165 | 165 | ||
| 166 | // Get the component's state | 166 | // Get the component's state |
| 167 | if (0 < lstrlenW(pwzData)) | 167 | if (0 < lstrlenW(pwzData)) |
| @@ -175,45 +175,45 @@ static HRESULT ReadXmlConfigTable( | |||
| 175 | 175 | ||
| 176 | // Get the xml file | 176 | // Get the xml file |
| 177 | hr = WcaGetRecordFormattedString(hRec, xfqFile, &pwzData); | 177 | hr = WcaGetRecordFormattedString(hRec, xfqFile, &pwzData); |
| 178 | ExitOnFailure(hr, "failed to get xml file for XmlConfig: %ls", (*ppxfcTail)->wzId); | 178 | ExitOnFailure(hr, "failed to get xml file for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId); |
| 179 | hr = StringCchCopyW((*ppxfcTail)->wzFile, countof((*ppxfcTail)->wzFile), pwzData); | 179 | hr = StringCchCopyW((*ppxfcTail)->wzFile, countof((*ppxfcTail)->wzFile), pwzData); |
| 180 | ExitOnFailure(hr, "failed to copy xml file path"); | 180 | ExitOnFailure(hr, "failed to copy xml file path"); |
| 181 | 181 | ||
| 182 | // Figure out if the file is already on the machine or if it's being installed | 182 | // Figure out if the file is already on the machine or if it's being installed |
| 183 | hr = WcaGetRecordString(hRec, xfqFile, &pwzData); | 183 | hr = WcaGetRecordString(hRec, xfqFile, &pwzData); |
| 184 | ExitOnFailure(hr, "failed to get xml file for XmlConfig: %ls", (*ppxfcTail)->wzId); | 184 | ExitOnFailure(hr, "failed to get xml file for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId); |
| 185 | if (NULL != wcsstr(pwzData, L"[!") || NULL != wcsstr(pwzData, L"[#")) | 185 | if (NULL != wcsstr(pwzData, L"[!") || NULL != wcsstr(pwzData, L"[#")) |
| 186 | { | 186 | { |
| 187 | (*ppxfcTail)->fInstalledFile = TRUE; | 187 | (*ppxfcTail)->fInstalledFile = TRUE; |
| 188 | } | 188 | } |
| 189 | 189 | ||
| 190 | // Get the XmlConfig table flags | 190 | // Get the Wix4XmlConfig table flags |
| 191 | hr = WcaGetRecordInteger(hRec, xfqXmlFlags, &(*ppxfcTail)->iXmlFlags); | 191 | hr = WcaGetRecordInteger(hRec, xfqXmlFlags, &(*ppxfcTail)->iXmlFlags); |
| 192 | ExitOnFailure(hr, "failed to get XmlConfig flags for XmlConfig: %ls", (*ppxfcTail)->wzId); | 192 | ExitOnFailure(hr, "failed to get Wix4XmlConfig flags for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId); |
| 193 | 193 | ||
| 194 | // Get the Element Path | 194 | // Get the Element Path |
| 195 | hr = WcaGetRecordFormattedString(hRec, xfqElementPath, &(*ppxfcTail)->pwzElementPath); | 195 | hr = WcaGetRecordFormattedString(hRec, xfqElementPath, &(*ppxfcTail)->pwzElementPath); |
| 196 | ExitOnFailure(hr, "failed to get Element Path for XmlConfig: %ls", (*ppxfcTail)->wzId); | 196 | ExitOnFailure(hr, "failed to get Element Path for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId); |
| 197 | 197 | ||
| 198 | // Get the Verify Path | 198 | // Get the Verify Path |
| 199 | hr = WcaGetRecordFormattedString(hRec, xfqVerifyPath, &(*ppxfcTail)->pwzVerifyPath); | 199 | hr = WcaGetRecordFormattedString(hRec, xfqVerifyPath, &(*ppxfcTail)->pwzVerifyPath); |
| 200 | ExitOnFailure(hr, "failed to get Verify Path for XmlConfig: %ls", (*ppxfcTail)->wzId); | 200 | ExitOnFailure(hr, "failed to get Verify Path for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId); |
| 201 | 201 | ||
| 202 | // Get the name | 202 | // Get the name |
| 203 | hr = WcaGetRecordFormattedString(hRec, xfqName, &pwzData); | 203 | hr = WcaGetRecordFormattedString(hRec, xfqName, &pwzData); |
| 204 | ExitOnFailure(hr, "failed to get Name for XmlConfig: %ls", (*ppxfcTail)->wzId); | 204 | ExitOnFailure(hr, "failed to get Name for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId); |
| 205 | hr = StringCchCopyW((*ppxfcTail)->wzName, countof((*ppxfcTail)->wzName), pwzData); | 205 | hr = StringCchCopyW((*ppxfcTail)->wzName, countof((*ppxfcTail)->wzName), pwzData); |
| 206 | ExitOnFailure(hr, "failed to copy name of element"); | 206 | ExitOnFailure(hr, "failed to copy name of element"); |
| 207 | 207 | ||
| 208 | // Get the value | 208 | // Get the value |
| 209 | hr = WcaGetRecordFormattedString(hRec, xfqValue, &pwzData); | 209 | hr = WcaGetRecordFormattedString(hRec, xfqValue, &pwzData); |
| 210 | ExitOnFailure(hr, "failed to get Value for XmlConfig: %ls", (*ppxfcTail)->wzId); | 210 | ExitOnFailure(hr, "failed to get Value for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId); |
| 211 | hr = StrAllocString(&(*ppxfcTail)->pwzValue, pwzData, 0); | 211 | hr = StrAllocString(&(*ppxfcTail)->pwzValue, pwzData, 0); |
| 212 | ExitOnFailure(hr, "failed to allocate buffer for value"); | 212 | ExitOnFailure(hr, "failed to allocate buffer for value"); |
| 213 | 213 | ||
| 214 | // Get the component attributes | 214 | // Get the component attributes |
| 215 | hr = WcaGetRecordInteger(hRec, xfqCompAttributes, &(*ppxfcTail)->iCompAttributes); | 215 | hr = WcaGetRecordInteger(hRec, xfqCompAttributes, &(*ppxfcTail)->iCompAttributes); |
| 216 | ExitOnFailure(hr, "failed to get component attributes for XmlConfig: %ls", (*ppxfcTail)->wzId); | 216 | ExitOnFailure(hr, "failed to get component attributes for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId); |
| 217 | } | 217 | } |
| 218 | 218 | ||
| 219 | // if we looped through all records all is well | 219 | // if we looped through all records all is well |
| @@ -359,7 +359,7 @@ static HRESULT BeginChangeFile( | |||
| 359 | hr = WcaWriteStreamToCaData(pbData, cbData, &pwzRollbackCustomActionData); | 359 | hr = WcaWriteStreamToCaData(pbData, cbData, &pwzRollbackCustomActionData); |
| 360 | ExitOnFailure(hr, "failed to write file contents to rollback custom action data."); | 360 | ExitOnFailure(hr, "failed to write file contents to rollback custom action data."); |
| 361 | 361 | ||
| 362 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"ExecXmlConfigRollback"), pwzRollbackCustomActionData, COST_XMLFILE); | 362 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecXmlConfigRollback"), pwzRollbackCustomActionData, COST_XMLFILE); |
| 363 | ExitOnFailure(hr, "failed to schedule ExecXmlConfigRollback for file: %ls", pwzFile); | 363 | ExitOnFailure(hr, "failed to schedule ExecXmlConfigRollback for file: %ls", pwzFile); |
| 364 | 364 | ||
| 365 | ReleaseStr(pwzRollbackCustomActionData); | 365 | ReleaseStr(pwzRollbackCustomActionData); |
| @@ -459,10 +459,10 @@ extern "C" UINT __stdcall SchedXmlConfig( | |||
| 459 | ExitOnFailure(hr, "failed to initialize"); | 459 | ExitOnFailure(hr, "failed to initialize"); |
| 460 | 460 | ||
| 461 | hr = ReadXmlConfigTable(&pxfcHead, &pxfcTail); | 461 | hr = ReadXmlConfigTable(&pxfcHead, &pxfcTail); |
| 462 | MessageExitOnFailure(hr, msierrXmlConfigFailedRead, "failed to read XmlConfig table"); | 462 | MessageExitOnFailure(hr, msierrXmlConfigFailedRead, "failed to read Wix4XmlConfig table"); |
| 463 | 463 | ||
| 464 | hr = ProcessChanges(&pxfcHead); | 464 | hr = ProcessChanges(&pxfcHead); |
| 465 | ExitOnFailure(hr, "failed to process XmlConfig changes"); | 465 | ExitOnFailure(hr, "failed to process Wix4XmlConfig changes"); |
| 466 | 466 | ||
| 467 | // loop through all the xml configurations | 467 | // loop through all the xml configurations |
| 468 | for (pxfc = pxfcHead; pxfc; pxfc = pxfc->pxfcNext) | 468 | for (pxfc = pxfcHead; pxfc; pxfc = pxfc->pxfcNext) |
| @@ -557,7 +557,7 @@ extern "C" UINT __stdcall SchedXmlConfig( | |||
| 557 | { | 557 | { |
| 558 | Assert(0 < cFiles); | 558 | Assert(0 < cFiles); |
| 559 | 559 | ||
| 560 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"ExecXmlConfig"), pwzCustomActionData, cFiles * COST_XMLFILE); | 560 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecXmlConfig"), pwzCustomActionData, cFiles * COST_XMLFILE); |
| 561 | ExitOnFailure(hr, "failed to schedule ExecXmlConfig action"); | 561 | ExitOnFailure(hr, "failed to schedule ExecXmlConfig action"); |
| 562 | } | 562 | } |
| 563 | 563 | ||
diff --git a/src/ca/XmlFile.cpp b/src/ca/XmlFile.cpp index fc6f519b..95449126 100644 --- a/src/ca/XmlFile.cpp +++ b/src/ca/XmlFile.cpp | |||
| @@ -36,9 +36,9 @@ enum eXmlSelectionLanguage | |||
| 36 | }; | 36 | }; |
| 37 | 37 | ||
| 38 | LPCWSTR vcsXmlFileQuery = | 38 | LPCWSTR vcsXmlFileQuery = |
| 39 | L"SELECT `XmlFile`.`XmlFile`, `XmlFile`.`File`, `XmlFile`.`ElementPath`, `XmlFile`.`Name`, `XmlFile`.`Value`, " | 39 | L"SELECT `Wix4XmlFile`.`Wix4XmlFile`, `Wix4XmlFile`.`File`, `Wix4XmlFile`.`ElementPath`, `Wix4XmlFile`.`Name`, `Wix4XmlFile`.`Value`, " |
| 40 | L"`XmlFile`.`Flags`, `XmlFile`.`Component_`, `Component`.`Attributes` " | 40 | L"`Wix4XmlFile`.`Flags`, `Wix4XmlFile`.`Component_`, `Component`.`Attributes` " |
| 41 | L"FROM `XmlFile`,`Component` WHERE `XmlFile`.`Component_`=`Component`.`Component` ORDER BY `File`, `Sequence`"; | 41 | L"FROM `Wix4XmlFile`,`Component` WHERE `Wix4XmlFile`.`Component_`=`Component`.`Component` ORDER BY `File`, `Sequence`"; |
| 42 | enum eXmlFileQuery { xfqXmlFile = 1, xfqFile, xfqXPath, xfqName, xfqValue, xfqXmlFlags, xfqComponent, xfqCompAttributes }; | 42 | enum eXmlFileQuery { xfqXmlFile = 1, xfqFile, xfqXPath, xfqName, xfqValue, xfqXmlFlags, xfqComponent, xfqCompAttributes }; |
| 43 | 43 | ||
| 44 | struct XML_FILE_CHANGE | 44 | struct XML_FILE_CHANGE |
| @@ -130,12 +130,14 @@ static HRESULT ReadXmlFileTable( | |||
| 130 | LPWSTR pwzData = NULL; | 130 | LPWSTR pwzData = NULL; |
| 131 | 131 | ||
| 132 | // check to see if necessary tables are specified | 132 | // check to see if necessary tables are specified |
| 133 | if (S_FALSE == WcaTableExists(L"XmlFile")) | 133 | if (S_FALSE == WcaTableExists(L"Wix4XmlFile")) |
| 134 | { | ||
| 134 | ExitFunction1(hr = S_FALSE); | 135 | ExitFunction1(hr = S_FALSE); |
| 136 | } | ||
| 135 | 137 | ||
| 136 | // loop through all the xml configurations | 138 | // loop through all the xml configurations |
| 137 | hr = WcaOpenExecuteView(vcsXmlFileQuery, &hView); | 139 | hr = WcaOpenExecuteView(vcsXmlFileQuery, &hView); |
| 138 | ExitOnFailure(hr, "failed to open view on XmlFile table"); | 140 | ExitOnFailure(hr, "failed to open view on Wix4XmlFile table"); |
| 139 | 141 | ||
| 140 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) | 142 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) |
| 141 | { | 143 | { |
| @@ -144,13 +146,13 @@ static HRESULT ReadXmlFileTable( | |||
| 144 | 146 | ||
| 145 | // Get record Id | 147 | // Get record Id |
| 146 | hr = WcaGetRecordString(hRec, xfqXmlFile, &pwzData); | 148 | hr = WcaGetRecordString(hRec, xfqXmlFile, &pwzData); |
| 147 | ExitOnFailure(hr, "failed to get XmlFile record Id"); | 149 | ExitOnFailure(hr, "failed to get Wix4XmlFile record Id"); |
| 148 | hr = StringCchCopyW((*ppxfcTail)->wzId, countof((*ppxfcTail)->wzId), pwzData); | 150 | hr = StringCchCopyW((*ppxfcTail)->wzId, countof((*ppxfcTail)->wzId), pwzData); |
| 149 | ExitOnFailure(hr, "failed to copy XmlFile record Id"); | 151 | ExitOnFailure(hr, "failed to copy Wix4XmlFile record Id"); |
| 150 | 152 | ||
| 151 | // Get component name | 153 | // Get component name |
| 152 | hr = WcaGetRecordString(hRec, xfqComponent, &pwzData); | 154 | hr = WcaGetRecordString(hRec, xfqComponent, &pwzData); |
| 153 | ExitOnFailure(hr, "failed to get component name for XmlFile: %ls", (*ppxfcTail)->wzId); | 155 | ExitOnFailure(hr, "failed to get component name for Wix4XmlFile: %ls", (*ppxfcTail)->wzId); |
| 154 | 156 | ||
| 155 | // Get the component's state | 157 | // Get the component's state |
| 156 | er = ::MsiGetComponentStateW(WcaGetInstallHandle(), pwzData, &(*ppxfcTail)->isInstalled, &(*ppxfcTail)->isAction); | 158 | er = ::MsiGetComponentStateW(WcaGetInstallHandle(), pwzData, &(*ppxfcTail)->isInstalled, &(*ppxfcTail)->isAction); |
| @@ -158,33 +160,33 @@ static HRESULT ReadXmlFileTable( | |||
| 158 | 160 | ||
| 159 | // Get the xml file | 161 | // Get the xml file |
| 160 | hr = WcaGetRecordFormattedString(hRec, xfqFile, &pwzData); | 162 | hr = WcaGetRecordFormattedString(hRec, xfqFile, &pwzData); |
| 161 | ExitOnFailure(hr, "failed to get xml file for XmlFile: %ls", (*ppxfcTail)->wzId); | 163 | ExitOnFailure(hr, "failed to get xml file for Wix4XmlFile: %ls", (*ppxfcTail)->wzId); |
| 162 | hr = StringCchCopyW((*ppxfcTail)->wzFile, countof((*ppxfcTail)->wzFile), pwzData); | 164 | hr = StringCchCopyW((*ppxfcTail)->wzFile, countof((*ppxfcTail)->wzFile), pwzData); |
| 163 | ExitOnFailure(hr, "failed to copy xml file path"); | 165 | ExitOnFailure(hr, "failed to copy xml file path"); |
| 164 | 166 | ||
| 165 | // Get the XmlFile table flags | 167 | // Get the Wix4XmlFile table flags |
| 166 | hr = WcaGetRecordInteger(hRec, xfqXmlFlags, &(*ppxfcTail)->iXmlFlags); | 168 | hr = WcaGetRecordInteger(hRec, xfqXmlFlags, &(*ppxfcTail)->iXmlFlags); |
| 167 | ExitOnFailure(hr, "failed to get XmlFile flags for XmlFile: %ls", (*ppxfcTail)->wzId); | 169 | ExitOnFailure(hr, "failed to get Wix4XmlFile flags for Wix4XmlFile: %ls", (*ppxfcTail)->wzId); |
| 168 | 170 | ||
| 169 | // Get the XPath | 171 | // Get the XPath |
| 170 | hr = WcaGetRecordFormattedString(hRec, xfqXPath, &(*ppxfcTail)->pwzElementPath); | 172 | hr = WcaGetRecordFormattedString(hRec, xfqXPath, &(*ppxfcTail)->pwzElementPath); |
| 171 | ExitOnFailure(hr, "failed to get XPath for XmlFile: %ls", (*ppxfcTail)->wzId); | 173 | ExitOnFailure(hr, "failed to get XPath for Wix4XmlFile: %ls", (*ppxfcTail)->wzId); |
| 172 | 174 | ||
| 173 | // Get the name | 175 | // Get the name |
| 174 | hr = WcaGetRecordFormattedString(hRec, xfqName, &pwzData); | 176 | hr = WcaGetRecordFormattedString(hRec, xfqName, &pwzData); |
| 175 | ExitOnFailure(hr, "failed to get Name for XmlFile: %ls", (*ppxfcTail)->wzId); | 177 | ExitOnFailure(hr, "failed to get Name for Wix4XmlFile: %ls", (*ppxfcTail)->wzId); |
| 176 | hr = StringCchCopyW((*ppxfcTail)->wzName, countof((*ppxfcTail)->wzName), pwzData); | 178 | hr = StringCchCopyW((*ppxfcTail)->wzName, countof((*ppxfcTail)->wzName), pwzData); |
| 177 | ExitOnFailure(hr, "failed to copy name of element"); | 179 | ExitOnFailure(hr, "failed to copy name of element"); |
| 178 | 180 | ||
| 179 | // Get the value | 181 | // Get the value |
| 180 | hr = WcaGetRecordFormattedString(hRec, xfqValue, &pwzData); | 182 | hr = WcaGetRecordFormattedString(hRec, xfqValue, &pwzData); |
| 181 | ExitOnFailure(hr, "failed to get Value for XmlFile: %ls", (*ppxfcTail)->wzId); | 183 | ExitOnFailure(hr, "failed to get Value for Wix4XmlFile: %ls", (*ppxfcTail)->wzId); |
| 182 | hr = StrAllocString(&(*ppxfcTail)->pwzValue, pwzData, 0); | 184 | hr = StrAllocString(&(*ppxfcTail)->pwzValue, pwzData, 0); |
| 183 | ExitOnFailure(hr, "failed to allocate buffer for value"); | 185 | ExitOnFailure(hr, "failed to allocate buffer for value"); |
| 184 | 186 | ||
| 185 | // Get the component attributes | 187 | // Get the component attributes |
| 186 | hr = WcaGetRecordInteger(hRec, xfqCompAttributes, &(*ppxfcTail)->iCompAttributes); | 188 | hr = WcaGetRecordInteger(hRec, xfqCompAttributes, &(*ppxfcTail)->iCompAttributes); |
| 187 | ExitOnFailure(hr, "failed to get component attributes for XmlFile: %ls", (*ppxfcTail)->wzId); | 189 | ExitOnFailure(hr, "failed to get component attributes for Wix4XmlFile: %ls", (*ppxfcTail)->wzId); |
| 188 | } | 190 | } |
| 189 | 191 | ||
| 190 | // if we looped through all records all is well | 192 | // if we looped through all records all is well |
| @@ -254,7 +256,7 @@ static HRESULT BeginChangeFile( | |||
| 254 | hr = WcaWriteStreamToCaData(pbData, cbData, &pwzRollbackCustomActionData); | 256 | hr = WcaWriteStreamToCaData(pbData, cbData, &pwzRollbackCustomActionData); |
| 255 | ExitOnFailure(hr, "failed to write file contents to rollback custom action data."); | 257 | ExitOnFailure(hr, "failed to write file contents to rollback custom action data."); |
| 256 | 258 | ||
| 257 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"ExecXmlFileRollback"), pwzRollbackCustomActionData, COST_XMLFILE); | 259 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecXmlFileRollback"), pwzRollbackCustomActionData, COST_XMLFILE); |
| 258 | ExitOnFailure(hr, "failed to schedule ExecXmlFileRollback for file: %ls", pwzFile); | 260 | ExitOnFailure(hr, "failed to schedule ExecXmlFileRollback for file: %ls", pwzFile); |
| 259 | 261 | ||
| 260 | ReleaseStr(pwzRollbackCustomActionData); | 262 | ReleaseStr(pwzRollbackCustomActionData); |
| @@ -325,11 +327,11 @@ extern "C" UINT __stdcall SchedXmlFile( | |||
| 325 | hr = ReadXmlFileTable(&pxfcHead, &pxfcTail); | 327 | hr = ReadXmlFileTable(&pxfcHead, &pxfcTail); |
| 326 | if (S_FALSE == hr) | 328 | if (S_FALSE == hr) |
| 327 | { | 329 | { |
| 328 | WcaLog(LOGMSG_VERBOSE, "Skipping SchedXmlFile because XmlFile table not present"); | 330 | WcaLog(LOGMSG_VERBOSE, "Skipping SchedXmlFile because Wix4XmlFile table not present"); |
| 329 | ExitFunction1(hr = S_OK); | 331 | ExitFunction1(hr = S_OK); |
| 330 | } | 332 | } |
| 331 | 333 | ||
| 332 | MessageExitOnFailure(hr, msierrXmlFileFailedRead, "failed to read XmlFile table"); | 334 | MessageExitOnFailure(hr, msierrXmlFileFailedRead, "failed to read Wix4XmlFile table"); |
| 333 | 335 | ||
| 334 | // loop through all the xml configurations | 336 | // loop through all the xml configurations |
| 335 | for (pxfc = pxfcHead; pxfc; pxfc = pxfc->pxfcNext) | 337 | for (pxfc = pxfcHead; pxfc; pxfc = pxfc->pxfcNext) |
| @@ -454,7 +456,7 @@ extern "C" UINT __stdcall SchedXmlFile( | |||
| 454 | { | 456 | { |
| 455 | Assert(0 < cFiles); | 457 | Assert(0 < cFiles); |
| 456 | 458 | ||
| 457 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"ExecXmlFile"), pwzCustomActionData, cFiles * COST_XMLFILE); | 459 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecXmlFile"), pwzCustomActionData, cFiles * COST_XMLFILE); |
| 458 | ExitOnFailure(hr, "failed to schedule ExecXmlFile action"); | 460 | ExitOnFailure(hr, "failed to schedule ExecXmlFile action"); |
| 459 | } | 461 | } |
| 460 | 462 | ||
diff --git a/src/ca/caDecor.h b/src/ca/caDecor.h new file mode 100644 index 00000000..56cfb201 --- /dev/null +++ b/src/ca/caDecor.h | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | #pragma once | ||
| 2 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | ||
| 3 | |||
| 4 | |||
| 5 | #if defined(_M_ARM64) | ||
| 6 | #define CUSTOM_ACTION_DECORATION(f) L"Wix4" f L"_A64" | ||
| 7 | #elif defined(_M_AMD64) | ||
| 8 | #define CUSTOM_ACTION_DECORATION(f) L"Wix4" f L"_X64" | ||
| 9 | #elif defined(_M_ARM) | ||
| 10 | #define CUSTOM_ACTION_DECORATION(f) L"Wix4" f L"_ARM" | ||
| 11 | #else | ||
| 12 | #define CUSTOM_ACTION_DECORATION(f) L"Wix4" f L"_X86" | ||
| 13 | #endif | ||
diff --git a/src/ca/caSuffix.h b/src/ca/caSuffix.h deleted file mode 100644 index 303a99e9..00000000 --- a/src/ca/caSuffix.h +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | #pragma once | ||
| 2 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | ||
| 3 | |||
| 4 | |||
| 5 | #if defined _WIN64 | ||
| 6 | #define PLATFORM_DECORATION(f) f L"_64" | ||
| 7 | #elif defined ARM | ||
| 8 | #define PLATFORM_DECORATION(f) f L"_ARM" | ||
| 9 | #else | ||
| 10 | #define PLATFORM_DECORATION(f) f | ||
| 11 | #endif | ||
diff --git a/src/ca/netshortcuts.cpp b/src/ca/netshortcuts.cpp index 59ef838b..6ff129db 100644 --- a/src/ca/netshortcuts.cpp +++ b/src/ca/netshortcuts.cpp | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | LPCWSTR vcsShortcutsQuery = | 5 | LPCWSTR vcsShortcutsQuery = |
| 6 | L"SELECT `Component_`, `Directory_`, `Name`, `Target`, `Attributes`, `IconFile`, `IconIndex` " | 6 | L"SELECT `Component_`, `Directory_`, `Name`, `Target`, `Attributes`, `IconFile`, `IconIndex` " |
| 7 | L"FROM `WixInternetShortcut`"; | 7 | L"FROM `Wix4InternetShortcut`"; |
| 8 | enum eShortcutsQuery { esqComponent = 1, esqDirectory, esqFilename, esqTarget, esqAttributes, esqIconFile, esqIconIndex }; | 8 | enum eShortcutsQuery { esqComponent = 1, esqDirectory, esqFilename, esqTarget, esqAttributes, esqIconFile, esqIconIndex }; |
| 9 | enum eShortcutsAttributes { esaLink = 0, esaURL = 1 }; | 9 | enum eShortcutsAttributes { esaLink = 0, esaURL = 1 }; |
| 10 | 10 | ||
| @@ -44,9 +44,9 @@ extern "C" UINT __stdcall WixSchedInternetShortcuts( | |||
| 44 | ExitOnFailure(hr, "failed to initialize WixSchedInternetShortcuts."); | 44 | ExitOnFailure(hr, "failed to initialize WixSchedInternetShortcuts."); |
| 45 | 45 | ||
| 46 | // anything to do? | 46 | // anything to do? |
| 47 | if (S_OK != WcaTableExists(L"WixInternetShortcut")) | 47 | if (S_OK != WcaTableExists(L"Wix4InternetShortcut")) |
| 48 | { | 48 | { |
| 49 | WcaLog(LOGMSG_STANDARD, "WixInternetShortcut table doesn't exist, so there are no Internet shortcuts to process"); | 49 | WcaLog(LOGMSG_STANDARD, "Wix4InternetShortcut table doesn't exist, so there are no Internet shortcuts to process"); |
| 50 | goto LExit; | 50 | goto LExit; |
| 51 | } | 51 | } |
| 52 | 52 | ||
| @@ -71,7 +71,7 @@ extern "C" UINT __stdcall WixSchedInternetShortcuts( | |||
| 71 | 71 | ||
| 72 | // query and loop through all the shortcuts | 72 | // query and loop through all the shortcuts |
| 73 | hr = WcaOpenExecuteView(vcsShortcutsQuery, &hView); | 73 | hr = WcaOpenExecuteView(vcsShortcutsQuery, &hView); |
| 74 | ExitOnFailure(hr, "failed to open view on WixInternetShortcut table"); | 74 | ExitOnFailure(hr, "failed to open view on Wix4InternetShortcut table"); |
| 75 | 75 | ||
| 76 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) | 76 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) |
| 77 | { | 77 | { |
| @@ -91,7 +91,7 @@ extern "C" UINT __stdcall WixSchedInternetShortcuts( | |||
| 91 | hr = WcaGetRecordInteger(hRec, esqIconIndex, &iIconIndex); | 91 | hr = WcaGetRecordInteger(hRec, esqIconIndex, &iIconIndex); |
| 92 | ExitOnFailure(hr, "failed to get shortcut icon index"); | 92 | ExitOnFailure(hr, "failed to get shortcut icon index"); |
| 93 | 93 | ||
| 94 | // skip processing this WixInternetShortcut row if the component isn't being configured | 94 | // skip processing this Wix4InternetShortcut row if the component isn't being configured |
| 95 | WCA_TODO todo = WcaGetComponentToDo(pwzComponent); | 95 | WCA_TODO todo = WcaGetComponentToDo(pwzComponent); |
| 96 | if (WCA_TODO_UNKNOWN == todo) | 96 | if (WCA_TODO_UNKNOWN == todo) |
| 97 | { | 97 | { |
| @@ -144,7 +144,7 @@ extern "C" UINT __stdcall WixSchedInternetShortcuts( | |||
| 144 | { | 144 | { |
| 145 | hr = S_OK; | 145 | hr = S_OK; |
| 146 | } | 146 | } |
| 147 | ExitOnFailure(hr, "Failure occured while processing WixInternetShortcut table"); | 147 | ExitOnFailure(hr, "Failure occured while processing Wix4InternetShortcut table"); |
| 148 | 148 | ||
| 149 | // if we have any shortcuts to install | 149 | // if we have any shortcuts to install |
| 150 | if (pwzCustomActionData && *pwzCustomActionData) | 150 | if (pwzCustomActionData && *pwzCustomActionData) |
| @@ -154,9 +154,9 @@ extern "C" UINT __stdcall WixSchedInternetShortcuts( | |||
| 154 | ExitOnFailure(hr, "failed to extend progress bar for InternetShortcuts"); | 154 | ExitOnFailure(hr, "failed to extend progress bar for InternetShortcuts"); |
| 155 | 155 | ||
| 156 | // provide custom action data to deferred and rollback CAs | 156 | // provide custom action data to deferred and rollback CAs |
| 157 | hr = WcaSetProperty(PLATFORM_DECORATION(L"WixRollbackInternetShortcuts"), pwzCustomActionData); | 157 | hr = WcaSetProperty(CUSTOM_ACTION_DECORATION(L"RollbackInternetShortcuts"), pwzCustomActionData); |
| 158 | ExitOnFailure(hr, "failed to set WixRollbackInternetShortcuts rollback custom action data"); | 158 | ExitOnFailure(hr, "failed to set WixRollbackInternetShortcuts rollback custom action data"); |
| 159 | hr = WcaSetProperty(PLATFORM_DECORATION(L"WixCreateInternetShortcuts"), pwzCustomActionData); | 159 | hr = WcaSetProperty(CUSTOM_ACTION_DECORATION(L"CreateInternetShortcuts"), pwzCustomActionData); |
| 160 | ExitOnFailure(hr, "failed to set WixCreateInternetShortcuts custom action data"); | 160 | ExitOnFailure(hr, "failed to set WixCreateInternetShortcuts custom action data"); |
| 161 | } | 161 | } |
| 162 | 162 | ||
diff --git a/src/ca/precomp.h b/src/ca/precomp.h index 66e2f6b0..c5d6afe5 100644 --- a/src/ca/precomp.h +++ b/src/ca/precomp.h | |||
| @@ -51,4 +51,4 @@ | |||
| 51 | #include "scasmb.h" | 51 | #include "scasmb.h" |
| 52 | #include "scasmbexec.h" | 52 | #include "scasmbexec.h" |
| 53 | 53 | ||
| 54 | #include "caSuffix.h" | 54 | #include "caDecor.h" |
diff --git a/src/ca/scamanifest.cpp b/src/ca/scamanifest.cpp index 58b4054d..adb8d3d3 100644 --- a/src/ca/scamanifest.cpp +++ b/src/ca/scamanifest.cpp | |||
| @@ -2,8 +2,8 @@ | |||
| 2 | 2 | ||
| 3 | #include "precomp.h" | 3 | #include "precomp.h" |
| 4 | 4 | ||
| 5 | LPCWSTR vcsPerfmonManifestQuery = L"SELECT `Component_`, `File`, `ResourceFileDirectory` FROM `PerfmonManifest`"; | 5 | LPCWSTR vcsPerfmonManifestQuery = L"SELECT `Component_`, `File`, `ResourceFileDirectory` FROM `Wix4PerfmonManifest`"; |
| 6 | LPCWSTR vcsEventManifestQuery = L"SELECT `Component_`, `File` FROM `EventManifest`"; | 6 | LPCWSTR vcsEventManifestQuery = L"SELECT `Component_`, `File` FROM `Wix4EventManifest`"; |
| 7 | enum ePerfMonManifestQuery { pfmComponent = 1, pfmFile, pfmResourceFileDir }; | 7 | enum ePerfMonManifestQuery { pfmComponent = 1, pfmFile, pfmResourceFileDir }; |
| 8 | enum eEventManifestQuery { emComponent = 1, emFile}; | 8 | enum eEventManifestQuery { emComponent = 1, emFile}; |
| 9 | 9 | ||
| @@ -46,9 +46,9 @@ extern "C" UINT __stdcall ConfigurePerfmonManifestRegister( | |||
| 46 | ExitFunction1(hr = S_FALSE); | 46 | ExitFunction1(hr = S_FALSE); |
| 47 | } | 47 | } |
| 48 | // check to see if necessary tables are specified | 48 | // check to see if necessary tables are specified |
| 49 | if (S_OK != WcaTableExists(L"PerfmonManifest")) | 49 | if (S_OK != WcaTableExists(L"Wix4PerfmonManifest")) |
| 50 | { | 50 | { |
| 51 | WcaLog(LOGMSG_VERBOSE, "Skipping ConfigurePerfmonManifestRegister() because PerfmonManifest table not present"); | 51 | WcaLog(LOGMSG_VERBOSE, "Skipping ConfigurePerfmonManifestRegister() because Wix4PerfmonManifest table not present"); |
| 52 | ExitFunction1(hr = S_FALSE); | 52 | ExitFunction1(hr = S_FALSE); |
| 53 | } | 53 | } |
| 54 | 54 | ||
| @@ -79,7 +79,7 @@ extern "C" UINT __stdcall ConfigurePerfmonManifestRegister( | |||
| 79 | hr = StrAllocFormatted(&pwzCommand, L"\"unlodctr.exe\" /m:\"%s\"", pwzFile); | 79 | hr = StrAllocFormatted(&pwzCommand, L"\"unlodctr.exe\" /m:\"%s\"", pwzFile); |
| 80 | ExitOnFailure(hr, "failed to copy string in PerfMonManifest"); | 80 | ExitOnFailure(hr, "failed to copy string in PerfMonManifest"); |
| 81 | 81 | ||
| 82 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackRegisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER); | 82 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackRegisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER); |
| 83 | ExitOnFailure(hr, "failed to schedule RollbackRegisterPerfmonManifest action"); | 83 | ExitOnFailure(hr, "failed to schedule RollbackRegisterPerfmonManifest action"); |
| 84 | 84 | ||
| 85 | if ( *pwzResourceFilePath ) | 85 | if ( *pwzResourceFilePath ) |
| @@ -95,7 +95,7 @@ extern "C" UINT __stdcall ConfigurePerfmonManifestRegister( | |||
| 95 | 95 | ||
| 96 | WcaLog(LOGMSG_VERBOSE, "RegisterPerfmonManifest's CustomActionData: '%ls'", pwzCommand); | 96 | WcaLog(LOGMSG_VERBOSE, "RegisterPerfmonManifest's CustomActionData: '%ls'", pwzCommand); |
| 97 | 97 | ||
| 98 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RegisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_REGISTER); | 98 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RegisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_REGISTER); |
| 99 | ExitOnFailure(hr, "failed to schedule RegisterPerfmonManifest action"); | 99 | ExitOnFailure(hr, "failed to schedule RegisterPerfmonManifest action"); |
| 100 | } | 100 | } |
| 101 | 101 | ||
| @@ -143,40 +143,40 @@ extern "C" UINT __stdcall ConfigurePerfmonManifestUnregister( | |||
| 143 | ExitFunction1(hr = S_FALSE); | 143 | ExitFunction1(hr = S_FALSE); |
| 144 | } | 144 | } |
| 145 | // check to see if necessary tables are specified | 145 | // check to see if necessary tables are specified |
| 146 | if (WcaTableExists(L"PerfmonManifest") != S_OK) | 146 | if (WcaTableExists(L"Wix4PerfmonManifest") != S_OK) |
| 147 | { | 147 | { |
| 148 | WcaLog(LOGMSG_VERBOSE, "Skipping ConfigurePerfmonManifestUnregister() because PerfmonManifest table not present"); | 148 | WcaLog(LOGMSG_VERBOSE, "Skipping ConfigurePerfmonManifestUnregister() because Wix4PerfmonManifest table not present"); |
| 149 | ExitFunction1(hr = S_FALSE); | 149 | ExitFunction1(hr = S_FALSE); |
| 150 | } | 150 | } |
| 151 | 151 | ||
| 152 | hr = WcaOpenExecuteView(vcsPerfmonManifestQuery, &hView); | 152 | hr = WcaOpenExecuteView(vcsPerfmonManifestQuery, &hView); |
| 153 | ExitOnFailure(hr, "failed to open view on PerfMonManifest table"); | 153 | ExitOnFailure(hr, "failed to open view on Wix4PerfmonManifest table"); |
| 154 | while ((hr = WcaFetchRecord(hView, &hRec)) == S_OK) | 154 | while ((hr = WcaFetchRecord(hView, &hRec)) == S_OK) |
| 155 | { | 155 | { |
| 156 | // get component install state | 156 | // get component install state |
| 157 | hr = WcaGetRecordString(hRec, pfmComponent, &pwzData); | 157 | hr = WcaGetRecordString(hRec, pfmComponent, &pwzData); |
| 158 | ExitOnFailure(hr, "failed to get Component for PerfMonManifest"); | 158 | ExitOnFailure(hr, "failed to get Component for Wix4PerfmonManifest"); |
| 159 | er = ::MsiGetComponentStateW(hInstall, pwzData, &isInstalled, &isAction); | 159 | er = ::MsiGetComponentStateW(hInstall, pwzData, &isInstalled, &isAction); |
| 160 | hr = HRESULT_FROM_WIN32(er); | 160 | hr = HRESULT_FROM_WIN32(er); |
| 161 | ExitOnFailure(hr, "failed to get Component state for PerfMonManifest"); | 161 | ExitOnFailure(hr, "failed to get Component state for Wix4PerfmonManifest"); |
| 162 | if (!WcaIsUninstalling(isInstalled, isAction)) | 162 | if (!WcaIsUninstalling(isInstalled, isAction)) |
| 163 | { | 163 | { |
| 164 | continue; | 164 | continue; |
| 165 | } | 165 | } |
| 166 | 166 | ||
| 167 | hr = WcaGetRecordFormattedString(hRec, pfmFile, &pwzFile); | 167 | hr = WcaGetRecordFormattedString(hRec, pfmFile, &pwzFile); |
| 168 | ExitOnFailure(hr, "failed to get File for PerfMonManifest"); | 168 | ExitOnFailure(hr, "failed to get File for Wix4PerfmonManifest"); |
| 169 | 169 | ||
| 170 | hr = WcaGetRecordFormattedString(hRec, pfmResourceFileDir, &pwzResourceFilePath); | 170 | hr = WcaGetRecordFormattedString(hRec, pfmResourceFileDir, &pwzResourceFilePath); |
| 171 | ExitOnFailure(hr, "failed to get ApplicationIdentity for PerfMonManifest"); | 171 | ExitOnFailure(hr, "failed to get ApplicationIdentity for Wix4PerfmonManifest"); |
| 172 | size_t iResourcePath = lstrlenW(pwzResourceFilePath); | 172 | size_t iResourcePath = lstrlenW(pwzResourceFilePath); |
| 173 | if ( iResourcePath > 0 && *(pwzResourceFilePath + iResourcePath -1) == L'\\') | 173 | if ( iResourcePath > 0 && *(pwzResourceFilePath + iResourcePath -1) == L'\\') |
| 174 | *(pwzResourceFilePath + iResourcePath -1) = 0; //remove the trailing '\' | 174 | *(pwzResourceFilePath + iResourcePath -1) = 0; //remove the trailing '\' |
| 175 | 175 | ||
| 176 | hr = StrAllocFormatted(&pwzCommand, L"\"lodctr.exe\" /m:\"%s\" \"%s\"", pwzFile, pwzResourceFilePath); | 176 | hr = StrAllocFormatted(&pwzCommand, L"\"lodctr.exe\" /m:\"%s\" \"%s\"", pwzFile, pwzResourceFilePath); |
| 177 | ExitOnFailure(hr, "failed to copy string in PerfMonManifest"); | 177 | ExitOnFailure(hr, "failed to copy string in Wix4PerfmonManifest"); |
| 178 | 178 | ||
| 179 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackUnregisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_REGISTER); | 179 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackUnregisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_REGISTER); |
| 180 | ExitOnFailure(hr, "failed to schedule RollbackUnregisterPerfmonManifest action"); | 180 | ExitOnFailure(hr, "failed to schedule RollbackUnregisterPerfmonManifest action"); |
| 181 | 181 | ||
| 182 | hr = StrAllocFormatted(&pwzCommand, L"\"unlodctr.exe\" /m:\"%s\"", pwzFile); | 182 | hr = StrAllocFormatted(&pwzCommand, L"\"unlodctr.exe\" /m:\"%s\"", pwzFile); |
| @@ -184,7 +184,7 @@ extern "C" UINT __stdcall ConfigurePerfmonManifestUnregister( | |||
| 184 | 184 | ||
| 185 | WcaLog(LOGMSG_VERBOSE, "UnRegisterPerfmonManifest's CustomActionData: '%ls'", pwzCommand); | 185 | WcaLog(LOGMSG_VERBOSE, "UnRegisterPerfmonManifest's CustomActionData: '%ls'", pwzCommand); |
| 186 | 186 | ||
| 187 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"UnregisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER); | 187 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"UnregisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER); |
| 188 | ExitOnFailure(hr, "failed to schedule UnregisterPerfmonManifest action"); | 188 | ExitOnFailure(hr, "failed to schedule UnregisterPerfmonManifest action"); |
| 189 | } | 189 | } |
| 190 | 190 | ||
| @@ -231,41 +231,41 @@ extern "C" UINT __stdcall ConfigureEventManifestRegister( | |||
| 231 | ExitFunction1(hr = S_FALSE); | 231 | ExitFunction1(hr = S_FALSE); |
| 232 | } | 232 | } |
| 233 | // check to see if necessary tables are specified | 233 | // check to see if necessary tables are specified |
| 234 | if (S_OK != WcaTableExists(L"EventManifest")) | 234 | if (S_OK != WcaTableExists(L"Wix4EventManifest")) |
| 235 | { | 235 | { |
| 236 | WcaLog(LOGMSG_VERBOSE, "Skipping ConfigureEventManifestRegister() because EventManifest table not present"); | 236 | WcaLog(LOGMSG_VERBOSE, "Skipping ConfigureEventManifestRegister() because Wix4EventManifest table not present"); |
| 237 | ExitFunction1(hr = S_FALSE); | 237 | ExitFunction1(hr = S_FALSE); |
| 238 | } | 238 | } |
| 239 | 239 | ||
| 240 | hr = WcaOpenExecuteView(vcsEventManifestQuery, &hView); | 240 | hr = WcaOpenExecuteView(vcsEventManifestQuery, &hView); |
| 241 | ExitOnFailure(hr, "failed to open view on EventManifest table"); | 241 | ExitOnFailure(hr, "failed to open view on Wix4EventManifest table"); |
| 242 | while ((hr = WcaFetchRecord(hView, &hRec)) == S_OK) | 242 | while ((hr = WcaFetchRecord(hView, &hRec)) == S_OK) |
| 243 | { | 243 | { |
| 244 | // get component install state | 244 | // get component install state |
| 245 | hr = WcaGetRecordString(hRec, emComponent, &pwzData); | 245 | hr = WcaGetRecordString(hRec, emComponent, &pwzData); |
| 246 | ExitOnFailure(hr, "failed to get Component for EventManifest"); | 246 | ExitOnFailure(hr, "failed to get Component for Wix4EventManifest"); |
| 247 | er = ::MsiGetComponentStateW(hInstall, pwzData, &isInstalled, &isAction); | 247 | er = ::MsiGetComponentStateW(hInstall, pwzData, &isInstalled, &isAction); |
| 248 | hr = HRESULT_FROM_WIN32(er); | 248 | hr = HRESULT_FROM_WIN32(er); |
| 249 | ExitOnFailure(hr, "failed to get Component state for EventManifest"); | 249 | ExitOnFailure(hr, "failed to get Component state for Wix4EventManifest"); |
| 250 | if (!WcaIsInstalling(isInstalled, isAction)) | 250 | if (!WcaIsInstalling(isInstalled, isAction)) |
| 251 | { | 251 | { |
| 252 | continue; | 252 | continue; |
| 253 | } | 253 | } |
| 254 | 254 | ||
| 255 | hr = WcaGetRecordFormattedString(hRec, emFile, &pwzFile); | 255 | hr = WcaGetRecordFormattedString(hRec, emFile, &pwzFile); |
| 256 | ExitOnFailure(hr, "failed to get File for EventManifest"); | 256 | ExitOnFailure(hr, "failed to get File for Wix4EventManifest"); |
| 257 | 257 | ||
| 258 | hr = StrAllocFormatted(&pwzCommand, L"\"wevtutil.exe\" um \"%s\"", pwzFile); | 258 | hr = StrAllocFormatted(&pwzCommand, L"\"wevtutil.exe\" um \"%s\"", pwzFile); |
| 259 | ExitOnFailure(hr, "failed to copy string in EventManifest"); | 259 | ExitOnFailure(hr, "failed to copy string in Wix4EventManifest"); |
| 260 | 260 | ||
| 261 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackRegisterEventManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER); | 261 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackRegisterEventManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER); |
| 262 | ExitOnFailure(hr, "failed to schedule RollbackRegisterEventManifest action"); | 262 | ExitOnFailure(hr, "failed to schedule RollbackRegisterEventManifest action"); |
| 263 | 263 | ||
| 264 | hr = StrAllocFormatted(&pwzCommand, L"\"wevtutil.exe\" im \"%s\"", pwzFile); | 264 | hr = StrAllocFormatted(&pwzCommand, L"\"wevtutil.exe\" im \"%s\"", pwzFile); |
| 265 | ExitOnFailure(hr, "failed to copy string in EventManifest"); | 265 | ExitOnFailure(hr, "failed to copy string in Wix4EventManifest"); |
| 266 | WcaLog(LOGMSG_VERBOSE, "RegisterEventManifest's CustomActionData: '%ls'", pwzCommand); | 266 | WcaLog(LOGMSG_VERBOSE, "RegisterEventManifest's CustomActionData: '%ls'", pwzCommand); |
| 267 | 267 | ||
| 268 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RegisterEventManifest"), pwzCommand, COST_EVENTMANIFEST_REGISTER); | 268 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RegisterEventManifest"), pwzCommand, COST_EVENTMANIFEST_REGISTER); |
| 269 | ExitOnFailure(hr, "failed to schedule RegisterEventManifest action"); | 269 | ExitOnFailure(hr, "failed to schedule RegisterEventManifest action"); |
| 270 | } | 270 | } |
| 271 | 271 | ||
| @@ -273,7 +273,7 @@ extern "C" UINT __stdcall ConfigureEventManifestRegister( | |||
| 273 | { | 273 | { |
| 274 | hr = S_OK; | 274 | hr = S_OK; |
| 275 | } | 275 | } |
| 276 | ExitOnFailure(hr, "Failure while processing EventManifest"); | 276 | ExitOnFailure(hr, "Failure while processing Wix4EventManifest"); |
| 277 | 277 | ||
| 278 | hr = S_OK; | 278 | hr = S_OK; |
| 279 | 279 | ||
| @@ -313,22 +313,22 @@ extern "C" UINT __stdcall ConfigureEventManifestUnregister( | |||
| 313 | ExitFunction1(hr = S_FALSE); | 313 | ExitFunction1(hr = S_FALSE); |
| 314 | } | 314 | } |
| 315 | // check to see if necessary tables are specified | 315 | // check to see if necessary tables are specified |
| 316 | if (S_OK != WcaTableExists(L"EventManifest")) | 316 | if (S_OK != WcaTableExists(L"Wix4EventManifest")) |
| 317 | { | 317 | { |
| 318 | WcaLog(LOGMSG_VERBOSE, "Skipping ConfigureEventManifestUnregister() because EventManifest table not present"); | 318 | WcaLog(LOGMSG_VERBOSE, "Skipping ConfigureEventManifestUnregister() because Wix4EventManifest table not present"); |
| 319 | ExitFunction1(hr = S_FALSE); | 319 | ExitFunction1(hr = S_FALSE); |
| 320 | } | 320 | } |
| 321 | 321 | ||
| 322 | hr = WcaOpenExecuteView(vcsEventManifestQuery, &hView); | 322 | hr = WcaOpenExecuteView(vcsEventManifestQuery, &hView); |
| 323 | ExitOnFailure(hr, "failed to open view on EventManifest table"); | 323 | ExitOnFailure(hr, "failed to open view on Wix4EventManifest table"); |
| 324 | while ((hr = WcaFetchRecord(hView, &hRec)) == S_OK) | 324 | while ((hr = WcaFetchRecord(hView, &hRec)) == S_OK) |
| 325 | { | 325 | { |
| 326 | // get component install state | 326 | // get component install state |
| 327 | hr = WcaGetRecordString(hRec, emComponent, &pwzData); | 327 | hr = WcaGetRecordString(hRec, emComponent, &pwzData); |
| 328 | ExitOnFailure(hr, "failed to get Component for EventManifest"); | 328 | ExitOnFailure(hr, "failed to get Component for Wix4EventManifest"); |
| 329 | er = ::MsiGetComponentStateW(hInstall, pwzData, &isInstalled, &isAction); | 329 | er = ::MsiGetComponentStateW(hInstall, pwzData, &isInstalled, &isAction); |
| 330 | hr = HRESULT_FROM_WIN32(er); | 330 | hr = HRESULT_FROM_WIN32(er); |
| 331 | ExitOnFailure(hr, "failed to get Component state for EventManifest"); | 331 | ExitOnFailure(hr, "failed to get Component state for Wix4EventManifest"); |
| 332 | 332 | ||
| 333 | // nothing to do on an install | 333 | // nothing to do on an install |
| 334 | // schedule the rollback action when reinstalling to re-register pre-patch manifest | 334 | // schedule the rollback action when reinstalling to re-register pre-patch manifest |
| @@ -338,22 +338,22 @@ extern "C" UINT __stdcall ConfigureEventManifestUnregister( | |||
| 338 | } | 338 | } |
| 339 | 339 | ||
| 340 | hr = WcaGetRecordFormattedString(hRec, emFile, &pwzFile); | 340 | hr = WcaGetRecordFormattedString(hRec, emFile, &pwzFile); |
| 341 | ExitOnFailure(hr, "failed to get File for EventManifest"); | 341 | ExitOnFailure(hr, "failed to get File for Wix4EventManifest"); |
| 342 | 342 | ||
| 343 | hr = StrAllocFormatted(&pwzCommand, L"\"wevtutil.exe\" im \"%s\"", pwzFile); | 343 | hr = StrAllocFormatted(&pwzCommand, L"\"wevtutil.exe\" im \"%s\"", pwzFile); |
| 344 | ExitOnFailure(hr, "failed to copy string in EventManifest"); | 344 | ExitOnFailure(hr, "failed to copy string in Wix4EventManifest"); |
| 345 | 345 | ||
| 346 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackUnregisterEventManifest"), pwzCommand, COST_PERFMONMANIFEST_REGISTER); | 346 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackUnregisterEventManifest"), pwzCommand, COST_PERFMONMANIFEST_REGISTER); |
| 347 | ExitOnFailure(hr, "failed to schedule RollbackUnregisterEventManifest action"); | 347 | ExitOnFailure(hr, "failed to schedule RollbackUnregisterEventManifest action"); |
| 348 | 348 | ||
| 349 | // no need to uninstall on a repair/patch. Register action will re-register and update the manifest. | 349 | // no need to uninstall on a repair/patch. Register action will re-register and update the manifest. |
| 350 | if (!WcaIsReInstalling(isInstalled, isAction)) | 350 | if (!WcaIsReInstalling(isInstalled, isAction)) |
| 351 | { | 351 | { |
| 352 | hr = StrAllocFormatted(&pwzCommand, L"\"wevtutil.exe\" um \"%s\"", pwzFile); | 352 | hr = StrAllocFormatted(&pwzCommand, L"\"wevtutil.exe\" um \"%s\"", pwzFile); |
| 353 | ExitOnFailure(hr, "failed to copy string in EventManifest"); | 353 | ExitOnFailure(hr, "failed to copy string in Wix4EventManifest"); |
| 354 | WcaLog(LOGMSG_VERBOSE, "UnregisterEventManifest's CustomActionData: '%ls'", pwzCommand); | 354 | WcaLog(LOGMSG_VERBOSE, "UnregisterEventManifest's CustomActionData: '%ls'", pwzCommand); |
| 355 | 355 | ||
| 356 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"UnregisterEventManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER); | 356 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"UnregisterEventManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER); |
| 357 | ExitOnFailure(hr, "failed to schedule UnregisterEventManifest action"); | 357 | ExitOnFailure(hr, "failed to schedule UnregisterEventManifest action"); |
| 358 | } | 358 | } |
| 359 | } | 359 | } |
| @@ -362,7 +362,7 @@ extern "C" UINT __stdcall ConfigureEventManifestUnregister( | |||
| 362 | { | 362 | { |
| 363 | hr = S_OK; | 363 | hr = S_OK; |
| 364 | } | 364 | } |
| 365 | ExitOnFailure(hr, "Failure while processing EventManifest"); | 365 | ExitOnFailure(hr, "Failure while processing Wix4EventManifest"); |
| 366 | 366 | ||
| 367 | hr = S_OK; | 367 | hr = S_OK; |
| 368 | 368 | ||
diff --git a/src/ca/scaperf.cpp b/src/ca/scaperf.cpp index 82f458af..fd301278 100644 --- a/src/ca/scaperf.cpp +++ b/src/ca/scaperf.cpp | |||
| @@ -2,10 +2,10 @@ | |||
| 2 | 2 | ||
| 3 | #include "precomp.h" | 3 | #include "precomp.h" |
| 4 | 4 | ||
| 5 | LPCWSTR vcsPerfCounterDataQuery = L"SELECT `PerformanceCategory`, `Component_`, `Name`, `IniData`, `ConstantData` FROM `PerformanceCategory`"; | 5 | LPCWSTR vcsPerfCounterDataQuery = L"SELECT `Wix4PerformanceCategory`, `Component_`, `Name`, `IniData`, `ConstantData` FROM `Wix4PerformanceCategory`"; |
| 6 | enum ePerfCounterDataQuery { pcdqId = 1, pcdqComponent, pcdqName, pcdqIniData, pcdqConstantData }; | 6 | enum ePerfCounterDataQuery { pcdqId = 1, pcdqComponent, pcdqName, pcdqIniData, pcdqConstantData }; |
| 7 | 7 | ||
| 8 | LPCWSTR vcsPerfMonQuery = L"SELECT `Component_`, `File`, `Name` FROM `Perfmon`"; | 8 | LPCWSTR vcsPerfMonQuery = L"SELECT `Component_`, `File`, `Name` FROM `Wix4Perfmon`"; |
| 9 | enum ePerfMonQuery { pmqComponent = 1, pmqFile, pmqName }; | 9 | enum ePerfMonQuery { pmqComponent = 1, pmqFile, pmqName }; |
| 10 | 10 | ||
| 11 | 11 | ||
| @@ -32,7 +32,7 @@ extern "C" UINT __stdcall InstallPerfCounterData( | |||
| 32 | ExitOnFailure(hr, "Failed to initialize InstallPerfCounterData."); | 32 | ExitOnFailure(hr, "Failed to initialize InstallPerfCounterData."); |
| 33 | 33 | ||
| 34 | hr = ProcessPerformanceCategory(hInstall, TRUE); | 34 | hr = ProcessPerformanceCategory(hInstall, TRUE); |
| 35 | MessageExitOnFailure(hr, msierrInstallPerfCounterData, "Failed to process PerformanceCategory table."); | 35 | MessageExitOnFailure(hr, msierrInstallPerfCounterData, "Failed to process Wix4PerformanceCategory table."); |
| 36 | 36 | ||
| 37 | LExit: | 37 | LExit: |
| 38 | er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE; | 38 | er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE; |
| @@ -57,7 +57,7 @@ extern "C" UINT __stdcall UninstallPerfCounterData( | |||
| 57 | ExitOnFailure(hr, "Failed to initialize UninstallPerfCounterData."); | 57 | ExitOnFailure(hr, "Failed to initialize UninstallPerfCounterData."); |
| 58 | 58 | ||
| 59 | hr = ProcessPerformanceCategory(hInstall, FALSE); | 59 | hr = ProcessPerformanceCategory(hInstall, FALSE); |
| 60 | MessageExitOnFailure(hr, msierrUninstallPerfCounterData, "Failed to process PerformanceCategory table."); | 60 | MessageExitOnFailure(hr, msierrUninstallPerfCounterData, "Failed to process Wix4PerformanceCategory table."); |
| 61 | 61 | ||
| 62 | LExit: | 62 | LExit: |
| 63 | er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE; | 63 | er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE; |
| @@ -85,9 +85,9 @@ extern "C" UINT __stdcall ConfigurePerfmonInstall( | |||
| 85 | ExitOnFailure(hr, "Failed to initialize"); | 85 | ExitOnFailure(hr, "Failed to initialize"); |
| 86 | 86 | ||
| 87 | // check to see if necessary tables are specified | 87 | // check to see if necessary tables are specified |
| 88 | if (S_OK != WcaTableExists(L"Perfmon")) | 88 | if (S_OK != WcaTableExists(L"Wix4Perfmon")) |
| 89 | { | 89 | { |
| 90 | WcaLog(LOGMSG_VERBOSE, "Skipping RegisterPerfmon() because Perfmon table not present"); | 90 | WcaLog(LOGMSG_VERBOSE, "Skipping RegisterPerfmon() because Wix4Perfmon table not present"); |
| 91 | ExitFunction1(hr = S_FALSE); | 91 | ExitFunction1(hr = S_FALSE); |
| 92 | } | 92 | } |
| 93 | 93 | ||
| @@ -113,9 +113,9 @@ extern "C" UINT __stdcall ConfigurePerfmonInstall( | |||
| 113 | ExitOnFailure(hr, "failed to get File for PerfMon"); | 113 | ExitOnFailure(hr, "failed to get File for PerfMon"); |
| 114 | 114 | ||
| 115 | WcaLog(LOGMSG_VERBOSE, "ConfigurePerfmonInstall's CustomActionData: '%ls', '%ls'", pwzName, pwzFile); | 115 | WcaLog(LOGMSG_VERBOSE, "ConfigurePerfmonInstall's CustomActionData: '%ls', '%ls'", pwzName, pwzFile); |
| 116 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RegisterPerfmon"), pwzFile, COST_PERFMON_REGISTER); | 116 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RegisterPerfmon"), pwzFile, COST_PERFMON_REGISTER); |
| 117 | ExitOnFailure(hr, "failed to schedule RegisterPerfmon action"); | 117 | ExitOnFailure(hr, "failed to schedule RegisterPerfmon action"); |
| 118 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackRegisterPerfmon"), pwzName, COST_PERFMON_UNREGISTER); | 118 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackRegisterPerfmon"), pwzName, COST_PERFMON_UNREGISTER); |
| 119 | ExitOnFailure(hr, "failed to schedule RollbackRegisterPerfmon action"); | 119 | ExitOnFailure(hr, "failed to schedule RollbackRegisterPerfmon action"); |
| 120 | } | 120 | } |
| 121 | 121 | ||
| @@ -158,9 +158,9 @@ extern "C" UINT __stdcall ConfigurePerfmonUninstall( | |||
| 158 | ExitOnFailure(hr, "Failed to initialize"); | 158 | ExitOnFailure(hr, "Failed to initialize"); |
| 159 | 159 | ||
| 160 | // check to see if necessary tables are specified | 160 | // check to see if necessary tables are specified |
| 161 | if (WcaTableExists(L"Perfmon") != S_OK) | 161 | if (WcaTableExists(L"Wix4Perfmon") != S_OK) |
| 162 | { | 162 | { |
| 163 | WcaLog(LOGMSG_VERBOSE, "Skipping UnregisterPerfmon() because Perfmon table not present"); | 163 | WcaLog(LOGMSG_VERBOSE, "Skipping UnregisterPerfmon() because Wix4Perfmon table not present"); |
| 164 | ExitFunction1(hr = S_FALSE); | 164 | ExitFunction1(hr = S_FALSE); |
| 165 | } | 165 | } |
| 166 | 166 | ||
| @@ -186,9 +186,9 @@ extern "C" UINT __stdcall ConfigurePerfmonUninstall( | |||
| 186 | ExitOnFailure(hr, "failed to get File for PerfMon"); | 186 | ExitOnFailure(hr, "failed to get File for PerfMon"); |
| 187 | 187 | ||
| 188 | WcaLog(LOGMSG_VERBOSE, "ConfigurePerfmonUninstall's CustomActionData: '%ls', '%ls'", pwzName, pwzFile); | 188 | WcaLog(LOGMSG_VERBOSE, "ConfigurePerfmonUninstall's CustomActionData: '%ls', '%ls'", pwzName, pwzFile); |
| 189 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"UnregisterPerfmon"), pwzName, COST_PERFMON_UNREGISTER); | 189 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"UnregisterPerfmon"), pwzName, COST_PERFMON_UNREGISTER); |
| 190 | ExitOnFailure(hr, "failed to schedule UnregisterPerfmon action"); | 190 | ExitOnFailure(hr, "failed to schedule UnregisterPerfmon action"); |
| 191 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackUnregisterPerfmon"), pwzFile, COST_PERFMON_REGISTER); | 191 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackUnregisterPerfmon"), pwzFile, COST_PERFMON_REGISTER); |
| 192 | ExitOnFailure(hr, "failed to schedule RollbackUnregisterPerfmon action"); | 192 | ExitOnFailure(hr, "failed to schedule RollbackUnregisterPerfmon action"); |
| 193 | } | 193 | } |
| 194 | 194 | ||
| @@ -229,26 +229,26 @@ static HRESULT ProcessPerformanceCategory( | |||
| 229 | LPWSTR pwzCustomActionData = NULL; | 229 | LPWSTR pwzCustomActionData = NULL; |
| 230 | 230 | ||
| 231 | // check to see if necessary tables are specified | 231 | // check to see if necessary tables are specified |
| 232 | if (S_OK != WcaTableExists(L"PerformanceCategory")) | 232 | if (S_OK != WcaTableExists(L"Wix4PerformanceCategory")) |
| 233 | { | 233 | { |
| 234 | ExitFunction1(hr = S_FALSE); | 234 | ExitFunction1(hr = S_FALSE); |
| 235 | } | 235 | } |
| 236 | 236 | ||
| 237 | hr = WcaOpenExecuteView(vcsPerfCounterDataQuery, &hView); | 237 | hr = WcaOpenExecuteView(vcsPerfCounterDataQuery, &hView); |
| 238 | ExitOnFailure(hr, "failed to open view on PerformanceCategory table"); | 238 | ExitOnFailure(hr, "failed to open view on Wix4PerformanceCategory table"); |
| 239 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) | 239 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) |
| 240 | { | 240 | { |
| 241 | hr = WcaGetRecordString(hRec, pcdqId, &pwzId); | 241 | hr = WcaGetRecordString(hRec, pcdqId, &pwzId); |
| 242 | ExitOnFailure(hr, "Failed to get id for PerformanceCategory."); | 242 | ExitOnFailure(hr, "Failed to get id for Wix4PerformanceCategory."); |
| 243 | 243 | ||
| 244 | // Check to see if the Component is being installed or uninstalled | 244 | // Check to see if the Component is being installed or uninstalled |
| 245 | // when we are processing the same. | 245 | // when we are processing the same. |
| 246 | hr = WcaGetRecordString(hRec, pcdqComponent, &pwzComponent); | 246 | hr = WcaGetRecordString(hRec, pcdqComponent, &pwzComponent); |
| 247 | ExitOnFailure(hr, "Failed to get Component for PerformanceCategory: %ls", pwzId); | 247 | ExitOnFailure(hr, "Failed to get Component for Wix4PerformanceCategory: %ls", pwzId); |
| 248 | 248 | ||
| 249 | er = ::MsiGetComponentStateW(hInstall, pwzComponent, &isInstalled, &isAction); | 249 | er = ::MsiGetComponentStateW(hInstall, pwzComponent, &isInstalled, &isAction); |
| 250 | hr = HRESULT_FROM_WIN32(er); | 250 | hr = HRESULT_FROM_WIN32(er); |
| 251 | ExitOnFailure(hr, "Failed to get Component state for PerformanceCategory: %ls", pwzId); | 251 | ExitOnFailure(hr, "Failed to get Component state for Wix4PerformanceCategory: %ls", pwzId); |
| 252 | 252 | ||
| 253 | if ((fInstall && !WcaIsInstalling(isInstalled, isAction)) || | 253 | if ((fInstall && !WcaIsInstalling(isInstalled, isAction)) || |
| 254 | (!fInstall && !WcaIsUninstalling(isInstalled, isAction))) | 254 | (!fInstall && !WcaIsUninstalling(isInstalled, isAction))) |
| @@ -257,45 +257,45 @@ static HRESULT ProcessPerformanceCategory( | |||
| 257 | } | 257 | } |
| 258 | 258 | ||
| 259 | hr = WcaGetRecordString(hRec, pcdqName, &pwzName); | 259 | hr = WcaGetRecordString(hRec, pcdqName, &pwzName); |
| 260 | ExitOnFailure(hr, "Failed to get Name for PerformanceCategory: %ls", pwzId); | 260 | ExitOnFailure(hr, "Failed to get Name for Wix4PerformanceCategory: %ls", pwzId); |
| 261 | hr = WcaWriteStringToCaData(pwzName, &pwzCustomActionData); | 261 | hr = WcaWriteStringToCaData(pwzName, &pwzCustomActionData); |
| 262 | ExitOnFailure(hr, "Failed to add Name to CustomActionData for PerformanceCategory: %ls", pwzId); | 262 | ExitOnFailure(hr, "Failed to add Name to CustomActionData for Wix4PerformanceCategory: %ls", pwzId); |
| 263 | 263 | ||
| 264 | hr = WcaGetRecordString(hRec, pcdqIniData, &pwzData); | 264 | hr = WcaGetRecordString(hRec, pcdqIniData, &pwzData); |
| 265 | ExitOnFailure(hr, "Failed to get IniData for PerformanceCategory: %ls", pwzId); | 265 | ExitOnFailure(hr, "Failed to get IniData for Wix4PerformanceCategory: %ls", pwzId); |
| 266 | hr = WcaWriteStringToCaData(pwzData, &pwzCustomActionData); | 266 | hr = WcaWriteStringToCaData(pwzData, &pwzCustomActionData); |
| 267 | ExitOnFailure(hr, "Failed to add IniData to CustomActionData for PerformanceCategory: %ls", pwzId); | 267 | ExitOnFailure(hr, "Failed to add IniData to CustomActionData for Wix4PerformanceCategory: %ls", pwzId); |
| 268 | 268 | ||
| 269 | hr = WcaGetRecordString(hRec, pcdqConstantData, &pwzData); | 269 | hr = WcaGetRecordString(hRec, pcdqConstantData, &pwzData); |
| 270 | ExitOnFailure(hr, "Failed to get ConstantData for PerformanceCategory: %ls", pwzId); | 270 | ExitOnFailure(hr, "Failed to get ConstantData for Wix4PerformanceCategory: %ls", pwzId); |
| 271 | hr = WcaWriteStringToCaData(pwzData, &pwzCustomActionData); | 271 | hr = WcaWriteStringToCaData(pwzData, &pwzCustomActionData); |
| 272 | ExitOnFailure(hr, "Failed to add ConstantData to CustomActionData for PerformanceCategory: %ls", pwzId); | 272 | ExitOnFailure(hr, "Failed to add ConstantData to CustomActionData for Wix4PerformanceCategory: %ls", pwzId); |
| 273 | } | 273 | } |
| 274 | 274 | ||
| 275 | if (hr == E_NOMOREITEMS) | 275 | if (hr == E_NOMOREITEMS) |
| 276 | { | 276 | { |
| 277 | hr = S_OK; | 277 | hr = S_OK; |
| 278 | } | 278 | } |
| 279 | ExitOnFailure(hr, "Failure while processing PerformanceCategory table."); | 279 | ExitOnFailure(hr, "Failure while processing Wix4PerformanceCategory table."); |
| 280 | 280 | ||
| 281 | // If there was any data built up, schedule it for execution. | 281 | // If there was any data built up, schedule it for execution. |
| 282 | if (pwzCustomActionData) | 282 | if (pwzCustomActionData) |
| 283 | { | 283 | { |
| 284 | if (fInstall) | 284 | if (fInstall) |
| 285 | { | 285 | { |
| 286 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackRegisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_UNREGISTER); | 286 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackRegisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_UNREGISTER); |
| 287 | ExitOnFailure(hr, "Failed to schedule RollbackRegisterPerfCounterData action for PerformanceCategory: %ls", pwzId); | 287 | ExitOnFailure(hr, "Failed to schedule RollbackRegisterPerfCounterData action for Wix4PerformanceCategory: %ls", pwzId); |
| 288 | 288 | ||
| 289 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RegisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_REGISTER); | 289 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RegisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_REGISTER); |
| 290 | ExitOnFailure(hr, "Failed to schedule RegisterPerfCounterData action for PerformanceCategory: %ls", pwzId); | 290 | ExitOnFailure(hr, "Failed to schedule RegisterPerfCounterData action for Wix4PerformanceCategory: %ls", pwzId); |
| 291 | } | 291 | } |
| 292 | else | 292 | else |
| 293 | { | 293 | { |
| 294 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackUnregisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_REGISTER); | 294 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackUnregisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_REGISTER); |
| 295 | ExitOnFailure(hr, "Failed to schedule RollbackUnregisterPerfCounterData action for PerformanceCategory: %ls", pwzId); | 295 | ExitOnFailure(hr, "Failed to schedule RollbackUnregisterPerfCounterData action for Wix4PerformanceCategory: %ls", pwzId); |
| 296 | 296 | ||
| 297 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"UnregisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_UNREGISTER); | 297 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"UnregisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_UNREGISTER); |
| 298 | ExitOnFailure(hr, "Failed to schedule UnregisterPerfCounterData action for PerformanceCategory: %ls", pwzId); | 298 | ExitOnFailure(hr, "Failed to schedule UnregisterPerfCounterData action for Wix4PerformanceCategory: %ls", pwzId); |
| 299 | } | 299 | } |
| 300 | } | 300 | } |
| 301 | 301 | ||
diff --git a/src/ca/scaperfexec.cpp b/src/ca/scaperfexec.cpp index bf58c8d0..04c0648a 100644 --- a/src/ca/scaperfexec.cpp +++ b/src/ca/scaperfexec.cpp | |||
| @@ -35,7 +35,7 @@ extern "C" UINT __stdcall RegisterPerfCounterData( | |||
| 35 | ExitOnFailure(hr, "Failed to initialize RegisterPerfCounterData."); | 35 | ExitOnFailure(hr, "Failed to initialize RegisterPerfCounterData."); |
| 36 | 36 | ||
| 37 | hr = ExecutePerfCounterData(hInstall, TRUE); | 37 | hr = ExecutePerfCounterData(hInstall, TRUE); |
| 38 | MessageExitOnFailure(hr, msierrInstallPerfCounterData, "Failed to execute PerformanceCategory table."); | 38 | MessageExitOnFailure(hr, msierrInstallPerfCounterData, "Failed to execute Wix4PerformanceCategory table."); |
| 39 | 39 | ||
| 40 | LExit: | 40 | LExit: |
| 41 | er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE; | 41 | er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE; |
| @@ -61,7 +61,7 @@ extern "C" UINT __stdcall UnregisterPerfCounterData( | |||
| 61 | ExitOnFailure(hr, "Failed to initialize UnregisterPerfCounterData."); | 61 | ExitOnFailure(hr, "Failed to initialize UnregisterPerfCounterData."); |
| 62 | 62 | ||
| 63 | hr = ExecutePerfCounterData(hInstall, FALSE); | 63 | hr = ExecutePerfCounterData(hInstall, FALSE); |
| 64 | MessageExitOnFailure(hr, msierrUninstallPerfCounterData, "Failed to execute PerformanceCategory table."); | 64 | MessageExitOnFailure(hr, msierrUninstallPerfCounterData, "Failed to execute Wix4PerformanceCategory table."); |
| 65 | 65 | ||
| 66 | LExit: | 66 | LExit: |
| 67 | er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE; | 67 | er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE; |
diff --git a/src/ca/scasched.cpp b/src/ca/scasched.cpp index ba230a9e..d81b1f14 100644 --- a/src/ca/scasched.cpp +++ b/src/ca/scasched.cpp | |||
| @@ -21,14 +21,14 @@ extern "C" UINT __stdcall ConfigureSmbInstall( | |||
| 21 | ExitOnFailure(hr, "Failed to initialize"); | 21 | ExitOnFailure(hr, "Failed to initialize"); |
| 22 | 22 | ||
| 23 | // check to see if necessary tables are specified | 23 | // check to see if necessary tables are specified |
| 24 | if (WcaTableExists(L"FileShare") != S_OK) | 24 | if (WcaTableExists(L"Wix4FileShare") != S_OK) |
| 25 | { | 25 | { |
| 26 | WcaLog(LOGMSG_VERBOSE, "Skipping SMB CustomAction, no FileShare table"); | 26 | WcaLog(LOGMSG_VERBOSE, "Skipping SMB CustomAction, no Wix4FileShare table"); |
| 27 | ExitFunction1(hr = S_FALSE); | 27 | ExitFunction1(hr = S_FALSE); |
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | hr = ScaSmbRead(&pssList); | 30 | hr = ScaSmbRead(&pssList); |
| 31 | ExitOnFailure(hr, "failed to read FileShare table"); | 31 | ExitOnFailure(hr, "failed to read Wix4FileShare table"); |
| 32 | 32 | ||
| 33 | hr = ScaSmbInstall(pssList); | 33 | hr = ScaSmbInstall(pssList); |
| 34 | ExitOnFailure(hr, "failed to install FileShares"); | 34 | ExitOnFailure(hr, "failed to install FileShares"); |
| @@ -43,7 +43,7 @@ LExit: | |||
| 43 | 43 | ||
| 44 | 44 | ||
| 45 | /******************************************************************** | 45 | /******************************************************************** |
| 46 | ConfigureSmb - CUSTOM ACTION ENTRY POINT for installing fileshare settings | 46 | ConfigureSmb - CUSTOM ACTION ENTRY POINT for uninstalling fileshare settings |
| 47 | 47 | ||
| 48 | ********************************************************************/ | 48 | ********************************************************************/ |
| 49 | extern "C" UINT __stdcall ConfigureSmbUninstall( | 49 | extern "C" UINT __stdcall ConfigureSmbUninstall( |
| @@ -60,14 +60,14 @@ extern "C" UINT __stdcall ConfigureSmbUninstall( | |||
| 60 | ExitOnFailure(hr, "Failed to initialize"); | 60 | ExitOnFailure(hr, "Failed to initialize"); |
| 61 | 61 | ||
| 62 | // check to see if necessary tables are specified | 62 | // check to see if necessary tables are specified |
| 63 | if (WcaTableExists(L"FileShare") != S_OK) | 63 | if (WcaTableExists(L"Wix4FileShare") != S_OK) |
| 64 | { | 64 | { |
| 65 | WcaLog(LOGMSG_VERBOSE, "Skipping SMB CustomAction, no FileShare table"); | 65 | WcaLog(LOGMSG_VERBOSE, "Skipping SMB CustomAction, no Wix4FileShare table"); |
| 66 | ExitFunction1(hr = S_FALSE); | 66 | ExitFunction1(hr = S_FALSE); |
| 67 | } | 67 | } |
| 68 | 68 | ||
| 69 | hr = ScaSmbRead(&pssList); | 69 | hr = ScaSmbRead(&pssList); |
| 70 | ExitOnFailure(hr, "failed to read FileShare table"); | 70 | ExitOnFailure(hr, "failed to read Wix4FileShare table"); |
| 71 | 71 | ||
| 72 | hr = ScaSmbUninstall(pssList); | 72 | hr = ScaSmbUninstall(pssList); |
| 73 | ExitOnFailure(hr, "failed to uninstall FileShares"); | 73 | ExitOnFailure(hr, "failed to uninstall FileShares"); |
| @@ -106,7 +106,7 @@ extern "C" UINT __stdcall ConfigureUsers( | |||
| 106 | fInitializedCom = TRUE; | 106 | fInitializedCom = TRUE; |
| 107 | 107 | ||
| 108 | hr = ScaUserRead(&psuList); | 108 | hr = ScaUserRead(&psuList); |
| 109 | ExitOnFailure(hr, "failed to read User table"); | 109 | ExitOnFailure(hr, "failed to read Wix4User table"); |
| 110 | 110 | ||
| 111 | hr = ScaUserExecute(psuList); | 111 | hr = ScaUserExecute(psuList); |
| 112 | ExitOnFailure(hr, "failed to add/remove User actions"); | 112 | ExitOnFailure(hr, "failed to add/remove User actions"); |
diff --git a/src/ca/scasmb.h b/src/ca/scasmb.h index 7dbeb14d..f2a4b53c 100644 --- a/src/ca/scasmb.h +++ b/src/ca/scasmb.h | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | #include "scauser.h" | 5 | #include "scauser.h" |
| 6 | 6 | ||
| 7 | // structs | 7 | // structs |
| 8 | // Structure used to hold and extra user/permission pairs from the FileSharePermissions Table | 8 | // Structure used to hold and extra user/permission pairs from the Wix4FileSharePermissions Table |
| 9 | struct SCA_SMB_EX_USER_PERMS | 9 | struct SCA_SMB_EX_USER_PERMS |
| 10 | { | 10 | { |
| 11 | int nPermissions; | 11 | int nPermissions; |
diff --git a/src/ca/scasmbsched.cpp b/src/ca/scasmbsched.cpp index 72536d6d..e29f7f51 100644 --- a/src/ca/scasmbsched.cpp +++ b/src/ca/scasmbsched.cpp | |||
| @@ -92,8 +92,8 @@ void ScaExUserPermsSmbFreeList(SCA_SMB_EX_USER_PERMS* pExUserPermsList) | |||
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | // sql query constants | 94 | // sql query constants |
| 95 | LPCWSTR vcsSmbQuery = L"SELECT `FileShare`, `ShareName`, `Description`, `Directory_`, " | 95 | LPCWSTR vcsSmbQuery = L"SELECT `Wix4FileShare`, `ShareName`, `Description`, `Directory_`, " |
| 96 | L"`Component_`, `User_`, `Permissions` FROM `FileShare`"; | 96 | L"`Component_`, `User_`, `Permissions` FROM `Wix4FileShare`"; |
| 97 | 97 | ||
| 98 | enum eSmbQuery { | 98 | enum eSmbQuery { |
| 99 | ssqFileShare = 1, | 99 | ssqFileShare = 1, |
| @@ -122,26 +122,26 @@ HRESULT ScaSmbRead(SCA_SMB** ppssList) | |||
| 122 | SCA_SMB* pss = NULL; | 122 | SCA_SMB* pss = NULL; |
| 123 | BOOL bUserPermissionsTableExists = FALSE; | 123 | BOOL bUserPermissionsTableExists = FALSE; |
| 124 | 124 | ||
| 125 | if (S_OK != WcaTableExists(L"FileShare")) | 125 | if (S_OK != WcaTableExists(L"Wix4FileShare")) |
| 126 | { | 126 | { |
| 127 | WcaLog(LOGMSG_VERBOSE, "Skipping ScaSmbCreateShare() - FileShare table not present"); | 127 | WcaLog(LOGMSG_VERBOSE, "Skipping ScaSmbCreateShare() - Wix4FileShare table not present"); |
| 128 | ExitFunction1(hr = S_FALSE); | 128 | ExitFunction1(hr = S_FALSE); |
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | if (S_OK == WcaTableExists(L"FileSharePermissions")) | 131 | if (S_OK == WcaTableExists(L"Wix4FileSharePermissions")) |
| 132 | { | 132 | { |
| 133 | bUserPermissionsTableExists = TRUE; | 133 | bUserPermissionsTableExists = TRUE; |
| 134 | } | 134 | } |
| 135 | else | 135 | else |
| 136 | { | 136 | { |
| 137 | WcaLog(LOGMSG_VERBOSE, "No Additional Permissions - FileSharePermissions table not present"); | 137 | WcaLog(LOGMSG_VERBOSE, "No Additional Permissions - Wix4FileSharePermissions table not present"); |
| 138 | } | 138 | } |
| 139 | 139 | ||
| 140 | WcaLog(LOGMSG_VERBOSE, "Reading File Share Tables"); | 140 | WcaLog(LOGMSG_VERBOSE, "Reading File Share Tables"); |
| 141 | 141 | ||
| 142 | // loop through all the fileshares | 142 | // loop through all the fileshares |
| 143 | hr = WcaOpenExecuteView(vcsSmbQuery, &hView); | 143 | hr = WcaOpenExecuteView(vcsSmbQuery, &hView); |
| 144 | ExitOnFailure(hr, "Failed to open view on FileShare table"); | 144 | ExitOnFailure(hr, "Failed to open view on Wix4FileShare table"); |
| 145 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) | 145 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) |
| 146 | { | 146 | { |
| 147 | pss = NewSmb(); | 147 | pss = NewSmb(); |
| @@ -154,33 +154,33 @@ HRESULT ScaSmbRead(SCA_SMB** ppssList) | |||
| 154 | ::ZeroMemory(pss, sizeof(*pss)); | 154 | ::ZeroMemory(pss, sizeof(*pss)); |
| 155 | 155 | ||
| 156 | hr = WcaGetRecordString(hRec, ssqFileShare, &pwzData); | 156 | hr = WcaGetRecordString(hRec, ssqFileShare, &pwzData); |
| 157 | ExitOnFailure(hr, "Failed to get FileShare.FileShare"); | 157 | ExitOnFailure(hr, "Failed to get Wix4FileShare.Wix4FileShare"); |
| 158 | hr = ::StringCchCopyW(pss->wzId, countof(pss->wzId), pwzData); | 158 | hr = ::StringCchCopyW(pss->wzId, countof(pss->wzId), pwzData); |
| 159 | ExitOnFailure(hr, "Failed to copy ID string to smb object"); | 159 | ExitOnFailure(hr, "Failed to copy ID string to smb object"); |
| 160 | 160 | ||
| 161 | hr = WcaGetRecordFormattedString(hRec, ssqShareName, &pwzData); | 161 | hr = WcaGetRecordFormattedString(hRec, ssqShareName, &pwzData); |
| 162 | ExitOnFailure(hr, "Failed to get FileShare.ShareName"); | 162 | ExitOnFailure(hr, "Failed to get Wix4FileShare.ShareName"); |
| 163 | hr = ::StringCchCopyW(pss->wzShareName, countof(pss->wzShareName), pwzData); | 163 | hr = ::StringCchCopyW(pss->wzShareName, countof(pss->wzShareName), pwzData); |
| 164 | ExitOnFailure(hr, "Failed to copy share name string to smb object"); | 164 | ExitOnFailure(hr, "Failed to copy share name string to smb object"); |
| 165 | 165 | ||
| 166 | hr = WcaGetRecordString(hRec, ssqComponent, &pwzData); | 166 | hr = WcaGetRecordString(hRec, ssqComponent, &pwzData); |
| 167 | ExitOnFailure(hr, "Failed to get Component for FileShare: '%ls'", pss->wzShareName); | 167 | ExitOnFailure(hr, "Failed to get Component for Wix4FileShare: '%ls'", pss->wzShareName); |
| 168 | hr = ::StringCchCopyW(pss->wzComponent, countof(pss->wzComponent), pwzData); | 168 | hr = ::StringCchCopyW(pss->wzComponent, countof(pss->wzComponent), pwzData); |
| 169 | ExitOnFailure(hr, "Failed to copy component string to smb object"); | 169 | ExitOnFailure(hr, "Failed to copy component string to smb object"); |
| 170 | 170 | ||
| 171 | hr = WcaGetRecordFormattedString(hRec, ssqDescription, &pwzData); | 171 | hr = WcaGetRecordFormattedString(hRec, ssqDescription, &pwzData); |
| 172 | ExitOnFailure(hr, "Failed to get Share Description for FileShare: '%ls'", pss->wzShareName); | 172 | ExitOnFailure(hr, "Failed to get Share Description for Wix4FileShare: '%ls'", pss->wzShareName); |
| 173 | hr = ::StringCchCopyW(pss->wzDescription, countof(pss->wzDescription), pwzData); | 173 | hr = ::StringCchCopyW(pss->wzDescription, countof(pss->wzDescription), pwzData); |
| 174 | ExitOnFailure(hr, "Failed to copy description string to smb object"); | 174 | ExitOnFailure(hr, "Failed to copy description string to smb object"); |
| 175 | 175 | ||
| 176 | // get user info from the user table | 176 | // get user info from the user table |
| 177 | hr = WcaGetRecordFormattedString(hRec, ssqUser, &pwzData); | 177 | hr = WcaGetRecordFormattedString(hRec, ssqUser, &pwzData); |
| 178 | ExitOnFailure(hr, "Failed to get User record for FileShare: '%ls'", pss->wzShareName); | 178 | ExitOnFailure(hr, "Failed to get Wix4User record for Wix4FileShare: '%ls'", pss->wzShareName); |
| 179 | 179 | ||
| 180 | // get component install state | 180 | // get component install state |
| 181 | er = ::MsiGetComponentStateW(WcaGetInstallHandle(), pss->wzComponent, &pss->isInstalled, &pss->isAction); | 181 | er = ::MsiGetComponentStateW(WcaGetInstallHandle(), pss->wzComponent, &pss->isInstalled, &pss->isAction); |
| 182 | hr = HRESULT_FROM_WIN32(er); | 182 | hr = HRESULT_FROM_WIN32(er); |
| 183 | ExitOnFailure(hr, "Failed to get Component state for FileShare"); | 183 | ExitOnFailure(hr, "Failed to get Component state for Wix4FileShare"); |
| 184 | 184 | ||
| 185 | // if a user was specified | 185 | // if a user was specified |
| 186 | if (*pwzData) | 186 | if (*pwzData) |
| @@ -200,7 +200,7 @@ HRESULT ScaSmbRead(SCA_SMB** ppssList) | |||
| 200 | 200 | ||
| 201 | // get the share's directory | 201 | // get the share's directory |
| 202 | hr = WcaGetRecordString(hRec, ssqDirectory, &pwzData); | 202 | hr = WcaGetRecordString(hRec, ssqDirectory, &pwzData); |
| 203 | ExitOnFailure(hr, "Failed to get directory for FileShare: '%ls'", pss->wzShareName); | 203 | ExitOnFailure(hr, "Failed to get directory for Wix4FileShare: '%ls'", pss->wzShareName); |
| 204 | 204 | ||
| 205 | WCHAR wzPath[MAX_PATH]; | 205 | WCHAR wzPath[MAX_PATH]; |
| 206 | DWORD dwLen; | 206 | DWORD dwLen; |
| @@ -236,7 +236,7 @@ HRESULT ScaSmbRead(SCA_SMB** ppssList) | |||
| 236 | ExitOnFailure(hr, "Failed to copy directory string to smb object"); | 236 | ExitOnFailure(hr, "Failed to copy directory string to smb object"); |
| 237 | 237 | ||
| 238 | hr = WcaGetRecordInteger(hRec, ssqPermissions, &pss->nPermissions); | 238 | hr = WcaGetRecordInteger(hRec, ssqPermissions, &pss->nPermissions); |
| 239 | ExitOnFailure(hr, "Failed to get FileShare.Permissions"); | 239 | ExitOnFailure(hr, "Failed to get Wix4FileShare.Permissions"); |
| 240 | 240 | ||
| 241 | // Check to see if additional user & permissions are specified for this share | 241 | // Check to see if additional user & permissions are specified for this share |
| 242 | if (bUserPermissionsTableExists) | 242 | if (bUserPermissionsTableExists) |
| @@ -253,7 +253,7 @@ HRESULT ScaSmbRead(SCA_SMB** ppssList) | |||
| 253 | { | 253 | { |
| 254 | hr = S_OK; | 254 | hr = S_OK; |
| 255 | } | 255 | } |
| 256 | ExitOnFailure(hr, "Failure occured while processing FileShare table"); | 256 | ExitOnFailure(hr, "Failure occured while processing Wix4FileShare table"); |
| 257 | 257 | ||
| 258 | LExit: | 258 | LExit: |
| 259 | // if anything was left over after an error clean it all up | 259 | // if anything was left over after an error clean it all up |
| @@ -420,10 +420,10 @@ HRESULT SchedCreateSmb(SCA_SMB* pss) | |||
| 420 | } | 420 | } |
| 421 | 421 | ||
| 422 | // Schedule the rollback first | 422 | // Schedule the rollback first |
| 423 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"CreateSmbRollback"), pwzRollbackCustomActionData, COST_SMB_DROPSMB); | 423 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"CreateSmbRollback"), pwzRollbackCustomActionData, COST_SMB_DROPSMB); |
| 424 | ExitOnFailure(hr, "Failed to schedule DropSmb action"); | 424 | ExitOnFailure(hr, "Failed to schedule DropSmb action"); |
| 425 | 425 | ||
| 426 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"CreateSmb"), pwzCustomActionData, COST_SMB_CREATESMB); | 426 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"CreateSmb"), pwzCustomActionData, COST_SMB_CREATESMB); |
| 427 | ExitOnFailure(hr, "Failed to schedule CreateSmb action"); | 427 | ExitOnFailure(hr, "Failed to schedule CreateSmb action"); |
| 428 | 428 | ||
| 429 | LExit: | 429 | LExit: |
| @@ -511,14 +511,14 @@ HRESULT SchedDropSmb(SCA_SMB* pss) | |||
| 511 | ExitOnFailure(hr, "Failed to add permissions to CustomActionData"); | 511 | ExitOnFailure(hr, "Failed to add permissions to CustomActionData"); |
| 512 | } | 512 | } |
| 513 | 513 | ||
| 514 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"DropSmbRollback"), pwzRollbackCustomActionData, COST_SMB_CREATESMB); | 514 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"DropSmbRollback"), pwzRollbackCustomActionData, COST_SMB_CREATESMB); |
| 515 | ExitOnFailure(hr, "Failed to schedule DropSmbRollback action"); | 515 | ExitOnFailure(hr, "Failed to schedule DropSmbRollback action"); |
| 516 | 516 | ||
| 517 | // DropSMB | 517 | // DropSMB |
| 518 | hr = WcaWriteStringToCaData(pss->wzShareName, &pwzCustomActionData); | 518 | hr = WcaWriteStringToCaData(pss->wzShareName, &pwzCustomActionData); |
| 519 | ExitOnFailure(hr, "failed to add ShareName to CustomActionData"); | 519 | ExitOnFailure(hr, "failed to add ShareName to CustomActionData"); |
| 520 | 520 | ||
| 521 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"DropSmb"), pwzCustomActionData, COST_SMB_DROPSMB); | 521 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"DropSmb"), pwzCustomActionData, COST_SMB_DROPSMB); |
| 522 | ExitOnFailure(hr, "Failed to schedule DropSmb action"); | 522 | ExitOnFailure(hr, "Failed to schedule DropSmb action"); |
| 523 | 523 | ||
| 524 | LExit: | 524 | LExit: |
| @@ -558,7 +558,7 @@ LExit: | |||
| 558 | } | 558 | } |
| 559 | 559 | ||
| 560 | LPCWSTR vcsSmbExUserPermsQuery = L"SELECT `FileShare_`,`User_`,`Permissions` " | 560 | LPCWSTR vcsSmbExUserPermsQuery = L"SELECT `FileShare_`,`User_`,`Permissions` " |
| 561 | L"FROM `FileSharePermissions` WHERE `FileShare_`=?"; | 561 | L"FROM `Wix4FileSharePermissions` WHERE `FileShare_`=?"; |
| 562 | 562 | ||
| 563 | enum eSmbUserPermsQuery { | 563 | enum eSmbUserPermsQuery { |
| 564 | ssupqFileShare = 1, | 564 | ssupqFileShare = 1, |
| @@ -588,9 +588,9 @@ HRESULT ScaSmbExPermsRead(SCA_SMB* pss) | |||
| 588 | ExitOnFailure(hr, "Failed to look up FileShare"); | 588 | ExitOnFailure(hr, "Failed to look up FileShare"); |
| 589 | 589 | ||
| 590 | hr = WcaOpenView(vcsSmbExUserPermsQuery, &hView); | 590 | hr = WcaOpenView(vcsSmbExUserPermsQuery, &hView); |
| 591 | ExitOnFailure(hr, "Failed to open view on FileSharePermissions table"); | 591 | ExitOnFailure(hr, "Failed to open view on Wix4FileSharePermissions table"); |
| 592 | hr = WcaExecuteView(hView, hRec); | 592 | hr = WcaExecuteView(hView, hRec); |
| 593 | ExitOnFailure(hr, "Failed to execute view on FileSharePermissions table"); | 593 | ExitOnFailure(hr, "Failed to execute view on Wix4FileSharePermissions table"); |
| 594 | 594 | ||
| 595 | // loop through all User/Permissions paris returned | 595 | // loop through all User/Permissions paris returned |
| 596 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) | 596 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) |
| @@ -605,12 +605,12 @@ HRESULT ScaSmbExPermsRead(SCA_SMB* pss) | |||
| 605 | ::ZeroMemory(pExUserPerms, sizeof(*pExUserPerms)); | 605 | ::ZeroMemory(pExUserPerms, sizeof(*pExUserPerms)); |
| 606 | 606 | ||
| 607 | hr = WcaGetRecordString(hRec, ssupqUser, &pwzData); | 607 | hr = WcaGetRecordString(hRec, ssupqUser, &pwzData); |
| 608 | ExitOnFailure(hr, "Failed to get FileSharePermissions.User"); | 608 | ExitOnFailure(hr, "Failed to get Wix4FileSharePermissions.User"); |
| 609 | hr = ScaGetUser(pwzData, &pExUserPerms->scau); | 609 | hr = ScaGetUser(pwzData, &pExUserPerms->scau); |
| 610 | ExitOnFailure(hr, "Failed to get user information for fileshare: '%ls'", pss->wzShareName); | 610 | ExitOnFailure(hr, "Failed to get user information for fileshare: '%ls'", pss->wzShareName); |
| 611 | 611 | ||
| 612 | hr = WcaGetRecordInteger(hRec, ssupqPermissions, &pExUserPerms->nPermissions); | 612 | hr = WcaGetRecordInteger(hRec, ssupqPermissions, &pExUserPerms->nPermissions); |
| 613 | ExitOnFailure(hr, "Failed to get FileSharePermissions.Permissions"); | 613 | ExitOnFailure(hr, "Failed to get Wix4FileSharePermissions.Permissions"); |
| 614 | pExUserPerms->accessMode = SET_ACCESS; // we only support SET_ACCESS here | 614 | pExUserPerms->accessMode = SET_ACCESS; // we only support SET_ACCESS here |
| 615 | 615 | ||
| 616 | pExUserPermsList = AddExUserPermsSmbToList(pExUserPermsList, pExUserPerms); | 616 | pExUserPermsList = AddExUserPermsSmbToList(pExUserPermsList, pExUserPerms); |
diff --git a/src/ca/scauser.cpp b/src/ca/scauser.cpp index 43317bdc..0d87301f 100644 --- a/src/ca/scauser.cpp +++ b/src/ca/scauser.cpp | |||
| @@ -2,16 +2,16 @@ | |||
| 2 | 2 | ||
| 3 | #include "precomp.h" | 3 | #include "precomp.h" |
| 4 | 4 | ||
| 5 | LPCWSTR vcsUserQuery = L"SELECT `User`, `Component_`, `Name`, `Domain`, `Password` FROM `User` WHERE `User`=?"; | 5 | LPCWSTR vcsUserQuery = L"SELECT `Wix4User`, `Component_`, `Name`, `Domain`, `Password` FROM `Wix4User` WHERE `Wix4User`=?"; |
| 6 | enum eUserQuery { vuqUser = 1, vuqComponent, vuqName, vuqDomain, vuqPassword }; | 6 | enum eUserQuery { vuqUser = 1, vuqComponent, vuqName, vuqDomain, vuqPassword }; |
| 7 | 7 | ||
| 8 | LPCWSTR vcsGroupQuery = L"SELECT `Group`, `Component_`, `Name`, `Domain` FROM `Group` WHERE `Group`=?"; | 8 | LPCWSTR vcsGroupQuery = L"SELECT `Wix4Group`, `Component_`, `Name`, `Domain` FROM `Wix4Group` WHERE `Wix4Group`=?"; |
| 9 | enum eGroupQuery { vgqGroup = 1, vgqComponent, vgqName, vgqDomain }; | 9 | enum eGroupQuery { vgqGroup = 1, vgqComponent, vgqName, vgqDomain }; |
| 10 | 10 | ||
| 11 | LPCWSTR vcsUserGroupQuery = L"SELECT `User_`, `Group_` FROM `UserGroup` WHERE `User_`=?"; | 11 | LPCWSTR vcsUserGroupQuery = L"SELECT `Wix4User_`, `Wix4Group_` FROM `Wix4UserGroup` WHERE `Wix4User_`=?"; |
| 12 | enum eUserGroupQuery { vugqUser = 1, vugqGroup }; | 12 | enum eUserGroupQuery { vugqUser = 1, vugqGroup }; |
| 13 | 13 | ||
| 14 | LPCWSTR vActionableQuery = L"SELECT `User`,`Component_`,`Name`,`Domain`,`Password`,`Attributes` FROM `User` WHERE `Component_` IS NOT NULL"; | 14 | LPCWSTR vActionableQuery = L"SELECT `Wix4User`,`Component_`,`Name`,`Domain`,`Password`,`Attributes` FROM `Wix4User` WHERE `Component_` IS NOT NULL"; |
| 15 | enum eActionableQuery { vaqUser = 1, vaqComponent, vaqName, vaqDomain, vaqPassword, vaqAttributes }; | 15 | enum eActionableQuery { vaqUser = 1, vaqComponent, vaqName, vaqDomain, vaqPassword, vaqAttributes }; |
| 16 | 16 | ||
| 17 | 17 | ||
| @@ -51,46 +51,46 @@ HRESULT __stdcall ScaGetUser( | |||
| 51 | ExitOnFailure(hr, "Failed to look up User"); | 51 | ExitOnFailure(hr, "Failed to look up User"); |
| 52 | 52 | ||
| 53 | hr = WcaOpenView(vcsUserQuery, &hView); | 53 | hr = WcaOpenView(vcsUserQuery, &hView); |
| 54 | ExitOnFailure(hr, "Failed to open view on User table"); | 54 | ExitOnFailure(hr, "Failed to open view on Wix4User table"); |
| 55 | hr = WcaExecuteView(hView, hRec); | 55 | hr = WcaExecuteView(hView, hRec); |
| 56 | ExitOnFailure(hr, "Failed to execute view on User table"); | 56 | ExitOnFailure(hr, "Failed to execute view on Wix4User table"); |
| 57 | 57 | ||
| 58 | hr = WcaFetchSingleRecord(hView, &hRec); | 58 | hr = WcaFetchSingleRecord(hView, &hRec); |
| 59 | if (S_OK == hr) | 59 | if (S_OK == hr) |
| 60 | { | 60 | { |
| 61 | hr = WcaGetRecordString(hRec, vuqUser, &pwzData); | 61 | hr = WcaGetRecordString(hRec, vuqUser, &pwzData); |
| 62 | ExitOnFailure(hr, "Failed to get User.User"); | 62 | ExitOnFailure(hr, "Failed to get Wix4User.User"); |
| 63 | hr = ::StringCchCopyW(pscau->wzKey, countof(pscau->wzKey), pwzData); | 63 | hr = ::StringCchCopyW(pscau->wzKey, countof(pscau->wzKey), pwzData); |
| 64 | ExitOnFailure(hr, "Failed to copy key string to user object"); | 64 | ExitOnFailure(hr, "Failed to copy key string to user object"); |
| 65 | 65 | ||
| 66 | hr = WcaGetRecordString(hRec, vuqComponent, &pwzData); | 66 | hr = WcaGetRecordString(hRec, vuqComponent, &pwzData); |
| 67 | ExitOnFailure(hr, "Failed to get User.Component_"); | 67 | ExitOnFailure(hr, "Failed to get Wix4User.Component_"); |
| 68 | hr = ::StringCchCopyW(pscau->wzComponent, countof(pscau->wzComponent), pwzData); | 68 | hr = ::StringCchCopyW(pscau->wzComponent, countof(pscau->wzComponent), pwzData); |
| 69 | ExitOnFailure(hr, "Failed to copy component string to user object"); | 69 | ExitOnFailure(hr, "Failed to copy component string to user object"); |
| 70 | 70 | ||
| 71 | hr = WcaGetRecordFormattedString(hRec, vuqName, &pwzData); | 71 | hr = WcaGetRecordFormattedString(hRec, vuqName, &pwzData); |
| 72 | ExitOnFailure(hr, "Failed to get User.Name"); | 72 | ExitOnFailure(hr, "Failed to get Wix4User.Name"); |
| 73 | hr = ::StringCchCopyW(pscau->wzName, countof(pscau->wzName), pwzData); | 73 | hr = ::StringCchCopyW(pscau->wzName, countof(pscau->wzName), pwzData); |
| 74 | ExitOnFailure(hr, "Failed to copy name string to user object"); | 74 | ExitOnFailure(hr, "Failed to copy name string to user object"); |
| 75 | 75 | ||
| 76 | hr = WcaGetRecordFormattedString(hRec, vuqDomain, &pwzData); | 76 | hr = WcaGetRecordFormattedString(hRec, vuqDomain, &pwzData); |
| 77 | ExitOnFailure(hr, "Failed to get User.Domain"); | 77 | ExitOnFailure(hr, "Failed to get Wix4User.Domain"); |
| 78 | hr = ::StringCchCopyW(pscau->wzDomain, countof(pscau->wzDomain), pwzData); | 78 | hr = ::StringCchCopyW(pscau->wzDomain, countof(pscau->wzDomain), pwzData); |
| 79 | ExitOnFailure(hr, "Failed to copy domain string to user object"); | 79 | ExitOnFailure(hr, "Failed to copy domain string to user object"); |
| 80 | 80 | ||
| 81 | hr = WcaGetRecordFormattedString(hRec, vuqPassword, &pwzData); | 81 | hr = WcaGetRecordFormattedString(hRec, vuqPassword, &pwzData); |
| 82 | ExitOnFailure(hr, "Failed to get User.Password"); | 82 | ExitOnFailure(hr, "Failed to get Wix4User.Password"); |
| 83 | hr = ::StringCchCopyW(pscau->wzPassword, countof(pscau->wzPassword), pwzData); | 83 | hr = ::StringCchCopyW(pscau->wzPassword, countof(pscau->wzPassword), pwzData); |
| 84 | ExitOnFailure(hr, "Failed to copy password string to user object"); | 84 | ExitOnFailure(hr, "Failed to copy password string to user object"); |
| 85 | } | 85 | } |
| 86 | else if (E_NOMOREITEMS == hr) | 86 | else if (E_NOMOREITEMS == hr) |
| 87 | { | 87 | { |
| 88 | WcaLog(LOGMSG_STANDARD, "Error: Cannot locate User.User='%ls'", wzUser); | 88 | WcaLog(LOGMSG_STANDARD, "Error: Cannot locate Wix4User.User='%ls'", wzUser); |
| 89 | hr = E_FAIL; | 89 | hr = E_FAIL; |
| 90 | } | 90 | } |
| 91 | else | 91 | else |
| 92 | { | 92 | { |
| 93 | ExitOnFailure(hr, "Error or found multiple matching User rows"); | 93 | ExitOnFailure(hr, "Error or found multiple matching Wix4User rows"); |
| 94 | } | 94 | } |
| 95 | 95 | ||
| 96 | LExit: | 96 | LExit: |
| @@ -131,42 +131,42 @@ HRESULT __stdcall ScaGetUserDeferred( | |||
| 131 | hr = WcaFetchWrappedRecordWhereString(hUserQuery, vuqUser, wzUser, &hRecTest); | 131 | hr = WcaFetchWrappedRecordWhereString(hUserQuery, vuqUser, wzUser, &hRecTest); |
| 132 | if (S_OK == hr) | 132 | if (S_OK == hr) |
| 133 | { | 133 | { |
| 134 | AssertSz(FALSE, "Found multiple matching User rows"); | 134 | AssertSz(FALSE, "Found multiple matching Wix4User rows"); |
| 135 | } | 135 | } |
| 136 | 136 | ||
| 137 | hr = WcaGetRecordString(hRec, vuqUser, &pwzData); | 137 | hr = WcaGetRecordString(hRec, vuqUser, &pwzData); |
| 138 | ExitOnFailure(hr, "Failed to get User.User"); | 138 | ExitOnFailure(hr, "Failed to get Wix4User.User"); |
| 139 | hr = ::StringCchCopyW(pscau->wzKey, countof(pscau->wzKey), pwzData); | 139 | hr = ::StringCchCopyW(pscau->wzKey, countof(pscau->wzKey), pwzData); |
| 140 | ExitOnFailure(hr, "Failed to copy key string to user object (in deferred CA)"); | 140 | ExitOnFailure(hr, "Failed to copy key string to user object (in deferred CA)"); |
| 141 | 141 | ||
| 142 | hr = WcaGetRecordString(hRec, vuqComponent, &pwzData); | 142 | hr = WcaGetRecordString(hRec, vuqComponent, &pwzData); |
| 143 | ExitOnFailure(hr, "Failed to get User.Component_"); | 143 | ExitOnFailure(hr, "Failed to get Wix4User.Component_"); |
| 144 | hr = ::StringCchCopyW(pscau->wzComponent, countof(pscau->wzComponent), pwzData); | 144 | hr = ::StringCchCopyW(pscau->wzComponent, countof(pscau->wzComponent), pwzData); |
| 145 | ExitOnFailure(hr, "Failed to copy component string to user object (in deferred CA)"); | 145 | ExitOnFailure(hr, "Failed to copy component string to user object (in deferred CA)"); |
| 146 | 146 | ||
| 147 | hr = WcaGetRecordString(hRec, vuqName, &pwzData); | 147 | hr = WcaGetRecordString(hRec, vuqName, &pwzData); |
| 148 | ExitOnFailure(hr, "Failed to get User.Name"); | 148 | ExitOnFailure(hr, "Failed to get Wix4User.Name"); |
| 149 | hr = ::StringCchCopyW(pscau->wzName, countof(pscau->wzName), pwzData); | 149 | hr = ::StringCchCopyW(pscau->wzName, countof(pscau->wzName), pwzData); |
| 150 | ExitOnFailure(hr, "Failed to copy name string to user object (in deferred CA)"); | 150 | ExitOnFailure(hr, "Failed to copy name string to user object (in deferred CA)"); |
| 151 | 151 | ||
| 152 | hr = WcaGetRecordString(hRec, vuqDomain, &pwzData); | 152 | hr = WcaGetRecordString(hRec, vuqDomain, &pwzData); |
| 153 | ExitOnFailure(hr, "Failed to get User.Domain"); | 153 | ExitOnFailure(hr, "Failed to get Wix4User.Domain"); |
| 154 | hr = ::StringCchCopyW(pscau->wzDomain, countof(pscau->wzDomain), pwzData); | 154 | hr = ::StringCchCopyW(pscau->wzDomain, countof(pscau->wzDomain), pwzData); |
| 155 | ExitOnFailure(hr, "Failed to copy domain string to user object (in deferred CA)"); | 155 | ExitOnFailure(hr, "Failed to copy domain string to user object (in deferred CA)"); |
| 156 | 156 | ||
| 157 | hr = WcaGetRecordString(hRec, vuqPassword, &pwzData); | 157 | hr = WcaGetRecordString(hRec, vuqPassword, &pwzData); |
| 158 | ExitOnFailure(hr, "Failed to get User.Password"); | 158 | ExitOnFailure(hr, "Failed to get Wix4User.Password"); |
| 159 | hr = ::StringCchCopyW(pscau->wzPassword, countof(pscau->wzPassword), pwzData); | 159 | hr = ::StringCchCopyW(pscau->wzPassword, countof(pscau->wzPassword), pwzData); |
| 160 | ExitOnFailure(hr, "Failed to copy password string to user object (in deferred CA)"); | 160 | ExitOnFailure(hr, "Failed to copy password string to user object (in deferred CA)"); |
| 161 | } | 161 | } |
| 162 | else if (E_NOMOREITEMS == hr) | 162 | else if (E_NOMOREITEMS == hr) |
| 163 | { | 163 | { |
| 164 | WcaLog(LOGMSG_STANDARD, "Error: Cannot locate User.User='%ls'", wzUser); | 164 | WcaLog(LOGMSG_STANDARD, "Error: Cannot locate Wix4User.User='%ls'", wzUser); |
| 165 | hr = E_FAIL; | 165 | hr = E_FAIL; |
| 166 | } | 166 | } |
| 167 | else | 167 | else |
| 168 | { | 168 | { |
| 169 | ExitOnFailure(hr, "Error fetching single User row"); | 169 | ExitOnFailure(hr, "Error fetching single Wix4User row"); |
| 170 | } | 170 | } |
| 171 | 171 | ||
| 172 | LExit: | 172 | LExit: |
| @@ -196,41 +196,41 @@ HRESULT __stdcall ScaGetGroup( | |||
| 196 | ExitOnFailure(hr, "Failed to look up Group"); | 196 | ExitOnFailure(hr, "Failed to look up Group"); |
| 197 | 197 | ||
| 198 | hr = WcaOpenView(vcsGroupQuery, &hView); | 198 | hr = WcaOpenView(vcsGroupQuery, &hView); |
| 199 | ExitOnFailure(hr, "Failed to open view on Group table"); | 199 | ExitOnFailure(hr, "Failed to open view on Wix4Group table"); |
| 200 | hr = WcaExecuteView(hView, hRec); | 200 | hr = WcaExecuteView(hView, hRec); |
| 201 | ExitOnFailure(hr, "Failed to execute view on Group table"); | 201 | ExitOnFailure(hr, "Failed to execute view on Wix4Group table"); |
| 202 | 202 | ||
| 203 | hr = WcaFetchSingleRecord(hView, &hRec); | 203 | hr = WcaFetchSingleRecord(hView, &hRec); |
| 204 | if (S_OK == hr) | 204 | if (S_OK == hr) |
| 205 | { | 205 | { |
| 206 | hr = WcaGetRecordString(hRec, vgqGroup, &pwzData); | 206 | hr = WcaGetRecordString(hRec, vgqGroup, &pwzData); |
| 207 | ExitOnFailure(hr, "Failed to get Group.Group"); | 207 | ExitOnFailure(hr, "Failed to get Wix4Group.Wix4Group."); |
| 208 | hr = ::StringCchCopyW(pscag->wzKey, countof(pscag->wzKey), pwzData); | 208 | hr = ::StringCchCopyW(pscag->wzKey, countof(pscag->wzKey), pwzData); |
| 209 | ExitOnFailure(hr, "Failed to copy Group.Group."); | 209 | ExitOnFailure(hr, "Failed to copy Wix4Group.Wix4Group."); |
| 210 | 210 | ||
| 211 | hr = WcaGetRecordString(hRec, vgqComponent, &pwzData); | 211 | hr = WcaGetRecordString(hRec, vgqComponent, &pwzData); |
| 212 | ExitOnFailure(hr, "Failed to get Group.Component_"); | 212 | ExitOnFailure(hr, "Failed to get Wix4Group.Component_"); |
| 213 | hr = ::StringCchCopyW(pscag->wzComponent, countof(pscag->wzComponent), pwzData); | 213 | hr = ::StringCchCopyW(pscag->wzComponent, countof(pscag->wzComponent), pwzData); |
| 214 | ExitOnFailure(hr, "Failed to copy Group.Component_."); | 214 | ExitOnFailure(hr, "Failed to copy Wix4Group.Component_."); |
| 215 | 215 | ||
| 216 | hr = WcaGetRecordFormattedString(hRec, vgqName, &pwzData); | 216 | hr = WcaGetRecordFormattedString(hRec, vgqName, &pwzData); |
| 217 | ExitOnFailure(hr, "Failed to get Group.Name"); | 217 | ExitOnFailure(hr, "Failed to get Wix4Group.Name"); |
| 218 | hr = ::StringCchCopyW(pscag->wzName, countof(pscag->wzName), pwzData); | 218 | hr = ::StringCchCopyW(pscag->wzName, countof(pscag->wzName), pwzData); |
| 219 | ExitOnFailure(hr, "Failed to copy Group.Name."); | 219 | ExitOnFailure(hr, "Failed to copy Wix4Group.Name."); |
| 220 | 220 | ||
| 221 | hr = WcaGetRecordFormattedString(hRec, vgqDomain, &pwzData); | 221 | hr = WcaGetRecordFormattedString(hRec, vgqDomain, &pwzData); |
| 222 | ExitOnFailure(hr, "Failed to get Group.Domain"); | 222 | ExitOnFailure(hr, "Failed to get Wix4Group.Domain"); |
| 223 | hr = ::StringCchCopyW(pscag->wzDomain, countof(pscag->wzDomain), pwzData); | 223 | hr = ::StringCchCopyW(pscag->wzDomain, countof(pscag->wzDomain), pwzData); |
| 224 | ExitOnFailure(hr, "Failed to copy Group.Domain."); | 224 | ExitOnFailure(hr, "Failed to copy Wix4Group.Domain."); |
| 225 | } | 225 | } |
| 226 | else if (E_NOMOREITEMS == hr) | 226 | else if (E_NOMOREITEMS == hr) |
| 227 | { | 227 | { |
| 228 | WcaLog(LOGMSG_STANDARD, "Error: Cannot locate Group.Group='%ls'", wzGroup); | 228 | WcaLog(LOGMSG_STANDARD, "Error: Cannot locate Wix4Group.Wix4Group='%ls'", wzGroup); |
| 229 | hr = E_FAIL; | 229 | hr = E_FAIL; |
| 230 | } | 230 | } |
| 231 | else | 231 | else |
| 232 | { | 232 | { |
| 233 | ExitOnFailure(hr, "Error or found multiple matching Group rows"); | 233 | ExitOnFailure(hr, "Error or found multiple matching Wix4Group rows"); |
| 234 | } | 234 | } |
| 235 | 235 | ||
| 236 | LExit: | 236 | LExit: |
| @@ -284,19 +284,19 @@ HRESULT ScaUserRead( | |||
| 284 | 284 | ||
| 285 | LPWSTR pwzData = NULL; | 285 | LPWSTR pwzData = NULL; |
| 286 | 286 | ||
| 287 | BOOL fUserGroupExists = FALSE; | 287 | BOOL fUserGroupExists = FALSE; |
| 288 | 288 | ||
| 289 | SCA_USER *psu = NULL; | 289 | SCA_USER *psu = NULL; |
| 290 | 290 | ||
| 291 | INSTALLSTATE isInstalled, isAction; | 291 | INSTALLSTATE isInstalled, isAction; |
| 292 | 292 | ||
| 293 | if (S_OK != WcaTableExists(L"User")) | 293 | if (S_OK != WcaTableExists(L"Wix4User")) |
| 294 | { | 294 | { |
| 295 | WcaLog(LOGMSG_VERBOSE, "User Table does not exist, exiting"); | 295 | WcaLog(LOGMSG_VERBOSE, "Wix4User Table does not exist, exiting"); |
| 296 | ExitFunction1(hr = S_FALSE); | 296 | ExitFunction1(hr = S_FALSE); |
| 297 | } | 297 | } |
| 298 | 298 | ||
| 299 | if (S_OK == WcaTableExists(L"UserGroup")) | 299 | if (S_OK == WcaTableExists(L"Wix4UserGroup")) |
| 300 | { | 300 | { |
| 301 | fUserGroupExists = TRUE; | 301 | fUserGroupExists = TRUE; |
| 302 | } | 302 | } |
| @@ -305,15 +305,15 @@ HRESULT ScaUserRead( | |||
| 305 | // loop through all the users | 305 | // loop through all the users |
| 306 | // | 306 | // |
| 307 | hr = WcaOpenExecuteView(vActionableQuery, &hView); | 307 | hr = WcaOpenExecuteView(vActionableQuery, &hView); |
| 308 | ExitOnFailure(hr, "failed to open view on User table"); | 308 | ExitOnFailure(hr, "failed to open view on Wix4User table"); |
| 309 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) | 309 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) |
| 310 | { | 310 | { |
| 311 | hr = WcaGetRecordString(hRec, vaqComponent, &pwzData); | 311 | hr = WcaGetRecordString(hRec, vaqComponent, &pwzData); |
| 312 | ExitOnFailure(hr, "failed to get User.Component"); | 312 | ExitOnFailure(hr, "failed to get Wix4User.Component"); |
| 313 | 313 | ||
| 314 | er = ::MsiGetComponentStateW(WcaGetInstallHandle(), pwzData, &isInstalled, &isAction); | 314 | er = ::MsiGetComponentStateW(WcaGetInstallHandle(), pwzData, &isInstalled, &isAction); |
| 315 | hr = HRESULT_FROM_WIN32(er); | 315 | hr = HRESULT_FROM_WIN32(er); |
| 316 | ExitOnFailure(hr, "failed to get Component state for User"); | 316 | ExitOnFailure(hr, "failed to get Component state for Wix4User"); |
| 317 | 317 | ||
| 318 | // don't bother if we aren't installing or uninstalling this component | 318 | // don't bother if we aren't installing or uninstalling this component |
| 319 | if (WcaIsInstalling(isInstalled, isAction) || WcaIsUninstalling(isInstalled, isAction)) | 319 | if (WcaIsInstalling(isInstalled, isAction) || WcaIsUninstalling(isInstalled, isAction)) |
| @@ -332,44 +332,44 @@ HRESULT ScaUserRead( | |||
| 332 | ExitOnFailure(hr, "failed to copy component name: %ls", pwzData); | 332 | ExitOnFailure(hr, "failed to copy component name: %ls", pwzData); |
| 333 | 333 | ||
| 334 | hr = WcaGetRecordString(hRec, vaqUser, &pwzData); | 334 | hr = WcaGetRecordString(hRec, vaqUser, &pwzData); |
| 335 | ExitOnFailure(hr, "failed to get User.User"); | 335 | ExitOnFailure(hr, "failed to get Wix4User.User"); |
| 336 | hr = ::StringCchCopyW(psu->wzKey, countof(psu->wzKey), pwzData); | 336 | hr = ::StringCchCopyW(psu->wzKey, countof(psu->wzKey), pwzData); |
| 337 | ExitOnFailure(hr, "failed to copy user key: %ls", pwzData); | 337 | ExitOnFailure(hr, "failed to copy user key: %ls", pwzData); |
| 338 | 338 | ||
| 339 | hr = WcaGetRecordFormattedString(hRec, vaqName, &pwzData); | 339 | hr = WcaGetRecordFormattedString(hRec, vaqName, &pwzData); |
| 340 | ExitOnFailure(hr, "failed to get User.Name"); | 340 | ExitOnFailure(hr, "failed to get Wix4User.Name"); |
| 341 | hr = ::StringCchCopyW(psu->wzName, countof(psu->wzName), pwzData); | 341 | hr = ::StringCchCopyW(psu->wzName, countof(psu->wzName), pwzData); |
| 342 | ExitOnFailure(hr, "failed to copy user name: %ls", pwzData); | 342 | ExitOnFailure(hr, "failed to copy user name: %ls", pwzData); |
| 343 | 343 | ||
| 344 | hr = WcaGetRecordFormattedString(hRec, vaqDomain, &pwzData); | 344 | hr = WcaGetRecordFormattedString(hRec, vaqDomain, &pwzData); |
| 345 | ExitOnFailure(hr, "failed to get User.Domain"); | 345 | ExitOnFailure(hr, "failed to get Wix4User.Domain"); |
| 346 | hr = ::StringCchCopyW(psu->wzDomain, countof(psu->wzDomain), pwzData); | 346 | hr = ::StringCchCopyW(psu->wzDomain, countof(psu->wzDomain), pwzData); |
| 347 | ExitOnFailure(hr, "failed to copy user domain: %ls", pwzData); | 347 | ExitOnFailure(hr, "failed to copy user domain: %ls", pwzData); |
| 348 | 348 | ||
| 349 | hr = WcaGetRecordFormattedString(hRec, vaqPassword, &pwzData); | 349 | hr = WcaGetRecordFormattedString(hRec, vaqPassword, &pwzData); |
| 350 | ExitOnFailure(hr, "failed to get User.Password"); | 350 | ExitOnFailure(hr, "failed to get Wix4User.Password"); |
| 351 | hr = ::StringCchCopyW(psu->wzPassword, countof(psu->wzPassword), pwzData); | 351 | hr = ::StringCchCopyW(psu->wzPassword, countof(psu->wzPassword), pwzData); |
| 352 | ExitOnFailure(hr, "failed to copy user password"); | 352 | ExitOnFailure(hr, "failed to copy user password"); |
| 353 | 353 | ||
| 354 | hr = WcaGetRecordInteger(hRec, vaqAttributes, &psu->iAttributes); | 354 | hr = WcaGetRecordInteger(hRec, vaqAttributes, &psu->iAttributes); |
| 355 | ExitOnFailure(hr, "failed to get User.Attributes"); | 355 | ExitOnFailure(hr, "failed to get Wix4User.Attributes"); |
| 356 | 356 | ||
| 357 | // Check if this user is to be added to any groups | 357 | // Check if this user is to be added to any groups |
| 358 | if (fUserGroupExists) | 358 | if (fUserGroupExists) |
| 359 | { | 359 | { |
| 360 | hUserRec = ::MsiCreateRecord(1); | 360 | hUserRec = ::MsiCreateRecord(1); |
| 361 | hr = WcaSetRecordString(hUserRec, 1, psu->wzKey); | 361 | hr = WcaSetRecordString(hUserRec, 1, psu->wzKey); |
| 362 | ExitOnFailure(hr, "Failed to create user record for querying UserGroup table"); | 362 | ExitOnFailure(hr, "Failed to create user record for querying Wix4UserGroup table"); |
| 363 | 363 | ||
| 364 | hr = WcaOpenView(vcsUserGroupQuery, &hUserGroupView); | 364 | hr = WcaOpenView(vcsUserGroupQuery, &hUserGroupView); |
| 365 | ExitOnFailure(hr, "Failed to open view on UserGroup table for user %ls", psu->wzKey); | 365 | ExitOnFailure(hr, "Failed to open view on Wix4UserGroup table for user %ls", psu->wzKey); |
| 366 | hr = WcaExecuteView(hUserGroupView, hUserRec); | 366 | hr = WcaExecuteView(hUserGroupView, hUserRec); |
| 367 | ExitOnFailure(hr, "Failed to execute view on UserGroup table for user: %ls", psu->wzKey); | 367 | ExitOnFailure(hr, "Failed to execute view on Wix4UserGroup table for user: %ls", psu->wzKey); |
| 368 | 368 | ||
| 369 | while (S_OK == (hr = WcaFetchRecord(hUserGroupView, &hRec))) | 369 | while (S_OK == (hr = WcaFetchRecord(hUserGroupView, &hRec))) |
| 370 | { | 370 | { |
| 371 | hr = WcaGetRecordString(hRec, vugqGroup, &pwzData); | 371 | hr = WcaGetRecordString(hRec, vugqGroup, &pwzData); |
| 372 | ExitOnFailure(hr, "failed to get UserGroup.Group"); | 372 | ExitOnFailure(hr, "failed to get Wix4UserGroup.Group"); |
| 373 | 373 | ||
| 374 | hr = AddGroupToList(&(psu->psgGroups)); | 374 | hr = AddGroupToList(&(psu->psgGroups)); |
| 375 | ExitOnFailure(hr, "failed to add group to list"); | 375 | ExitOnFailure(hr, "failed to add group to list"); |
| @@ -382,7 +382,7 @@ HRESULT ScaUserRead( | |||
| 382 | { | 382 | { |
| 383 | hr = S_OK; | 383 | hr = S_OK; |
| 384 | } | 384 | } |
| 385 | ExitOnFailure(hr, "failed to enumerate selected rows from UserGroup table"); | 385 | ExitOnFailure(hr, "failed to enumerate selected rows from Wix4UserGroup table"); |
| 386 | } | 386 | } |
| 387 | } | 387 | } |
| 388 | } | 388 | } |
| @@ -391,7 +391,7 @@ HRESULT ScaUserRead( | |||
| 391 | { | 391 | { |
| 392 | hr = S_OK; | 392 | hr = S_OK; |
| 393 | } | 393 | } |
| 394 | ExitOnFailure(hr, "failed to enumerate selected rows from User table"); | 394 | ExitOnFailure(hr, "failed to enumerate selected rows from Wix4User table"); |
| 395 | 395 | ||
| 396 | LExit: | 396 | LExit: |
| 397 | ReleaseStr(pwzData); | 397 | ReleaseStr(pwzData); |
| @@ -581,7 +581,7 @@ HRESULT ScaUserExecute( | |||
| 581 | ExitOnFailure(hr, "failed to add group information to rollback custom action data"); | 581 | ExitOnFailure(hr, "failed to add group information to rollback custom action data"); |
| 582 | } | 582 | } |
| 583 | 583 | ||
| 584 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"CreateUserRollback"), pwzRollbackData, COST_USER_DELETE); | 584 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"CreateUserRollback"), pwzRollbackData, COST_USER_DELETE); |
| 585 | ExitOnFailure(hr, "failed to schedule CreateUserRollback"); | 585 | ExitOnFailure(hr, "failed to schedule CreateUserRollback"); |
| 586 | } | 586 | } |
| 587 | 587 | ||
| @@ -595,7 +595,7 @@ HRESULT ScaUserExecute( | |||
| 595 | hr = WriteGroupInfo(psu->psgGroups, &pwzActionData); | 595 | hr = WriteGroupInfo(psu->psgGroups, &pwzActionData); |
| 596 | ExitOnFailure(hr, "failed to add group information to custom action data"); | 596 | ExitOnFailure(hr, "failed to add group information to custom action data"); |
| 597 | 597 | ||
| 598 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"CreateUser"), pwzActionData, COST_USER_ADD); | 598 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"CreateUser"), pwzActionData, COST_USER_ADD); |
| 599 | ExitOnFailure(hr, "failed to schedule CreateUser"); | 599 | ExitOnFailure(hr, "failed to schedule CreateUser"); |
| 600 | } | 600 | } |
| 601 | else if (((USER_EXISTS_YES == ueUserExists) || (USER_EXISTS_INDETERMINATE == ueUserExists)) && WcaIsUninstalling(psu->isInstalled, psu->isAction) && !(psu->iAttributes & SCAU_DONT_REMOVE_ON_UNINSTALL)) | 601 | else if (((USER_EXISTS_YES == ueUserExists) || (USER_EXISTS_INDETERMINATE == ueUserExists)) && WcaIsUninstalling(psu->isInstalled, psu->isAction) && !(psu->iAttributes & SCAU_DONT_REMOVE_ON_UNINSTALL)) |
| @@ -610,7 +610,7 @@ HRESULT ScaUserExecute( | |||
| 610 | // | 610 | // |
| 611 | // Note: We can't rollback the removal of a user which is why RemoveUser is a commit | 611 | // Note: We can't rollback the removal of a user which is why RemoveUser is a commit |
| 612 | // CustomAction. | 612 | // CustomAction. |
| 613 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RemoveUser"), pwzActionData, COST_USER_DELETE); | 613 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RemoveUser"), pwzActionData, COST_USER_DELETE); |
| 614 | ExitOnFailure(hr, "failed to schedule RemoveUser"); | 614 | ExitOnFailure(hr, "failed to schedule RemoveUser"); |
| 615 | } | 615 | } |
| 616 | 616 | ||
diff --git a/src/ca/secureobj.cpp b/src/ca/secureobj.cpp index f6d1406a..392945d9 100644 --- a/src/ca/secureobj.cpp +++ b/src/ca/secureobj.cpp | |||
| @@ -3,9 +3,9 @@ | |||
| 3 | #include "precomp.h" | 3 | #include "precomp.h" |
| 4 | 4 | ||
| 5 | // structs | 5 | // structs |
| 6 | LPCWSTR wzQUERY_SECUREOBJECTS = L"SELECT `SecureObjects`.`SecureObject`, `SecureObjects`.`Table`, `SecureObjects`.`Domain`, `SecureObjects`.`User`, " | 6 | LPCWSTR wzQUERY_SECUREOBJECTS = L"SELECT `Wix4SecureObject`.`Wix4SecureObject`, `Wix4SecureObject`.`Table`, `Wix4SecureObject`.`Domain`, `Wix4SecureObject`.`User`, " |
| 7 | L"`SecureObjects`.`Permission`, `SecureObjects`.`Component_`, `Component`.`Attributes` FROM `SecureObjects`,`Component` WHERE " | 7 | L"`Wix4SecureObject`.`Permission`, `Wix4SecureObject`.`Component_`, `Component`.`Attributes` FROM `Wix4SecureObject`,`Component` WHERE " |
| 8 | L"`SecureObjects`.`Component_`=`Component`.`Component`"; | 8 | L"`Wix4SecureObject`.`Component_`=`Component`.`Component`"; |
| 9 | enum eQUERY_SECUREOBJECTS { QSO_SECUREOBJECT = 1, QSO_TABLE, QSO_DOMAIN, QSO_USER, QSO_PERMISSION, QSO_COMPONENT, QSO_COMPATTRIBUTES }; | 9 | enum eQUERY_SECUREOBJECTS { QSO_SECUREOBJECT = 1, QSO_TABLE, QSO_DOMAIN, QSO_USER, QSO_PERMISSION, QSO_COMPONENT, QSO_COMPATTRIBUTES }; |
| 10 | 10 | ||
| 11 | LPCWSTR wzQUERY_REGISTRY = L"SELECT `Registry`.`Registry`, `Registry`.`Root`, `Registry`.`Key` FROM `Registry` WHERE `Registry`.`Registry`=?"; | 11 | LPCWSTR wzQUERY_REGISTRY = L"SELECT `Registry`.`Registry`, `Registry`.`Root`, `Registry`.`Key` FROM `Registry` WHERE `Registry`.`Registry`=?"; |
| @@ -142,7 +142,7 @@ static HRESULT StoreACLRollbackInfo( | |||
| 142 | ExitOnFailure(hr, "failed to add data to rollback CustomActionData"); | 142 | ExitOnFailure(hr, "failed to add data to rollback CustomActionData"); |
| 143 | } | 143 | } |
| 144 | 144 | ||
| 145 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"ExecSecureObjectsRollback"), pwzCustomActionData, COST_SECUREOBJECT); | 145 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecSecureObjectsRollback"), pwzCustomActionData, COST_SECUREOBJECT); |
| 146 | ExitOnFailure(hr, "failed to schedule ExecSecureObjectsRollback for item: %ls of type: %ls", pwzObject, pwzTable); | 146 | ExitOnFailure(hr, "failed to schedule ExecSecureObjectsRollback for item: %ls of type: %ls", pwzObject, pwzTable); |
| 147 | 147 | ||
| 148 | ReleaseStr(pwzCustomActionData); | 148 | ReleaseStr(pwzCustomActionData); |
| @@ -343,9 +343,9 @@ extern "C" UINT __stdcall SchedSecureObjects( | |||
| 343 | ExitOnFailure(hr, "failed to initialize"); | 343 | ExitOnFailure(hr, "failed to initialize"); |
| 344 | 344 | ||
| 345 | // anything to do? | 345 | // anything to do? |
| 346 | if (S_OK != WcaTableExists(L"SecureObjects")) | 346 | if (S_OK != WcaTableExists(L"Wix4SecureObject")) |
| 347 | { | 347 | { |
| 348 | WcaLog(LOGMSG_STANDARD, "SecureObjects table doesn't exist, so there are no objects to secure."); | 348 | WcaLog(LOGMSG_STANDARD, "Wix4SecureObject table doesn't exist, so there are no objects to secure."); |
| 349 | ExitFunction(); | 349 | ExitFunction(); |
| 350 | } | 350 | } |
| 351 | 351 | ||
| @@ -353,7 +353,7 @@ extern "C" UINT __stdcall SchedSecureObjects( | |||
| 353 | // loop through all the objects to be secured | 353 | // loop through all the objects to be secured |
| 354 | // | 354 | // |
| 355 | hr = WcaOpenExecuteView(wzQUERY_SECUREOBJECTS, &hView); | 355 | hr = WcaOpenExecuteView(wzQUERY_SECUREOBJECTS, &hView); |
| 356 | ExitOnFailure(hr, "failed to open view on SecureObjects table"); | 356 | ExitOnFailure(hr, "failed to open view on Wix4SecureObject table"); |
| 357 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) | 357 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) |
| 358 | { | 358 | { |
| 359 | hr = WcaGetRecordString(hRec, QSO_TABLE, &pwzTable); | 359 | hr = WcaGetRecordString(hRec, QSO_TABLE, &pwzTable); |
| @@ -372,7 +372,7 @@ extern "C" UINT __stdcall SchedSecureObjects( | |||
| 372 | 372 | ||
| 373 | BOOL fIs64Bit = iCompAttributes & msidbComponentAttributes64bit; | 373 | BOOL fIs64Bit = iCompAttributes & msidbComponentAttributes64bit; |
| 374 | 374 | ||
| 375 | // Only process entries in the SecureObjects table whose components match the bitness of this CA | 375 | // Only process entries in the Wix4SecureObject table whose components match the bitness of this CA |
| 376 | #ifdef _WIN64 | 376 | #ifdef _WIN64 |
| 377 | if (!fIs64Bit) | 377 | if (!fIs64Bit) |
| 378 | { | 378 | { |
| @@ -444,7 +444,7 @@ extern "C" UINT __stdcall SchedSecureObjects( | |||
| 444 | { | 444 | { |
| 445 | Assert(0 < cObjects); | 445 | Assert(0 < cObjects); |
| 446 | 446 | ||
| 447 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"ExecSecureObjects"), pwzCustomActionData, cObjects * COST_SECUREOBJECT); | 447 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecSecureObjects"), pwzCustomActionData, cObjects * COST_SECUREOBJECT); |
| 448 | ExitOnFailure(hr, "failed to schedule ExecSecureObjects action"); | 448 | ExitOnFailure(hr, "failed to schedule ExecSecureObjects action"); |
| 449 | } | 449 | } |
| 450 | 450 | ||
| @@ -497,7 +497,7 @@ extern "C" UINT __stdcall SchedSecureObjectsRollback( | |||
| 497 | // loop through all the objects to be secured | 497 | // loop through all the objects to be secured |
| 498 | // | 498 | // |
| 499 | hr = WcaOpenExecuteView(wzQUERY_SECUREOBJECTS, &hView); | 499 | hr = WcaOpenExecuteView(wzQUERY_SECUREOBJECTS, &hView); |
| 500 | ExitOnFailure(hr, "failed to open view on SecureObjects table"); | 500 | ExitOnFailure(hr, "failed to open view on Wix4SecureObject table"); |
| 501 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) | 501 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) |
| 502 | { | 502 | { |
| 503 | hr = WcaGetRecordString(hRec, QSO_TABLE, &pwzTable); | 503 | hr = WcaGetRecordString(hRec, QSO_TABLE, &pwzTable); |
| @@ -516,7 +516,7 @@ extern "C" UINT __stdcall SchedSecureObjectsRollback( | |||
| 516 | 516 | ||
| 517 | BOOL fIs64Bit = iCompAttributes & msidbComponentAttributes64bit; | 517 | BOOL fIs64Bit = iCompAttributes & msidbComponentAttributes64bit; |
| 518 | 518 | ||
| 519 | // Only process entries in the SecureObjects table whose components match the bitness of this CA | 519 | // Only process entries in the Wix4SecureObject table whose components match the bitness of this CA |
| 520 | #ifdef _WIN64 | 520 | #ifdef _WIN64 |
| 521 | if (!fIs64Bit) | 521 | if (!fIs64Bit) |
| 522 | { | 522 | { |
diff --git a/src/ca/serviceconfig.cpp b/src/ca/serviceconfig.cpp index c2b77035..04b25ffa 100644 --- a/src/ca/serviceconfig.cpp +++ b/src/ca/serviceconfig.cpp | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | #include "precomp.h" | 3 | #include "precomp.h" |
| 4 | 4 | ||
| 5 | // structs | 5 | // structs |
| 6 | LPCWSTR wzQUERY_SERVICECONFIG = L"SELECT `ServiceName`, `Component_`, `NewService`, `FirstFailureActionType`, `SecondFailureActionType`, `ThirdFailureActionType`, `ResetPeriodInDays`, `RestartServiceDelayInSeconds`, `ProgramCommandLine`, `RebootMessage` FROM `ServiceConfig`"; | 6 | LPCWSTR wzQUERY_SERVICECONFIG = L"SELECT `ServiceName`, `Component_`, `NewService`, `FirstFailureActionType`, `SecondFailureActionType`, `ThirdFailureActionType`, `ResetPeriodInDays`, `RestartServiceDelayInSeconds`, `ProgramCommandLine`, `RebootMessage` FROM `Wix4ServiceConfig`"; |
| 7 | enum eQUERY_SERVICECONFIG { QSC_SERVICENAME = 1, QSC_COMPONENT, QSC_NEWSERVICE, QSC_FIRSTFAILUREACTIONTYPE, QSC_SECONDFAILUREACTIONTYPE, QSC_THIRDFAILUREACTIONTYPE, QSC_RESETPERIODINDAYS, QSC_RESTARTSERVICEDELAYINSECONDS, QSC_PROGRAMCOMMANDLINE, QSC_REBOOTMESSAGE }; | 7 | enum eQUERY_SERVICECONFIG { QSC_SERVICENAME = 1, QSC_COMPONENT, QSC_NEWSERVICE, QSC_FIRSTFAILUREACTIONTYPE, QSC_SECONDFAILUREACTIONTYPE, QSC_THIRDFAILUREACTIONTYPE, QSC_RESETPERIODINDAYS, QSC_RESTARTSERVICEDELAYINSECONDS, QSC_PROGRAMCOMMANDLINE, QSC_REBOOTMESSAGE }; |
| 8 | 8 | ||
| 9 | // consts | 9 | // consts |
| @@ -81,7 +81,7 @@ extern "C" UINT __stdcall SchedServiceConfig( | |||
| 81 | 81 | ||
| 82 | // Loop through all the services to be configured. | 82 | // Loop through all the services to be configured. |
| 83 | hr = WcaOpenExecuteView(wzQUERY_SERVICECONFIG, &hView); | 83 | hr = WcaOpenExecuteView(wzQUERY_SERVICECONFIG, &hView); |
| 84 | ExitOnFailure(hr, "Failed to open view on ServiceConfig table."); | 84 | ExitOnFailure(hr, "Failed to open view on Wix4ServiceConfig table."); |
| 85 | 85 | ||
| 86 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) | 86 | while (S_OK == (hr = WcaFetchRecord(hView, &hRec))) |
| 87 | { | 87 | { |
| @@ -106,7 +106,7 @@ extern "C" UINT __stdcall SchedServiceConfig( | |||
| 106 | ExitOnFailure(hr, "Failed to add name to CustomActionData."); | 106 | ExitOnFailure(hr, "Failed to add name to CustomActionData."); |
| 107 | 107 | ||
| 108 | hr = WcaGetRecordInteger(hRec, QSC_NEWSERVICE, &iData); | 108 | hr = WcaGetRecordInteger(hRec, QSC_NEWSERVICE, &iData); |
| 109 | ExitOnFailure(hr, "Failed to get ServiceConfig.NewService."); | 109 | ExitOnFailure(hr, "Failed to get Wix4ServiceConfig.NewService."); |
| 110 | hr = WcaWriteIntegerToCaData(0 != iData, &pwzCustomActionData); | 110 | hr = WcaWriteIntegerToCaData(0 != iData, &pwzCustomActionData); |
| 111 | ExitOnFailure(hr, "Failed to add NewService data to CustomActionData"); | 111 | ExitOnFailure(hr, "Failed to add NewService data to CustomActionData"); |
| 112 | 112 | ||
| @@ -167,10 +167,10 @@ extern "C" UINT __stdcall SchedServiceConfig( | |||
| 167 | // setup CustomActionData and add to progress bar for download | 167 | // setup CustomActionData and add to progress bar for download |
| 168 | if (0 < cServices) | 168 | if (0 < cServices) |
| 169 | { | 169 | { |
| 170 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackServiceConfig"), pwzScriptKey, cServices * COST_SERVICECONFIG); | 170 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackServiceConfig"), pwzScriptKey, cServices * COST_SERVICECONFIG); |
| 171 | ExitOnFailure(hr, "failed to schedule RollbackServiceConfig action"); | 171 | ExitOnFailure(hr, "failed to schedule RollbackServiceConfig action"); |
| 172 | 172 | ||
| 173 | hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"ExecServiceConfig"), pwzCustomActionData, cServices * COST_SERVICECONFIG); | 173 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecServiceConfig"), pwzCustomActionData, cServices * COST_SERVICECONFIG); |
| 174 | ExitOnFailure(hr, "failed to schedule ExecServiceConfig action"); | 174 | ExitOnFailure(hr, "failed to schedule ExecServiceConfig action"); |
| 175 | } | 175 | } |
| 176 | 176 | ||
diff --git a/src/ca/utilca.vcxproj b/src/ca/utilca.vcxproj index 2ec0c706..45a7f278 100644 --- a/src/ca/utilca.vcxproj +++ b/src/ca/utilca.vcxproj | |||
| @@ -66,7 +66,7 @@ | |||
| 66 | </ItemGroup> | 66 | </ItemGroup> |
| 67 | 67 | ||
| 68 | <ItemGroup> | 68 | <ItemGroup> |
| 69 | <ClInclude Include="caSuffix.h" /> | 69 | <ClInclude Include="caDecor.h" /> |
| 70 | <ClInclude Include="cost.h" /> | 70 | <ClInclude Include="cost.h" /> |
| 71 | <ClInclude Include="CustomMsiErrors.h" /> | 71 | <ClInclude Include="CustomMsiErrors.h" /> |
| 72 | <ClInclude Include="precomp.h" /> | 72 | <ClInclude Include="precomp.h" /> |
diff --git a/src/test/WixToolsetTest.Util/TestData/CloseApplication/Package.en-us.wxl b/src/test/WixToolsetTest.Util/TestData/CloseApplication/Package.en-us.wxl new file mode 100644 index 00000000..38c12ac1 --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/CloseApplication/Package.en-us.wxl | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | |||
| 3 | <!-- | ||
| 4 | This file contains the declaration of all the localizable strings. | ||
| 5 | --> | ||
| 6 | <WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US"> | ||
| 7 | |||
| 8 | <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String> | ||
| 9 | <String Id="FeatureTitle">MsiPackage</String> | ||
| 10 | |||
| 11 | </WixLocalization> | ||
diff --git a/src/test/WixToolsetTest.Util/TestData/CloseApplication/Package.wxs b/src/test/WixToolsetTest.Util/TestData/CloseApplication/Package.wxs new file mode 100644 index 00000000..688ce39d --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/CloseApplication/Package.wxs | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" | ||
| 3 | xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> | ||
| 4 | <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> | ||
| 5 | <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" /> | ||
| 6 | |||
| 7 | <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> | ||
| 8 | <MediaTemplate /> | ||
| 9 | |||
| 10 | <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> | ||
| 11 | <ComponentGroupRef Id="ProductComponents" /> | ||
| 12 | </Feature> | ||
| 13 | |||
| 14 | <util:CloseApplication Id="CloseMyApp" CloseMessage="yes" Property="MYAPPISRUNNING" Target="explorer.exe" /> | ||
| 15 | </Product> | ||
| 16 | |||
| 17 | <Fragment> | ||
| 18 | <Directory Id="TARGETDIR" Name="SourceDir"> | ||
| 19 | <Directory Id="ProgramFilesFolder"> | ||
| 20 | <Directory Id="INSTALLFOLDER" Name="MsiPackage" /> | ||
| 21 | </Directory> | ||
| 22 | </Directory> | ||
| 23 | </Fragment> | ||
| 24 | </Wix> | ||
diff --git a/src/test/WixToolsetTest.Util/TestData/CloseApplication/PackageComponents.wxs b/src/test/WixToolsetTest.Util/TestData/CloseApplication/PackageComponents.wxs new file mode 100644 index 00000000..4f9e6a9d --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/CloseApplication/PackageComponents.wxs | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" | ||
| 3 | xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> | ||
| 4 | <Fragment> | ||
| 5 | <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> | ||
| 6 | <Component> | ||
| 7 | <File Source="example.txt" /> | ||
| 8 | </Component> | ||
| 9 | </ComponentGroup> | ||
| 10 | </Fragment> | ||
| 11 | </Wix> | ||
diff --git a/src/test/WixToolsetTest.Util/TestData/CloseApplication/example.txt b/src/test/WixToolsetTest.Util/TestData/CloseApplication/example.txt new file mode 100644 index 00000000..1b4ffe8a --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/CloseApplication/example.txt | |||
| @@ -0,0 +1 @@ | |||
| This is example.txt. \ No newline at end of file | |||
diff --git a/src/test/WixToolsetTest.Util/TestData/EventManifest/Package.en-us.wxl b/src/test/WixToolsetTest.Util/TestData/EventManifest/Package.en-us.wxl new file mode 100644 index 00000000..38c12ac1 --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/EventManifest/Package.en-us.wxl | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | |||
| 3 | <!-- | ||
| 4 | This file contains the declaration of all the localizable strings. | ||
| 5 | --> | ||
| 6 | <WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US"> | ||
| 7 | |||
| 8 | <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String> | ||
| 9 | <String Id="FeatureTitle">MsiPackage</String> | ||
| 10 | |||
| 11 | </WixLocalization> | ||
diff --git a/src/test/WixToolsetTest.Util/TestData/EventManifest/Package.wxs b/src/test/WixToolsetTest.Util/TestData/EventManifest/Package.wxs new file mode 100644 index 00000000..fc1018ae --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/EventManifest/Package.wxs | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" | ||
| 3 | xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> | ||
| 4 | <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> | ||
| 5 | <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" /> | ||
| 6 | |||
| 7 | <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> | ||
| 8 | <MediaTemplate /> | ||
| 9 | |||
| 10 | <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> | ||
| 11 | <ComponentGroupRef Id="ProductComponents" /> | ||
| 12 | </Feature> | ||
| 13 | </Product> | ||
| 14 | |||
| 15 | <Fragment> | ||
| 16 | <Directory Id="TARGETDIR" Name="SourceDir"> | ||
| 17 | <Directory Id="ProgramFilesFolder"> | ||
| 18 | <Directory Id="INSTALLFOLDER" Name="MsiPackage" /> | ||
| 19 | </Directory> | ||
| 20 | </Directory> | ||
| 21 | </Fragment> | ||
| 22 | </Wix> | ||
diff --git a/src/test/WixToolsetTest.Util/TestData/EventManifest/PackageComponents.wxs b/src/test/WixToolsetTest.Util/TestData/EventManifest/PackageComponents.wxs new file mode 100644 index 00000000..75af3f59 --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/EventManifest/PackageComponents.wxs | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" | ||
| 3 | xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> | ||
| 4 | <Fragment> | ||
| 5 | <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> | ||
| 6 | <Component> | ||
| 7 | <File Id="Manifest.dll" Source="example.txt"> | ||
| 8 | <util:EventManifest MessageFile="[Manifest.dll]" ResourceFile="[Manifest.dll]" /> | ||
| 9 | </File> | ||
| 10 | </Component> | ||
| 11 | </ComponentGroup> | ||
| 12 | </Fragment> | ||
| 13 | </Wix> | ||
diff --git a/src/test/WixToolsetTest.Util/TestData/EventManifest/example.txt b/src/test/WixToolsetTest.Util/TestData/EventManifest/example.txt new file mode 100644 index 00000000..1b4ffe8a --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/EventManifest/example.txt | |||
| @@ -0,0 +1 @@ | |||
| This is example.txt. \ No newline at end of file | |||
diff --git a/src/test/WixToolsetTest.Util/TestData/InternetShortcut/Package.en-us.wxl b/src/test/WixToolsetTest.Util/TestData/InternetShortcut/Package.en-us.wxl new file mode 100644 index 00000000..38c12ac1 --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/InternetShortcut/Package.en-us.wxl | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | |||
| 3 | <!-- | ||
| 4 | This file contains the declaration of all the localizable strings. | ||
| 5 | --> | ||
| 6 | <WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US"> | ||
| 7 | |||
| 8 | <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String> | ||
| 9 | <String Id="FeatureTitle">MsiPackage</String> | ||
| 10 | |||
| 11 | </WixLocalization> | ||
diff --git a/src/test/WixToolsetTest.Util/TestData/InternetShortcut/Package.wxs b/src/test/WixToolsetTest.Util/TestData/InternetShortcut/Package.wxs new file mode 100644 index 00000000..fc1018ae --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/InternetShortcut/Package.wxs | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" | ||
| 3 | xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> | ||
| 4 | <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> | ||
| 5 | <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" /> | ||
| 6 | |||
| 7 | <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> | ||
| 8 | <MediaTemplate /> | ||
| 9 | |||
| 10 | <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> | ||
| 11 | <ComponentGroupRef Id="ProductComponents" /> | ||
| 12 | </Feature> | ||
| 13 | </Product> | ||
| 14 | |||
| 15 | <Fragment> | ||
| 16 | <Directory Id="TARGETDIR" Name="SourceDir"> | ||
| 17 | <Directory Id="ProgramFilesFolder"> | ||
| 18 | <Directory Id="INSTALLFOLDER" Name="MsiPackage" /> | ||
| 19 | </Directory> | ||
| 20 | </Directory> | ||
| 21 | </Fragment> | ||
| 22 | </Wix> | ||
diff --git a/src/test/WixToolsetTest.Util/TestData/InternetShortcut/PackageComponents.wxs b/src/test/WixToolsetTest.Util/TestData/InternetShortcut/PackageComponents.wxs new file mode 100644 index 00000000..23b172f8 --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/InternetShortcut/PackageComponents.wxs | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" | ||
| 3 | xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> | ||
| 4 | <Fragment> | ||
| 5 | <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> | ||
| 6 | <Component> | ||
| 7 | <File Source="example.txt" /> | ||
| 8 | <util:InternetShortcut Id="wixshortcut" Name="WiX Toolset" Target="https://wixtoolset.org" /> | ||
| 9 | </Component> | ||
| 10 | </ComponentGroup> | ||
| 11 | </Fragment> | ||
| 12 | </Wix> | ||
diff --git a/src/test/WixToolsetTest.Util/TestData/InternetShortcut/example.txt b/src/test/WixToolsetTest.Util/TestData/InternetShortcut/example.txt new file mode 100644 index 00000000..1b4ffe8a --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/InternetShortcut/example.txt | |||
| @@ -0,0 +1 @@ | |||
| This is example.txt. \ No newline at end of file | |||
diff --git a/src/test/WixToolsetTest.Util/TestData/PermissionEx/Package.en-us.wxl b/src/test/WixToolsetTest.Util/TestData/PermissionEx/Package.en-us.wxl new file mode 100644 index 00000000..38c12ac1 --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/PermissionEx/Package.en-us.wxl | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | |||
| 3 | <!-- | ||
| 4 | This file contains the declaration of all the localizable strings. | ||
| 5 | --> | ||
| 6 | <WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US"> | ||
| 7 | |||
| 8 | <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String> | ||
| 9 | <String Id="FeatureTitle">MsiPackage</String> | ||
| 10 | |||
| 11 | </WixLocalization> | ||
diff --git a/src/test/WixToolsetTest.Util/TestData/PermissionEx/Package.wxs b/src/test/WixToolsetTest.Util/TestData/PermissionEx/Package.wxs new file mode 100644 index 00000000..fc1018ae --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/PermissionEx/Package.wxs | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" | ||
| 3 | xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> | ||
| 4 | <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> | ||
| 5 | <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" /> | ||
| 6 | |||
| 7 | <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> | ||
| 8 | <MediaTemplate /> | ||
| 9 | |||
| 10 | <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> | ||
| 11 | <ComponentGroupRef Id="ProductComponents" /> | ||
| 12 | </Feature> | ||
| 13 | </Product> | ||
| 14 | |||
| 15 | <Fragment> | ||
| 16 | <Directory Id="TARGETDIR" Name="SourceDir"> | ||
| 17 | <Directory Id="ProgramFilesFolder"> | ||
| 18 | <Directory Id="INSTALLFOLDER" Name="MsiPackage" /> | ||
| 19 | </Directory> | ||
| 20 | </Directory> | ||
| 21 | </Fragment> | ||
| 22 | </Wix> | ||
diff --git a/src/test/WixToolsetTest.Util/TestData/PermissionEx/PackageComponents.wxs b/src/test/WixToolsetTest.Util/TestData/PermissionEx/PackageComponents.wxs new file mode 100644 index 00000000..22438a2b --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/PermissionEx/PackageComponents.wxs | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" | ||
| 3 | xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> | ||
| 4 | <Fragment> | ||
| 5 | <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> | ||
| 6 | <Component> | ||
| 7 | <File Source="example.txt" /> | ||
| 8 | <CreateFolder> | ||
| 9 | <util:PermissionEx User="Everyone" GenericAll="yes" /> | ||
| 10 | </CreateFolder> | ||
| 11 | </Component> | ||
| 12 | </ComponentGroup> | ||
| 13 | </Fragment> | ||
| 14 | </Wix> | ||
diff --git a/src/test/WixToolsetTest.Util/TestData/PermissionEx/example.txt b/src/test/WixToolsetTest.Util/TestData/PermissionEx/example.txt new file mode 100644 index 00000000..1b4ffe8a --- /dev/null +++ b/src/test/WixToolsetTest.Util/TestData/PermissionEx/example.txt | |||
| @@ -0,0 +1 @@ | |||
| This is example.txt. \ No newline at end of file | |||
diff --git a/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs b/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs index f2f06af8..750098d6 100644 --- a/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs +++ b/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs | |||
| @@ -19,11 +19,118 @@ namespace WixToolsetTest.Util | |||
| 19 | var folder = TestData.Get(@"TestData\UsingFileShare"); | 19 | var folder = TestData.Get(@"TestData\UsingFileShare"); |
| 20 | var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder }); | 20 | var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder }); |
| 21 | 21 | ||
| 22 | var results = build.BuildAndQuery(Build, "FileShare", "FileSharePermissions"); | 22 | var results = build.BuildAndQuery(Build, "Binary", "CustomAction", "Wix4FileShare", "Wix4FileSharePermissions"); |
| 23 | Assert.Equal(new[] | 23 | Assert.Equal(new[] |
| 24 | { | 24 | { |
| 25 | "FileShare:ExampleFileShare\texample\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tAn example file share\tINSTALLFOLDER\t\t", | 25 | "Binary:Wix4UtilCA_X86\t[Binary data]", |
| 26 | "FileSharePermissions:ExampleFileShare\tEveryone\t1", | 26 | "CustomAction:Wix4ConfigureSmbInstall_X86\t1\tWix4UtilCA_X86\tConfigureSmbInstall\t", |
| 27 | "CustomAction:Wix4ConfigureSmbUninstall_X86\t1\tWix4UtilCA_X86\tConfigureSmbUninstall\t", | ||
| 28 | "CustomAction:Wix4CreateSmb_X86\t11265\tWix4UtilCA_X86\tCreateSmb\t", | ||
| 29 | "CustomAction:Wix4CreateSmbRollback_X86\t11585\tWix4UtilCA_X86\tDropSmb\t", | ||
| 30 | "CustomAction:Wix4DropSmb_X86\t11265\tWix4UtilCA_X86\tDropSmb\t", | ||
| 31 | "CustomAction:Wix4DropSmbRollback_X86\t11585\tWix4UtilCA_X86\tCreateSmb\t", | ||
| 32 | "Wix4FileShare:ExampleFileShare\texample\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tAn example file share\tINSTALLFOLDER", | ||
| 33 | "Wix4FileSharePermissions:ExampleFileShare\tEveryone\t1", | ||
| 34 | }, results.OrderBy(s => s).ToArray()); | ||
| 35 | } | ||
| 36 | |||
| 37 | [Fact] | ||
| 38 | public void CanBuildUsingFileShareX64() | ||
| 39 | { | ||
| 40 | var folder = TestData.Get(@"TestData\UsingFileShare"); | ||
| 41 | var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder }); | ||
| 42 | |||
| 43 | var results = build.BuildAndQuery(BuildX64, "Binary", "CustomAction", "Wix4FileShare", "Wix4FileSharePermissions"); | ||
| 44 | Assert.Equal(new[] | ||
| 45 | { | ||
| 46 | "Binary:Wix4UtilCA_X86\t[Binary data]", | ||
| 47 | "CustomAction:Wix4ConfigureSmbInstall_X86\t1\tWix4UtilCA_X86\tConfigureSmbInstall\t", | ||
| 48 | "CustomAction:Wix4ConfigureSmbUninstall_X86\t1\tWix4UtilCA_X86\tConfigureSmbUninstall\t", | ||
| 49 | "CustomAction:Wix4CreateSmb_X86\t11265\tWix4UtilCA_X86\tCreateSmb\t", | ||
| 50 | "CustomAction:Wix4CreateSmbRollback_X86\t11585\tWix4UtilCA_X86\tDropSmb\t", | ||
| 51 | "CustomAction:Wix4DropSmb_X86\t11265\tWix4UtilCA_X86\tDropSmb\t", | ||
| 52 | "CustomAction:Wix4DropSmbRollback_X86\t11585\tWix4UtilCA_X86\tCreateSmb\t", | ||
| 53 | "Wix4FileShare:ExampleFileShare\texample\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tAn example file share\tINSTALLFOLDER", | ||
| 54 | "Wix4FileSharePermissions:ExampleFileShare\tEveryone\t1", | ||
| 55 | }, results.OrderBy(s => s).ToArray()); | ||
| 56 | } | ||
| 57 | |||
| 58 | [Fact] | ||
| 59 | public void CanBuildCloseApplication() | ||
| 60 | { | ||
| 61 | var folder = TestData.Get(@"TestData\CloseApplication"); | ||
| 62 | var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder }); | ||
| 63 | |||
| 64 | var results = build.BuildAndQuery(BuildX64, "Binary", "CustomAction", "Wix4CloseApplication"); | ||
| 65 | Assert.Equal(new[] | ||
| 66 | { | ||
| 67 | "Binary:Wix4UtilCA_X86\t[Binary data]", | ||
| 68 | "CustomAction:Wix4CheckRebootRequired_X86\t65\tWix4UtilCA_X86\tWixCheckRebootRequired\t", | ||
| 69 | "CustomAction:Wix4CloseApplications_X86\t1\tWix4UtilCA_X86\tWixCloseApplications\t", | ||
| 70 | "CustomAction:Wix4CloseApplicationsDeferred_X86\t3073\tWix4UtilCA_X86\tWixCloseApplicationsDeferred\t", | ||
| 71 | "Wix4CloseApplication:CloseMyApp\texplorer.exe\t\t\t3\t\tMYAPPISRUNNING\t\t", | ||
| 72 | }, results.OrderBy(s => s).ToArray()); | ||
| 73 | } | ||
| 74 | |||
| 75 | [Fact] | ||
| 76 | public void CanBuildInternetShortcut() | ||
| 77 | { | ||
| 78 | var folder = TestData.Get(@"TestData\InternetShortcut"); | ||
| 79 | var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder }); | ||
| 80 | |||
| 81 | var results = build.BuildAndQuery(BuildX64, "Binary", "CustomAction", "RemoveFile", "Wix4InternetShortcut"); | ||
| 82 | Assert.Equal(new[] | ||
| 83 | { | ||
| 84 | "Binary:Wix4UtilCA_X86\t[Binary data]", | ||
| 85 | "CustomAction:Wix4CreateInternetShortcuts_X86\t3073\tWix4UtilCA_X86\tWixCreateInternetShortcuts\t", | ||
| 86 | "CustomAction:Wix4RollbackInternetShortcuts_X86\t3329\tWix4UtilCA_X86\tWixRollbackInternetShortcuts\t", | ||
| 87 | "CustomAction:Wix4SchedInternetShortcuts_X86\t1\tWix4UtilCA_X86\tWixSchedInternetShortcuts\t", | ||
| 88 | "RemoveFile:wixshortcut\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tvtpzs3bw.lnk|WiX Toolset.lnk\tINSTALLFOLDER\t2", | ||
| 89 | "Wix4InternetShortcut:wixshortcut\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tINSTALLFOLDER\tWiX Toolset.lnk\thttps://wixtoolset.org\t0\t\t0", | ||
| 90 | }, results.OrderBy(s => s).ToArray()); | ||
| 91 | } | ||
| 92 | |||
| 93 | [Fact] | ||
| 94 | public void CanBuildWithPermissionEx() | ||
| 95 | { | ||
| 96 | var folder = TestData.Get(@"TestData\PermissionEx"); | ||
| 97 | var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder }); | ||
| 98 | |||
| 99 | var results = build.BuildAndQuery(BuildX64, "Binary", "CreateFolder", "CustomAction", "Wix4SecureObject"); | ||
| 100 | Assert.Equal(new[] | ||
| 101 | { | ||
| 102 | "Binary:Wix4UtilCA_X64\t[Binary data]", | ||
| 103 | "CreateFolder:INSTALLFOLDER\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo", | ||
| 104 | "CustomAction:Wix4ExecSecureObjects_X64\t11265\tWix4UtilCA_X64\tExecSecureObjects\t", | ||
| 105 | "CustomAction:Wix4ExecSecureObjectsRollback_X64\t11521\tWix4UtilCA_X64\tExecSecureObjectsRollback\t", | ||
| 106 | "CustomAction:Wix4SchedSecureObjects_X64\t1\tWix4UtilCA_X64\tSchedSecureObjects\t", | ||
| 107 | "CustomAction:Wix4SchedSecureObjectsRollback_X64\t1\tWix4UtilCA_X64\tSchedSecureObjectsRollback\t", | ||
| 108 | "Wix4SecureObject:INSTALLFOLDER\tCreateFolder\t\tEveryone\t268435456\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo", | ||
| 109 | }, results.OrderBy(s => s).ToArray()); | ||
| 110 | } | ||
| 111 | |||
| 112 | [Fact] | ||
| 113 | public void CanBuildWithEventManifest() | ||
| 114 | { | ||
| 115 | var folder = TestData.Get(@"TestData\EventManifest"); | ||
| 116 | var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder }); | ||
| 117 | |||
| 118 | var results = build.BuildAndQuery(BuildX64, "Binary", "CustomAction", "Wix4EventManifest", "Wix4XmlFile"); | ||
| 119 | Assert.Equal(new[] | ||
| 120 | { | ||
| 121 | "Binary:Wix4UtilCA_X86\t[Binary data]", | ||
| 122 | "CustomAction:Wix4ConfigureEventManifestRegister_X86\t1\tWix4UtilCA_X86\tConfigureEventManifestRegister\t", | ||
| 123 | "CustomAction:Wix4ConfigureEventManifestUnregister_X86\t1\tWix4UtilCA_X86\tConfigureEventManifestUnregister\t", | ||
| 124 | "CustomAction:Wix4ExecXmlFile_X86\t11265\tWix4UtilCA_X86\tExecXmlFile\t", | ||
| 125 | "CustomAction:Wix4ExecXmlFileRollback_X86\t11521\tWix4UtilCA_X86\tExecXmlFileRollback\t", | ||
| 126 | "CustomAction:Wix4RegisterEventManifest_X86\t3073\tWix4UtilCA_X86\tCAQuietExec\t", | ||
| 127 | "CustomAction:Wix4RollbackRegisterEventManifest_X86\t3393\tWix4UtilCA_X86\tCAQuietExec\t", | ||
| 128 | "CustomAction:Wix4RollbackUnregisterEventManifest_X86\t3329\tWix4UtilCA_X86\tCAQuietExec\t", | ||
| 129 | "CustomAction:Wix4SchedXmlFile_X86\t1\tWix4UtilCA_X86\tSchedXmlFile\t", | ||
| 130 | "CustomAction:Wix4UnregisterEventManifest_X86\t3137\tWix4UtilCA_X86\tCAQuietExec\t", | ||
| 131 | "Wix4EventManifest:Manifest.dll\t[#Manifest.dll]", | ||
| 132 | "Wix4XmlFile:Config_Manifest.dllMessageFile\t[#Manifest.dll]\t/*/*/*/*[\\[]@messageFileName[\\]]\tmessageFileName\t[Manifest.dll]\t4100\tManifest.dll\t", | ||
| 133 | "Wix4XmlFile:Config_Manifest.dllResourceFile\t[#Manifest.dll]\t/*/*/*/*[\\[]@resourceFileName[\\]]\tresourceFileName\t[Manifest.dll]\t4100\tManifest.dll\t", | ||
| 27 | }, results.OrderBy(s => s).ToArray()); | 134 | }, results.OrderBy(s => s).ToArray()); |
| 28 | } | 135 | } |
| 29 | 136 | ||
| @@ -93,8 +200,18 @@ namespace WixToolsetTest.Util | |||
| 93 | 200 | ||
| 94 | private static void Build(string[] args) | 201 | private static void Build(string[] args) |
| 95 | { | 202 | { |
| 96 | var result = WixRunner.Execute(args) | 203 | var result = WixRunner.Execute(args); |
| 97 | .AssertSuccess(); | 204 | result.AssertSuccess(); |
| 205 | } | ||
| 206 | |||
| 207 | private static void BuildX64(string[] args) | ||
| 208 | { | ||
| 209 | var newArgs = args.ToList(); | ||
| 210 | newArgs.Add("-platform"); | ||
| 211 | newArgs.Add("x64"); | ||
| 212 | |||
| 213 | var result = WixRunner.Execute(newArgs.ToArray()); | ||
| 214 | result.AssertSuccess(); | ||
| 98 | } | 215 | } |
| 99 | } | 216 | } |
| 100 | } | 217 | } |
diff --git a/src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj b/src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj index 6cf001a2..1635287d 100644 --- a/src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj +++ b/src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj | |||
| @@ -23,6 +23,22 @@ | |||
| 23 | <Content Include="TestData\UsingFileShare\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" /> | 23 | <Content Include="TestData\UsingFileShare\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" /> |
| 24 | <Content Include="TestData\UsingFileShare\Package.wxs" CopyToOutputDirectory="PreserveNewest" /> | 24 | <Content Include="TestData\UsingFileShare\Package.wxs" CopyToOutputDirectory="PreserveNewest" /> |
| 25 | <Content Include="TestData\UsingFileShare\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" /> | 25 | <Content Include="TestData\UsingFileShare\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" /> |
| 26 | <Content Include="TestData\CloseApplication\example.txt" CopyToOutputDirectory="PreserveNewest" /> | ||
| 27 | <Content Include="TestData\CloseApplication\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" /> | ||
| 28 | <Content Include="TestData\CloseApplication\Package.wxs" CopyToOutputDirectory="PreserveNewest" /> | ||
| 29 | <Content Include="TestData\CloseApplication\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" /> | ||
| 30 | <Content Include="TestData\InternetShortcut\example.txt" CopyToOutputDirectory="PreserveNewest" /> | ||
| 31 | <Content Include="TestData\InternetShortcut\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" /> | ||
| 32 | <Content Include="TestData\InternetShortcut\Package.wxs" CopyToOutputDirectory="PreserveNewest" /> | ||
| 33 | <Content Include="TestData\InternetShortcut\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" /> | ||
| 34 | <Content Include="TestData\PermissionEx\example.txt" CopyToOutputDirectory="PreserveNewest" /> | ||
| 35 | <Content Include="TestData\PermissionEx\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" /> | ||
| 36 | <Content Include="TestData\PermissionEx\Package.wxs" CopyToOutputDirectory="PreserveNewest" /> | ||
| 37 | <Content Include="TestData\PermissionEx\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" /> | ||
| 38 | <Content Include="TestData\EventManifest\example.txt" CopyToOutputDirectory="PreserveNewest" /> | ||
| 39 | <Content Include="TestData\EventManifest\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" /> | ||
| 40 | <Content Include="TestData\EventManifest\Package.wxs" CopyToOutputDirectory="PreserveNewest" /> | ||
| 41 | <Content Include="TestData\EventManifest\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" /> | ||
| 26 | </ItemGroup> | 42 | </ItemGroup> |
| 27 | 43 | ||
| 28 | <ItemGroup> | 44 | <ItemGroup> |
diff --git a/src/wixext/Tuples/EventManifestTuple.cs b/src/wixext/Tuples/EventManifestTuple.cs index b74d2d59..364604be 100644 --- a/src/wixext/Tuples/EventManifestTuple.cs +++ b/src/wixext/Tuples/EventManifestTuple.cs | |||
| @@ -11,7 +11,7 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.EventManifest.ToString(), | 11 | UtilTupleDefinitionType.EventManifest.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(EventManifestTupleFields.Component_), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(EventManifestTupleFields.ComponentRef), IntermediateFieldType.String), |
| 15 | new IntermediateFieldDefinition(nameof(EventManifestTupleFields.File), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(EventManifestTupleFields.File), IntermediateFieldType.String), |
| 16 | }, | 16 | }, |
| 17 | typeof(EventManifestTuple)); | 17 | typeof(EventManifestTuple)); |
| @@ -24,7 +24,7 @@ namespace WixToolset.Util.Tuples | |||
| 24 | 24 | ||
| 25 | public enum EventManifestTupleFields | 25 | public enum EventManifestTupleFields |
| 26 | { | 26 | { |
| 27 | Component_, | 27 | ComponentRef, |
| 28 | File, | 28 | File, |
| 29 | } | 29 | } |
| 30 | 30 | ||
| @@ -40,10 +40,10 @@ namespace WixToolset.Util.Tuples | |||
| 40 | 40 | ||
| 41 | public IntermediateField this[EventManifestTupleFields index] => this.Fields[(int)index]; | 41 | public IntermediateField this[EventManifestTupleFields index] => this.Fields[(int)index]; |
| 42 | 42 | ||
| 43 | public string Component_ | 43 | public string ComponentRef |
| 44 | { | 44 | { |
| 45 | get => this.Fields[(int)EventManifestTupleFields.Component_].AsString(); | 45 | get => this.Fields[(int)EventManifestTupleFields.ComponentRef].AsString(); |
| 46 | set => this.Set((int)EventManifestTupleFields.Component_, value); | 46 | set => this.Set((int)EventManifestTupleFields.ComponentRef, value); |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | public string File | 49 | public string File |
diff --git a/src/wixext/Tuples/FileSharePermissionsTuple.cs b/src/wixext/Tuples/FileSharePermissionsTuple.cs index 3f037e0e..1db01b98 100644 --- a/src/wixext/Tuples/FileSharePermissionsTuple.cs +++ b/src/wixext/Tuples/FileSharePermissionsTuple.cs | |||
| @@ -11,8 +11,8 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.FileSharePermissions.ToString(), | 11 | UtilTupleDefinitionType.FileSharePermissions.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(FileSharePermissionsTupleFields.FileShare_), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(FileSharePermissionsTupleFields.FileShareRef), IntermediateFieldType.String), |
| 15 | new IntermediateFieldDefinition(nameof(FileSharePermissionsTupleFields.User_), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(FileSharePermissionsTupleFields.UserRef), IntermediateFieldType.String), |
| 16 | new IntermediateFieldDefinition(nameof(FileSharePermissionsTupleFields.Permissions), IntermediateFieldType.Number), | 16 | new IntermediateFieldDefinition(nameof(FileSharePermissionsTupleFields.Permissions), IntermediateFieldType.Number), |
| 17 | }, | 17 | }, |
| 18 | typeof(FileSharePermissionsTuple)); | 18 | typeof(FileSharePermissionsTuple)); |
| @@ -25,8 +25,8 @@ namespace WixToolset.Util.Tuples | |||
| 25 | 25 | ||
| 26 | public enum FileSharePermissionsTupleFields | 26 | public enum FileSharePermissionsTupleFields |
| 27 | { | 27 | { |
| 28 | FileShare_, | 28 | FileShareRef, |
| 29 | User_, | 29 | UserRef, |
| 30 | Permissions, | 30 | Permissions, |
| 31 | } | 31 | } |
| 32 | 32 | ||
| @@ -42,16 +42,16 @@ namespace WixToolset.Util.Tuples | |||
| 42 | 42 | ||
| 43 | public IntermediateField this[FileSharePermissionsTupleFields index] => this.Fields[(int)index]; | 43 | public IntermediateField this[FileSharePermissionsTupleFields index] => this.Fields[(int)index]; |
| 44 | 44 | ||
| 45 | public string FileShare_ | 45 | public string FileShareRef |
| 46 | { | 46 | { |
| 47 | get => this.Fields[(int)FileSharePermissionsTupleFields.FileShare_].AsString(); | 47 | get => this.Fields[(int)FileSharePermissionsTupleFields.FileShareRef].AsString(); |
| 48 | set => this.Set((int)FileSharePermissionsTupleFields.FileShare_, value); | 48 | set => this.Set((int)FileSharePermissionsTupleFields.FileShareRef, value); |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | public string User_ | 51 | public string UserRef |
| 52 | { | 52 | { |
| 53 | get => this.Fields[(int)FileSharePermissionsTupleFields.User_].AsString(); | 53 | get => this.Fields[(int)FileSharePermissionsTupleFields.UserRef].AsString(); |
| 54 | set => this.Set((int)FileSharePermissionsTupleFields.User_, value); | 54 | set => this.Set((int)FileSharePermissionsTupleFields.UserRef, value); |
| 55 | } | 55 | } |
| 56 | 56 | ||
| 57 | public int Permissions | 57 | public int Permissions |
diff --git a/src/wixext/Tuples/FileShareTuple.cs b/src/wixext/Tuples/FileShareTuple.cs index 5a31b6fa..6a04f6af 100644 --- a/src/wixext/Tuples/FileShareTuple.cs +++ b/src/wixext/Tuples/FileShareTuple.cs | |||
| @@ -11,13 +11,10 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.FileShare.ToString(), | 11 | UtilTupleDefinitionType.FileShare.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(FileShareTupleFields.FileShare), IntermediateFieldType.String), | ||
| 15 | new IntermediateFieldDefinition(nameof(FileShareTupleFields.ShareName), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(FileShareTupleFields.ShareName), IntermediateFieldType.String), |
| 16 | new IntermediateFieldDefinition(nameof(FileShareTupleFields.Component_), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(FileShareTupleFields.ComponentRef), IntermediateFieldType.String), |
| 17 | new IntermediateFieldDefinition(nameof(FileShareTupleFields.Description), IntermediateFieldType.String), | 16 | new IntermediateFieldDefinition(nameof(FileShareTupleFields.Description), IntermediateFieldType.String), |
| 18 | new IntermediateFieldDefinition(nameof(FileShareTupleFields.Directory_), IntermediateFieldType.String), | 17 | new IntermediateFieldDefinition(nameof(FileShareTupleFields.DirectoryRef), IntermediateFieldType.String), |
| 19 | new IntermediateFieldDefinition(nameof(FileShareTupleFields.User_), IntermediateFieldType.String), | ||
| 20 | new IntermediateFieldDefinition(nameof(FileShareTupleFields.Permissions), IntermediateFieldType.Number), | ||
| 21 | }, | 18 | }, |
| 22 | typeof(FileShareTuple)); | 19 | typeof(FileShareTuple)); |
| 23 | } | 20 | } |
| @@ -29,13 +26,10 @@ namespace WixToolset.Util.Tuples | |||
| 29 | 26 | ||
| 30 | public enum FileShareTupleFields | 27 | public enum FileShareTupleFields |
| 31 | { | 28 | { |
| 32 | FileShare, | ||
| 33 | ShareName, | 29 | ShareName, |
| 34 | Component_, | 30 | ComponentRef, |
| 35 | Description, | 31 | Description, |
| 36 | Directory_, | 32 | DirectoryRef, |
| 37 | User_, | ||
| 38 | Permissions, | ||
| 39 | } | 33 | } |
| 40 | 34 | ||
| 41 | public class FileShareTuple : IntermediateTuple | 35 | public class FileShareTuple : IntermediateTuple |
| @@ -50,22 +44,16 @@ namespace WixToolset.Util.Tuples | |||
| 50 | 44 | ||
| 51 | public IntermediateField this[FileShareTupleFields index] => this.Fields[(int)index]; | 45 | public IntermediateField this[FileShareTupleFields index] => this.Fields[(int)index]; |
| 52 | 46 | ||
| 53 | public string FileShare | ||
| 54 | { | ||
| 55 | get => this.Fields[(int)FileShareTupleFields.FileShare].AsString(); | ||
| 56 | set => this.Set((int)FileShareTupleFields.FileShare, value); | ||
| 57 | } | ||
| 58 | |||
| 59 | public string ShareName | 47 | public string ShareName |
| 60 | { | 48 | { |
| 61 | get => this.Fields[(int)FileShareTupleFields.ShareName].AsString(); | 49 | get => this.Fields[(int)FileShareTupleFields.ShareName].AsString(); |
| 62 | set => this.Set((int)FileShareTupleFields.ShareName, value); | 50 | set => this.Set((int)FileShareTupleFields.ShareName, value); |
| 63 | } | 51 | } |
| 64 | 52 | ||
| 65 | public string Component_ | 53 | public string ComponentRef |
| 66 | { | 54 | { |
| 67 | get => this.Fields[(int)FileShareTupleFields.Component_].AsString(); | 55 | get => this.Fields[(int)FileShareTupleFields.ComponentRef].AsString(); |
| 68 | set => this.Set((int)FileShareTupleFields.Component_, value); | 56 | set => this.Set((int)FileShareTupleFields.ComponentRef, value); |
| 69 | } | 57 | } |
| 70 | 58 | ||
| 71 | public string Description | 59 | public string Description |
| @@ -74,22 +62,10 @@ namespace WixToolset.Util.Tuples | |||
| 74 | set => this.Set((int)FileShareTupleFields.Description, value); | 62 | set => this.Set((int)FileShareTupleFields.Description, value); |
| 75 | } | 63 | } |
| 76 | 64 | ||
| 77 | public string Directory_ | 65 | public string DirectoryRef |
| 78 | { | ||
| 79 | get => this.Fields[(int)FileShareTupleFields.Directory_].AsString(); | ||
| 80 | set => this.Set((int)FileShareTupleFields.Directory_, value); | ||
| 81 | } | ||
| 82 | |||
| 83 | public string User_ | ||
| 84 | { | ||
| 85 | get => this.Fields[(int)FileShareTupleFields.User_].AsString(); | ||
| 86 | set => this.Set((int)FileShareTupleFields.User_, value); | ||
| 87 | } | ||
| 88 | |||
| 89 | public int? Permissions | ||
| 90 | { | 66 | { |
| 91 | get => this.Fields[(int)FileShareTupleFields.Permissions].AsNullableNumber(); | 67 | get => this.Fields[(int)FileShareTupleFields.DirectoryRef].AsString(); |
| 92 | set => this.Set((int)FileShareTupleFields.Permissions, value); | 68 | set => this.Set((int)FileShareTupleFields.DirectoryRef, value); |
| 93 | } | 69 | } |
| 94 | } | 70 | } |
| 95 | } \ No newline at end of file | 71 | } \ No newline at end of file |
diff --git a/src/wixext/Tuples/GroupTuple.cs b/src/wixext/Tuples/GroupTuple.cs index 97335714..6061b1f4 100644 --- a/src/wixext/Tuples/GroupTuple.cs +++ b/src/wixext/Tuples/GroupTuple.cs | |||
| @@ -12,7 +12,7 @@ namespace WixToolset.Util | |||
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(GroupTupleFields.Group), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(GroupTupleFields.Group), IntermediateFieldType.String), |
| 15 | new IntermediateFieldDefinition(nameof(GroupTupleFields.Component_), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(GroupTupleFields.ComponentRef), IntermediateFieldType.String), |
| 16 | new IntermediateFieldDefinition(nameof(GroupTupleFields.Name), IntermediateFieldType.String), | 16 | new IntermediateFieldDefinition(nameof(GroupTupleFields.Name), IntermediateFieldType.String), |
| 17 | new IntermediateFieldDefinition(nameof(GroupTupleFields.Domain), IntermediateFieldType.String), | 17 | new IntermediateFieldDefinition(nameof(GroupTupleFields.Domain), IntermediateFieldType.String), |
| 18 | }, | 18 | }, |
| @@ -27,7 +27,7 @@ namespace WixToolset.Util.Tuples | |||
| 27 | public enum GroupTupleFields | 27 | public enum GroupTupleFields |
| 28 | { | 28 | { |
| 29 | Group, | 29 | Group, |
| 30 | Component_, | 30 | ComponentRef, |
| 31 | Name, | 31 | Name, |
| 32 | Domain, | 32 | Domain, |
| 33 | } | 33 | } |
| @@ -50,10 +50,10 @@ namespace WixToolset.Util.Tuples | |||
| 50 | set => this.Set((int)GroupTupleFields.Group, value); | 50 | set => this.Set((int)GroupTupleFields.Group, value); |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | public string Component_ | 53 | public string ComponentRef |
| 54 | { | 54 | { |
| 55 | get => this.Fields[(int)GroupTupleFields.Component_].AsString(); | 55 | get => this.Fields[(int)GroupTupleFields.ComponentRef].AsString(); |
| 56 | set => this.Set((int)GroupTupleFields.Component_, value); | 56 | set => this.Set((int)GroupTupleFields.ComponentRef, value); |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | public string Name | 59 | public string Name |
diff --git a/src/wixext/Tuples/PerfmonManifestTuple.cs b/src/wixext/Tuples/PerfmonManifestTuple.cs index 3f6cb8cc..9520105a 100644 --- a/src/wixext/Tuples/PerfmonManifestTuple.cs +++ b/src/wixext/Tuples/PerfmonManifestTuple.cs | |||
| @@ -11,7 +11,7 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.PerfmonManifest.ToString(), | 11 | UtilTupleDefinitionType.PerfmonManifest.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(PerfmonManifestTupleFields.Component_), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(PerfmonManifestTupleFields.ComponentRef), IntermediateFieldType.String), |
| 15 | new IntermediateFieldDefinition(nameof(PerfmonManifestTupleFields.File), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(PerfmonManifestTupleFields.File), IntermediateFieldType.String), |
| 16 | new IntermediateFieldDefinition(nameof(PerfmonManifestTupleFields.ResourceFileDirectory), IntermediateFieldType.String), | 16 | new IntermediateFieldDefinition(nameof(PerfmonManifestTupleFields.ResourceFileDirectory), IntermediateFieldType.String), |
| 17 | }, | 17 | }, |
| @@ -25,7 +25,7 @@ namespace WixToolset.Util.Tuples | |||
| 25 | 25 | ||
| 26 | public enum PerfmonManifestTupleFields | 26 | public enum PerfmonManifestTupleFields |
| 27 | { | 27 | { |
| 28 | Component_, | 28 | ComponentRef, |
| 29 | File, | 29 | File, |
| 30 | ResourceFileDirectory, | 30 | ResourceFileDirectory, |
| 31 | } | 31 | } |
| @@ -42,10 +42,10 @@ namespace WixToolset.Util.Tuples | |||
| 42 | 42 | ||
| 43 | public IntermediateField this[PerfmonManifestTupleFields index] => this.Fields[(int)index]; | 43 | public IntermediateField this[PerfmonManifestTupleFields index] => this.Fields[(int)index]; |
| 44 | 44 | ||
| 45 | public string Component_ | 45 | public string ComponentRef |
| 46 | { | 46 | { |
| 47 | get => this.Fields[(int)PerfmonManifestTupleFields.Component_].AsString(); | 47 | get => this.Fields[(int)PerfmonManifestTupleFields.ComponentRef].AsString(); |
| 48 | set => this.Set((int)PerfmonManifestTupleFields.Component_, value); | 48 | set => this.Set((int)PerfmonManifestTupleFields.ComponentRef, value); |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | public string File | 51 | public string File |
diff --git a/src/wixext/Tuples/PerfmonTuple.cs b/src/wixext/Tuples/PerfmonTuple.cs index 00ea818b..1fb6ef6b 100644 --- a/src/wixext/Tuples/PerfmonTuple.cs +++ b/src/wixext/Tuples/PerfmonTuple.cs | |||
| @@ -11,7 +11,7 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.Perfmon.ToString(), | 11 | UtilTupleDefinitionType.Perfmon.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(PerfmonTupleFields.Component_), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(PerfmonTupleFields.ComponentRef), IntermediateFieldType.String), |
| 15 | new IntermediateFieldDefinition(nameof(PerfmonTupleFields.File), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(PerfmonTupleFields.File), IntermediateFieldType.String), |
| 16 | new IntermediateFieldDefinition(nameof(PerfmonTupleFields.Name), IntermediateFieldType.String), | 16 | new IntermediateFieldDefinition(nameof(PerfmonTupleFields.Name), IntermediateFieldType.String), |
| 17 | }, | 17 | }, |
| @@ -25,7 +25,7 @@ namespace WixToolset.Util.Tuples | |||
| 25 | 25 | ||
| 26 | public enum PerfmonTupleFields | 26 | public enum PerfmonTupleFields |
| 27 | { | 27 | { |
| 28 | Component_, | 28 | ComponentRef, |
| 29 | File, | 29 | File, |
| 30 | Name, | 30 | Name, |
| 31 | } | 31 | } |
| @@ -42,10 +42,10 @@ namespace WixToolset.Util.Tuples | |||
| 42 | 42 | ||
| 43 | public IntermediateField this[PerfmonTupleFields index] => this.Fields[(int)index]; | 43 | public IntermediateField this[PerfmonTupleFields index] => this.Fields[(int)index]; |
| 44 | 44 | ||
| 45 | public string Component_ | 45 | public string ComponentRef |
| 46 | { | 46 | { |
| 47 | get => this.Fields[(int)PerfmonTupleFields.Component_].AsString(); | 47 | get => this.Fields[(int)PerfmonTupleFields.ComponentRef].AsString(); |
| 48 | set => this.Set((int)PerfmonTupleFields.Component_, value); | 48 | set => this.Set((int)PerfmonTupleFields.ComponentRef, value); |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | public string File | 51 | public string File |
diff --git a/src/wixext/Tuples/PerformanceCategoryTuple.cs b/src/wixext/Tuples/PerformanceCategoryTuple.cs index ec2ba73d..16705466 100644 --- a/src/wixext/Tuples/PerformanceCategoryTuple.cs +++ b/src/wixext/Tuples/PerformanceCategoryTuple.cs | |||
| @@ -11,8 +11,7 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.PerformanceCategory.ToString(), | 11 | UtilTupleDefinitionType.PerformanceCategory.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.PerformanceCategory), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.ComponentRef), IntermediateFieldType.String), |
| 15 | new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.Component_), IntermediateFieldType.String), | ||
| 16 | new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.Name), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.Name), IntermediateFieldType.String), |
| 17 | new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.IniData), IntermediateFieldType.String), | 16 | new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.IniData), IntermediateFieldType.String), |
| 18 | new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.ConstantData), IntermediateFieldType.String), | 17 | new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.ConstantData), IntermediateFieldType.String), |
| @@ -27,8 +26,7 @@ namespace WixToolset.Util.Tuples | |||
| 27 | 26 | ||
| 28 | public enum PerformanceCategoryTupleFields | 27 | public enum PerformanceCategoryTupleFields |
| 29 | { | 28 | { |
| 30 | PerformanceCategory, | 29 | ComponentRef, |
| 31 | Component_, | ||
| 32 | Name, | 30 | Name, |
| 33 | IniData, | 31 | IniData, |
| 34 | ConstantData, | 32 | ConstantData, |
| @@ -46,16 +44,10 @@ namespace WixToolset.Util.Tuples | |||
| 46 | 44 | ||
| 47 | public IntermediateField this[PerformanceCategoryTupleFields index] => this.Fields[(int)index]; | 45 | public IntermediateField this[PerformanceCategoryTupleFields index] => this.Fields[(int)index]; |
| 48 | 46 | ||
| 49 | public string PerformanceCategory | 47 | public string ComponentRef |
| 50 | { | 48 | { |
| 51 | get => this.Fields[(int)PerformanceCategoryTupleFields.PerformanceCategory].AsString(); | 49 | get => this.Fields[(int)PerformanceCategoryTupleFields.ComponentRef].AsString(); |
| 52 | set => this.Set((int)PerformanceCategoryTupleFields.PerformanceCategory, value); | 50 | set => this.Set((int)PerformanceCategoryTupleFields.ComponentRef, value); |
| 53 | } | ||
| 54 | |||
| 55 | public string Component_ | ||
| 56 | { | ||
| 57 | get => this.Fields[(int)PerformanceCategoryTupleFields.Component_].AsString(); | ||
| 58 | set => this.Set((int)PerformanceCategoryTupleFields.Component_, value); | ||
| 59 | } | 51 | } |
| 60 | 52 | ||
| 61 | public string Name | 53 | public string Name |
diff --git a/src/wixext/Tuples/SecureObjectsTuple.cs b/src/wixext/Tuples/SecureObjectsTuple.cs index f54b23d8..920fe7b3 100644 --- a/src/wixext/Tuples/SecureObjectsTuple.cs +++ b/src/wixext/Tuples/SecureObjectsTuple.cs | |||
| @@ -11,12 +11,11 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.SecureObjects.ToString(), | 11 | UtilTupleDefinitionType.SecureObjects.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.SecureObject), IntermediateFieldType.String), | ||
| 15 | new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.Table), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.Table), IntermediateFieldType.String), |
| 16 | new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.Domain), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.Domain), IntermediateFieldType.String), |
| 17 | new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.User), IntermediateFieldType.String), | 16 | new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.User), IntermediateFieldType.String), |
| 18 | new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.Permission), IntermediateFieldType.Number), | 17 | new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.Permission), IntermediateFieldType.Number), |
| 19 | new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.Component_), IntermediateFieldType.String), | 18 | new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.ComponentRef), IntermediateFieldType.String), |
| 20 | }, | 19 | }, |
| 21 | typeof(SecureObjectsTuple)); | 20 | typeof(SecureObjectsTuple)); |
| 22 | } | 21 | } |
| @@ -28,12 +27,11 @@ namespace WixToolset.Util.Tuples | |||
| 28 | 27 | ||
| 29 | public enum SecureObjectsTupleFields | 28 | public enum SecureObjectsTupleFields |
| 30 | { | 29 | { |
| 31 | SecureObject, | ||
| 32 | Table, | 30 | Table, |
| 33 | Domain, | 31 | Domain, |
| 34 | User, | 32 | User, |
| 35 | Permission, | 33 | Permission, |
| 36 | Component_, | 34 | ComponentRef, |
| 37 | } | 35 | } |
| 38 | 36 | ||
| 39 | public class SecureObjectsTuple : IntermediateTuple | 37 | public class SecureObjectsTuple : IntermediateTuple |
| @@ -48,12 +46,6 @@ namespace WixToolset.Util.Tuples | |||
| 48 | 46 | ||
| 49 | public IntermediateField this[SecureObjectsTupleFields index] => this.Fields[(int)index]; | 47 | public IntermediateField this[SecureObjectsTupleFields index] => this.Fields[(int)index]; |
| 50 | 48 | ||
| 51 | public string SecureObject | ||
| 52 | { | ||
| 53 | get => this.Fields[(int)SecureObjectsTupleFields.SecureObject].AsString(); | ||
| 54 | set => this.Set((int)SecureObjectsTupleFields.SecureObject, value); | ||
| 55 | } | ||
| 56 | |||
| 57 | public string Table | 49 | public string Table |
| 58 | { | 50 | { |
| 59 | get => this.Fields[(int)SecureObjectsTupleFields.Table].AsString(); | 51 | get => this.Fields[(int)SecureObjectsTupleFields.Table].AsString(); |
| @@ -78,10 +70,10 @@ namespace WixToolset.Util.Tuples | |||
| 78 | set => this.Set((int)SecureObjectsTupleFields.Permission, value); | 70 | set => this.Set((int)SecureObjectsTupleFields.Permission, value); |
| 79 | } | 71 | } |
| 80 | 72 | ||
| 81 | public string Component_ | 73 | public string ComponentRef |
| 82 | { | 74 | { |
| 83 | get => this.Fields[(int)SecureObjectsTupleFields.Component_].AsString(); | 75 | get => this.Fields[(int)SecureObjectsTupleFields.ComponentRef].AsString(); |
| 84 | set => this.Set((int)SecureObjectsTupleFields.Component_, value); | 76 | set => this.Set((int)SecureObjectsTupleFields.ComponentRef, value); |
| 85 | } | 77 | } |
| 86 | } | 78 | } |
| 87 | } \ No newline at end of file | 79 | } \ No newline at end of file |
diff --git a/src/wixext/Tuples/ServiceConfigTuple.cs b/src/wixext/Tuples/ServiceConfigTuple.cs index 74d96bca..e5fc3992 100644 --- a/src/wixext/Tuples/ServiceConfigTuple.cs +++ b/src/wixext/Tuples/ServiceConfigTuple.cs | |||
| @@ -12,7 +12,7 @@ namespace WixToolset.Util | |||
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.ServiceName), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.ServiceName), IntermediateFieldType.String), |
| 15 | new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.Component_), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.ComponentRef), IntermediateFieldType.String), |
| 16 | new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.NewService), IntermediateFieldType.Number), | 16 | new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.NewService), IntermediateFieldType.Number), |
| 17 | new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.FirstFailureActionType), IntermediateFieldType.String), | 17 | new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.FirstFailureActionType), IntermediateFieldType.String), |
| 18 | new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.SecondFailureActionType), IntermediateFieldType.String), | 18 | new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.SecondFailureActionType), IntermediateFieldType.String), |
| @@ -33,7 +33,7 @@ namespace WixToolset.Util.Tuples | |||
| 33 | public enum ServiceConfigTupleFields | 33 | public enum ServiceConfigTupleFields |
| 34 | { | 34 | { |
| 35 | ServiceName, | 35 | ServiceName, |
| 36 | Component_, | 36 | ComponentRef, |
| 37 | NewService, | 37 | NewService, |
| 38 | FirstFailureActionType, | 38 | FirstFailureActionType, |
| 39 | SecondFailureActionType, | 39 | SecondFailureActionType, |
| @@ -62,10 +62,10 @@ namespace WixToolset.Util.Tuples | |||
| 62 | set => this.Set((int)ServiceConfigTupleFields.ServiceName, value); | 62 | set => this.Set((int)ServiceConfigTupleFields.ServiceName, value); |
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | public string Component_ | 65 | public string ComponentRef |
| 66 | { | 66 | { |
| 67 | get => this.Fields[(int)ServiceConfigTupleFields.Component_].AsString(); | 67 | get => this.Fields[(int)ServiceConfigTupleFields.ComponentRef].AsString(); |
| 68 | set => this.Set((int)ServiceConfigTupleFields.Component_, value); | 68 | set => this.Set((int)ServiceConfigTupleFields.ComponentRef, value); |
| 69 | } | 69 | } |
| 70 | 70 | ||
| 71 | public int NewService | 71 | public int NewService |
diff --git a/src/wixext/Tuples/UserGroupTuple.cs b/src/wixext/Tuples/UserGroupTuple.cs index 0386a26e..30c5e9ff 100644 --- a/src/wixext/Tuples/UserGroupTuple.cs +++ b/src/wixext/Tuples/UserGroupTuple.cs | |||
| @@ -11,8 +11,8 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.UserGroup.ToString(), | 11 | UtilTupleDefinitionType.UserGroup.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(UserGroupTupleFields.User_), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(UserGroupTupleFields.UserRef), IntermediateFieldType.String), |
| 15 | new IntermediateFieldDefinition(nameof(UserGroupTupleFields.Group_), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(UserGroupTupleFields.GroupRef), IntermediateFieldType.String), |
| 16 | }, | 16 | }, |
| 17 | typeof(UserGroupTuple)); | 17 | typeof(UserGroupTuple)); |
| 18 | } | 18 | } |
| @@ -24,8 +24,8 @@ namespace WixToolset.Util.Tuples | |||
| 24 | 24 | ||
| 25 | public enum UserGroupTupleFields | 25 | public enum UserGroupTupleFields |
| 26 | { | 26 | { |
| 27 | User_, | 27 | UserRef, |
| 28 | Group_, | 28 | GroupRef, |
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | public class UserGroupTuple : IntermediateTuple | 31 | public class UserGroupTuple : IntermediateTuple |
| @@ -40,16 +40,16 @@ namespace WixToolset.Util.Tuples | |||
| 40 | 40 | ||
| 41 | public IntermediateField this[UserGroupTupleFields index] => this.Fields[(int)index]; | 41 | public IntermediateField this[UserGroupTupleFields index] => this.Fields[(int)index]; |
| 42 | 42 | ||
| 43 | public string User_ | 43 | public string UserRef |
| 44 | { | 44 | { |
| 45 | get => this.Fields[(int)UserGroupTupleFields.User_].AsString(); | 45 | get => this.Fields[(int)UserGroupTupleFields.UserRef].AsString(); |
| 46 | set => this.Set((int)UserGroupTupleFields.User_, value); | 46 | set => this.Set((int)UserGroupTupleFields.UserRef, value); |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | public string Group_ | 49 | public string GroupRef |
| 50 | { | 50 | { |
| 51 | get => this.Fields[(int)UserGroupTupleFields.Group_].AsString(); | 51 | get => this.Fields[(int)UserGroupTupleFields.GroupRef].AsString(); |
| 52 | set => this.Set((int)UserGroupTupleFields.Group_, value); | 52 | set => this.Set((int)UserGroupTupleFields.GroupRef, value); |
| 53 | } | 53 | } |
| 54 | } | 54 | } |
| 55 | } \ No newline at end of file | 55 | } \ No newline at end of file |
diff --git a/src/wixext/Tuples/UserTuple.cs b/src/wixext/Tuples/UserTuple.cs index e8c5315c..f11ed78b 100644 --- a/src/wixext/Tuples/UserTuple.cs +++ b/src/wixext/Tuples/UserTuple.cs | |||
| @@ -11,8 +11,7 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.User.ToString(), | 11 | UtilTupleDefinitionType.User.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(UserTupleFields.User), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(UserTupleFields.ComponentRef), IntermediateFieldType.String), |
| 15 | new IntermediateFieldDefinition(nameof(UserTupleFields.Component_), IntermediateFieldType.String), | ||
| 16 | new IntermediateFieldDefinition(nameof(UserTupleFields.Name), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(UserTupleFields.Name), IntermediateFieldType.String), |
| 17 | new IntermediateFieldDefinition(nameof(UserTupleFields.Domain), IntermediateFieldType.String), | 16 | new IntermediateFieldDefinition(nameof(UserTupleFields.Domain), IntermediateFieldType.String), |
| 18 | new IntermediateFieldDefinition(nameof(UserTupleFields.Password), IntermediateFieldType.String), | 17 | new IntermediateFieldDefinition(nameof(UserTupleFields.Password), IntermediateFieldType.String), |
| @@ -28,8 +27,7 @@ namespace WixToolset.Util.Tuples | |||
| 28 | 27 | ||
| 29 | public enum UserTupleFields | 28 | public enum UserTupleFields |
| 30 | { | 29 | { |
| 31 | User, | 30 | ComponentRef, |
| 32 | Component_, | ||
| 33 | Name, | 31 | Name, |
| 34 | Domain, | 32 | Domain, |
| 35 | Password, | 33 | Password, |
| @@ -48,16 +46,10 @@ namespace WixToolset.Util.Tuples | |||
| 48 | 46 | ||
| 49 | public IntermediateField this[UserTupleFields index] => this.Fields[(int)index]; | 47 | public IntermediateField this[UserTupleFields index] => this.Fields[(int)index]; |
| 50 | 48 | ||
| 51 | public string User | 49 | public string ComponentRef |
| 52 | { | 50 | { |
| 53 | get => this.Fields[(int)UserTupleFields.User].AsString(); | 51 | get => this.Fields[(int)UserTupleFields.ComponentRef].AsString(); |
| 54 | set => this.Set((int)UserTupleFields.User, value); | 52 | set => this.Set((int)UserTupleFields.ComponentRef, value); |
| 55 | } | ||
| 56 | |||
| 57 | public string Component_ | ||
| 58 | { | ||
| 59 | get => this.Fields[(int)UserTupleFields.Component_].AsString(); | ||
| 60 | set => this.Set((int)UserTupleFields.Component_, value); | ||
| 61 | } | 53 | } |
| 62 | 54 | ||
| 63 | public string Name | 55 | public string Name |
diff --git a/src/wixext/Tuples/WixCloseApplicationTuple.cs b/src/wixext/Tuples/WixCloseApplicationTuple.cs index c2095d93..cc91c326 100644 --- a/src/wixext/Tuples/WixCloseApplicationTuple.cs +++ b/src/wixext/Tuples/WixCloseApplicationTuple.cs | |||
| @@ -11,7 +11,6 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.WixCloseApplication.ToString(), | 11 | UtilTupleDefinitionType.WixCloseApplication.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(WixCloseApplicationTupleFields.WixCloseApplication), IntermediateFieldType.String), | ||
| 15 | new IntermediateFieldDefinition(nameof(WixCloseApplicationTupleFields.Target), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(WixCloseApplicationTupleFields.Target), IntermediateFieldType.String), |
| 16 | new IntermediateFieldDefinition(nameof(WixCloseApplicationTupleFields.Description), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(WixCloseApplicationTupleFields.Description), IntermediateFieldType.String), |
| 17 | new IntermediateFieldDefinition(nameof(WixCloseApplicationTupleFields.Condition), IntermediateFieldType.String), | 16 | new IntermediateFieldDefinition(nameof(WixCloseApplicationTupleFields.Condition), IntermediateFieldType.String), |
| @@ -31,7 +30,6 @@ namespace WixToolset.Util.Tuples | |||
| 31 | 30 | ||
| 32 | public enum WixCloseApplicationTupleFields | 31 | public enum WixCloseApplicationTupleFields |
| 33 | { | 32 | { |
| 34 | WixCloseApplication, | ||
| 35 | Target, | 33 | Target, |
| 36 | Description, | 34 | Description, |
| 37 | Condition, | 35 | Condition, |
| @@ -54,12 +52,6 @@ namespace WixToolset.Util.Tuples | |||
| 54 | 52 | ||
| 55 | public IntermediateField this[WixCloseApplicationTupleFields index] => this.Fields[(int)index]; | 53 | public IntermediateField this[WixCloseApplicationTupleFields index] => this.Fields[(int)index]; |
| 56 | 54 | ||
| 57 | public string WixCloseApplication | ||
| 58 | { | ||
| 59 | get => this.Fields[(int)WixCloseApplicationTupleFields.WixCloseApplication].AsString(); | ||
| 60 | set => this.Set((int)WixCloseApplicationTupleFields.WixCloseApplication, value); | ||
| 61 | } | ||
| 62 | |||
| 63 | public string Target | 55 | public string Target |
| 64 | { | 56 | { |
| 65 | get => this.Fields[(int)WixCloseApplicationTupleFields.Target].AsString(); | 57 | get => this.Fields[(int)WixCloseApplicationTupleFields.Target].AsString(); |
diff --git a/src/wixext/Tuples/WixFormatFilesTuple.cs b/src/wixext/Tuples/WixFormatFilesTuple.cs index 7fc092b0..8e7db0c6 100644 --- a/src/wixext/Tuples/WixFormatFilesTuple.cs +++ b/src/wixext/Tuples/WixFormatFilesTuple.cs | |||
| @@ -11,8 +11,8 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.WixFormatFiles.ToString(), | 11 | UtilTupleDefinitionType.WixFormatFiles.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(WixFormatFilesTupleFields.Binary_), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(WixFormatFilesTupleFields.BinaryRef), IntermediateFieldType.String), |
| 15 | new IntermediateFieldDefinition(nameof(WixFormatFilesTupleFields.File_), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(WixFormatFilesTupleFields.FileRef), IntermediateFieldType.String), |
| 16 | }, | 16 | }, |
| 17 | typeof(WixFormatFilesTuple)); | 17 | typeof(WixFormatFilesTuple)); |
| 18 | } | 18 | } |
| @@ -24,8 +24,8 @@ namespace WixToolset.Util.Tuples | |||
| 24 | 24 | ||
| 25 | public enum WixFormatFilesTupleFields | 25 | public enum WixFormatFilesTupleFields |
| 26 | { | 26 | { |
| 27 | Binary_, | 27 | BinaryRef, |
| 28 | File_, | 28 | FileRef, |
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | public class WixFormatFilesTuple : IntermediateTuple | 31 | public class WixFormatFilesTuple : IntermediateTuple |
| @@ -40,16 +40,16 @@ namespace WixToolset.Util.Tuples | |||
| 40 | 40 | ||
| 41 | public IntermediateField this[WixFormatFilesTupleFields index] => this.Fields[(int)index]; | 41 | public IntermediateField this[WixFormatFilesTupleFields index] => this.Fields[(int)index]; |
| 42 | 42 | ||
| 43 | public string Binary_ | 43 | public string BinaryRef |
| 44 | { | 44 | { |
| 45 | get => this.Fields[(int)WixFormatFilesTupleFields.Binary_].AsString(); | 45 | get => this.Fields[(int)WixFormatFilesTupleFields.BinaryRef].AsString(); |
| 46 | set => this.Set((int)WixFormatFilesTupleFields.Binary_, value); | 46 | set => this.Set((int)WixFormatFilesTupleFields.BinaryRef, value); |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | public string File_ | 49 | public string FileRef |
| 50 | { | 50 | { |
| 51 | get => this.Fields[(int)WixFormatFilesTupleFields.File_].AsString(); | 51 | get => this.Fields[(int)WixFormatFilesTupleFields.FileRef].AsString(); |
| 52 | set => this.Set((int)WixFormatFilesTupleFields.File_, value); | 52 | set => this.Set((int)WixFormatFilesTupleFields.FileRef, value); |
| 53 | } | 53 | } |
| 54 | } | 54 | } |
| 55 | } \ No newline at end of file | 55 | } \ No newline at end of file |
diff --git a/src/wixext/Tuples/WixInternetShortcutTuple.cs b/src/wixext/Tuples/WixInternetShortcutTuple.cs index 5c29cda6..935d9462 100644 --- a/src/wixext/Tuples/WixInternetShortcutTuple.cs +++ b/src/wixext/Tuples/WixInternetShortcutTuple.cs | |||
| @@ -11,9 +11,8 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.WixInternetShortcut.ToString(), | 11 | UtilTupleDefinitionType.WixInternetShortcut.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.WixInternetShortcut), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.ComponentRef), IntermediateFieldType.String), |
| 15 | new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.Component_), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.DirectoryRef), IntermediateFieldType.String), |
| 16 | new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.Directory_), IntermediateFieldType.String), | ||
| 17 | new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.Name), IntermediateFieldType.String), | 16 | new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.Name), IntermediateFieldType.String), |
| 18 | new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.Target), IntermediateFieldType.String), | 17 | new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.Target), IntermediateFieldType.String), |
| 19 | new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.Attributes), IntermediateFieldType.Number), | 18 | new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.Attributes), IntermediateFieldType.Number), |
| @@ -30,9 +29,8 @@ namespace WixToolset.Util.Tuples | |||
| 30 | 29 | ||
| 31 | public enum WixInternetShortcutTupleFields | 30 | public enum WixInternetShortcutTupleFields |
| 32 | { | 31 | { |
| 33 | WixInternetShortcut, | 32 | ComponentRef, |
| 34 | Component_, | 33 | DirectoryRef, |
| 35 | Directory_, | ||
| 36 | Name, | 34 | Name, |
| 37 | Target, | 35 | Target, |
| 38 | Attributes, | 36 | Attributes, |
| @@ -52,22 +50,16 @@ namespace WixToolset.Util.Tuples | |||
| 52 | 50 | ||
| 53 | public IntermediateField this[WixInternetShortcutTupleFields index] => this.Fields[(int)index]; | 51 | public IntermediateField this[WixInternetShortcutTupleFields index] => this.Fields[(int)index]; |
| 54 | 52 | ||
| 55 | public string WixInternetShortcut | 53 | public string ComponentRef |
| 56 | { | 54 | { |
| 57 | get => this.Fields[(int)WixInternetShortcutTupleFields.WixInternetShortcut].AsString(); | 55 | get => this.Fields[(int)WixInternetShortcutTupleFields.ComponentRef].AsString(); |
| 58 | set => this.Set((int)WixInternetShortcutTupleFields.WixInternetShortcut, value); | 56 | set => this.Set((int)WixInternetShortcutTupleFields.ComponentRef, value); |
| 59 | } | 57 | } |
| 60 | 58 | ||
| 61 | public string Component_ | 59 | public string DirectoryRef |
| 62 | { | 60 | { |
| 63 | get => this.Fields[(int)WixInternetShortcutTupleFields.Component_].AsString(); | 61 | get => this.Fields[(int)WixInternetShortcutTupleFields.DirectoryRef].AsString(); |
| 64 | set => this.Set((int)WixInternetShortcutTupleFields.Component_, value); | 62 | set => this.Set((int)WixInternetShortcutTupleFields.DirectoryRef, value); |
| 65 | } | ||
| 66 | |||
| 67 | public string Directory_ | ||
| 68 | { | ||
| 69 | get => this.Fields[(int)WixInternetShortcutTupleFields.Directory_].AsString(); | ||
| 70 | set => this.Set((int)WixInternetShortcutTupleFields.Directory_, value); | ||
| 71 | } | 63 | } |
| 72 | 64 | ||
| 73 | public string Name | 65 | public string Name |
diff --git a/src/wixext/Tuples/WixRemoveFolderExTuple.cs b/src/wixext/Tuples/WixRemoveFolderExTuple.cs index 35e22e2d..d43c59c3 100644 --- a/src/wixext/Tuples/WixRemoveFolderExTuple.cs +++ b/src/wixext/Tuples/WixRemoveFolderExTuple.cs | |||
| @@ -11,8 +11,7 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.WixRemoveFolderEx.ToString(), | 11 | UtilTupleDefinitionType.WixRemoveFolderEx.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(WixRemoveFolderExTupleFields.WixRemoveFolderEx), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(WixRemoveFolderExTupleFields.ComponentRef), IntermediateFieldType.String), |
| 15 | new IntermediateFieldDefinition(nameof(WixRemoveFolderExTupleFields.Component_), IntermediateFieldType.String), | ||
| 16 | new IntermediateFieldDefinition(nameof(WixRemoveFolderExTupleFields.Property), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(WixRemoveFolderExTupleFields.Property), IntermediateFieldType.String), |
| 17 | new IntermediateFieldDefinition(nameof(WixRemoveFolderExTupleFields.InstallMode), IntermediateFieldType.Number), | 16 | new IntermediateFieldDefinition(nameof(WixRemoveFolderExTupleFields.InstallMode), IntermediateFieldType.Number), |
| 18 | }, | 17 | }, |
| @@ -26,8 +25,7 @@ namespace WixToolset.Util.Tuples | |||
| 26 | 25 | ||
| 27 | public enum WixRemoveFolderExTupleFields | 26 | public enum WixRemoveFolderExTupleFields |
| 28 | { | 27 | { |
| 29 | WixRemoveFolderEx, | 28 | ComponentRef, |
| 30 | Component_, | ||
| 31 | Property, | 29 | Property, |
| 32 | InstallMode, | 30 | InstallMode, |
| 33 | } | 31 | } |
| @@ -44,16 +42,10 @@ namespace WixToolset.Util.Tuples | |||
| 44 | 42 | ||
| 45 | public IntermediateField this[WixRemoveFolderExTupleFields index] => this.Fields[(int)index]; | 43 | public IntermediateField this[WixRemoveFolderExTupleFields index] => this.Fields[(int)index]; |
| 46 | 44 | ||
| 47 | public string WixRemoveFolderEx | 45 | public string ComponentRef |
| 48 | { | 46 | { |
| 49 | get => this.Fields[(int)WixRemoveFolderExTupleFields.WixRemoveFolderEx].AsString(); | 47 | get => this.Fields[(int)WixRemoveFolderExTupleFields.ComponentRef].AsString(); |
| 50 | set => this.Set((int)WixRemoveFolderExTupleFields.WixRemoveFolderEx, value); | 48 | set => this.Set((int)WixRemoveFolderExTupleFields.ComponentRef, value); |
| 51 | } | ||
| 52 | |||
| 53 | public string Component_ | ||
| 54 | { | ||
| 55 | get => this.Fields[(int)WixRemoveFolderExTupleFields.Component_].AsString(); | ||
| 56 | set => this.Set((int)WixRemoveFolderExTupleFields.Component_, value); | ||
| 57 | } | 49 | } |
| 58 | 50 | ||
| 59 | public string Property | 51 | public string Property |
diff --git a/src/wixext/Tuples/WixRestartResourceTuple.cs b/src/wixext/Tuples/WixRestartResourceTuple.cs index 828d9d15..92091c3d 100644 --- a/src/wixext/Tuples/WixRestartResourceTuple.cs +++ b/src/wixext/Tuples/WixRestartResourceTuple.cs | |||
| @@ -11,8 +11,7 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.WixRestartResource.ToString(), | 11 | UtilTupleDefinitionType.WixRestartResource.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(WixRestartResourceTupleFields.WixRestartResource), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(WixRestartResourceTupleFields.ComponentRef), IntermediateFieldType.String), |
| 15 | new IntermediateFieldDefinition(nameof(WixRestartResourceTupleFields.Component_), IntermediateFieldType.String), | ||
| 16 | new IntermediateFieldDefinition(nameof(WixRestartResourceTupleFields.Resource), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(WixRestartResourceTupleFields.Resource), IntermediateFieldType.String), |
| 17 | new IntermediateFieldDefinition(nameof(WixRestartResourceTupleFields.Attributes), IntermediateFieldType.Number), | 16 | new IntermediateFieldDefinition(nameof(WixRestartResourceTupleFields.Attributes), IntermediateFieldType.Number), |
| 18 | }, | 17 | }, |
| @@ -26,8 +25,7 @@ namespace WixToolset.Util.Tuples | |||
| 26 | 25 | ||
| 27 | public enum WixRestartResourceTupleFields | 26 | public enum WixRestartResourceTupleFields |
| 28 | { | 27 | { |
| 29 | WixRestartResource, | 28 | ComponentRef, |
| 30 | Component_, | ||
| 31 | Resource, | 29 | Resource, |
| 32 | Attributes, | 30 | Attributes, |
| 33 | } | 31 | } |
| @@ -44,16 +42,10 @@ namespace WixToolset.Util.Tuples | |||
| 44 | 42 | ||
| 45 | public IntermediateField this[WixRestartResourceTupleFields index] => this.Fields[(int)index]; | 43 | public IntermediateField this[WixRestartResourceTupleFields index] => this.Fields[(int)index]; |
| 46 | 44 | ||
| 47 | public string WixRestartResource | 45 | public string ComponentRef |
| 48 | { | 46 | { |
| 49 | get => this.Fields[(int)WixRestartResourceTupleFields.WixRestartResource].AsString(); | 47 | get => this.Fields[(int)WixRestartResourceTupleFields.ComponentRef].AsString(); |
| 50 | set => this.Set((int)WixRestartResourceTupleFields.WixRestartResource, value); | 48 | set => this.Set((int)WixRestartResourceTupleFields.ComponentRef, value); |
| 51 | } | ||
| 52 | |||
| 53 | public string Component_ | ||
| 54 | { | ||
| 55 | get => this.Fields[(int)WixRestartResourceTupleFields.Component_].AsString(); | ||
| 56 | set => this.Set((int)WixRestartResourceTupleFields.Component_, value); | ||
| 57 | } | 49 | } |
| 58 | 50 | ||
| 59 | public string Resource | 51 | public string Resource |
diff --git a/src/wixext/Tuples/WixTouchFileTuple.cs b/src/wixext/Tuples/WixTouchFileTuple.cs index f87f396e..0a152dec 100644 --- a/src/wixext/Tuples/WixTouchFileTuple.cs +++ b/src/wixext/Tuples/WixTouchFileTuple.cs | |||
| @@ -11,8 +11,7 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.WixTouchFile.ToString(), | 11 | UtilTupleDefinitionType.WixTouchFile.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(WixTouchFileTupleFields.WixTouchFile), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(WixTouchFileTupleFields.ComponentRef), IntermediateFieldType.String), |
| 15 | new IntermediateFieldDefinition(nameof(WixTouchFileTupleFields.Component_), IntermediateFieldType.String), | ||
| 16 | new IntermediateFieldDefinition(nameof(WixTouchFileTupleFields.Path), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(WixTouchFileTupleFields.Path), IntermediateFieldType.String), |
| 17 | new IntermediateFieldDefinition(nameof(WixTouchFileTupleFields.Attributes), IntermediateFieldType.Number), | 16 | new IntermediateFieldDefinition(nameof(WixTouchFileTupleFields.Attributes), IntermediateFieldType.Number), |
| 18 | }, | 17 | }, |
| @@ -26,8 +25,7 @@ namespace WixToolset.Util.Tuples | |||
| 26 | 25 | ||
| 27 | public enum WixTouchFileTupleFields | 26 | public enum WixTouchFileTupleFields |
| 28 | { | 27 | { |
| 29 | WixTouchFile, | 28 | ComponentRef, |
| 30 | Component_, | ||
| 31 | Path, | 29 | Path, |
| 32 | Attributes, | 30 | Attributes, |
| 33 | } | 31 | } |
| @@ -44,16 +42,10 @@ namespace WixToolset.Util.Tuples | |||
| 44 | 42 | ||
| 45 | public IntermediateField this[WixTouchFileTupleFields index] => this.Fields[(int)index]; | 43 | public IntermediateField this[WixTouchFileTupleFields index] => this.Fields[(int)index]; |
| 46 | 44 | ||
| 47 | public string WixTouchFile | 45 | public string ComponentRef |
| 48 | { | 46 | { |
| 49 | get => this.Fields[(int)WixTouchFileTupleFields.WixTouchFile].AsString(); | 47 | get => this.Fields[(int)WixTouchFileTupleFields.ComponentRef].AsString(); |
| 50 | set => this.Set((int)WixTouchFileTupleFields.WixTouchFile, value); | 48 | set => this.Set((int)WixTouchFileTupleFields.ComponentRef, value); |
| 51 | } | ||
| 52 | |||
| 53 | public string Component_ | ||
| 54 | { | ||
| 55 | get => this.Fields[(int)WixTouchFileTupleFields.Component_].AsString(); | ||
| 56 | set => this.Set((int)WixTouchFileTupleFields.Component_, value); | ||
| 57 | } | 49 | } |
| 58 | 50 | ||
| 59 | public string Path | 51 | public string Path |
diff --git a/src/wixext/Tuples/XmlConfigTuple.cs b/src/wixext/Tuples/XmlConfigTuple.cs index 093299b2..0eb49cac 100644 --- a/src/wixext/Tuples/XmlConfigTuple.cs +++ b/src/wixext/Tuples/XmlConfigTuple.cs | |||
| @@ -11,14 +11,13 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.XmlConfig.ToString(), | 11 | UtilTupleDefinitionType.XmlConfig.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.XmlConfig), IntermediateFieldType.String), | ||
| 15 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.File), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.File), IntermediateFieldType.String), |
| 16 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.ElementPath), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.ElementPath), IntermediateFieldType.String), |
| 17 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.VerifyPath), IntermediateFieldType.String), | 16 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.VerifyPath), IntermediateFieldType.String), |
| 18 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.Name), IntermediateFieldType.String), | 17 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.Name), IntermediateFieldType.String), |
| 19 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.Value), IntermediateFieldType.String), | 18 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.Value), IntermediateFieldType.String), |
| 20 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.Flags), IntermediateFieldType.Number), | 19 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.Flags), IntermediateFieldType.Number), |
| 21 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.Component_), IntermediateFieldType.String), | 20 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.ComponentRef), IntermediateFieldType.String), |
| 22 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.Sequence), IntermediateFieldType.Number), | 21 | new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.Sequence), IntermediateFieldType.Number), |
| 23 | }, | 22 | }, |
| 24 | typeof(XmlConfigTuple)); | 23 | typeof(XmlConfigTuple)); |
| @@ -31,14 +30,13 @@ namespace WixToolset.Util.Tuples | |||
| 31 | 30 | ||
| 32 | public enum XmlConfigTupleFields | 31 | public enum XmlConfigTupleFields |
| 33 | { | 32 | { |
| 34 | XmlConfig, | ||
| 35 | File, | 33 | File, |
| 36 | ElementPath, | 34 | ElementPath, |
| 37 | VerifyPath, | 35 | VerifyPath, |
| 38 | Name, | 36 | Name, |
| 39 | Value, | 37 | Value, |
| 40 | Flags, | 38 | Flags, |
| 41 | Component_, | 39 | ComponentRef, |
| 42 | Sequence, | 40 | Sequence, |
| 43 | } | 41 | } |
| 44 | 42 | ||
| @@ -54,12 +52,6 @@ namespace WixToolset.Util.Tuples | |||
| 54 | 52 | ||
| 55 | public IntermediateField this[XmlConfigTupleFields index] => this.Fields[(int)index]; | 53 | public IntermediateField this[XmlConfigTupleFields index] => this.Fields[(int)index]; |
| 56 | 54 | ||
| 57 | public string XmlConfig | ||
| 58 | { | ||
| 59 | get => this.Fields[(int)XmlConfigTupleFields.XmlConfig].AsString(); | ||
| 60 | set => this.Set((int)XmlConfigTupleFields.XmlConfig, value); | ||
| 61 | } | ||
| 62 | |||
| 63 | public string File | 55 | public string File |
| 64 | { | 56 | { |
| 65 | get => this.Fields[(int)XmlConfigTupleFields.File].AsString(); | 57 | get => this.Fields[(int)XmlConfigTupleFields.File].AsString(); |
| @@ -96,10 +88,10 @@ namespace WixToolset.Util.Tuples | |||
| 96 | set => this.Set((int)XmlConfigTupleFields.Flags, value); | 88 | set => this.Set((int)XmlConfigTupleFields.Flags, value); |
| 97 | } | 89 | } |
| 98 | 90 | ||
| 99 | public string Component_ | 91 | public string ComponentRef |
| 100 | { | 92 | { |
| 101 | get => this.Fields[(int)XmlConfigTupleFields.Component_].AsString(); | 93 | get => this.Fields[(int)XmlConfigTupleFields.ComponentRef].AsString(); |
| 102 | set => this.Set((int)XmlConfigTupleFields.Component_, value); | 94 | set => this.Set((int)XmlConfigTupleFields.ComponentRef, value); |
| 103 | } | 95 | } |
| 104 | 96 | ||
| 105 | public int Sequence | 97 | public int Sequence |
diff --git a/src/wixext/Tuples/XmlFileTuple.cs b/src/wixext/Tuples/XmlFileTuple.cs index 27ea7119..e0b3bbd7 100644 --- a/src/wixext/Tuples/XmlFileTuple.cs +++ b/src/wixext/Tuples/XmlFileTuple.cs | |||
| @@ -11,13 +11,12 @@ namespace WixToolset.Util | |||
| 11 | UtilTupleDefinitionType.XmlFile.ToString(), | 11 | UtilTupleDefinitionType.XmlFile.ToString(), |
| 12 | new[] | 12 | new[] |
| 13 | { | 13 | { |
| 14 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.XmlFile), IntermediateFieldType.String), | ||
| 15 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.File), IntermediateFieldType.String), | 14 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.File), IntermediateFieldType.String), |
| 16 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.ElementPath), IntermediateFieldType.String), | 15 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.ElementPath), IntermediateFieldType.String), |
| 17 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.Name), IntermediateFieldType.String), | 16 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.Name), IntermediateFieldType.String), |
| 18 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.Value), IntermediateFieldType.String), | 17 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.Value), IntermediateFieldType.String), |
| 19 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.Flags), IntermediateFieldType.Number), | 18 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.Flags), IntermediateFieldType.Number), |
| 20 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.Component_), IntermediateFieldType.String), | 19 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.ComponentRef), IntermediateFieldType.String), |
| 21 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.Sequence), IntermediateFieldType.Number), | 20 | new IntermediateFieldDefinition(nameof(XmlFileTupleFields.Sequence), IntermediateFieldType.Number), |
| 22 | }, | 21 | }, |
| 23 | typeof(XmlFileTuple)); | 22 | typeof(XmlFileTuple)); |
| @@ -30,13 +29,12 @@ namespace WixToolset.Util.Tuples | |||
| 30 | 29 | ||
| 31 | public enum XmlFileTupleFields | 30 | public enum XmlFileTupleFields |
| 32 | { | 31 | { |
| 33 | XmlFile, | ||
| 34 | File, | 32 | File, |
| 35 | ElementPath, | 33 | ElementPath, |
| 36 | Name, | 34 | Name, |
| 37 | Value, | 35 | Value, |
| 38 | Flags, | 36 | Flags, |
| 39 | Component_, | 37 | ComponentRef, |
| 40 | Sequence, | 38 | Sequence, |
| 41 | } | 39 | } |
| 42 | 40 | ||
| @@ -52,12 +50,6 @@ namespace WixToolset.Util.Tuples | |||
| 52 | 50 | ||
| 53 | public IntermediateField this[XmlFileTupleFields index] => this.Fields[(int)index]; | 51 | public IntermediateField this[XmlFileTupleFields index] => this.Fields[(int)index]; |
| 54 | 52 | ||
| 55 | public string XmlFile | ||
| 56 | { | ||
| 57 | get => this.Fields[(int)XmlFileTupleFields.XmlFile].AsString(); | ||
| 58 | set => this.Set((int)XmlFileTupleFields.XmlFile, value); | ||
| 59 | } | ||
| 60 | |||
| 61 | public string File | 53 | public string File |
| 62 | { | 54 | { |
| 63 | get => this.Fields[(int)XmlFileTupleFields.File].AsString(); | 55 | get => this.Fields[(int)XmlFileTupleFields.File].AsString(); |
| @@ -88,10 +80,10 @@ namespace WixToolset.Util.Tuples | |||
| 88 | set => this.Set((int)XmlFileTupleFields.Flags, value); | 80 | set => this.Set((int)XmlFileTupleFields.Flags, value); |
| 89 | } | 81 | } |
| 90 | 82 | ||
| 91 | public string Component_ | 83 | public string ComponentRef |
| 92 | { | 84 | { |
| 93 | get => this.Fields[(int)XmlFileTupleFields.Component_].AsString(); | 85 | get => this.Fields[(int)XmlFileTupleFields.ComponentRef].AsString(); |
| 94 | set => this.Set((int)XmlFileTupleFields.Component_, value); | 86 | set => this.Set((int)XmlFileTupleFields.ComponentRef, value); |
| 95 | } | 87 | } |
| 96 | 88 | ||
| 97 | public int Sequence | 89 | public int Sequence |
diff --git a/src/wixext/UtilCompiler.cs b/src/wixext/UtilCompiler.cs index 19f4af06..a8d59ca3 100644 --- a/src/wixext/UtilCompiler.cs +++ b/src/wixext/UtilCompiler.cs | |||
| @@ -14,6 +14,7 @@ namespace WixToolset.Util | |||
| 14 | using WixToolset.Data.Tuples; | 14 | using WixToolset.Data.Tuples; |
| 15 | using WixToolset.Extensibility; | 15 | using WixToolset.Extensibility; |
| 16 | using WixToolset.Extensibility.Data; | 16 | using WixToolset.Extensibility.Data; |
| 17 | using WixToolset.Util.Tuples; | ||
| 17 | 18 | ||
| 18 | /// <summary> | 19 | /// <summary> |
| 19 | /// The compiler for the WiX Toolset Utility Extension. | 20 | /// The compiler for the WiX Toolset Utility Extension. |
| @@ -790,38 +791,32 @@ namespace WixToolset.Util | |||
| 790 | 791 | ||
| 791 | this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); | 792 | this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); |
| 792 | 793 | ||
| 793 | // Reference CustomAction since nothing will happen without it | 794 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "CloseApplications", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); |
| 794 | if (this.Context.Platform == Platform.ARM) | ||
| 795 | { | ||
| 796 | // Ensure ARM version of the CA is referenced | ||
| 797 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixCloseApplications_ARM"); | ||
| 798 | } | ||
| 799 | else | ||
| 800 | { | ||
| 801 | // All other supported platforms use x86 | ||
| 802 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixCloseApplications"); | ||
| 803 | } | ||
| 804 | 795 | ||
| 805 | if (!this.Messaging.EncounteredError) | 796 | if (!this.Messaging.EncounteredError) |
| 806 | { | 797 | { |
| 807 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "WixCloseApplication", id); | 798 | var tuple = new WixCloseApplicationTuple(sourceLineNumbers, id) |
| 808 | row.Set(1, target); | 799 | { |
| 809 | row.Set(2, description); | 800 | Target = target, |
| 810 | row.Set(3, condition); | 801 | Description = description, |
| 811 | row.Set(4, attributes); | 802 | Condition = condition, |
| 803 | Attributes = attributes, | ||
| 804 | Property = property, | ||
| 805 | }; | ||
| 812 | if (CompilerConstants.IntegerNotSet != sequence) | 806 | if (CompilerConstants.IntegerNotSet != sequence) |
| 813 | { | 807 | { |
| 814 | row.Set(5, sequence); | 808 | tuple.Sequence = sequence; |
| 815 | } | 809 | } |
| 816 | row.Set(6, property); | ||
| 817 | if (CompilerConstants.IntegerNotSet != terminateExitCode) | 810 | if (CompilerConstants.IntegerNotSet != terminateExitCode) |
| 818 | { | 811 | { |
| 819 | row.Set(7, terminateExitCode); | 812 | tuple.TerminateExitCode = terminateExitCode; |
| 820 | } | 813 | } |
| 821 | if (CompilerConstants.IntegerNotSet != timeout) | 814 | if (CompilerConstants.IntegerNotSet != timeout) |
| 822 | { | 815 | { |
| 823 | row.Set(8, timeout * 1000); // make the timeout milliseconds in the table. | 816 | tuple.Timeout = timeout * 1000; // make the timeout milliseconds in the table. |
| 824 | } | 817 | } |
| 818 | |||
| 819 | section.Tuples.Add(tuple); | ||
| 825 | } | 820 | } |
| 826 | } | 821 | } |
| 827 | 822 | ||
| @@ -1096,7 +1091,7 @@ namespace WixToolset.Util | |||
| 1096 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); | 1091 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); |
| 1097 | string description = null; | 1092 | string description = null; |
| 1098 | string name = null; | 1093 | string name = null; |
| 1099 | string id = null; | 1094 | Identifier id = null; |
| 1100 | 1095 | ||
| 1101 | foreach (XAttribute attrib in element.Attributes()) | 1096 | foreach (XAttribute attrib in element.Attributes()) |
| 1102 | { | 1097 | { |
| @@ -1105,7 +1100,7 @@ namespace WixToolset.Util | |||
| 1105 | switch (attrib.Name.LocalName) | 1100 | switch (attrib.Name.LocalName) |
| 1106 | { | 1101 | { |
| 1107 | case "Id": | 1102 | case "Id": |
| 1108 | id = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 1103 | id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib); |
| 1109 | break; | 1104 | break; |
| 1110 | case "Name": | 1105 | case "Name": |
| 1111 | name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); | 1106 | name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
| @@ -1159,28 +1154,20 @@ namespace WixToolset.Util | |||
| 1159 | } | 1154 | } |
| 1160 | } | 1155 | } |
| 1161 | 1156 | ||
| 1162 | // Reference ConfigureSmbInstall and ConfigureSmbUninstall since nothing will happen without it | 1157 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigureSmbInstall", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); |
| 1163 | if (this.Context.Platform == Platform.ARM) | 1158 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigureSmbUninstall", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); |
| 1164 | { | ||
| 1165 | // Ensure ARM version of the CA is referenced | ||
| 1166 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureSmbInstall_ARM"); | ||
| 1167 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureSmbUninstall_ARM"); | ||
| 1168 | } | ||
| 1169 | else | ||
| 1170 | { | ||
| 1171 | // All other supported platforms use x86 | ||
| 1172 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureSmbInstall"); | ||
| 1173 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureSmbUninstall"); | ||
| 1174 | } | ||
| 1175 | 1159 | ||
| 1176 | if (!this.Messaging.EncounteredError) | 1160 | if (!this.Messaging.EncounteredError) |
| 1177 | { | 1161 | { |
| 1178 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "FileShare"); | 1162 | var tuple = new FileShareTuple(sourceLineNumbers, id) |
| 1179 | row.Set(0, id); | 1163 | { |
| 1180 | row.Set(1, name); | 1164 | ShareName = name, |
| 1181 | row.Set(2, componentId); | 1165 | ComponentRef = componentId, |
| 1182 | row.Set(3, description); | 1166 | Description = description, |
| 1183 | row.Set(4, directoryId); | 1167 | DirectoryRef = directoryId, |
| 1168 | }; | ||
| 1169 | |||
| 1170 | section.Tuples.Add(tuple); | ||
| 1184 | } | 1171 | } |
| 1185 | } | 1172 | } |
| 1186 | 1173 | ||
| @@ -1189,7 +1176,7 @@ namespace WixToolset.Util | |||
| 1189 | /// </summary> | 1176 | /// </summary> |
| 1190 | /// <param name="element">Element to parse.</param> | 1177 | /// <param name="element">Element to parse.</param> |
| 1191 | /// <param name="fileShareId">The identifier of the parent FileShare element.</param> | 1178 | /// <param name="fileShareId">The identifier of the parent FileShare element.</param> |
| 1192 | private void ParseFileSharePermissionElement(Intermediate intermediate, IntermediateSection section, XElement element, string fileShareId) | 1179 | private void ParseFileSharePermissionElement(Intermediate intermediate, IntermediateSection section, XElement element, Identifier fileShareId) |
| 1193 | { | 1180 | { |
| 1194 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); | 1181 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); |
| 1195 | BitArray bits = new BitArray(32); | 1182 | BitArray bits = new BitArray(32); |
| @@ -1244,10 +1231,14 @@ namespace WixToolset.Util | |||
| 1244 | 1231 | ||
| 1245 | if (!this.Messaging.EncounteredError) | 1232 | if (!this.Messaging.EncounteredError) |
| 1246 | { | 1233 | { |
| 1247 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "FileSharePermissions"); | 1234 | var tuple = new FileSharePermissionsTuple(sourceLineNumbers) |
| 1248 | row.Set(0, fileShareId); | 1235 | { |
| 1249 | row.Set(1, user); | 1236 | FileShareRef = fileShareId.Id, |
| 1250 | row.Set(2, permission); | 1237 | UserRef = user, |
| 1238 | Permissions = permission, | ||
| 1239 | }; | ||
| 1240 | |||
| 1241 | section.Tuples.Add(tuple); | ||
| 1251 | } | 1242 | } |
| 1252 | } | 1243 | } |
| 1253 | 1244 | ||
| @@ -1259,7 +1250,7 @@ namespace WixToolset.Util | |||
| 1259 | private void ParseGroupElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId) | 1250 | private void ParseGroupElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId) |
| 1260 | { | 1251 | { |
| 1261 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); | 1252 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); |
| 1262 | string id = null; | 1253 | Identifier id = null; |
| 1263 | string domain = null; | 1254 | string domain = null; |
| 1264 | string name = null; | 1255 | string name = null; |
| 1265 | 1256 | ||
| @@ -1270,7 +1261,7 @@ namespace WixToolset.Util | |||
| 1270 | switch (attrib.Name.LocalName) | 1261 | switch (attrib.Name.LocalName) |
| 1271 | { | 1262 | { |
| 1272 | case "Id": | 1263 | case "Id": |
| 1273 | id = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 1264 | id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib); |
| 1274 | break; | 1265 | break; |
| 1275 | case "Name": | 1266 | case "Name": |
| 1276 | name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); | 1267 | name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
| @@ -1298,11 +1289,14 @@ namespace WixToolset.Util | |||
| 1298 | 1289 | ||
| 1299 | if (!this.Messaging.EncounteredError) | 1290 | if (!this.Messaging.EncounteredError) |
| 1300 | { | 1291 | { |
| 1301 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "Group"); | 1292 | var tuple = new GroupTuple(sourceLineNumbers, id) |
| 1302 | row.Set(0, id); | 1293 | { |
| 1303 | row.Set(1, componentId); | 1294 | ComponentRef = componentId, |
| 1304 | row.Set(2, name); | 1295 | Name = name, |
| 1305 | row.Set(3, domain); | 1296 | Domain = domain, |
| 1297 | }; | ||
| 1298 | |||
| 1299 | section.Tuples.Add(tuple); | ||
| 1306 | } | 1300 | } |
| 1307 | } | 1301 | } |
| 1308 | 1302 | ||
| @@ -1341,9 +1335,13 @@ namespace WixToolset.Util | |||
| 1341 | 1335 | ||
| 1342 | if (!this.Messaging.EncounteredError) | 1336 | if (!this.Messaging.EncounteredError) |
| 1343 | { | 1337 | { |
| 1344 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "UserGroup"); | 1338 | var tuple = new UserGroupTuple(sourceLineNumbers) |
| 1345 | row.Set(0, userId); | 1339 | { |
| 1346 | row.Set(1, groupId); | 1340 | UserRef = userId, |
| 1341 | GroupRef = groupId, | ||
| 1342 | }; | ||
| 1343 | |||
| 1344 | section.Tuples.Add(tuple); | ||
| 1347 | } | 1345 | } |
| 1348 | } | 1346 | } |
| 1349 | 1347 | ||
| @@ -1356,7 +1354,7 @@ namespace WixToolset.Util | |||
| 1356 | private void ParseInternetShortcutElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId, string defaultTarget) | 1354 | private void ParseInternetShortcutElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId, string defaultTarget) |
| 1357 | { | 1355 | { |
| 1358 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); | 1356 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); |
| 1359 | string id = null; | 1357 | Identifier id = null; |
| 1360 | string name = null; | 1358 | string name = null; |
| 1361 | string target = null; | 1359 | string target = null; |
| 1362 | string directoryId = null; | 1360 | string directoryId = null; |
| @@ -1374,7 +1372,7 @@ namespace WixToolset.Util | |||
| 1374 | directoryId = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 1372 | directoryId = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
| 1375 | break; | 1373 | break; |
| 1376 | case "Id": | 1374 | case "Id": |
| 1377 | id = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 1375 | id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib); |
| 1378 | break; | 1376 | break; |
| 1379 | case "Name": | 1377 | case "Name": |
| 1380 | name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); | 1378 | name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
| @@ -1457,43 +1455,40 @@ namespace WixToolset.Util | |||
| 1457 | /// <param name="id">Identifier of shortcut.</param> | 1455 | /// <param name="id">Identifier of shortcut.</param> |
| 1458 | /// <param name="name">Name of shortcut without extension.</param> | 1456 | /// <param name="name">Name of shortcut without extension.</param> |
| 1459 | /// <param name="target">Target URL of shortcut.</param> | 1457 | /// <param name="target">Target URL of shortcut.</param> |
| 1460 | private void CreateWixInternetShortcut(IntermediateSection section, SourceLineNumber sourceLineNumbers, string componentId, string directoryId, string shortcutId, string name, string target, InternetShortcutType type, string iconFile, int iconIndex) | 1458 | private void CreateWixInternetShortcut(IntermediateSection section, SourceLineNumber sourceLineNumbers, string componentId, string directoryId, Identifier shortcutId, string name, string target, InternetShortcutType type, string iconFile, int iconIndex) |
| 1461 | { | 1459 | { |
| 1462 | // add the appropriate extension based on type of shortcut | 1460 | // add the appropriate extension based on type of shortcut |
| 1463 | name = String.Concat(name, InternetShortcutType.Url == type ? ".url" : ".lnk"); | 1461 | name = String.Concat(name, InternetShortcutType.Url == type ? ".url" : ".lnk"); |
| 1464 | 1462 | ||
| 1465 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "WixInternetShortcut"); | 1463 | var tuple = new WixInternetShortcutTuple(sourceLineNumbers, shortcutId) |
| 1466 | row.Set(0, shortcutId); | ||
| 1467 | row.Set(1, componentId); | ||
| 1468 | row.Set(2, directoryId); | ||
| 1469 | row.Set(3, name); | ||
| 1470 | row.Set(4, target); | ||
| 1471 | row.Set(5, (int)type); | ||
| 1472 | row.Set(6, iconFile); | ||
| 1473 | row.Set(7, iconIndex); | ||
| 1474 | |||
| 1475 | // Reference custom action because nothing will happen without it | ||
| 1476 | if (this.Context.Platform == Platform.ARM) | ||
| 1477 | { | ||
| 1478 | // Ensure ARM version of the CA is referenced | ||
| 1479 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixSchedInternetShortcuts_ARM"); | ||
| 1480 | } | ||
| 1481 | else | ||
| 1482 | { | 1464 | { |
| 1483 | // All other supported platforms use x86 | 1465 | ComponentRef = componentId, |
| 1484 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixSchedInternetShortcuts"); | 1466 | DirectoryRef = directoryId, |
| 1485 | } | 1467 | Name = name, |
| 1468 | Target = target, | ||
| 1469 | Attributes = (int)type, | ||
| 1470 | IconFile = iconFile, | ||
| 1471 | IconIndex = iconIndex, | ||
| 1472 | }; | ||
| 1473 | |||
| 1474 | section.Tuples.Add(tuple); | ||
| 1475 | |||
| 1476 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedInternetShortcuts", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); | ||
| 1486 | 1477 | ||
| 1487 | // make sure we have a CreateFolder table so that the immediate CA can add temporary rows to handle installation and uninstallation | 1478 | // make sure we have a CreateFolder table so that the immediate CA can add temporary rows to handle installation and uninstallation |
| 1488 | this.ParseHelper.EnsureTable(section, sourceLineNumbers, "CreateFolder"); | 1479 | this.ParseHelper.EnsureTable(section, sourceLineNumbers, "CreateFolder"); |
| 1489 | 1480 | ||
| 1490 | // use built-in MSI functionality to remove the shortcuts rather than doing so via CA | 1481 | // use built-in MSI functionality to remove the shortcuts rather than doing so via CA |
| 1491 | row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "RemoveFile"); | 1482 | var removeFileTuple = new RemoveFileTuple(sourceLineNumbers, shortcutId) |
| 1492 | row.Set(0, shortcutId); | 1483 | { |
| 1493 | row.Set(1, componentId); | 1484 | ComponentRef = componentId, |
| 1494 | row.Set(2, this.ParseHelper.IsValidShortFilename(name, false) ? name : String.Concat(this.ParseHelper.CreateShortName(name, true, false, directoryId, name), "|", name)); | 1485 | DirProperty = directoryId, |
| 1495 | row.Set(3, directoryId); | 1486 | OnUninstall = true, |
| 1496 | row.Set(4, 2); // msidbRemoveFileInstallModeOnRemove | 1487 | // TODO: A better way? |
| 1488 | FileName = this.ParseHelper.IsValidShortFilename(name, false) ? name : String.Concat(this.ParseHelper.CreateShortName(name, true, false, directoryId, name), "|", name), | ||
| 1489 | }; | ||
| 1490 | |||
| 1491 | section.Tuples.Add(removeFileTuple); | ||
| 1497 | } | 1492 | } |
| 1498 | 1493 | ||
| 1499 | /// <summary> | 1494 | /// <summary> |
| @@ -1504,7 +1499,7 @@ namespace WixToolset.Util | |||
| 1504 | private void ParsePerformanceCategoryElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId) | 1499 | private void ParsePerformanceCategoryElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId) |
| 1505 | { | 1500 | { |
| 1506 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); | 1501 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); |
| 1507 | string id = null; | 1502 | Identifier id = null; |
| 1508 | string name = null; | 1503 | string name = null; |
| 1509 | string help = null; | 1504 | string help = null; |
| 1510 | YesNoType multiInstance = YesNoType.No; | 1505 | YesNoType multiInstance = YesNoType.No; |
| @@ -1537,7 +1532,7 @@ namespace WixToolset.Util | |||
| 1537 | help = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); | 1532 | help = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
| 1538 | break; | 1533 | break; |
| 1539 | case "Id": | 1534 | case "Id": |
| 1540 | id = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 1535 | id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib); |
| 1541 | break; | 1536 | break; |
| 1542 | case "Library": | 1537 | case "Library": |
| 1543 | library = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); | 1538 | library = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
| @@ -1569,7 +1564,7 @@ namespace WixToolset.Util | |||
| 1569 | 1564 | ||
| 1570 | if (null == name) | 1565 | if (null == name) |
| 1571 | { | 1566 | { |
| 1572 | name = id; | 1567 | name = id?.Id; |
| 1573 | } | 1568 | } |
| 1574 | 1569 | ||
| 1575 | // Process the child counter elements. | 1570 | // Process the child counter elements. |
| @@ -1641,12 +1636,15 @@ namespace WixToolset.Util | |||
| 1641 | sbSymbolicConstants.AppendFormat("#define LAST_{0}_COUNTER_OFFSET {1}\r\n", objectName, symbolConstantsCounter); | 1636 | sbSymbolicConstants.AppendFormat("#define LAST_{0}_COUNTER_OFFSET {1}\r\n", objectName, symbolConstantsCounter); |
| 1642 | 1637 | ||
| 1643 | // Add the calculated INI and H strings to the PerformanceCategory table. | 1638 | // Add the calculated INI and H strings to the PerformanceCategory table. |
| 1644 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "PerformanceCategory"); | 1639 | var tuple = new PerformanceCategoryTuple(sourceLineNumbers, id) |
| 1645 | row.Set(0, id); | 1640 | { |
| 1646 | row.Set(1, componentId); | 1641 | ComponentRef = componentId, |
| 1647 | row.Set(2, name); | 1642 | Name = name, |
| 1648 | row.Set(3, sbIniData.ToString()); | 1643 | IniData = sbIniData.ToString(), |
| 1649 | row.Set(4, sbSymbolicConstants.ToString()); | 1644 | ConstantData = sbSymbolicConstants.ToString(), |
| 1645 | }; | ||
| 1646 | |||
| 1647 | section.Tuples.Add(tuple); | ||
| 1650 | 1648 | ||
| 1651 | // Set up the application's performance key. | 1649 | // Set up the application's performance key. |
| 1652 | string escapedName = UtilCompiler.FindPropertyBrackets.Replace(name, this.EscapeProperties); | 1650 | string escapedName = UtilCompiler.FindPropertyBrackets.Replace(name, this.EscapeProperties); |
| @@ -1664,19 +1662,8 @@ namespace WixToolset.Util | |||
| 1664 | this.ParseHelper.CreateRegistryTuple(section, sourceLineNumbers, RegistryRootType.LocalMachine, performanceKey, "Counter Types", sbCounterTypes.ToString(), componentId, false); | 1662 | this.ParseHelper.CreateRegistryTuple(section, sourceLineNumbers, RegistryRootType.LocalMachine, performanceKey, "Counter Types", sbCounterTypes.ToString(), componentId, false); |
| 1665 | } | 1663 | } |
| 1666 | 1664 | ||
| 1667 | // Reference InstallPerfCounterData and UninstallPerfCounterData since nothing will happen without them | 1665 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "InstallPerfCounterData", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); |
| 1668 | if (this.Context.Platform == Platform.ARM) | 1666 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "UninstallPerfCounterData", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); |
| 1669 | { | ||
| 1670 | // Ensure ARM version of the CAs are referenced | ||
| 1671 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "InstallPerfCounterData_ARM"); | ||
| 1672 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "UninstallPerfCounterData_ARM"); | ||
| 1673 | } | ||
| 1674 | else | ||
| 1675 | { | ||
| 1676 | // All other supported platforms use x86 | ||
| 1677 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "InstallPerfCounterData"); | ||
| 1678 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "UninstallPerfCounterData"); | ||
| 1679 | } | ||
| 1680 | } | 1667 | } |
| 1681 | 1668 | ||
| 1682 | /// <summary> | 1669 | /// <summary> |
| @@ -2146,25 +2133,18 @@ namespace WixToolset.Util | |||
| 2146 | 2133 | ||
| 2147 | if (!this.Messaging.EncounteredError) | 2134 | if (!this.Messaging.EncounteredError) |
| 2148 | { | 2135 | { |
| 2149 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "Perfmon"); | 2136 | var tuple = new PerfmonTuple(sourceLineNumbers) |
| 2150 | row.Set(0, componentId); | 2137 | { |
| 2151 | row.Set(1, $"[#{fileId}]"); | 2138 | ComponentRef = componentId, |
| 2152 | row.Set(2, name); | 2139 | File = $"[#{fileId}]", |
| 2153 | } | 2140 | Name = name, |
| 2141 | }; | ||
| 2154 | 2142 | ||
| 2155 | // Reference ConfigurePerfmonInstall and ConfigurePerfmonUninstall since nothing will happen without them | 2143 | section.Tuples.Add(tuple); |
| 2156 | if (this.Context.Platform == Platform.ARM) | ||
| 2157 | { | ||
| 2158 | // Ensure ARM version of the CAs are referenced | ||
| 2159 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonInstall_ARM"); | ||
| 2160 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonUninstall_ARM"); | ||
| 2161 | } | ||
| 2162 | else | ||
| 2163 | { | ||
| 2164 | // All other supported platforms use x86 | ||
| 2165 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonInstall"); | ||
| 2166 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonUninstall"); | ||
| 2167 | } | 2144 | } |
| 2145 | |||
| 2146 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigurePerfmonInstall", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); | ||
| 2147 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigurePerfmonUninstall", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); | ||
| 2168 | } | 2148 | } |
| 2169 | 2149 | ||
| 2170 | 2150 | ||
| @@ -2203,24 +2183,18 @@ namespace WixToolset.Util | |||
| 2203 | 2183 | ||
| 2204 | if (!this.Messaging.EncounteredError) | 2184 | if (!this.Messaging.EncounteredError) |
| 2205 | { | 2185 | { |
| 2206 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "PerfmonManifest"); | 2186 | var tuple = new PerfmonManifestTuple(sourceLineNumbers) |
| 2207 | row.Set(0, componentId); | 2187 | { |
| 2208 | row.Set(1, $"[#{fileId}]"); | 2188 | ComponentRef = componentId, |
| 2209 | row.Set(2, resourceFileDirectory); | 2189 | File = $"[#{fileId}]", |
| 2210 | } | 2190 | ResourceFileDirectory = resourceFileDirectory, |
| 2191 | }; | ||
| 2211 | 2192 | ||
| 2212 | if (this.Context.Platform == Platform.ARM) | 2193 | section.Tuples.Add(tuple); |
| 2213 | { | ||
| 2214 | // Ensure ARM version of the CAs are referenced | ||
| 2215 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonManifestRegister_ARM"); | ||
| 2216 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonManifestUnregister_ARM"); | ||
| 2217 | } | ||
| 2218 | else | ||
| 2219 | { | ||
| 2220 | // All other supported platforms use x86 | ||
| 2221 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonManifestRegister"); | ||
| 2222 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonManifestUnregister"); | ||
| 2223 | } | 2194 | } |
| 2195 | |||
| 2196 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigurePerfmonManifestRegister", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); | ||
| 2197 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigurePerfmonManifestUnregister", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); | ||
| 2224 | } | 2198 | } |
| 2225 | 2199 | ||
| 2226 | /// <summary> | 2200 | /// <summary> |
| @@ -2263,23 +2237,15 @@ namespace WixToolset.Util | |||
| 2263 | 2237 | ||
| 2264 | if (!this.Messaging.EncounteredError) | 2238 | if (!this.Messaging.EncounteredError) |
| 2265 | { | 2239 | { |
| 2266 | switch (this.Context.Platform) | 2240 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedFormatFiles", this.Context.Platform, CustomActionPlatforms.X64 | CustomActionPlatforms.X86); |
| 2241 | |||
| 2242 | var tuple = new WixFormatFilesTuple(sourceLineNumbers) | ||
| 2267 | { | 2243 | { |
| 2268 | case Platform.X86: | 2244 | BinaryRef = binaryId, |
| 2269 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixSchedFormatFiles"); | 2245 | FileRef = fileId, |
| 2270 | break; | 2246 | }; |
| 2271 | case Platform.X64: | ||
| 2272 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixSchedFormatFiles_x64"); | ||
| 2273 | break; | ||
| 2274 | case Platform.IA64: | ||
| 2275 | case Platform.ARM: | ||
| 2276 | this.Messaging.Write(ErrorMessages.UnsupportedPlatformForElement(sourceLineNumbers, this.Context.Platform.ToString(), element.Name.LocalName)); | ||
| 2277 | break; | ||
| 2278 | } | ||
| 2279 | 2247 | ||
| 2280 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "WixFormatFiles"); | 2248 | section.Tuples.Add(tuple); |
| 2281 | row.Set(0, binaryId); | ||
| 2282 | row.Set(1, fileId); | ||
| 2283 | 2249 | ||
| 2284 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "Binary", binaryId); | 2250 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "Binary", binaryId); |
| 2285 | } | 2251 | } |
| @@ -2328,71 +2294,62 @@ namespace WixToolset.Util | |||
| 2328 | 2294 | ||
| 2329 | if (!this.Messaging.EncounteredError) | 2295 | if (!this.Messaging.EncounteredError) |
| 2330 | { | 2296 | { |
| 2331 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "EventManifest"); | 2297 | var tuple = new EventManifestTuple(sourceLineNumbers) |
| 2332 | row.Set(0, componentId); | 2298 | { |
| 2333 | row.Set(1, $"[#{fileId}]"); | 2299 | ComponentRef = componentId, |
| 2300 | File = $"[#{fileId}]", | ||
| 2301 | }; | ||
| 2302 | |||
| 2303 | section.Tuples.Add(tuple); | ||
| 2334 | 2304 | ||
| 2335 | if (null != messageFile) | 2305 | if (null != messageFile) |
| 2336 | { | 2306 | { |
| 2337 | var messageRow = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "XmlFile"); | 2307 | var xmlTuple = new XmlFileTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, $"Config_{fileId}MessageFile")) |
| 2338 | messageRow.Set(0, String.Concat("Config_", fileId, "MessageFile")); | 2308 | { |
| 2339 | messageRow.Set(1, $"[#{fileId}]"); | 2309 | File = $"[#{fileId}]", |
| 2340 | messageRow.Set(2, "/*/*/*/*[\\[]@messageFileName[\\]]"); | 2310 | ElementPath = "/*/*/*/*[\\[]@messageFileName[\\]]", |
| 2341 | messageRow.Set(3, "messageFileName"); | 2311 | Name = "messageFileName", |
| 2342 | messageRow.Set(4, messageFile); | 2312 | Value = messageFile, |
| 2343 | messageRow.Set(5, 4 | 0x00001000); //bulk write | preserve modified date | 2313 | Flags = 4 | 0x00001000, //bulk write | preserve modified date |
| 2344 | messageRow.Set(6, componentId); | 2314 | ComponentRef = componentId, |
| 2315 | }; | ||
| 2316 | section.Tuples.Add(xmlTuple); | ||
| 2345 | } | 2317 | } |
| 2346 | if (null != parameterFile) | 2318 | if (null != parameterFile) |
| 2347 | { | 2319 | { |
| 2348 | var resourceRow = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "XmlFile"); | 2320 | var xmlTuple = new XmlFileTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, $"Config_{fileId}ParameterFile")) |
| 2349 | resourceRow.Set(0, String.Concat("Config_", fileId, "ParameterFile")); | 2321 | { |
| 2350 | resourceRow.Set(1, $"[#{fileId}]"); | 2322 | File = $"[#{fileId}]", |
| 2351 | resourceRow.Set(2, "/*/*/*/*[\\[]@parameterFileName[\\]]"); | 2323 | ElementPath = "/*/*/*/*[\\[]@parameterFileName[\\]]", |
| 2352 | resourceRow.Set(3, "parameterFileName"); | 2324 | Name = "parameterFileName", |
| 2353 | resourceRow.Set(4, parameterFile); | 2325 | Value = parameterFile, |
| 2354 | resourceRow.Set(5, 4 | 0x00001000); //bulk write | preserve modified date | 2326 | Flags = 4 | 0x00001000, //bulk write | preserve modified date |
| 2355 | resourceRow.Set(6, componentId); | 2327 | ComponentRef = componentId, |
| 2328 | }; | ||
| 2329 | section.Tuples.Add(xmlTuple); | ||
| 2356 | } | 2330 | } |
| 2357 | if (null != resourceFile) | 2331 | if (null != resourceFile) |
| 2358 | { | 2332 | { |
| 2359 | var resourceRow = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "XmlFile"); | 2333 | var xmlTuple = new XmlFileTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, $"Config_{fileId}ResourceFile")) |
| 2360 | resourceRow.Set(0, String.Concat("Config_", fileId, "ResourceFile")); | 2334 | { |
| 2361 | resourceRow.Set(1, $"[#{fileId}]"); | 2335 | File = $"[#{fileId}]", |
| 2362 | resourceRow.Set(2, "/*/*/*/*[\\[]@resourceFileName[\\]]"); | 2336 | ElementPath = "/*/*/*/*[\\[]@resourceFileName[\\]]", |
| 2363 | resourceRow.Set(3, "resourceFileName"); | 2337 | Name = "resourceFileName", |
| 2364 | resourceRow.Set(4, resourceFile); | 2338 | Value = resourceFile, |
| 2365 | resourceRow.Set(5, 4 | 0x00001000); //bulk write | preserve modified date | 2339 | Flags = 4 | 0x00001000, //bulk write | preserve modified date |
| 2366 | resourceRow.Set(6, componentId); | 2340 | ComponentRef = componentId, |
| 2341 | }; | ||
| 2342 | section.Tuples.Add(xmlTuple); | ||
| 2367 | } | 2343 | } |
| 2368 | 2344 | ||
| 2369 | } | 2345 | } |
| 2370 | 2346 | ||
| 2371 | if (this.Context.Platform == Platform.ARM) | 2347 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigureEventManifestRegister", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); |
| 2372 | { | 2348 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigureEventManifestUnregister", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); |
| 2373 | // Ensure ARM version of the CA is referenced | ||
| 2374 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureEventManifestRegister_ARM"); | ||
| 2375 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureEventManifestUnregister_ARM"); | ||
| 2376 | } | ||
| 2377 | else | ||
| 2378 | { | ||
| 2379 | // All other supported platforms use x86 | ||
| 2380 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureEventManifestRegister"); | ||
| 2381 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureEventManifestUnregister"); | ||
| 2382 | } | ||
| 2383 | 2349 | ||
| 2384 | if (null != messageFile || null != parameterFile || null != resourceFile) | 2350 | if (null != messageFile || null != parameterFile || null != resourceFile) |
| 2385 | { | 2351 | { |
| 2386 | if (this.Context.Platform == Platform.ARM) | 2352 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedXmlFile", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); |
| 2387 | { | ||
| 2388 | // Ensure ARM version of the CA is referenced | ||
| 2389 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedXmlFile_ARM"); | ||
| 2390 | } | ||
| 2391 | else | ||
| 2392 | { | ||
| 2393 | // All other supported platforms use x86 | ||
| 2394 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedXmlFile"); | ||
| 2395 | } | ||
| 2396 | } | 2353 | } |
| 2397 | } | 2354 | } |
| 2398 | 2355 | ||
| @@ -2493,36 +2450,18 @@ namespace WixToolset.Util | |||
| 2493 | 2450 | ||
| 2494 | if (!this.Messaging.EncounteredError) | 2451 | if (!this.Messaging.EncounteredError) |
| 2495 | { | 2452 | { |
| 2496 | if (win64) | 2453 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedSecureObjects", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X64 | CustomActionPlatforms.X86); |
| 2497 | { | 2454 | |
| 2498 | if (this.Context.Platform == Platform.IA64) | 2455 | var tuple = new SecureObjectsTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, objectId)) |
| 2499 | { | ||
| 2500 | this.Messaging.Write(ErrorMessages.UnsupportedPlatformForElement(sourceLineNumbers, "ia64", element.Name.LocalName)); | ||
| 2501 | } | ||
| 2502 | else | ||
| 2503 | { | ||
| 2504 | // Ensure SchedSecureObjects (x64) is referenced | ||
| 2505 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedSecureObjects_x64"); | ||
| 2506 | } | ||
| 2507 | } | ||
| 2508 | else if (this.Context.Platform == Platform.ARM) | ||
| 2509 | { | ||
| 2510 | // Ensure SchedSecureObjects (arm) is referenced | ||
| 2511 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedSecureObjects_ARM"); | ||
| 2512 | } | ||
| 2513 | else | ||
| 2514 | { | 2456 | { |
| 2515 | // Ensure SchedSecureObjects (x86) is referenced, to handle this x86 component member | 2457 | Table = tableName, |
| 2516 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedSecureObjects"); | 2458 | Domain = domain, |
| 2517 | } | 2459 | User = user, |
| 2460 | Permission = permission, | ||
| 2461 | ComponentRef = componentId, | ||
| 2462 | }; | ||
| 2518 | 2463 | ||
| 2519 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "SecureObjects"); | 2464 | section.Tuples.Add(tuple); |
| 2520 | row.Set(0, objectId); | ||
| 2521 | row.Set(1, tableName); | ||
| 2522 | row.Set(2, domain); | ||
| 2523 | row.Set(3, user); | ||
| 2524 | row.Set(4, permission); | ||
| 2525 | row.Set(5, componentId); | ||
| 2526 | } | 2465 | } |
| 2527 | } | 2466 | } |
| 2528 | 2467 | ||
| @@ -2881,13 +2820,18 @@ namespace WixToolset.Util | |||
| 2881 | 2820 | ||
| 2882 | if (!this.Messaging.EncounteredError) | 2821 | if (!this.Messaging.EncounteredError) |
| 2883 | { | 2822 | { |
| 2884 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "WixRemoveFolderEx", id); | 2823 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "RemoveFoldersEx", this.Context.Platform, CustomActionPlatforms.X86); |
| 2885 | row.Set(1, componentId); | 2824 | |
| 2886 | row.Set(2, property); | 2825 | var tuple = new WixRemoveFolderExTuple(sourceLineNumbers) |
| 2887 | row.Set(3, on); | 2826 | { |
| 2827 | ComponentRef = componentId, | ||
| 2828 | Property = property, | ||
| 2829 | InstallMode = (int)on, | ||
| 2830 | }; | ||
| 2831 | |||
| 2832 | section.Tuples.Add(tuple); | ||
| 2888 | 2833 | ||
| 2889 | this.ParseHelper.EnsureTable(section, sourceLineNumbers, "RemoveFile"); | 2834 | this.ParseHelper.EnsureTable(section, sourceLineNumbers, "RemoveFile"); |
| 2890 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixRemoveFoldersEx"); | ||
| 2891 | } | 2835 | } |
| 2892 | } | 2836 | } |
| 2893 | 2837 | ||
| @@ -2954,22 +2898,16 @@ namespace WixToolset.Util | |||
| 2954 | 2898 | ||
| 2955 | if (!this.Messaging.EncounteredError) | 2899 | if (!this.Messaging.EncounteredError) |
| 2956 | { | 2900 | { |
| 2957 | // Add a reference to the WixRegisterRestartResources custom action since nothing will happen without it. | 2901 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "RegisterRestartResources", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); |
| 2958 | if (this.Context.Platform == Platform.ARM) | 2902 | |
| 2959 | { | 2903 | var tuple = new WixRestartResourceTuple(sourceLineNumbers) |
| 2960 | // Ensure ARM version of the CA is referenced | ||
| 2961 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixRegisterRestartResources_ARM"); | ||
| 2962 | } | ||
| 2963 | else | ||
| 2964 | { | 2904 | { |
| 2965 | // All other supported platforms use x86 | 2905 | ComponentRef = componentId, |
| 2966 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixRegisterRestartResources"); | 2906 | Resource = resource, |
| 2967 | } | 2907 | Attributes = attributes, |
| 2908 | }; | ||
| 2968 | 2909 | ||
| 2969 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "WixRestartResource", id); | 2910 | section.Tuples.Add(tuple); |
| 2970 | row.Set(1, componentId); | ||
| 2971 | row.Set(2, resource); | ||
| 2972 | row.Set(3, attributes); | ||
| 2973 | } | 2911 | } |
| 2974 | } | 2912 | } |
| 2975 | 2913 | ||
| @@ -3052,38 +2990,25 @@ namespace WixToolset.Util | |||
| 3052 | 2990 | ||
| 3053 | this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); | 2991 | this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); |
| 3054 | 2992 | ||
| 3055 | // Reference SchedServiceConfig since nothing will happen without it | ||
| 3056 | if (this.Context.Platform == Platform.ARM) | ||
| 3057 | { | ||
| 3058 | // Ensure ARM version of the CA is referenced | ||
| 3059 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedServiceConfig_ARM"); | ||
| 3060 | } | ||
| 3061 | else | ||
| 3062 | { | ||
| 3063 | // All other supported platforms use x86 | ||
| 3064 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedServiceConfig"); | ||
| 3065 | } | ||
| 3066 | |||
| 3067 | if (!this.Messaging.EncounteredError) | 2993 | if (!this.Messaging.EncounteredError) |
| 3068 | { | 2994 | { |
| 3069 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "ServiceConfig"); | 2995 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedServiceConfig", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); |
| 3070 | row.Set(0, serviceName); | ||
| 3071 | row.Set(1, componentId); | ||
| 3072 | row.Set(2, (newService ? 1 : 0)); | ||
| 3073 | row.Set(3, firstFailureActionType); | ||
| 3074 | row.Set(4, secondFailureActionType); | ||
| 3075 | row.Set(5, thirdFailureActionType); | ||
| 3076 | if (CompilerConstants.IntegerNotSet != resetPeriod) | ||
| 3077 | { | ||
| 3078 | row.Set(6, resetPeriod); | ||
| 3079 | } | ||
| 3080 | 2996 | ||
| 3081 | if (CompilerConstants.IntegerNotSet != restartServiceDelay) | 2997 | var tuple = new ServiceConfigTuple(sourceLineNumbers) |
| 3082 | { | 2998 | { |
| 3083 | row.Set(7, restartServiceDelay); | 2999 | ServiceName = serviceName, |
| 3084 | } | 3000 | ComponentRef = componentId, |
| 3085 | row.Set(8, programCommandLine); | 3001 | NewService = newService ? 1 : 0, |
| 3086 | row.Set(9, rebootMessage); | 3002 | FirstFailureActionType = firstFailureActionType, |
| 3003 | SecondFailureActionType = secondFailureActionType, | ||
| 3004 | ThirdFailureActionType = thirdFailureActionType, | ||
| 3005 | ResetPeriodInDays = resetPeriod, | ||
| 3006 | RestartServiceDelayInSeconds = restartServiceDelay, | ||
| 3007 | ProgramCommandLine = programCommandLine, | ||
| 3008 | RebootMessage = rebootMessage, | ||
| 3009 | }; | ||
| 3010 | |||
| 3011 | section.Tuples.Add(tuple); | ||
| 3087 | } | 3012 | } |
| 3088 | } | 3013 | } |
| 3089 | 3014 | ||
| @@ -3166,12 +3091,16 @@ namespace WixToolset.Util | |||
| 3166 | 3091 | ||
| 3167 | if (!this.Messaging.EncounteredError) | 3092 | if (!this.Messaging.EncounteredError) |
| 3168 | { | 3093 | { |
| 3169 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "WixTouchFile", id); | 3094 | var tuple = new WixTouchFileTuple(sourceLineNumbers) |
| 3170 | row.Set(1, componentId); | 3095 | { |
| 3171 | row.Set(2, path); | 3096 | ComponentRef = componentId, |
| 3172 | row.Set(3, attributes); | 3097 | Path = path, |
| 3098 | Attributes = attributes, | ||
| 3099 | }; | ||
| 3100 | |||
| 3101 | section.Tuples.Add(tuple); | ||
| 3173 | 3102 | ||
| 3174 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixTouchFileDuringInstall"); | 3103 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "TouchFileDuringInstall", this.Context.Platform, CustomActionPlatforms.X86); |
| 3175 | } | 3104 | } |
| 3176 | } | 3105 | } |
| 3177 | 3106 | ||
| @@ -3375,27 +3304,21 @@ namespace WixToolset.Util | |||
| 3375 | 3304 | ||
| 3376 | if (null != componentId) | 3305 | if (null != componentId) |
| 3377 | { | 3306 | { |
| 3378 | // Reference ConfigureIIs since nothing will happen without it | 3307 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigureUsers", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); |
| 3379 | if (this.Context.Platform == Platform.ARM) | ||
| 3380 | { | ||
| 3381 | // Ensure ARM version of the CA is referenced | ||
| 3382 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureUsers_ARM"); | ||
| 3383 | } | ||
| 3384 | else | ||
| 3385 | { | ||
| 3386 | // All other supported platforms use x86 | ||
| 3387 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureUsers"); | ||
| 3388 | } | ||
| 3389 | } | 3308 | } |
| 3390 | 3309 | ||
| 3391 | if (!this.Messaging.EncounteredError) | 3310 | if (!this.Messaging.EncounteredError) |
| 3392 | { | 3311 | { |
| 3393 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "User", id); | 3312 | var tuple = new UserTuple(sourceLineNumbers, id) |
| 3394 | row.Set(1, componentId); | 3313 | { |
| 3395 | row.Set(2, name); | 3314 | ComponentRef = componentId, |
| 3396 | row.Set(3, domain); | 3315 | Name = name, |
| 3397 | row.Set(4, password); | 3316 | Domain = domain, |
| 3398 | row.Set(5, attributes); | 3317 | Password = password, |
| 3318 | Attributes = attributes, | ||
| 3319 | }; | ||
| 3320 | |||
| 3321 | section.Tuples.Add(tuple); | ||
| 3399 | } | 3322 | } |
| 3400 | } | 3323 | } |
| 3401 | 3324 | ||
| @@ -3407,7 +3330,7 @@ namespace WixToolset.Util | |||
| 3407 | private void ParseXmlFileElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId) | 3330 | private void ParseXmlFileElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId) |
| 3408 | { | 3331 | { |
| 3409 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); | 3332 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); |
| 3410 | string id = null; | 3333 | Identifier id = null; |
| 3411 | string file = null; | 3334 | string file = null; |
| 3412 | string elementPath = null; | 3335 | string elementPath = null; |
| 3413 | string name = null; | 3336 | string name = null; |
| @@ -3458,7 +3381,7 @@ namespace WixToolset.Util | |||
| 3458 | } | 3381 | } |
| 3459 | break; | 3382 | break; |
| 3460 | case "Id": | 3383 | case "Id": |
| 3461 | id = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 3384 | id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib); |
| 3462 | break; | 3385 | break; |
| 3463 | case "File": | 3386 | case "File": |
| 3464 | file = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); | 3387 | file = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
| @@ -3522,31 +3445,23 @@ namespace WixToolset.Util | |||
| 3522 | 3445 | ||
| 3523 | if (!this.Messaging.EncounteredError) | 3446 | if (!this.Messaging.EncounteredError) |
| 3524 | { | 3447 | { |
| 3525 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "XmlFile"); | 3448 | var tuple = new XmlFileTuple(sourceLineNumbers, id) |
| 3526 | row.Set(0, id); | 3449 | { |
| 3527 | row.Set(1, file); | 3450 | File = file, |
| 3528 | row.Set(2, elementPath); | 3451 | ElementPath = elementPath, |
| 3529 | row.Set(3, name); | 3452 | Name = name, |
| 3530 | row.Set(4, value); | 3453 | Value = value, |
| 3531 | row.Set(5, flags); | 3454 | Flags = flags, |
| 3532 | row.Set(6, componentId); | 3455 | ComponentRef = componentId, |
| 3456 | }; | ||
| 3533 | if (-1 != sequence) | 3457 | if (-1 != sequence) |
| 3534 | { | 3458 | { |
| 3535 | row.Set(7, sequence); | 3459 | tuple.Sequence = sequence; |
| 3536 | } | 3460 | } |
| 3461 | section.Tuples.Add(tuple); | ||
| 3537 | } | 3462 | } |
| 3538 | 3463 | ||
| 3539 | // Reference SchedXmlFile since nothing will happen without it | 3464 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedXmlFile", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); |
| 3540 | if (this.Context.Platform == Platform.ARM) | ||
| 3541 | { | ||
| 3542 | // Ensure ARM version of the CA is referenced | ||
| 3543 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedXmlFile_ARM"); | ||
| 3544 | } | ||
| 3545 | else | ||
| 3546 | { | ||
| 3547 | // All other supported platforms use x86 | ||
| 3548 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedXmlFile"); | ||
| 3549 | } | ||
| 3550 | } | 3465 | } |
| 3551 | 3466 | ||
| 3552 | /// <summary> | 3467 | /// <summary> |
| @@ -3558,7 +3473,7 @@ namespace WixToolset.Util | |||
| 3558 | private void ParseXmlConfigElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId, bool nested) | 3473 | private void ParseXmlConfigElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId, bool nested) |
| 3559 | { | 3474 | { |
| 3560 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); | 3475 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); |
| 3561 | string id = null; | 3476 | Identifier id = null; |
| 3562 | string elementId = null; | 3477 | string elementId = null; |
| 3563 | string elementPath = null; | 3478 | string elementPath = null; |
| 3564 | int flags = 0; | 3479 | int flags = 0; |
| @@ -3575,7 +3490,7 @@ namespace WixToolset.Util | |||
| 3575 | switch (attrib.Name.LocalName) | 3490 | switch (attrib.Name.LocalName) |
| 3576 | { | 3491 | { |
| 3577 | case "Id": | 3492 | case "Id": |
| 3578 | id = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 3493 | id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib); |
| 3579 | break; | 3494 | break; |
| 3580 | case "Action": | 3495 | case "Action": |
| 3581 | if (nested) | 3496 | if (nested) |
| @@ -3760,32 +3675,24 @@ namespace WixToolset.Util | |||
| 3760 | 3675 | ||
| 3761 | if (!this.Messaging.EncounteredError) | 3676 | if (!this.Messaging.EncounteredError) |
| 3762 | { | 3677 | { |
| 3763 | var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "XmlConfig"); | 3678 | var tuple = new XmlConfigTuple(sourceLineNumbers, id) |
| 3764 | row.Set(0, id); | 3679 | { |
| 3765 | row.Set(1, file); | 3680 | File=file, |
| 3766 | row.Set(2, elementId ?? elementPath); | 3681 | ElementPath=elementId ??elementPath, |
| 3767 | row.Set(3, verifyPath); | 3682 | VerifyPath=verifyPath, |
| 3768 | row.Set(4, name); | 3683 | Name=name, |
| 3769 | row.Set(5, value); | 3684 | Value=value, |
| 3770 | row.Set(6, flags); | 3685 | Flags=flags, |
| 3771 | row.Set(7, componentId); | 3686 | ComponentRef=componentId, |
| 3687 | }; | ||
| 3772 | if (CompilerConstants.IntegerNotSet != sequence) | 3688 | if (CompilerConstants.IntegerNotSet != sequence) |
| 3773 | { | 3689 | { |
| 3774 | row.Set(8, sequence); | 3690 | tuple.Sequence = sequence; |
| 3775 | } | 3691 | } |
| 3692 | section.Tuples.Add(tuple); | ||
| 3776 | } | 3693 | } |
| 3777 | 3694 | ||
| 3778 | // Reference SchedXmlConfig since nothing will happen without it | 3695 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedXmlConfig", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86); |
| 3779 | if (this.Context.Platform == Platform.ARM) | ||
| 3780 | { | ||
| 3781 | // Ensure ARM version of the CA is referenced | ||
| 3782 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedXmlConfig_ARM"); | ||
| 3783 | } | ||
| 3784 | else | ||
| 3785 | { | ||
| 3786 | // All other supported platforms use x86 | ||
| 3787 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedXmlConfig"); | ||
| 3788 | } | ||
| 3789 | } | 3696 | } |
| 3790 | 3697 | ||
| 3791 | /// <summary> | 3698 | /// <summary> |
diff --git a/src/wixext/UtilWindowsInstallerBackendExtension.cs b/src/wixext/UtilWindowsInstallerBackendExtension.cs index 2365ed01..8648cb17 100644 --- a/src/wixext/UtilWindowsInstallerBackendExtension.cs +++ b/src/wixext/UtilWindowsInstallerBackendExtension.cs | |||
| @@ -5,6 +5,7 @@ namespace WixToolset.Util | |||
| 5 | using System.Collections.Generic; | 5 | using System.Collections.Generic; |
| 6 | using System.Linq; | 6 | using System.Linq; |
| 7 | using System.Xml; | 7 | using System.Xml; |
| 8 | using WixToolset.Data; | ||
| 8 | using WixToolset.Data.WindowsInstaller; | 9 | using WixToolset.Data.WindowsInstaller; |
| 9 | using WixToolset.Extensibility; | 10 | using WixToolset.Extensibility; |
| 10 | 11 | ||
| @@ -14,6 +15,12 @@ namespace WixToolset.Util | |||
| 14 | 15 | ||
| 15 | public override IEnumerable<TableDefinition> TableDefinitions { get => Tables; } | 16 | public override IEnumerable<TableDefinition> TableDefinitions { get => Tables; } |
| 16 | 17 | ||
| 18 | public override bool TryAddTupleToOutput(IntermediateTuple tuple, WindowsInstallerData output) | ||
| 19 | { | ||
| 20 | var columnZeroIsId = tuple.Id != null; | ||
| 21 | return this.BackendHelper.TryAddTupleToOutputMatchingTableDefinitions(tuple, output, this.TableDefinitions, columnZeroIsId); | ||
| 22 | } | ||
| 23 | |||
| 17 | private static TableDefinition[] LoadTables() | 24 | private static TableDefinition[] LoadTables() |
| 18 | { | 25 | { |
| 19 | using (var resourceStream = typeof(UtilWindowsInstallerBackendBinderExtension).Assembly.GetManifestResourceStream("WixToolset.Util.tables.xml")) | 26 | using (var resourceStream = typeof(UtilWindowsInstallerBackendBinderExtension).Assembly.GetManifestResourceStream("WixToolset.Util.tables.xml")) |
diff --git a/src/wixext/WixToolset.Util.wixext.csproj b/src/wixext/WixToolset.Util.wixext.csproj index ed5a6a0f..3cd7b115 100644 --- a/src/wixext/WixToolset.Util.wixext.csproj +++ b/src/wixext/WixToolset.Util.wixext.csproj | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | </ItemGroup> | 19 | </ItemGroup> |
| 20 | 20 | ||
| 21 | <ItemGroup> | 21 | <ItemGroup> |
| 22 | <PackageReference Include="WixToolset.Core" Version="4.0.*" PrivateAssets="all" /> | ||
| 22 | <PackageReference Include="WixToolset.Data" Version="4.0.*" PrivateAssets="all" /> | 23 | <PackageReference Include="WixToolset.Data" Version="4.0.*" PrivateAssets="all" /> |
| 23 | <PackageReference Include="WixToolset.Extensibility" Version="4.0.*" PrivateAssets="all" /> | 24 | <PackageReference Include="WixToolset.Extensibility" Version="4.0.*" PrivateAssets="all" /> |
| 24 | </ItemGroup> | 25 | </ItemGroup> |
diff --git a/src/wixext/tables.xml b/src/wixext/tables.xml index 9f491e56..b8d4246c 100644 --- a/src/wixext/tables.xml +++ b/src/wixext/tables.xml | |||
| @@ -3,8 +3,8 @@ | |||
| 3 | 3 | ||
| 4 | 4 | ||
| 5 | <tableDefinitions xmlns="http://wixtoolset.org/schemas/v4/wi/tables"> | 5 | <tableDefinitions xmlns="http://wixtoolset.org/schemas/v4/wi/tables"> |
| 6 | <tableDefinition name="WixCloseApplication"> | 6 | <tableDefinition name="Wix4CloseApplication" tupleDefinitionName="WixCloseApplication"> |
| 7 | <columnDefinition name="WixCloseApplication" type="string" length="72" primaryKey="yes" modularize="column" | 7 | <columnDefinition name="Wix4CloseApplication" type="string" length="72" primaryKey="yes" modularize="column" |
| 8 | category="identifier" description="Primary key, non-localized token in table."/> | 8 | category="identifier" description="Primary key, non-localized token in table."/> |
| 9 | <columnDefinition name="Target" type="localized" length="0" modularize="property" | 9 | <columnDefinition name="Target" type="localized" length="0" modularize="property" |
| 10 | category="formatted" description="Name of executable to ensure is closed."/> | 10 | category="formatted" description="Name of executable to ensure is closed."/> |
| @@ -23,8 +23,8 @@ | |||
| 23 | <columnDefinition name="Timeout" type="number" length="4" nullable="yes" | 23 | <columnDefinition name="Timeout" type="number" length="4" nullable="yes" |
| 24 | minValue="1" maxValue="2147483647" description="Timeout in milliseconds before scheduling restart or terminating application."/> | 24 | minValue="1" maxValue="2147483647" description="Timeout in milliseconds before scheduling restart or terminating application."/> |
| 25 | </tableDefinition> | 25 | </tableDefinition> |
| 26 | <tableDefinition name="WixRemoveFolderEx" createSymbols="yes"> | 26 | <tableDefinition name="Wix4RemoveFolderEx" tupleDefinitionName="WixRemoveFolderEx" createSymbols="yes"> |
| 27 | <columnDefinition name="WixRemoveFolderEx" type="string" length="72" primaryKey="yes" modularize="column" | 27 | <columnDefinition name="Wix4RemoveFolderEx" type="string" length="72" primaryKey="yes" modularize="column" |
| 28 | category="identifier" description="Identifier for the WixRemoveFolderEx row in the package."/> | 28 | category="identifier" description="Identifier for the WixRemoveFolderEx row in the package."/> |
| 29 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | 29 | <columnDefinition name="Component_" type="string" length="72" modularize="column" |
| 30 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table used to determine install state"/> | 30 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table used to determine install state"/> |
| @@ -33,8 +33,8 @@ | |||
| 33 | <columnDefinition name="InstallMode" type="number" length="2" | 33 | <columnDefinition name="InstallMode" type="number" length="2" |
| 34 | minValue="1" maxValue="3" description="1 == Remove only when the associated component is being installed (msiInstallStateLocal or msiInstallStateSource), 2 == Remove only when the associated component is being removed (msiInstallStateAbsent), 3 = Remove in either of the above cases."/> | 34 | minValue="1" maxValue="3" description="1 == Remove only when the associated component is being installed (msiInstallStateLocal or msiInstallStateSource), 2 == Remove only when the associated component is being removed (msiInstallStateAbsent), 3 = Remove in either of the above cases."/> |
| 35 | </tableDefinition> | 35 | </tableDefinition> |
| 36 | <tableDefinition name="WixRestartResource"> | 36 | <tableDefinition name="Wix4RestartResource" tupleDefinitionName="WixRestartResource"> |
| 37 | <columnDefinition name="WixRestartResource" type="string" length="72" primaryKey="yes" modularize="column" | 37 | <columnDefinition name="Wix4RestartResource" type="string" length="72" primaryKey="yes" modularize="column" |
| 38 | category="identifier" description="Primary key, non-localized identifier."/> | 38 | category="identifier" description="Primary key, non-localized identifier."/> |
| 39 | <columnDefinition name="Component_" type="string" length="72" nullable="yes" modularize="column" | 39 | <columnDefinition name="Component_" type="string" length="72" nullable="yes" modularize="column" |
| 40 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table used to determine install state."/> | 40 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table used to determine install state."/> |
| @@ -43,8 +43,8 @@ | |||
| 43 | <columnDefinition name="Attributes" type="number" length="4" | 43 | <columnDefinition name="Attributes" type="number" length="4" |
| 44 | minValue="0" maxValue="2147483647" description="A 32-bit word that specifies the type of resource and flags used for processing."/> | 44 | minValue="0" maxValue="2147483647" description="A 32-bit word that specifies the type of resource and flags used for processing."/> |
| 45 | </tableDefinition> | 45 | </tableDefinition> |
| 46 | <tableDefinition name="FileShare" createSymbols="yes"> | 46 | <tableDefinition name="Wix4FileShare" tupleDefinitionName="FileShare" createSymbols="yes"> |
| 47 | <columnDefinition name="FileShare" type="string" length="72" primaryKey="yes" modularize="column" | 47 | <columnDefinition name="Wix4FileShare" type="string" length="72" primaryKey="yes" modularize="column" |
| 48 | category="identifier" description="Primary key, non-localized identifier"/> | 48 | category="identifier" description="Primary key, non-localized identifier"/> |
| 49 | <columnDefinition name="ShareName" type="string" length="255" | 49 | <columnDefinition name="ShareName" type="string" length="255" |
| 50 | category="formatted" description="The actual share name used"/> | 50 | category="formatted" description="The actual share name used"/> |
| @@ -54,21 +54,17 @@ | |||
| 54 | category="text" description="Description string displayed for the file share"/> | 54 | category="text" description="Description string displayed for the file share"/> |
| 55 | <columnDefinition name="Directory_" type="string" length="72" modularize="column" | 55 | <columnDefinition name="Directory_" type="string" length="72" modularize="column" |
| 56 | keyTable="Directory" keyColumn="1" category="identifier" description="Foreign key referencing directory that the share is created on"/> | 56 | keyTable="Directory" keyColumn="1" category="identifier" description="Foreign key referencing directory that the share is created on"/> |
| 57 | <columnDefinition name="User_" type="string" length="72" modularize="column" nullable="yes" | ||
| 58 | keyTable="User" keyColumn="1" category="identifier" description="Foreign key, User to give access permissions to"/> | ||
| 59 | <columnDefinition name="Permissions" type="number" length="4" nullable="yes" | ||
| 60 | description="Permissions int, as in EXPLICIT_ACCESS.grfAccessPermissions in MSDN"/> | ||
| 61 | </tableDefinition> | 57 | </tableDefinition> |
| 62 | <tableDefinition name="FileSharePermissions"> | 58 | <tableDefinition name="Wix4FileSharePermissions" tupleDefinitionName="FileSharePermissions"> |
| 63 | <columnDefinition name="FileShare_" type="string" length="72" primaryKey="yes" modularize="column" | 59 | <columnDefinition name="Wix4FileShare_" type="string" length="72" primaryKey="yes" modularize="column" |
| 64 | keyTable="FileShare" keyColumn="1" category="identifier" description="FileShare that these premissions are to be applied to."/> | 60 | keyTable="FileShare" keyColumn="1" category="identifier" description="FileShare that these premissions are to be applied to."/> |
| 65 | <columnDefinition name="User_" type="string" length="72" primaryKey="yes" modularize="column" | 61 | <columnDefinition name="Wix4User_" type="string" length="72" primaryKey="yes" modularize="column" |
| 66 | category="identifier" description="User that these premissions are to apply to."/> | 62 | keyTable="Wix4User" category="identifier" description="User that these premissions are to apply to."/> |
| 67 | <columnDefinition name="Permissions" type="number" length="4" | 63 | <columnDefinition name="Permissions" type="number" length="4" |
| 68 | description="Permissions int, as in EXPLICIT_ACCESS.grfAccessPermissions in MSDN"/> | 64 | description="Permissions int, as in EXPLICIT_ACCESS.grfAccessPermissions in MSDN"/> |
| 69 | </tableDefinition> | 65 | </tableDefinition> |
| 70 | <tableDefinition name="Group" createSymbols="yes"> | 66 | <tableDefinition name="Wix4Group" tupleDefinitionName="Group" createSymbols="yes"> |
| 71 | <columnDefinition name="Group" type="string" length="72" primaryKey="yes" modularize="column" | 67 | <columnDefinition name="Wix4Group" type="string" length="72" primaryKey="yes" modularize="column" |
| 72 | category="identifier" description="Primary key, non-localized token"/> | 68 | category="identifier" description="Primary key, non-localized token"/> |
| 73 | <columnDefinition name="Component_" type="string" length="72" nullable="yes" modularize="column" | 69 | <columnDefinition name="Component_" type="string" length="72" nullable="yes" modularize="column" |
| 74 | keyTable="Component" keyColumn="1" category="text" description="Foreign key, Component used to determine install state"/> | 70 | keyTable="Component" keyColumn="1" category="text" description="Foreign key, Component used to determine install state"/> |
| @@ -77,8 +73,8 @@ | |||
| 77 | <columnDefinition name="Domain" type="string" length="255" nullable="yes" modularize="property" | 73 | <columnDefinition name="Domain" type="string" length="255" nullable="yes" modularize="property" |
| 78 | category="formatted" description="Group domain"/> | 74 | category="formatted" description="Group domain"/> |
| 79 | </tableDefinition> | 75 | </tableDefinition> |
| 80 | <tableDefinition name="WixInternetShortcut" createSymbols="yes"> | 76 | <tableDefinition name="Wix4InternetShortcut" tupleDefinitionName="WixInternetShortcut" createSymbols="yes"> |
| 81 | <columnDefinition name="WixInternetShortcut" type="string" length="72" primaryKey="yes" modularize="column" | 77 | <columnDefinition name="Wix4InternetShortcut" type="string" length="72" primaryKey="yes" modularize="column" |
| 82 | category="identifier" description="Primary key, non-localized token in table."/> | 78 | category="identifier" description="Primary key, non-localized token in table."/> |
| 83 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | 79 | <columnDefinition name="Component_" type="string" length="72" modularize="column" |
| 84 | keyTable="Component" keyColumn="1" category="text" description="Foreign key, Component used to determine install state"/> | 80 | keyTable="Component" keyColumn="1" category="text" description="Foreign key, Component used to determine install state"/> |
| @@ -95,8 +91,8 @@ | |||
| 95 | <columnDefinition name="IconIndex" type="number" length="4" | 91 | <columnDefinition name="IconIndex" type="number" length="4" |
| 96 | nullable="yes" description="Index of the icon being referenced."/> | 92 | nullable="yes" description="Index of the icon being referenced."/> |
| 97 | </tableDefinition> | 93 | </tableDefinition> |
| 98 | <tableDefinition name="PerformanceCategory"> | 94 | <tableDefinition name="Wix4PerformanceCategory" tupleDefinitionName="PerformanceCategory"> |
| 99 | <columnDefinition name="PerformanceCategory" type="string" length="72" primaryKey="yes" modularize="column" | 95 | <columnDefinition name="Wix4PerformanceCategory" type="string" length="72" primaryKey="yes" modularize="column" |
| 100 | category="identifier" description="Primary key, non-localized token in table."/> | 96 | category="identifier" description="Primary key, non-localized token in table."/> |
| 101 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | 97 | <columnDefinition name="Component_" type="string" length="72" modularize="column" |
| 102 | keyTable="Component" keyColumn="1" category="identifier" description="Component used to determine install state"/> | 98 | keyTable="Component" keyColumn="1" category="identifier" description="Component used to determine install state"/> |
| @@ -107,7 +103,7 @@ | |||
| 107 | <columnDefinition name="ConstantData" type="localized" length="0" escapeIdtCharacters="yes" | 103 | <columnDefinition name="ConstantData" type="localized" length="0" escapeIdtCharacters="yes" |
| 108 | category="text" description="Data that goes into the performance counter .h file."/> | 104 | category="text" description="Data that goes into the performance counter .h file."/> |
| 109 | </tableDefinition> | 105 | </tableDefinition> |
| 110 | <tableDefinition name="Perfmon"> | 106 | <tableDefinition name="Wix4Perfmon" tupleDefinitionName="Perfmon"> |
| 111 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" | 107 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" |
| 112 | keyTable="Component" keyColumn="1" category="identifier" description="Component used to determine install state"/> | 108 | keyTable="Component" keyColumn="1" category="identifier" description="Component used to determine install state"/> |
| 113 | <columnDefinition name="File" type="string" length="72" primaryKey="yes" modularize="property" | 109 | <columnDefinition name="File" type="string" length="72" primaryKey="yes" modularize="property" |
| @@ -115,7 +111,7 @@ | |||
| 115 | <columnDefinition name="Name" type="string" length="72" primaryKey="yes" | 111 | <columnDefinition name="Name" type="string" length="72" primaryKey="yes" |
| 116 | category="text" description="Service name in registry"/> | 112 | category="text" description="Service name in registry"/> |
| 117 | </tableDefinition> | 113 | </tableDefinition> |
| 118 | <tableDefinition name="PerfmonManifest"> | 114 | <tableDefinition name="Wix4PerfmonManifest" tupleDefinitionName="PerfmonManifest"> |
| 119 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" | 115 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" |
| 120 | keyTable="Component" keyColumn="1" category="identifier" description="Component used to determine install state"/> | 116 | keyTable="Component" keyColumn="1" category="identifier" description="Component used to determine install state"/> |
| 121 | <columnDefinition name="File" type="string" length="72" primaryKey="yes" modularize="property" | 117 | <columnDefinition name="File" type="string" length="72" primaryKey="yes" modularize="property" |
| @@ -123,27 +119,27 @@ | |||
| 123 | <columnDefinition name="ResourceFileDirectory" type="string" length="255" primaryKey="yes" | 119 | <columnDefinition name="ResourceFileDirectory" type="string" length="255" primaryKey="yes" |
| 124 | category="formatted" description="The path of the Resource File Directory"/> | 120 | category="formatted" description="The path of the Resource File Directory"/> |
| 125 | </tableDefinition> | 121 | </tableDefinition> |
| 126 | <tableDefinition name="EventManifest"> | 122 | <tableDefinition name="Wix4EventManifest" tupleDefinitionName="EventManifest"> |
| 127 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" | 123 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" |
| 128 | keyTable="Component" keyColumn="1" category="identifier" description="Component used to determine install state"/> | 124 | keyTable="Component" keyColumn="1" category="identifier" description="Component used to determine install state"/> |
| 129 | <columnDefinition name="File" type="string" length="72" primaryKey="yes" modularize="property" | 125 | <columnDefinition name="File" type="string" length="72" primaryKey="yes" modularize="property" |
| 130 | category="formatted" description="Name of event manifest file"/> | 126 | category="formatted" description="Name of event manifest file"/> |
| 131 | </tableDefinition> | 127 | </tableDefinition> |
| 132 | <tableDefinition name="SecureObjects"> | 128 | <tableDefinition name="Wix4SecureObject" tupleDefinitionName="SecureObjects"> |
| 133 | <columnDefinition name="SecureObject" type="string" length="72" primaryKey="yes" modularize="column" | 129 | <columnDefinition name="Wix4SecureObject" type="string" length="72" primaryKey="yes" modularize="column" |
| 134 | category="identifier" description="Primary key, non-localized token in Table"/> | 130 | category="identifier" description="Primary key, non-localized token in Table"/> |
| 135 | <columnDefinition name="Table" type="string" length="32" primaryKey="yes" | 131 | <columnDefinition name="Table" type="string" length="32" primaryKey="yes" |
| 136 | category="text" description="Table SecureObject should be securing"/> | 132 | category="text" description="Table SecureObject should be securing"/> |
| 137 | <columnDefinition name="Domain" type="string" length="255" primaryKey="yes" nullable="yes" modularize="property" | 133 | <columnDefinition name="Domain" type="string" length="255" primaryKey="yes" nullable="yes" modularize="property" |
| 138 | category="text" description="Domain half of user account to secure"/> | 134 | category="text" description="Domain half of user account to secure"/> |
| 139 | <columnDefinition name="User" type="string" length="255" primaryKey="yes" modularize="property" | 135 | <columnDefinition name="User" type="string" length="255" primaryKey="yes" modularize="property" |
| 140 | category="text" description="Username half of user account to secure"/> | 136 | category="text" description="User name half of user account to secure"/> |
| 141 | <columnDefinition name="Permission" type="number" length="4" nullable="yes" | 137 | <columnDefinition name="Permission" type="number" length="4" nullable="yes" |
| 142 | minValue="-2147483647" maxValue="2147483647" description="Permissions to grant to User"/> | 138 | minValue="-2147483647" maxValue="2147483647" description="Permissions to grant to User"/> |
| 143 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | 139 | <columnDefinition name="Component_" type="string" length="72" modularize="column" |
| 144 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table used to determine install state"/> | 140 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table used to determine install state"/> |
| 145 | </tableDefinition> | 141 | </tableDefinition> |
| 146 | <tableDefinition name="ServiceConfig"> | 142 | <tableDefinition name="Wix4ServiceConfig" tupleDefinitionName="ServiceConfig"> |
| 147 | <columnDefinition name="ServiceName" type="string" length="72" primaryKey="yes" | 143 | <columnDefinition name="ServiceName" type="string" length="72" primaryKey="yes" |
| 148 | category="formatted" description="Primary key, non-localized token"/> | 144 | category="formatted" description="Primary key, non-localized token"/> |
| 149 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | 145 | <columnDefinition name="Component_" type="string" length="72" modularize="column" |
| @@ -165,9 +161,9 @@ | |||
| 165 | <columnDefinition name="RebootMessage" type="string" length="255" nullable="yes" | 161 | <columnDefinition name="RebootMessage" type="string" length="255" nullable="yes" |
| 166 | category="text" description="Message to show to users when rebooting if failure action is REBOOT."/> | 162 | category="text" description="Message to show to users when rebooting if failure action is REBOOT."/> |
| 167 | </tableDefinition> | 163 | </tableDefinition> |
| 168 | <tableDefinition name="WixTouchFile" createSymbols="yes"> | 164 | <tableDefinition name="Wix4TouchFile" tupleDefinitionName="WixTouchFile" createSymbols="yes"> |
| 169 | <columnDefinition name="WixTouchFile" type="string" length="72" primaryKey="yes" modularize="column" | 165 | <columnDefinition name="Wix4TouchFile" type="string" length="72" primaryKey="yes" modularize="column" |
| 170 | category="identifier" description="Identifier for the WixTouchFile row in the package."/> | 166 | category="identifier" description="Identifier for the Wix4TouchFile row in the package."/> |
| 171 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | 167 | <columnDefinition name="Component_" type="string" length="72" modularize="column" |
| 172 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table used to determine install state"/> | 168 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table used to determine install state"/> |
| 173 | <columnDefinition name="Path" type="string" length="255" modularize="property" | 169 | <columnDefinition name="Path" type="string" length="255" modularize="property" |
| @@ -175,8 +171,8 @@ | |||
| 175 | <columnDefinition name="Attributes" type="number" length="2" | 171 | <columnDefinition name="Attributes" type="number" length="2" |
| 176 | minValue="1" maxValue="63" description="1 == Touch only when the associated component is being installed, 2 == Touch only when the associated component is being repaired , 4 == Touch only when the associated component is being removed, 16 = path is in 64-bit location, 32 = touching the file is vital."/> | 172 | minValue="1" maxValue="63" description="1 == Touch only when the associated component is being installed, 2 == Touch only when the associated component is being repaired , 4 == Touch only when the associated component is being removed, 16 = path is in 64-bit location, 32 = touching the file is vital."/> |
| 177 | </tableDefinition> | 173 | </tableDefinition> |
| 178 | <tableDefinition name="User" createSymbols="yes"> | 174 | <tableDefinition name="Wix4User" tupleDefinitionName="User" createSymbols="yes"> |
| 179 | <columnDefinition name="User" type="string" length="72" primaryKey="yes" modularize="column" | 175 | <columnDefinition name="Wix4User" type="string" length="72" primaryKey="yes" modularize="column" |
| 180 | category="identifier" description="Primary key, non-localized token"/> | 176 | category="identifier" description="Primary key, non-localized token"/> |
| 181 | <columnDefinition name="Component_" type="string" length="72" nullable="yes" modularize="column" | 177 | <columnDefinition name="Component_" type="string" length="72" nullable="yes" modularize="column" |
| 182 | keyTable="Component" keyColumn="1" category="text" description="Foreign key, Component used to determine install state"/> | 178 | keyTable="Component" keyColumn="1" category="text" description="Foreign key, Component used to determine install state"/> |
| @@ -189,14 +185,14 @@ | |||
| 189 | <columnDefinition name="Attributes" type="number" length="4" nullable="yes" | 185 | <columnDefinition name="Attributes" type="number" length="4" nullable="yes" |
| 190 | minValue="0" maxValue="65535" description="Attributes describing how to create the user"/> | 186 | minValue="0" maxValue="65535" description="Attributes describing how to create the user"/> |
| 191 | </tableDefinition> | 187 | </tableDefinition> |
| 192 | <tableDefinition name="UserGroup"> | 188 | <tableDefinition name="Wix4UserGroup" tupleDefinitionName="UserGroup"> |
| 193 | <columnDefinition name="User_" type="string" length="72" primaryKey="yes" modularize="column" | 189 | <columnDefinition name="Wix4User_" type="string" length="72" primaryKey="yes" modularize="column" |
| 194 | keyTable="User" keyColumn="1" category="identifier" description="User to be joined to a Group."/> | 190 | keyTable="Wix4User" keyColumn="1" category="identifier" description="User to be joined to a Group."/> |
| 195 | <columnDefinition name="Group_" type="string" length="72" primaryKey="yes" modularize="column" | 191 | <columnDefinition name="Wix4Group_" type="string" length="72" primaryKey="yes" modularize="column" |
| 196 | keyTable="Group" keyColumn="1" category="identifier" description="User to be joined to a Group."/> | 192 | keyTable="Wix4Group" keyColumn="1" category="identifier" description="Group to join User to."/> |
| 197 | </tableDefinition> | 193 | </tableDefinition> |
| 198 | <tableDefinition name="XmlFile"> | 194 | <tableDefinition name="Wix4XmlFile" tupleDefinitionName="XmlFile"> |
| 199 | <columnDefinition name="XmlFile" type="string" length="72" primaryKey="yes" modularize="column" | 195 | <columnDefinition name="Wix4XmlFile" type="string" length="72" primaryKey="yes" modularize="column" |
| 200 | category="identifier" description="Primary key, non-localized token."/> | 196 | category="identifier" description="Primary key, non-localized token."/> |
| 201 | <columnDefinition name="File" type="localized" length="255" modularize="property" | 197 | <columnDefinition name="File" type="localized" length="255" modularize="property" |
| 202 | category="formatted" description="The .XML file in which to write the information"/> | 198 | category="formatted" description="The .XML file in which to write the information"/> |
| @@ -213,13 +209,13 @@ | |||
| 213 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | 209 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" |
| 214 | description="Order to execute the XML modifications."/> | 210 | description="Order to execute the XML modifications."/> |
| 215 | </tableDefinition> | 211 | </tableDefinition> |
| 216 | <tableDefinition name="XmlConfig" createSymbols="yes"> | 212 | <tableDefinition name="Wix4XmlConfig" tupleDefinitionName="XmlConfig" createSymbols="yes"> |
| 217 | <columnDefinition name="XmlConfig" type="string" length="72" primaryKey="yes" modularize="column" | 213 | <columnDefinition name="Wix4XmlConfig" type="string" length="72" primaryKey="yes" modularize="column" |
| 218 | category="identifier" description="Primary key, non-localized token."/> | 214 | category="identifier" description="Primary key, non-localized token."/> |
| 219 | <columnDefinition name="File" type="localized" length="255" modularize="property" | 215 | <columnDefinition name="File" type="localized" length="255" modularize="property" |
| 220 | category="formatted" description="The .XML file in which to write the information"/> | 216 | category="formatted" description="The .XML file in which to write the information"/> |
| 221 | <columnDefinition name="ElementPath" type="localized" length="0" modularize="property" | 217 | <columnDefinition name="ElementPath" type="localized" length="0" modularize="property" |
| 222 | category="formatted" description="The XPATH query for an element to modify or add children to. Can also be a foreign key reference to another XmlConfig row if no attributes are set and the row referenced is a create element row."/> | 218 | category="formatted" description="The XPATH query for an element to modify or add children to. Can also be a foreign key reference to another Wix4XmlConfig row if no attributes are set and the row referenced is a create element row."/> |
| 223 | <columnDefinition name="VerifyPath" type="localized" length="0" modularize="property" nullable="yes" | 219 | <columnDefinition name="VerifyPath" type="localized" length="0" modularize="property" nullable="yes" |
| 224 | category="formatted" description="The XPATH query run from ElementPath to verify whether a repair is necessary. Also used to uninstall."/> | 220 | category="formatted" description="The XPATH query run from ElementPath to verify whether a repair is necessary. Also used to uninstall."/> |
| 225 | <columnDefinition name="Name" type="localized" length="255" modularize="property" nullable="yes" | 221 | <columnDefinition name="Name" type="localized" length="255" modularize="property" nullable="yes" |
| @@ -233,7 +229,7 @@ | |||
| 233 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | 229 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" |
| 234 | description="Order to execute the XML modifications."/> | 230 | description="Order to execute the XML modifications."/> |
| 235 | </tableDefinition> | 231 | </tableDefinition> |
| 236 | <tableDefinition name="WixFormatFiles"> | 232 | <tableDefinition name="Wix4FormatFile" tupleDefinitionName="WixFormatFile"> |
| 237 | <columnDefinition name="Binary_" type="string" length="72" primaryKey="yes" modularize="column" | 233 | <columnDefinition name="Binary_" type="string" length="72" primaryKey="yes" modularize="column" |
| 238 | keyTable="Binary" keyColumn="1" category="identifier" description="Binary data to be formatted."/> | 234 | keyTable="Binary" keyColumn="1" category="identifier" description="Binary data to be formatted."/> |
| 239 | <columnDefinition name="File_" type="string" length="72" primaryKey="yes" modularize="column" | 235 | <columnDefinition name="File_" type="string" length="72" primaryKey="yes" modularize="column" |
diff --git a/src/wixlib/UtilExtension.wxs b/src/wixlib/UtilExtension.wxs index e77b529b..28646ee1 100644 --- a/src/wixlib/UtilExtension.wxs +++ b/src/wixlib/UtilExtension.wxs | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | 3 | ||
| 4 | 4 | ||
| 5 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | 5 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> |
| 6 | <?include caDecor.wxi ?> | ||
| 6 | <?include caerr.wxi ?> | 7 | <?include caerr.wxi ?> |
| 7 | 8 | ||
| 8 | <Fragment> | 9 | <Fragment> |
| @@ -63,368 +64,358 @@ | |||
| 63 | </Fragment> | 64 | </Fragment> |
| 64 | 65 | ||
| 65 | <Fragment> | 66 | <Fragment> |
| 66 | <CustomAction Id="WixFailWhenDeferred" BinaryKey="UtilCA" DllEntry="WixFailWhenDeferred" Execute="deferred" Return="check" SuppressModularization="yes" /> | 67 | <CustomAction Id="$(var.Prefix)FailWhenDeferred$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixFailWhenDeferred" Execute="deferred" Return="check" SuppressModularization="yes" /> |
| 67 | 68 | ||
| 68 | <InstallExecuteSequence> | 69 | <InstallExecuteSequence> |
| 69 | <Custom Action="WixFailWhenDeferred" Before="InstallFinalize" Overridable="yes">WIXFAILWHENDEFERRED=1 AND VersionNT > 400</Custom> | 70 | <Custom Action="$(var.Prefix)FailWhenDeferred$(var.Suffix)" Before="InstallFinalize" Overridable="yes">WIXFAILWHENDEFERRED=1 AND VersionNT > 400</Custom> |
| 70 | </InstallExecuteSequence> | 71 | </InstallExecuteSequence> |
| 71 | </Fragment> | 72 | </Fragment> |
| 72 | 73 | ||
| 73 | <Fragment> | 74 | <Fragment> |
| 74 | <CustomAction Id="WixWaitForEvent" BinaryKey="UtilCA" DllEntry="WixWaitForEvent" Execute="immediate" Return="check" SuppressModularization="yes" /> | 75 | <CustomAction Id="$(var.Prefix)WaitForEvent$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixWaitForEvent" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 75 | 76 | ||
| 76 | <InstallExecuteSequence> | 77 | <InstallExecuteSequence> |
| 77 | <Custom Action="WixWaitForEvent" Before="InstallFinalize" Overridable="yes" /> | 78 | <Custom Action="$(var.Prefix)WaitForEvent$(var.Suffix)" Before="InstallFinalize" Overridable="yes" /> |
| 78 | </InstallExecuteSequence> | 79 | </InstallExecuteSequence> |
| 79 | </Fragment> | 80 | </Fragment> |
| 80 | 81 | ||
| 81 | <Fragment> | 82 | <Fragment> |
| 82 | <CustomAction Id="WixWaitForEventDeferred" BinaryKey="UtilCA" DllEntry="WixWaitForEvent" Execute="deferred" Return="check" SuppressModularization="yes" /> | 83 | <CustomAction Id="$(var.Prefix)WaitForEventDeferred$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixWaitForEvent" Execute="deferred" Return="check" SuppressModularization="yes" /> |
| 83 | 84 | ||
| 84 | <InstallExecuteSequence> | 85 | <InstallExecuteSequence> |
| 85 | <Custom Action="WixWaitForEventDeferred" After="InstallInitialize" Overridable="yes" /> | 86 | <Custom Action="$(var.Prefix)WaitForEventDeferred$(var.Suffix)" After="InstallInitialize" Overridable="yes" /> |
| 86 | </InstallExecuteSequence> | 87 | </InstallExecuteSequence> |
| 87 | </Fragment> | 88 | </Fragment> |
| 88 | 89 | ||
| 89 | <Fragment> | 90 | <Fragment> |
| 90 | <CustomAction Id="WixExitEarlyWithSuccess" BinaryKey="UtilCA" DllEntry="WixExitEarlyWithSuccess" Execute="immediate" Return="check" SuppressModularization="yes" /> | 91 | <CustomAction Id="$(var.Prefix)ExitEarlyWithSuccess$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixExitEarlyWithSuccess" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 91 | 92 | ||
| 92 | <InstallExecuteSequence> | 93 | <InstallExecuteSequence> |
| 93 | <Custom Action="WixExitEarlyWithSuccess" After="FindRelatedProducts" Overridable="yes">NEWERVERSIONDETECTED AND VersionNT > 400</Custom> | 94 | <Custom Action="$(var.Prefix)ExitEarlyWithSuccess$(var.Suffix)" After="FindRelatedProducts" Overridable="yes">NEWERVERSIONDETECTED AND VersionNT > 400</Custom> |
| 94 | </InstallExecuteSequence> | 95 | </InstallExecuteSequence> |
| 95 | </Fragment> | 96 | </Fragment> |
| 96 | 97 | ||
| 97 | <Fragment> | 98 | <Fragment> |
| 98 | <CustomAction Id="WixRemoveFoldersEx" BinaryKey="UtilCA" DllEntry="WixRemoveFoldersEx" Execute="immediate" Return="ignore" /> | 99 | <CustomAction Id="$(var.Prefix)RemoveFoldersEx$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixRemoveFoldersEx" Execute="immediate" Return="ignore" /> |
| 99 | 100 | ||
| 100 | <InstallExecuteSequence> | 101 | <InstallExecuteSequence> |
| 101 | <Custom Action="WixRemoveFoldersEx" Before="CostInitialize" /> | 102 | <Custom Action="$(var.Prefix)RemoveFoldersEx$(var.Suffix)" Before="CostInitialize" /> |
| 102 | </InstallExecuteSequence> | 103 | </InstallExecuteSequence> |
| 103 | </Fragment> | 104 | </Fragment> |
| 104 | 105 | ||
| 105 | <Fragment> | 106 | <Fragment> |
| 106 | <CustomAction Id="WixBroadcastSettingChange" BinaryKey="UtilCA" DllEntry="WixBroadcastSettingChange" Execute="immediate" Return="ignore" SuppressModularization="yes" /> | 107 | <CustomAction Id="$(var.Prefix)BroadcastSettingChange$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixBroadcastSettingChange" Execute="immediate" Return="ignore" SuppressModularization="yes" /> |
| 107 | 108 | ||
| 108 | <InstallExecuteSequence> | 109 | <InstallExecuteSequence> |
| 109 | <Custom Action="WixBroadcastSettingChange" After="InstallFinalize" Overridable="yes" /> | 110 | <Custom Action="$(var.Prefix)BroadcastSettingChange$(var.Suffix)" After="InstallFinalize" Overridable="yes" /> |
| 110 | </InstallExecuteSequence> | 111 | </InstallExecuteSequence> |
| 111 | </Fragment> | 112 | </Fragment> |
| 112 | 113 | ||
| 113 | <Fragment> | 114 | <Fragment> |
| 114 | <CustomAction Id="WixBroadcastEnvironmentChange" BinaryKey="UtilCA" DllEntry="WixBroadcastEnvironmentChange" Execute="immediate" Return="ignore" SuppressModularization="yes" /> | 115 | <CustomAction Id="$(var.Prefix)BroadcastEnvironmentChange$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixBroadcastEnvironmentChange" Execute="immediate" Return="ignore" SuppressModularization="yes" /> |
| 115 | 116 | ||
| 116 | <InstallExecuteSequence> | 117 | <InstallExecuteSequence> |
| 117 | <Custom Action="WixBroadcastEnvironmentChange" After="InstallFinalize" Overridable="yes" /> | 118 | <Custom Action="$(var.Prefix)BroadcastEnvironmentChange$(var.Suffix)" After="InstallFinalize" Overridable="yes" /> |
| 118 | </InstallExecuteSequence> | 119 | </InstallExecuteSequence> |
| 119 | </Fragment> | 120 | </Fragment> |
| 120 | 121 | ||
| 121 | <!-- WiX OS-detection properties and custom action --> | 122 | <!-- WiX OS-detection properties and custom action --> |
| 122 | <Fragment> | 123 | <Fragment> |
| 123 | <CustomAction Id="WixQueryOsInfo" BinaryKey="UtilCA" DllEntry="WixQueryOsInfo" Execute="firstSequence" Return="check" SuppressModularization="yes" /> | 124 | <CustomAction Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsInfo" Execute="firstSequence" Return="check" SuppressModularization="yes" /> |
| 124 | 125 | ||
| 125 | <InstallExecuteSequence> | 126 | <InstallExecuteSequence> |
| 126 | <Custom Action="WixQueryOsInfo" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> | 127 | <Custom Action="$(var.Prefix)QueryOsInfo$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> |
| 127 | </InstallExecuteSequence> | 128 | </InstallExecuteSequence> |
| 128 | 129 | ||
| 129 | <InstallUISequence> | 130 | <InstallUISequence> |
| 130 | <Custom Action="WixQueryOsInfo" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> | 131 | <Custom Action="$(var.Prefix)QueryOsInfo$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> |
| 131 | </InstallUISequence> | 132 | </InstallUISequence> |
| 132 | </Fragment> | 133 | </Fragment> |
| 133 | 134 | ||
| 134 | <Fragment> | 135 | <Fragment> |
| 135 | <Property Id="WIX_SUITE_BACKOFFICE" Secure="yes" /> | 136 | <Property Id="WIX_SUITE_BACKOFFICE" Secure="yes" /> |
| 136 | <CustomActionRef Id="WixQueryOsInfo" /> | 137 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 137 | </Fragment> | 138 | </Fragment> |
| 138 | <Fragment> | 139 | <Fragment> |
| 139 | <Property Id="WIX_SUITE_BLADE" Secure="yes" /> | 140 | <Property Id="WIX_SUITE_BLADE" Secure="yes" /> |
| 140 | <CustomActionRef Id="WixQueryOsInfo" /> | 141 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 141 | </Fragment> | 142 | </Fragment> |
| 142 | <Fragment> | 143 | <Fragment> |
| 143 | <Property Id="WIX_SUITE_COMMUNICATIONS" Secure="yes" /> | 144 | <Property Id="WIX_SUITE_COMMUNICATIONS" Secure="yes" /> |
| 144 | <CustomActionRef Id="WixQueryOsInfo" /> | 145 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 145 | </Fragment> | 146 | </Fragment> |
| 146 | <Fragment> | 147 | <Fragment> |
| 147 | <Property Id="WIX_SUITE_COMPUTE_SERVER" Secure="yes" /> | 148 | <Property Id="WIX_SUITE_COMPUTE_SERVER" Secure="yes" /> |
| 148 | <CustomActionRef Id="WixQueryOsInfo" /> | 149 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 149 | </Fragment> | 150 | </Fragment> |
| 150 | <Fragment> | 151 | <Fragment> |
| 151 | <Property Id="WIX_SUITE_DATACENTER" Secure="yes" /> | 152 | <Property Id="WIX_SUITE_DATACENTER" Secure="yes" /> |
| 152 | <CustomActionRef Id="WixQueryOsInfo" /> | 153 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 153 | </Fragment> | 154 | </Fragment> |
| 154 | <Fragment> | 155 | <Fragment> |
| 155 | <Property Id="WIX_SUITE_EMBEDDED_RESTRICTED" Secure="yes" /> | 156 | <Property Id="WIX_SUITE_EMBEDDED_RESTRICTED" Secure="yes" /> |
| 156 | <CustomActionRef Id="WixQueryOsInfo" /> | 157 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 157 | </Fragment> | 158 | </Fragment> |
| 158 | <Fragment> | 159 | <Fragment> |
| 159 | <Property Id="WIX_SUITE_EMBEDDEDNT" Secure="yes" /> | 160 | <Property Id="WIX_SUITE_EMBEDDEDNT" Secure="yes" /> |
| 160 | <CustomActionRef Id="WixQueryOsInfo" /> | 161 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 161 | </Fragment> | 162 | </Fragment> |
| 162 | <Fragment> | 163 | <Fragment> |
| 163 | <Property Id="WIX_SUITE_ENTERPRISE" Secure="yes" /> | 164 | <Property Id="WIX_SUITE_ENTERPRISE" Secure="yes" /> |
| 164 | <CustomActionRef Id="WixQueryOsInfo" /> | 165 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 165 | </Fragment> | 166 | </Fragment> |
| 166 | <Fragment> | 167 | <Fragment> |
| 167 | <Property Id="WIX_SUITE_MEDIACENTER" Secure="yes" /> | 168 | <Property Id="WIX_SUITE_MEDIACENTER" Secure="yes" /> |
| 168 | <CustomActionRef Id="WixQueryOsInfo" /> | 169 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 169 | </Fragment> | 170 | </Fragment> |
| 170 | <Fragment> | 171 | <Fragment> |
| 171 | <Property Id="WIX_SUITE_PERSONAL" Secure="yes" /> | 172 | <Property Id="WIX_SUITE_PERSONAL" Secure="yes" /> |
| 172 | <CustomActionRef Id="WixQueryOsInfo" /> | 173 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 173 | </Fragment> | 174 | </Fragment> |
| 174 | <Fragment> | 175 | <Fragment> |
| 175 | <Property Id="WIX_SUITE_SECURITY_APPLIANCE" Secure="yes" /> | 176 | <Property Id="WIX_SUITE_SECURITY_APPLIANCE" Secure="yes" /> |
| 176 | <CustomActionRef Id="WixQueryOsInfo" /> | 177 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 177 | </Fragment> | 178 | </Fragment> |
| 178 | <Fragment> | 179 | <Fragment> |
| 179 | <Property Id="WIX_SUITE_SERVERR2" Secure="yes" /> | 180 | <Property Id="WIX_SUITE_SERVERR2" Secure="yes" /> |
| 180 | <CustomActionRef Id="WixQueryOsInfo" /> | 181 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 181 | </Fragment> | 182 | </Fragment> |
| 182 | <Fragment> | 183 | <Fragment> |
| 183 | <Property Id="WIX_SUITE_SINGLEUSERTS" Secure="yes" /> | 184 | <Property Id="WIX_SUITE_SINGLEUSERTS" Secure="yes" /> |
| 184 | <CustomActionRef Id="WixQueryOsInfo" /> | 185 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 185 | </Fragment> | 186 | </Fragment> |
| 186 | <Fragment> | 187 | <Fragment> |
| 187 | <Property Id="WIX_SUITE_SMALLBUSINESS" Secure="yes" /> | 188 | <Property Id="WIX_SUITE_SMALLBUSINESS" Secure="yes" /> |
| 188 | <CustomActionRef Id="WixQueryOsInfo" /> | 189 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 189 | </Fragment> | 190 | </Fragment> |
| 190 | <Fragment> | 191 | <Fragment> |
| 191 | <Property Id="WIX_SUITE_SMALLBUSINESS_RESTRICTED" Secure="yes" /> | 192 | <Property Id="WIX_SUITE_SMALLBUSINESS_RESTRICTED" Secure="yes" /> |
| 192 | <CustomActionRef Id="WixQueryOsInfo" /> | 193 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 193 | </Fragment> | 194 | </Fragment> |
| 194 | <Fragment> | 195 | <Fragment> |
| 195 | <Property Id="WIX_SUITE_STARTER" Secure="yes" /> | 196 | <Property Id="WIX_SUITE_STARTER" Secure="yes" /> |
| 196 | <CustomActionRef Id="WixQueryOsInfo" /> | 197 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 197 | </Fragment> | 198 | </Fragment> |
| 198 | <Fragment> | 199 | <Fragment> |
| 199 | <Property Id="WIX_SUITE_STORAGE_SERVER" Secure="yes" /> | 200 | <Property Id="WIX_SUITE_STORAGE_SERVER" Secure="yes" /> |
| 200 | <CustomActionRef Id="WixQueryOsInfo" /> | 201 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 201 | </Fragment> | 202 | </Fragment> |
| 202 | <Fragment> | 203 | <Fragment> |
| 203 | <Property Id="WIX_SUITE_TABLETPC" Secure="yes" /> | 204 | <Property Id="WIX_SUITE_TABLETPC" Secure="yes" /> |
| 204 | <CustomActionRef Id="WixQueryOsInfo" /> | 205 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 205 | </Fragment> | 206 | </Fragment> |
| 206 | <Fragment> | 207 | <Fragment> |
| 207 | <Property Id="WIX_SUITE_TERMINAL" Secure="yes" /> | 208 | <Property Id="WIX_SUITE_TERMINAL" Secure="yes" /> |
| 208 | <CustomActionRef Id="WixQueryOsInfo" /> | 209 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 209 | </Fragment> | 210 | </Fragment> |
| 210 | <Fragment> | 211 | <Fragment> |
| 211 | <Property Id="WIX_SUITE_WH_SERVER" Secure="yes" /> | 212 | <Property Id="WIX_SUITE_WH_SERVER" Secure="yes" /> |
| 212 | <CustomActionRef Id="WixQueryOsInfo" /> | 213 | <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" /> |
| 213 | </Fragment> | 214 | </Fragment> |
| 214 | 215 | ||
| 215 | <Fragment> | 216 | <Fragment> |
| 216 | <CustomAction Id="WixQueryOsDirs" BinaryKey="UtilCA" DllEntry="WixQueryOsDirs" Execute="firstSequence" Return="check" SuppressModularization="yes" /> | 217 | <CustomAction Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsDirs" Execute="firstSequence" Return="check" SuppressModularization="yes" /> |
| 217 | 218 | ||
| 218 | <InstallExecuteSequence> | 219 | <InstallExecuteSequence> |
| 219 | <Custom Action="WixQueryOsDirs" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> | 220 | <Custom Action="$(var.Prefix)QueryOsDirs$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> |
| 220 | </InstallExecuteSequence> | 221 | </InstallExecuteSequence> |
| 221 | 222 | ||
| 222 | <InstallUISequence> | 223 | <InstallUISequence> |
| 223 | <Custom Action="WixQueryOsDirs" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> | 224 | <Custom Action="$(var.Prefix)QueryOsDirs$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> |
| 224 | </InstallUISequence> | 225 | </InstallUISequence> |
| 225 | </Fragment> | 226 | </Fragment> |
| 226 | 227 | ||
| 227 | <Fragment> | 228 | <Fragment> |
| 228 | <Property Id="WIX_DIR_ADMINTOOLS" Secure="yes" /> | 229 | <Property Id="WIX_DIR_ADMINTOOLS" Secure="yes" /> |
| 229 | <CustomActionRef Id="WixQueryOsDirs" /> | 230 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 230 | </Fragment> | 231 | </Fragment> |
| 231 | <Fragment> | 232 | <Fragment> |
| 232 | <Property Id="WIX_DIR_ALTSTARTUP" Secure="yes" /> | 233 | <Property Id="WIX_DIR_ALTSTARTUP" Secure="yes" /> |
| 233 | <CustomActionRef Id="WixQueryOsDirs" /> | 234 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 234 | </Fragment> | 235 | </Fragment> |
| 235 | <Fragment> | 236 | <Fragment> |
| 236 | <Property Id="WIX_DIR_CDBURN_AREA" Secure="yes" /> | 237 | <Property Id="WIX_DIR_CDBURN_AREA" Secure="yes" /> |
| 237 | <CustomActionRef Id="WixQueryOsDirs" /> | 238 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 238 | </Fragment> | 239 | </Fragment> |
| 239 | <Fragment> | 240 | <Fragment> |
| 240 | <Property Id="WIX_DIR_COMMON_ADMINTOOLS" Secure="yes" /> | 241 | <Property Id="WIX_DIR_COMMON_ADMINTOOLS" Secure="yes" /> |
| 241 | <CustomActionRef Id="WixQueryOsDirs" /> | 242 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 242 | </Fragment> | 243 | </Fragment> |
| 243 | <Fragment> | 244 | <Fragment> |
| 244 | <Property Id="WIX_DIR_COMMON_ALTSTARTUP" Secure="yes" /> | 245 | <Property Id="WIX_DIR_COMMON_ALTSTARTUP" Secure="yes" /> |
| 245 | <CustomActionRef Id="WixQueryOsDirs" /> | 246 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 246 | </Fragment> | 247 | </Fragment> |
| 247 | <Fragment> | 248 | <Fragment> |
| 248 | <Property Id="WIX_DIR_COMMON_DOCUMENTS" Secure="yes" /> | 249 | <Property Id="WIX_DIR_COMMON_DOCUMENTS" Secure="yes" /> |
| 249 | <CustomActionRef Id="WixQueryOsDirs" /> | 250 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 250 | </Fragment> | 251 | </Fragment> |
| 251 | <Fragment> | 252 | <Fragment> |
| 252 | <Property Id="WIX_DIR_COMMON_FAVORITES" Secure="yes" /> | 253 | <Property Id="WIX_DIR_COMMON_FAVORITES" Secure="yes" /> |
| 253 | <CustomActionRef Id="WixQueryOsDirs" /> | 254 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 254 | </Fragment> | 255 | </Fragment> |
| 255 | <Fragment> | 256 | <Fragment> |
| 256 | <Property Id="WIX_DIR_COMMON_MUSIC" Secure="yes" /> | 257 | <Property Id="WIX_DIR_COMMON_MUSIC" Secure="yes" /> |
| 257 | <CustomActionRef Id="WixQueryOsDirs" /> | 258 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 258 | </Fragment> | 259 | </Fragment> |
| 259 | <Fragment> | 260 | <Fragment> |
| 260 | <Property Id="WIX_DIR_COMMON_PICTURES" Secure="yes" /> | 261 | <Property Id="WIX_DIR_COMMON_PICTURES" Secure="yes" /> |
| 261 | <CustomActionRef Id="WixQueryOsDirs" /> | 262 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 262 | </Fragment> | 263 | </Fragment> |
| 263 | <Fragment> | 264 | <Fragment> |
| 264 | <Property Id="WIX_DIR_COMMON_VIDEO" Secure="yes" /> | 265 | <Property Id="WIX_DIR_COMMON_VIDEO" Secure="yes" /> |
| 265 | <CustomActionRef Id="WixQueryOsDirs" /> | 266 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 266 | </Fragment> | 267 | </Fragment> |
| 267 | <Fragment> | 268 | <Fragment> |
| 268 | <Property Id="WIX_DIR_COOKIES" Secure="yes" /> | 269 | <Property Id="WIX_DIR_COOKIES" Secure="yes" /> |
| 269 | <CustomActionRef Id="WixQueryOsDirs" /> | 270 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 270 | </Fragment> | 271 | </Fragment> |
| 271 | <Fragment> | 272 | <Fragment> |
| 272 | <Property Id="WIX_DIR_DESKTOP" Secure="yes" /> | 273 | <Property Id="WIX_DIR_DESKTOP" Secure="yes" /> |
| 273 | <CustomActionRef Id="WixQueryOsDirs" /> | 274 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 274 | </Fragment> | 275 | </Fragment> |
| 275 | <Fragment> | 276 | <Fragment> |
| 276 | <Property Id="WIX_DIR_HISTORY" Secure="yes" /> | 277 | <Property Id="WIX_DIR_HISTORY" Secure="yes" /> |
| 277 | <CustomActionRef Id="WixQueryOsDirs" /> | 278 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 278 | </Fragment> | 279 | </Fragment> |
| 279 | <Fragment> | 280 | <Fragment> |
| 280 | <Property Id="WIX_DIR_INTERNET_CACHE" Secure="yes" /> | 281 | <Property Id="WIX_DIR_INTERNET_CACHE" Secure="yes" /> |
| 281 | <CustomActionRef Id="WixQueryOsDirs" /> | 282 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 282 | </Fragment> | 283 | </Fragment> |
| 283 | <Fragment> | 284 | <Fragment> |
| 284 | <Property Id="WIX_DIR_MYMUSIC" Secure="yes" /> | 285 | <Property Id="WIX_DIR_MYMUSIC" Secure="yes" /> |
| 285 | <CustomActionRef Id="WixQueryOsDirs" /> | 286 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 286 | </Fragment> | 287 | </Fragment> |
| 287 | <Fragment> | 288 | <Fragment> |
| 288 | <Property Id="WIX_DIR_MYPICTURES" Secure="yes" /> | 289 | <Property Id="WIX_DIR_MYPICTURES" Secure="yes" /> |
| 289 | <CustomActionRef Id="WixQueryOsDirs" /> | 290 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 290 | </Fragment> | 291 | </Fragment> |
| 291 | <Fragment> | 292 | <Fragment> |
| 292 | <Property Id="WIX_DIR_MYVIDEO" Secure="yes" /> | 293 | <Property Id="WIX_DIR_MYVIDEO" Secure="yes" /> |
| 293 | <CustomActionRef Id="WixQueryOsDirs" /> | 294 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 294 | </Fragment> | 295 | </Fragment> |
| 295 | <Fragment> | 296 | <Fragment> |
| 296 | <Property Id="WIX_DIR_NETHOOD" Secure="yes" /> | 297 | <Property Id="WIX_DIR_NETHOOD" Secure="yes" /> |
| 297 | <CustomActionRef Id="WixQueryOsDirs" /> | 298 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 298 | </Fragment> | 299 | </Fragment> |
| 299 | <Fragment> | 300 | <Fragment> |
| 300 | <Property Id="WIX_DIR_PERSONAL" Secure="yes" /> | 301 | <Property Id="WIX_DIR_PERSONAL" Secure="yes" /> |
| 301 | <CustomActionRef Id="WixQueryOsDirs" /> | 302 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 302 | </Fragment> | 303 | </Fragment> |
| 303 | <Fragment> | 304 | <Fragment> |
| 304 | <Property Id="WIX_DIR_PRINTHOOD" Secure="yes" /> | 305 | <Property Id="WIX_DIR_PRINTHOOD" Secure="yes" /> |
| 305 | <CustomActionRef Id="WixQueryOsDirs" /> | 306 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 306 | </Fragment> | 307 | </Fragment> |
| 307 | <Fragment> | 308 | <Fragment> |
| 308 | <Property Id="WIX_DIR_PROFILE" Secure="yes" /> | 309 | <Property Id="WIX_DIR_PROFILE" Secure="yes" /> |
| 309 | <CustomActionRef Id="WixQueryOsDirs" /> | 310 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 310 | </Fragment> | 311 | </Fragment> |
| 311 | <Fragment> | 312 | <Fragment> |
| 312 | <Property Id="WIX_DIR_RECENT" Secure="yes" /> | 313 | <Property Id="WIX_DIR_RECENT" Secure="yes" /> |
| 313 | <CustomActionRef Id="WixQueryOsDirs" /> | 314 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 314 | </Fragment> | 315 | </Fragment> |
| 315 | <Fragment> | 316 | <Fragment> |
| 316 | <Property Id="WIX_DIR_RESOURCES" Secure="yes" /> | 317 | <Property Id="WIX_DIR_RESOURCES" Secure="yes" /> |
| 317 | <CustomActionRef Id="WixQueryOsDirs" /> | 318 | <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" /> |
| 318 | </Fragment> | 319 | </Fragment> |
| 319 | 320 | ||
| 320 | <Fragment> | 321 | <Fragment> |
| 321 | <CustomAction Id="WixQueryOsWellKnownSID" BinaryKey="UtilCA" DllEntry="WixQueryOsWellKnownSID" Execute="firstSequence" Return="check" SuppressModularization="yes" /> | 322 | <CustomAction Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsWellKnownSID" Execute="firstSequence" Return="check" SuppressModularization="yes" /> |
| 322 | 323 | ||
| 323 | <InstallExecuteSequence> | 324 | <InstallExecuteSequence> |
| 324 | <Custom Action="WixQueryOsWellKnownSID" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> | 325 | <Custom Action="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> |
| 325 | </InstallExecuteSequence> | 326 | </InstallExecuteSequence> |
| 326 | 327 | ||
| 327 | <InstallUISequence> | 328 | <InstallUISequence> |
| 328 | <Custom Action="WixQueryOsWellKnownSID" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> | 329 | <Custom Action="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> |
| 329 | </InstallUISequence> | 330 | </InstallUISequence> |
| 330 | </Fragment> | 331 | </Fragment> |
| 331 | 332 | ||
| 332 | <Fragment> | 333 | <Fragment> |
| 333 | <Property Id="WIX_ACCOUNT_LOCALSYSTEM" Secure="yes" /> | 334 | <Property Id="WIX_ACCOUNT_LOCALSYSTEM" Secure="yes" /> |
| 334 | <CustomActionRef Id="WixQueryOsWellKnownSID" /> | 335 | <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" /> |
| 335 | </Fragment> | 336 | </Fragment> |
| 336 | <Fragment> | 337 | <Fragment> |
| 337 | <Property Id="WIX_ACCOUNT_LOCALSERVICE" Secure="yes" /> | 338 | <Property Id="WIX_ACCOUNT_LOCALSERVICE" Secure="yes" /> |
| 338 | <CustomActionRef Id="WixQueryOsWellKnownSID" /> | 339 | <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" /> |
| 339 | </Fragment> | 340 | </Fragment> |
| 340 | <Fragment> | 341 | <Fragment> |
| 341 | <Property Id="WIX_ACCOUNT_NETWORKSERVICE" Secure="yes" /> | 342 | <Property Id="WIX_ACCOUNT_NETWORKSERVICE" Secure="yes" /> |
| 342 | <CustomActionRef Id="WixQueryOsWellKnownSID" /> | 343 | <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" /> |
| 343 | </Fragment> | 344 | </Fragment> |
| 344 | <Fragment> | 345 | <Fragment> |
| 345 | <Property Id="WIX_ACCOUNT_ADMINISTRATORS" Secure="yes" /> | 346 | <Property Id="WIX_ACCOUNT_ADMINISTRATORS" Secure="yes" /> |
| 346 | <CustomActionRef Id="WixQueryOsWellKnownSID" /> | 347 | <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" /> |
| 347 | </Fragment> | 348 | </Fragment> |
| 348 | <Fragment> | 349 | <Fragment> |
| 349 | <Property Id="WIX_ACCOUNT_USERS" Secure="yes" /> | 350 | <Property Id="WIX_ACCOUNT_USERS" Secure="yes" /> |
| 350 | <CustomActionRef Id="WixQueryOsWellKnownSID" /> | 351 | <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" /> |
| 351 | </Fragment> | 352 | </Fragment> |
| 352 | <Fragment> | 353 | <Fragment> |
| 353 | <Property Id="WIX_ACCOUNT_GUESTS" Secure="yes" /> | 354 | <Property Id="WIX_ACCOUNT_GUESTS" Secure="yes" /> |
| 354 | <CustomActionRef Id="WixQueryOsWellKnownSID" /> | 355 | <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" /> |
| 355 | </Fragment> | 356 | </Fragment> |
| 356 | <Fragment> | 357 | <Fragment> |
| 357 | <Property Id="WIX_ACCOUNT_PERFLOGUSERS" Secure="yes" /> | 358 | <Property Id="WIX_ACCOUNT_PERFLOGUSERS" Secure="yes" /> |
| 358 | <Property Id="WIX_ACCOUNT_PERFLOGUSERS_NODOMAIN" Secure="yes" /> | 359 | <Property Id="WIX_ACCOUNT_PERFLOGUSERS_NODOMAIN" Secure="yes" /> |
| 359 | <CustomActionRef Id="WixQueryOsWellKnownSID" /> | 360 | <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" /> |
| 360 | </Fragment> | 361 | </Fragment> |
| 361 | 362 | ||
| 362 | <Fragment> | 363 | <Fragment> |
| 363 | <CustomAction Id="WixQueryOsDriverInfo" BinaryKey="UtilCA" DllEntry="WixQueryOsDriverInfo" Execute="firstSequence" Return="check" SuppressModularization="yes" /> | 364 | <CustomAction Id="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsDriverInfo" Execute="firstSequence" Return="check" SuppressModularization="yes" /> |
| 364 | 365 | ||
| 365 | <InstallExecuteSequence> | 366 | <InstallExecuteSequence> |
| 366 | <Custom Action="WixQueryOsDriverInfo" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> | 367 | <Custom Action="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> |
| 367 | </InstallExecuteSequence> | 368 | </InstallExecuteSequence> |
| 368 | 369 | ||
| 369 | <InstallUISequence> | 370 | <InstallUISequence> |
| 370 | <Custom Action="WixQueryOsDriverInfo" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> | 371 | <Custom Action="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom> |
| 371 | </InstallUISequence> | 372 | </InstallUISequence> |
| 372 | </Fragment> | 373 | </Fragment> |
| 373 | 374 | ||
| 374 | <Fragment> | 375 | <Fragment> |
| 375 | <Property Id="WIX_WDDM_DRIVER_PRESENT" Secure="yes" /> | 376 | <Property Id="WIX_WDDM_DRIVER_PRESENT" Secure="yes" /> |
| 376 | <CustomActionRef Id="WixQueryOsDriverInfo" /> | 377 | <CustomActionRef Id="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" /> |
| 377 | </Fragment> | 378 | </Fragment> |
| 378 | 379 | ||
| 379 | <Fragment> | 380 | <Fragment> |
| 380 | <Property Id="WIX_DWM_COMPOSITION_ENABLED" Secure="yes" /> | 381 | <Property Id="WIX_DWM_COMPOSITION_ENABLED" Secure="yes" /> |
| 381 | <CustomActionRef Id="WixQueryOsDriverInfo" /> | 382 | <CustomActionRef Id="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" /> |
| 382 | </Fragment> | 383 | </Fragment> |
| 383 | 384 | ||
| 384 | <!-- ShellExec custom actions (for when only one is needed; multiple executions need their own IDs) --> | 385 | <!-- ShellExec custom actions (for when only one is needed; multiple executions need their own IDs) --> |
| 385 | <Fragment> | 386 | <Fragment> |
| 386 | <PropertyRef Id="WixShellExecBinaryId" /> | 387 | <PropertyRef Id="WixShellExecBinaryId" /> |
| 387 | <CustomAction Id="WixShellExecBinary" BinaryKey="UtilCA" DllEntry="WixShellExecBinary" Execute="immediate" Return="check" Impersonate="yes" /> | 388 | <CustomAction Id="$(var.Prefix)ShellExecBinary$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixShellExecBinary" Execute="immediate" Return="check" Impersonate="yes" /> |
| 388 | </Fragment> | 389 | </Fragment> |
| 389 | 390 | ||
| 390 | <Fragment> | 391 | <Fragment> |
| 391 | <PropertyRef Id="WixShellExecTarget" /> | 392 | <PropertyRef Id="WixShellExecTarget" /> |
| 392 | <CustomAction Id="WixShellExec" BinaryKey="UtilCA" DllEntry="WixShellExec" Execute="immediate" Return="check" Impersonate="yes" /> | 393 | <CustomAction Id="$(var.Prefix)ShellExec$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixShellExec" Execute="immediate" Return="check" Impersonate="yes" /> |
| 393 | </Fragment> | 394 | </Fragment> |
| 394 | 395 | ||
| 395 | <Fragment> | 396 | <Fragment> |
| 396 | <PropertyRef Id="WixUnelevatedShellExecTarget" /> | 397 | <PropertyRef Id="WixUnelevatedShellExecTarget" /> |
| 397 | <CustomAction Id="WixUnelevatedShellExec" BinaryKey="UtilCA" DllEntry="WixUnelevatedShellExec" Execute="immediate" Return="check" Impersonate="yes" /> | 398 | <CustomAction Id="$(var.Prefix)UnelevatedShellExec$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixUnelevatedShellExec" Execute="immediate" Return="check" Impersonate="yes" /> |
| 398 | </Fragment> | ||
| 399 | |||
| 400 | <Fragment> | ||
| 401 | <PropertyRef Id="QtExecCmdLine" /> | ||
| 402 | <CustomAction Id="QtExec" BinaryKey="UtilCA" DllEntry="CAQuietExec" Execute="immediate" Return="check" Impersonate="yes" /> | ||
| 403 | </Fragment> | ||
| 404 | |||
| 405 | <Fragment> | ||
| 406 | <PropertyRef Id="QtExec64CmdLine" /> | ||
| 407 | <CustomAction Id="QtExec64" BinaryKey="UtilCA" DllEntry="CAQuietExec64" Execute="immediate" Return="check" Impersonate="yes" /> | ||
| 408 | </Fragment> | 399 | </Fragment> |
| 409 | 400 | ||
| 410 | <Fragment> | 401 | <Fragment> |
| 411 | <PropertyRef Id="WixQuietExecCmdLine" /> | 402 | <PropertyRef Id="WixQuietExecCmdLine" /> |
| 412 | <CustomAction Id="WixQuietExec" BinaryKey="UtilCA" DllEntry="WixQuietExec" Execute="immediate" Return="check" Impersonate="yes" /> | 403 | <CustomAction Id="$(var.Prefix)QuietExec$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQuietExec" Execute="immediate" Return="check" Impersonate="yes" /> |
| 413 | </Fragment> | 404 | </Fragment> |
| 414 | 405 | ||
| 415 | <Fragment> | 406 | <Fragment> |
| 416 | <PropertyRef Id="WixQuietExec64CmdLine" /> | 407 | <PropertyRef Id="WixQuietExec64CmdLine" /> |
| 417 | <CustomAction Id="WixQuietExec64" BinaryKey="UtilCA" DllEntry="WixQuietExec64" Execute="immediate" Return="check" Impersonate="yes" /> | 408 | <CustomAction Id="$(var.Prefix)QuietExec64$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQuietExec64" Execute="immediate" Return="check" Impersonate="yes" /> |
| 418 | </Fragment> | 409 | </Fragment> |
| 419 | 410 | ||
| 420 | <!-- SilentExec custom actions differ from QtExec in that they do not log the commandline or output of the exe --> | 411 | <!-- SilentExec custom actions differ from QtExec in that they do not log the commandline or output of the exe --> |
| 421 | <Fragment> | 412 | <Fragment> |
| 422 | <PropertyRef Id="WixSilentExecCmdLine" /> | 413 | <PropertyRef Id="WixSilentExecCmdLine" /> |
| 423 | <CustomAction Id="WixSilentExec" BinaryKey="UtilCA" DllEntry="WixSilentExec" Execute="immediate" Return="check" Impersonate="yes" /> | 414 | <CustomAction Id="$(var.Prefix)SilentExec$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixSilentExec" Execute="immediate" Return="check" Impersonate="yes" /> |
| 424 | </Fragment> | 415 | </Fragment> |
| 425 | 416 | ||
| 426 | <Fragment> | 417 | <Fragment> |
| 427 | <PropertyRef Id="WixSilentExec64CmdLine" /> | 418 | <PropertyRef Id="WixSilentExec64CmdLine" /> |
| 428 | <CustomAction Id="WixSilentExec64" BinaryKey="UtilCA" DllEntry="WixSilentExec64" Execute="immediate" Return="check" Impersonate="yes" /> | 419 | <CustomAction Id="$(var.Prefix)SilentExec64$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixSilentExec64" Execute="immediate" Return="check" Impersonate="yes" /> |
| 429 | </Fragment> | 420 | </Fragment> |
| 430 | </Wix> | 421 | </Wix> |
diff --git a/src/wixlib/UtilExtension_Platform.wxi b/src/wixlib/UtilExtension_Platform.wxi index 4f76c687..0d7fed09 100644 --- a/src/wixlib/UtilExtension_Platform.wxi +++ b/src/wixlib/UtilExtension_Platform.wxi | |||
| @@ -3,8 +3,7 @@ | |||
| 3 | 3 | ||
| 4 | 4 | ||
| 5 | <Include xmlns="http://wixtoolset.org/schemas/v4/wxs"> | 5 | <Include xmlns="http://wixtoolset.org/schemas/v4/wxs"> |
| 6 | 6 | <?include caDecor.wxi ?> | |
| 7 | <?include caSuffix.wxi ?> | ||
| 8 | 7 | ||
| 9 | <!-- | 8 | <!-- |
| 10 | The following actions do not support X64. | 9 | The following actions do not support X64. |
| @@ -12,178 +11,178 @@ | |||
| 12 | <?if $(var.platform)!=x64 ?> | 11 | <?if $(var.platform)!=x64 ?> |
| 13 | 12 | ||
| 14 | <Fragment> | 13 | <Fragment> |
| 15 | <CustomAction Id="WixCheckRebootRequired$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixCheckRebootRequired" Execute="immediate" Return="ignore" SuppressModularization="yes" /> | 14 | <CustomAction Id="$(var.Prefix)CheckRebootRequired$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixCheckRebootRequired" Execute="immediate" Return="ignore" SuppressModularization="yes" /> |
| 16 | 15 | ||
| 17 | <InstallExecuteSequence> | 16 | <InstallExecuteSequence> |
| 18 | <!-- Condition this so it runs on install and MMode, but not uninstall --> | 17 | <!-- Condition this so it runs on install and MMode, but not uninstall --> |
| 19 | <Custom Action="WixCheckRebootRequired$(var.Suffix)" After="InstallFinalize" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT > 400</Custom> | 18 | <Custom Action="$(var.Prefix)CheckRebootRequired$(var.Suffix)" After="InstallFinalize" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT > 400</Custom> |
| 20 | </InstallExecuteSequence> | 19 | </InstallExecuteSequence> |
| 21 | </Fragment> | 20 | </Fragment> |
| 22 | 21 | ||
| 23 | <Fragment> | 22 | <Fragment> |
| 24 | <CustomAction Id="WixCloseApplications$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixCloseApplications" Execute="immediate" Return="check" SuppressModularization="yes" /> | 23 | <CustomAction Id="$(var.Prefix)CloseApplications$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixCloseApplications" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 25 | <CustomAction Id="WixCloseApplicationsDeferred$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixCloseApplicationsDeferred" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" /> | 24 | <CustomAction Id="$(var.Prefix)CloseApplicationsDeferred$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixCloseApplicationsDeferred" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" /> |
| 26 | <CustomActionRef Id="WixCheckRebootRequired$(var.Suffix)" /> | 25 | <CustomActionRef Id="$(var.Prefix)CheckRebootRequired$(var.Suffix)" /> |
| 27 | 26 | ||
| 28 | <InstallExecuteSequence> | 27 | <InstallExecuteSequence> |
| 29 | <Custom Action="WixCloseApplications$(var.Suffix)" Before="InstallFiles" Overridable="yes">VersionNT > 400</Custom> | 28 | <Custom Action="$(var.Prefix)CloseApplications$(var.Suffix)" Before="InstallFiles" Overridable="yes">VersionNT > 400</Custom> |
| 30 | </InstallExecuteSequence> | 29 | </InstallExecuteSequence> |
| 31 | </Fragment> | 30 | </Fragment> |
| 32 | 31 | ||
| 33 | <Fragment> | 32 | <Fragment> |
| 34 | <CustomAction Id="WixRegisterRestartResources$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixRegisterRestartResources$(var.Suffix)" Execute="immediate" Return="check" SuppressModularization="yes" /> | 33 | <CustomAction Id="$(var.Prefix)RegisterRestartResources$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixRegisterRestartResources$(var.Suffix)" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 35 | 34 | ||
| 36 | <InstallExecuteSequence> | 35 | <InstallExecuteSequence> |
| 37 | <Custom Action="WixRegisterRestartResources$(var.Suffix)" Before="InstallValidate" Overridable="yes" /> | 36 | <Custom Action="$(var.Prefix)RegisterRestartResources$(var.Suffix)" Before="InstallValidate" Overridable="yes" /> |
| 38 | </InstallExecuteSequence> | 37 | </InstallExecuteSequence> |
| 39 | </Fragment> | 38 | </Fragment> |
| 40 | 39 | ||
| 41 | <Fragment> | 40 | <Fragment> |
| 42 | <UIRef Id="ConfigureUsersErrorText" /> | 41 | <UIRef Id="ConfigureUsersErrorText" /> |
| 43 | 42 | ||
| 44 | <CustomAction Id="ConfigureUsers$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigureUsers" Execute="immediate" Return="check" SuppressModularization="yes" /> | 43 | <CustomAction Id="$(var.Prefix)ConfigureUsers$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigureUsers" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 45 | <CustomAction Id="CreateUser$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CreateUser" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" /> | 44 | <CustomAction Id="$(var.Prefix)CreateUser$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CreateUser" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" /> |
| 46 | <CustomAction Id="CreateUserRollback$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="RemoveUser" Impersonate="no" Execute="rollback" Return="check" HideTarget="yes" SuppressModularization="yes" /> | 45 | <CustomAction Id="$(var.Prefix)CreateUserRollback$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="RemoveUser" Impersonate="no" Execute="rollback" Return="check" HideTarget="yes" SuppressModularization="yes" /> |
| 47 | <!-- RemoveUser is a type commit action because it is not possible to rollback the removal of a user --> | 46 | <!-- RemoveUser is a type commit action because it is not possible to rollback the removal of a user --> |
| 48 | <CustomAction Id="RemoveUser$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="RemoveUser" Impersonate="no" Execute="commit" Return="ignore" HideTarget="yes" SuppressModularization="yes" /> | 47 | <CustomAction Id="$(var.Prefix)RemoveUser$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="RemoveUser" Impersonate="no" Execute="commit" Return="ignore" HideTarget="yes" SuppressModularization="yes" /> |
| 49 | 48 | ||
| 50 | <InstallExecuteSequence> | 49 | <InstallExecuteSequence> |
| 51 | <Custom Action="ConfigureUsers$(var.Suffix)" Before="InstallFiles" Overridable="yes">VersionNT > 400</Custom> | 50 | <Custom Action="$(var.Prefix)ConfigureUsers$(var.Suffix)" Before="InstallFiles" Overridable="yes">VersionNT > 400</Custom> |
| 52 | </InstallExecuteSequence> | 51 | </InstallExecuteSequence> |
| 53 | </Fragment> | 52 | </Fragment> |
| 54 | 53 | ||
| 55 | <Fragment> | 54 | <Fragment> |
| 56 | <UIRef Id="ConfigureSmbErrorsText" /> | 55 | <UIRef Id="ConfigureSmbErrorsText" /> |
| 57 | 56 | ||
| 58 | <CustomAction Id="ConfigureSmbInstall$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigureSmbInstall" Execute="immediate" Return="check" SuppressModularization="yes" /> | 57 | <CustomAction Id="$(var.Prefix)ConfigureSmbInstall$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigureSmbInstall" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 59 | <CustomAction Id="ConfigureSmbUninstall$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigureSmbUninstall" Execute="immediate" Return="check" SuppressModularization="yes" /> | 58 | <CustomAction Id="$(var.Prefix)ConfigureSmbUninstall$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigureSmbUninstall" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 60 | <CustomAction Id="CreateSmb$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CreateSmb" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" /> | 59 | <CustomAction Id="$(var.Prefix)CreateSmb$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CreateSmb" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" /> |
| 61 | <CustomAction Id="CreateSmbRollback$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="DropSmb" Impersonate="no" Execute="rollback" Return="ignore" HideTarget="yes" SuppressModularization="yes" /> | 60 | <CustomAction Id="$(var.Prefix)CreateSmbRollback$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="DropSmb" Impersonate="no" Execute="rollback" Return="ignore" HideTarget="yes" SuppressModularization="yes" /> |
| 62 | <CustomAction Id="DropSmb$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="DropSmb" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" /> | 61 | <CustomAction Id="$(var.Prefix)DropSmb$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="DropSmb" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" /> |
| 63 | <CustomAction Id="DropSmbRollback$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CreateSmb" Impersonate="no" Execute="rollback" Return="ignore" HideTarget="yes" SuppressModularization="yes" /> | 62 | <CustomAction Id="$(var.Prefix)DropSmbRollback$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CreateSmb" Impersonate="no" Execute="rollback" Return="ignore" HideTarget="yes" SuppressModularization="yes" /> |
| 64 | 63 | ||
| 65 | <InstallExecuteSequence> | 64 | <InstallExecuteSequence> |
| 66 | <Custom Action="ConfigureSmbInstall$(var.Suffix)" After="InstallFiles" Overridable="yes">VersionNT > 400</Custom> | 65 | <Custom Action="$(var.Prefix)ConfigureSmbInstall$(var.Suffix)" After="InstallFiles" Overridable="yes">VersionNT > 400</Custom> |
| 67 | <Custom Action="ConfigureSmbUninstall$(var.Suffix)" After="RemoveFiles" Overridable="yes">VersionNT > 400</Custom> | 66 | <Custom Action="$(var.Prefix)ConfigureSmbUninstall$(var.Suffix)" After="RemoveFiles" Overridable="yes">VersionNT > 400</Custom> |
| 68 | </InstallExecuteSequence> | 67 | </InstallExecuteSequence> |
| 69 | </Fragment> | 68 | </Fragment> |
| 70 | 69 | ||
| 71 | <Fragment> | 70 | <Fragment> |
| 72 | <UIRef Id="PerCounterDataErrorsText" /> | 71 | <UIRef Id="PerCounterDataErrorsText" /> |
| 73 | 72 | ||
| 74 | <CustomAction Id="InstallPerfCounterData$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="InstallPerfCounterData" Execute="immediate" Return="check" SuppressModularization="yes" /> | 73 | <CustomAction Id="$(var.Prefix)InstallPerfCounterData$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="InstallPerfCounterData" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 75 | <CustomAction Id="UninstallPerfCounterData$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="UninstallPerfCounterData" Execute="immediate" Return="check" SuppressModularization="yes" /> | 74 | <CustomAction Id="$(var.Prefix)UninstallPerfCounterData$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="UninstallPerfCounterData" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 76 | <CustomAction Id="RegisterPerfCounterData$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="RegisterPerfCounterData" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" /> | 75 | <CustomAction Id="$(var.Prefix)RegisterPerfCounterData$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="RegisterPerfCounterData" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" /> |
| 77 | <CustomAction Id="UnregisterPerfCounterData$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="UnregisterPerfCounterData" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" /> | 76 | <CustomAction Id="$(var.Prefix)UnregisterPerfCounterData$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="UnregisterPerfCounterData" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" /> |
| 78 | <CustomAction Id="RollbackRegisterPerfCounterData$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="UnregisterPerfCounterData" Impersonate="no" Execute="rollback" Return="check" HideTarget="yes" SuppressModularization="yes" /> | 77 | <CustomAction Id="$(var.Prefix)RollbackRegisterPerfCounterData$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="UnregisterPerfCounterData" Impersonate="no" Execute="rollback" Return="check" HideTarget="yes" SuppressModularization="yes" /> |
| 79 | <CustomAction Id="RollbackUnregisterPerfCounterData$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="RegisterPerfCounterData" Impersonate="no" Execute="rollback" Return="check" HideTarget="yes" SuppressModularization="yes" /> | 78 | <CustomAction Id="$(var.Prefix)RollbackUnregisterPerfCounterData$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="RegisterPerfCounterData" Impersonate="no" Execute="rollback" Return="check" HideTarget="yes" SuppressModularization="yes" /> |
| 80 | 79 | ||
| 81 | <InstallExecuteSequence> | 80 | <InstallExecuteSequence> |
| 82 | <Custom Action="InstallPerfCounterData$(var.Suffix)" After="WriteRegistryValues" Overridable="yes">VersionNT > 400</Custom> | 81 | <Custom Action="$(var.Prefix)InstallPerfCounterData$(var.Suffix)" After="WriteRegistryValues" Overridable="yes">VersionNT > 400</Custom> |
| 83 | <Custom Action="UninstallPerfCounterData$(var.Suffix)" Before="RemoveRegistryValues" Overridable="yes">VersionNT > 400</Custom> | 82 | <Custom Action="$(var.Prefix)UninstallPerfCounterData$(var.Suffix)" Before="RemoveRegistryValues" Overridable="yes">VersionNT > 400</Custom> |
| 84 | </InstallExecuteSequence> | 83 | </InstallExecuteSequence> |
| 85 | </Fragment> | 84 | </Fragment> |
| 86 | 85 | ||
| 87 | <Fragment> | 86 | <Fragment> |
| 88 | <UIRef Id="ConfigurePerfmonErrorsText" /> | 87 | <UIRef Id="ConfigurePerfmonErrorsText" /> |
| 89 | 88 | ||
| 90 | <CustomAction Id="ConfigurePerfmonInstall$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonInstall" Execute="immediate" Return="check" SuppressModularization="yes" /> | 89 | <CustomAction Id="$(var.Prefix)ConfigurePerfmonInstall$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonInstall" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 91 | <CustomAction Id="ConfigurePerfmonUninstall$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonUninstall" Execute="immediate" Return="check" SuppressModularization="yes" /> | 90 | <CustomAction Id="$(var.Prefix)ConfigurePerfmonUninstall$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonUninstall" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 92 | <CustomAction Id="RegisterPerfmon$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="RegisterPerfmon" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" /> | 91 | <CustomAction Id="$(var.Prefix)RegisterPerfmon$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="RegisterPerfmon" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" /> |
| 93 | <CustomAction Id="UnregisterPerfmon$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="UnregisterPerfmon" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" /> | 92 | <CustomAction Id="$(var.Prefix)UnregisterPerfmon$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="UnregisterPerfmon" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" /> |
| 94 | <CustomAction Id="RollbackRegisterPerfmon$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="UnregisterPerfmon" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" /> | 93 | <CustomAction Id="$(var.Prefix)RollbackRegisterPerfmon$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="UnregisterPerfmon" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" /> |
| 95 | <CustomAction Id="RollbackUnregisterPerfmon$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="RegisterPerfmon" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" /> | 94 | <CustomAction Id="$(var.Prefix)RollbackUnregisterPerfmon$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="RegisterPerfmon" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" /> |
| 96 | 95 | ||
| 97 | <InstallExecuteSequence> | 96 | <InstallExecuteSequence> |
| 98 | <Custom Action="ConfigurePerfmonInstall$(var.Suffix)" After="WriteRegistryValues" Overridable="yes">VersionNT > 400</Custom> | 97 | <Custom Action="$(var.Prefix)ConfigurePerfmonInstall$(var.Suffix)" After="WriteRegistryValues" Overridable="yes">VersionNT > 400</Custom> |
| 99 | <Custom Action="ConfigurePerfmonUninstall$(var.Suffix)" Before="RemoveRegistryValues" Overridable="yes">VersionNT > 400</Custom> | 98 | <Custom Action="$(var.Prefix)ConfigurePerfmonUninstall$(var.Suffix)" Before="RemoveRegistryValues" Overridable="yes">VersionNT > 400</Custom> |
| 100 | </InstallExecuteSequence> | 99 | </InstallExecuteSequence> |
| 101 | </Fragment> | 100 | </Fragment> |
| 102 | 101 | ||
| 103 | <Fragment> | 102 | <Fragment> |
| 104 | <CustomAction Id="ConfigurePerfmonManifestRegister$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonManifestRegister" Execute="immediate" Return="check" SuppressModularization="yes" /> | 103 | <CustomAction Id="$(var.Prefix)ConfigurePerfmonManifestRegister$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonManifestRegister" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 105 | <CustomAction Id="ConfigurePerfmonManifestUnregister$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonManifestUnregister" Execute="immediate" Return="check" SuppressModularization="yes" /> | 104 | <CustomAction Id="$(var.Prefix)ConfigurePerfmonManifestUnregister$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonManifestUnregister" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 106 | <CustomAction Id="RegisterPerfmonManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" /> | 105 | <CustomAction Id="$(var.Prefix)RegisterPerfmonManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" /> |
| 107 | <CustomAction Id="UnregisterPerfmonManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="ignore" SuppressModularization="yes" /> | 106 | <CustomAction Id="$(var.Prefix)UnregisterPerfmonManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="ignore" SuppressModularization="yes" /> |
| 108 | <CustomAction Id="RollbackRegisterPerfmonManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="ignore" SuppressModularization="yes" /> | 107 | <CustomAction Id="$(var.Prefix)RollbackRegisterPerfmonManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="ignore" SuppressModularization="yes" /> |
| 109 | <CustomAction Id="RollbackUnregisterPerfmonManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" /> | 108 | <CustomAction Id="$(var.Prefix)RollbackUnregisterPerfmonManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" /> |
| 110 | 109 | ||
| 111 | <InstallExecuteSequence> | 110 | <InstallExecuteSequence> |
| 112 | <Custom Action="ConfigurePerfmonManifestRegister$(var.Suffix)" After="InstallFiles" Overridable="yes">VersionNT > 400</Custom> | 111 | <Custom Action="$(var.Prefix)ConfigurePerfmonManifestRegister$(var.Suffix)" After="InstallFiles" Overridable="yes">VersionNT > 400</Custom> |
| 113 | <Custom Action="ConfigurePerfmonManifestUnregister$(var.Suffix)" After="RemoveRegistryValues" Overridable="yes">VersionNT > 400</Custom> | 112 | <Custom Action="$(var.Prefix)ConfigurePerfmonManifestUnregister$(var.Suffix)" After="RemoveRegistryValues" Overridable="yes">VersionNT > 400</Custom> |
| 114 | </InstallExecuteSequence> | 113 | </InstallExecuteSequence> |
| 115 | </Fragment> | 114 | </Fragment> |
| 116 | 115 | ||
| 117 | <Fragment> | 116 | <Fragment> |
| 118 | <CustomAction Id="ConfigureEventManifestRegister$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigureEventManifestRegister" Execute="immediate" Return="check" SuppressModularization="yes" /> | 117 | <CustomAction Id="$(var.Prefix)ConfigureEventManifestRegister$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigureEventManifestRegister" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 119 | <CustomAction Id="ConfigureEventManifestUnregister$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigureEventManifestUnregister" Execute="immediate" Return="check" SuppressModularization="yes" /> | 118 | <CustomAction Id="$(var.Prefix)ConfigureEventManifestUnregister$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigureEventManifestUnregister" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 120 | <CustomAction Id="RegisterEventManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" /> | 119 | <CustomAction Id="$(var.Prefix)RegisterEventManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" /> |
| 121 | <CustomAction Id="UnregisterEventManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="ignore" SuppressModularization="yes" /> | 120 | <CustomAction Id="$(var.Prefix)UnregisterEventManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="ignore" SuppressModularization="yes" /> |
| 122 | <CustomAction Id="RollbackRegisterEventManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="ignore" SuppressModularization="yes" /> | 121 | <CustomAction Id="$(var.Prefix)RollbackRegisterEventManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="ignore" SuppressModularization="yes" /> |
| 123 | <CustomAction Id="RollbackUnregisterEventManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" /> | 122 | <CustomAction Id="$(var.Prefix)RollbackUnregisterEventManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" /> |
| 124 | 123 | ||
| 125 | <InstallExecuteSequence> | 124 | <InstallExecuteSequence> |
| 126 | <Custom Action="ConfigureEventManifestRegister$(var.Suffix)" After="SchedXmlFile" Overridable="yes">VersionNT > 400</Custom> | 125 | <Custom Action="$(var.Prefix)ConfigureEventManifestRegister$(var.Suffix)" After="$(var.Prefix)SchedXmlFile$(var.Suffix)" Overridable="yes">VersionNT > 400</Custom> |
| 127 | <Custom Action="ConfigureEventManifestUnregister$(var.Suffix)" After="RemoveRegistryValues" Overridable="yes">VersionNT > 400</Custom> | 126 | <Custom Action="$(var.Prefix)ConfigureEventManifestUnregister$(var.Suffix)" After="RemoveRegistryValues" Overridable="yes">VersionNT > 400</Custom> |
| 128 | </InstallExecuteSequence> | 127 | </InstallExecuteSequence> |
| 129 | </Fragment> | 128 | </Fragment> |
| 130 | 129 | ||
| 131 | <Fragment> | 130 | <Fragment> |
| 132 | <CustomAction Id="SchedServiceConfig$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="SchedServiceConfig" Execute="immediate" Return="check" SuppressModularization="yes" /> | 131 | <CustomAction Id="$(var.Prefix)SchedServiceConfig$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="SchedServiceConfig" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 133 | <CustomAction Id="ExecServiceConfig$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ExecServiceConfig" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" /> | 132 | <CustomAction Id="$(var.Prefix)ExecServiceConfig$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ExecServiceConfig" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" /> |
| 134 | <CustomAction Id="RollbackServiceConfig$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="RollbackServiceConfig" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" /> | 133 | <CustomAction Id="$(var.Prefix)RollbackServiceConfig$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="RollbackServiceConfig" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" /> |
| 135 | 134 | ||
| 136 | <InstallExecuteSequence> | 135 | <InstallExecuteSequence> |
| 137 | <!-- Condition this so it runs on install and MMode, but not uninstall --> | 136 | <!-- Condition this so it runs on install and MMode, but not uninstall --> |
| 138 | <Custom Action="SchedServiceConfig$(var.Suffix)" After="InstallServices" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT > 400</Custom> | 137 | <Custom Action="$(var.Prefix)SchedServiceConfig$(var.Suffix)" After="InstallServices" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT > 400</Custom> |
| 139 | </InstallExecuteSequence> | 138 | </InstallExecuteSequence> |
| 140 | </Fragment> | 139 | </Fragment> |
| 141 | 140 | ||
| 142 | <Fragment> | 141 | <Fragment> |
| 143 | <CustomAction Id="WixTouchFileDuringInstall" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixTouchFileDuringInstall" Execute="immediate" Return="check" SuppressModularization="yes" /> | 142 | <CustomAction Id="$(var.Prefix)TouchFileDuringInstall$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixTouchFileDuringInstall" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 144 | <CustomAction Id="WixTouchFileDuringUninstall" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixTouchFileDuringUninstall" Execute="immediate" Return="check" SuppressModularization="yes" /> | 143 | <CustomAction Id="$(var.Prefix)TouchFileDuringUninstall$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixTouchFileDuringUninstall" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 145 | <CustomAction Id="WixExecuteTouchFile" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixExecuteTouchFile" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" /> | 144 | <CustomAction Id="$(var.Prefix)ExecuteTouchFile$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixExecuteTouchFile" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" /> |
| 146 | <CustomAction Id="WixRollbackTouchFile" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixExecuteTouchFile" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" /> | 145 | <CustomAction Id="$(var.Prefix)RollbackTouchFile$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixExecuteTouchFile" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" /> |
| 147 | 146 | ||
| 148 | <InstallExecuteSequence> | 147 | <InstallExecuteSequence> |
| 149 | <Custom Action="WixTouchFileDuringUninstall" Before="RemoveFiles" Overridable="yes" /> | 148 | <Custom Action="$(var.Prefix)TouchFileDuringUninstall" Before="RemoveFiles" Overridable="yes" /> |
| 150 | <Custom Action="WixTouchFileDuringInstall" After="InstallFiles" Overridable="yes" /> | 149 | <Custom Action="$(var.Prefix)TouchFileDuringInstall" After="InstallFiles" Overridable="yes" /> |
| 151 | </InstallExecuteSequence> | 150 | </InstallExecuteSequence> |
| 152 | </Fragment> | 151 | </Fragment> |
| 153 | 152 | ||
| 154 | <Fragment> | 153 | <Fragment> |
| 155 | <UIRef Id="XmlFileErrorsText" /> | 154 | <UIRef Id="XmlFileErrorsText" /> |
| 156 | 155 | ||
| 157 | <CustomAction Id="SchedXmlFile$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="SchedXmlFile" Execute="immediate" Return="check" SuppressModularization="yes" /> | 156 | <CustomAction Id="$(var.Prefix)SchedXmlFile$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="SchedXmlFile" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 158 | <CustomAction Id="ExecXmlFile$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ExecXmlFile" Execute="deferred" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" /> | 157 | <CustomAction Id="$(var.Prefix)ExecXmlFile$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ExecXmlFile" Execute="deferred" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" /> |
| 159 | <CustomAction Id="ExecXmlFileRollback$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ExecXmlFileRollback" Execute="rollback" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" /> | 158 | <CustomAction Id="$(var.Prefix)ExecXmlFileRollback$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ExecXmlFileRollback" Execute="rollback" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" /> |
| 160 | 159 | ||
| 161 | <InstallExecuteSequence> | 160 | <InstallExecuteSequence> |
| 162 | <Custom Action="SchedXmlFile$(var.Suffix)" After="DuplicateFiles" Overridable="yes">VersionNT > 400</Custom> | 161 | <Custom Action="$(var.Prefix)SchedXmlFile$(var.Suffix)" After="DuplicateFiles" Overridable="yes">VersionNT > 400</Custom> |
| 163 | </InstallExecuteSequence> | 162 | </InstallExecuteSequence> |
| 164 | </Fragment> | 163 | </Fragment> |
| 165 | 164 | ||
| 166 | <Fragment> | 165 | <Fragment> |
| 167 | <UIRef Id="XmlConfigErrorsText" /> | 166 | <UIRef Id="XmlConfigErrorsText" /> |
| 168 | 167 | ||
| 169 | <CustomAction Id="SchedXmlConfig$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="SchedXmlConfig" Execute="immediate" Return="check" SuppressModularization="yes" /> | 168 | <CustomAction Id="$(var.Prefix)SchedXmlConfig$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="SchedXmlConfig" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 170 | <CustomAction Id="ExecXmlConfig$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ExecXmlConfig" Execute="deferred" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" /> | 169 | <CustomAction Id="$(var.Prefix)ExecXmlConfig$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ExecXmlConfig" Execute="deferred" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" /> |
| 171 | <CustomAction Id="ExecXmlConfigRollback$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ExecXmlConfigRollback" Execute="rollback" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" /> | 170 | <CustomAction Id="$(var.Prefix)ExecXmlConfigRollback$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ExecXmlConfigRollback" Execute="rollback" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" /> |
| 172 | 171 | ||
| 173 | <InstallExecuteSequence> | 172 | <InstallExecuteSequence> |
| 174 | <Custom Action="SchedXmlConfig$(var.Suffix)" After="DuplicateFiles" Overridable="yes">VersionNT > 400</Custom> | 173 | <Custom Action="$(var.Prefix)SchedXmlConfig$(var.Suffix)" After="DuplicateFiles" Overridable="yes">VersionNT > 400</Custom> |
| 175 | </InstallExecuteSequence> | 174 | </InstallExecuteSequence> |
| 176 | </Fragment> | 175 | </Fragment> |
| 177 | 176 | ||
| 178 | <Fragment> | 177 | <Fragment> |
| 179 | <CustomAction Id="WixSchedInternetShortcuts$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixSchedInternetShortcuts" Execute="immediate" Return="check" SuppressModularization="yes" /> | 178 | <CustomAction Id="$(var.Prefix)SchedInternetShortcuts$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixSchedInternetShortcuts" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 180 | <CustomAction Id="WixRollbackInternetShortcuts$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixRollbackInternetShortcuts" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" /> | 179 | <CustomAction Id="$(var.Prefix)RollbackInternetShortcuts$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixRollbackInternetShortcuts" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" /> |
| 181 | <CustomAction Id="WixCreateInternetShortcuts$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixCreateInternetShortcuts" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" /> | 180 | <CustomAction Id="$(var.Prefix)CreateInternetShortcuts$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixCreateInternetShortcuts" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" /> |
| 182 | 181 | ||
| 183 | <InstallExecuteSequence> | 182 | <InstallExecuteSequence> |
| 184 | <Custom Action="WixSchedInternetShortcuts$(var.Suffix)" Before="RemoveFolders" Overridable="yes">VersionNT > 400</Custom> | 183 | <Custom Action="$(var.Prefix)SchedInternetShortcuts$(var.Suffix)" Before="RemoveFolders" Overridable="yes">VersionNT > 400</Custom> |
| 185 | <Custom Action="WixRollbackInternetShortcuts$(var.DeferredSuffix)" Before="WixCreateInternetShortcuts$(var.DeferredSuffix)" Overridable="yes">VersionNT > 400</Custom> | 184 | <Custom Action="$(var.Prefix)RollbackInternetShortcuts$(var.Suffix)" Before="$(var.Prefix)CreateInternetShortcuts$(var.Suffix)" Overridable="yes">VersionNT > 400</Custom> |
| 186 | <Custom Action="WixCreateInternetShortcuts$(var.DeferredSuffix)" After="CreateShortcuts" Overridable="yes">VersionNT > 400</Custom> | 185 | <Custom Action="$(var.Prefix)CreateInternetShortcuts$(var.Suffix)" After="CreateShortcuts" Overridable="yes">VersionNT > 400</Custom> |
| 187 | </InstallExecuteSequence> | 186 | </InstallExecuteSequence> |
| 188 | </Fragment> | 187 | </Fragment> |
| 189 | 188 | ||
| @@ -196,29 +195,29 @@ | |||
| 196 | <Fragment> | 195 | <Fragment> |
| 197 | <UIRef Id="SecureObjectsErrors" /> | 196 | <UIRef Id="SecureObjectsErrors" /> |
| 198 | 197 | ||
| 199 | <CustomAction Id="SchedSecureObjects$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="SchedSecureObjects" Execute="immediate" Return="check" SuppressModularization="yes" /> | 198 | <CustomAction Id="$(var.Prefix)SchedSecureObjects$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="SchedSecureObjects" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 200 | <CustomAction Id="SchedSecureObjectsRollback$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="SchedSecureObjectsRollback" Execute="immediate" Return="check" SuppressModularization="yes" /> | 199 | <CustomAction Id="$(var.Prefix)SchedSecureObjectsRollback$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="SchedSecureObjectsRollback" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 201 | <CustomAction Id="ExecSecureObjects$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ExecSecureObjects" Execute="deferred" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" /> | 200 | <CustomAction Id="$(var.Prefix)ExecSecureObjects$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ExecSecureObjects" Execute="deferred" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" /> |
| 202 | <CustomAction Id="ExecSecureObjectsRollback$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ExecSecureObjectsRollback" Execute="rollback" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" /> | 201 | <CustomAction Id="$(var.Prefix)ExecSecureObjectsRollback$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ExecSecureObjectsRollback" Execute="rollback" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" /> |
| 203 | 202 | ||
| 204 | <InstallExecuteSequence> | 203 | <InstallExecuteSequence> |
| 205 | <!-- Condition this so it runs on install and MMode, but not uninstall --> | 204 | <!-- Condition this so it runs on install and MMode, but not uninstall --> |
| 206 | <Custom Action="SchedSecureObjects$(var.Suffix)" After="InstallServices" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT > 400</Custom> | 205 | <Custom Action="$(var.Prefix)SchedSecureObjects$(var.Suffix)" After="InstallServices" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT > 400</Custom> |
| 207 | <Custom Action="SchedSecureObjectsRollback$(var.Suffix)" After="UnpublishFeatures" Overridable="yes">VersionNT > 400</Custom> | 206 | <Custom Action="$(var.Prefix)SchedSecureObjectsRollback$(var.Suffix)" After="UnpublishFeatures" Overridable="yes">VersionNT > 400</Custom> |
| 208 | </InstallExecuteSequence> | 207 | </InstallExecuteSequence> |
| 209 | </Fragment> | 208 | </Fragment> |
| 210 | 209 | ||
| 211 | <Fragment> | 210 | <Fragment> |
| 212 | <CustomAction Id="WixSchedFormatFiles$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixSchedFormatFiles" Execute="immediate" Return="check" SuppressModularization="yes" /> | 211 | <CustomAction Id="$(var.Prefix)SchedFormatFiles$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixSchedFormatFiles" Execute="immediate" Return="check" SuppressModularization="yes" /> |
| 213 | <CustomAction Id="WixExecFormatFiles$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixExecFormatFiles" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" /> | 212 | <CustomAction Id="$(var.Prefix)ExecFormatFiles$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixExecFormatFiles" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" /> |
| 214 | <CustomAction Id="WixRollbackFormatFiles$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixExecFormatFiles" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" /> | 213 | <CustomAction Id="$(var.Prefix)RollbackFormatFiles$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixExecFormatFiles" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" /> |
| 215 | 214 | ||
| 216 | <InstallExecuteSequence> | 215 | <InstallExecuteSequence> |
| 217 | <Custom Action="WixSchedFormatFiles$(var.Suffix)" After="InstallFiles" /> | 216 | <Custom Action="$(var.Prefix)SchedFormatFiles$(var.Suffix)" After="InstallFiles" /> |
| 218 | </InstallExecuteSequence> | 217 | </InstallExecuteSequence> |
| 219 | </Fragment> | 218 | </Fragment> |
| 220 | 219 | ||
| 221 | <Fragment> | 220 | <Fragment> |
| 222 | <Binary Id="UtilCA$(var.Suffix)" SourceFile="!(bindpath.$(var.platform))utilca.dll" /> | 221 | <Binary Id="$(var.Prefix)UtilCA$(var.Suffix)" SourceFile="!(bindpath.$(var.platform))utilca.dll" /> |
| 223 | </Fragment> | 222 | </Fragment> |
| 224 | </Include> | 223 | </Include> |
diff --git a/src/wixlib/caDecor.wxi b/src/wixlib/caDecor.wxi new file mode 100644 index 00000000..1d00df8f --- /dev/null +++ b/src/wixlib/caDecor.wxi | |||
| @@ -0,0 +1,40 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> | ||
| 3 | |||
| 4 | |||
| 5 | <Include xmlns="http://schemas.microsoft.com/wix/2006/wi"> | ||
| 6 | <?ifdef Prefix ?> | ||
| 7 | <?undef Prefix ?> | ||
| 8 | <?endif ?> | ||
| 9 | |||
| 10 | <?define Prefix="Wix4" ?> | ||
| 11 | |||
| 12 | <?ifndef platform ?> | ||
| 13 | <?define platform="x86" ?> | ||
| 14 | <?endif ?> | ||
| 15 | |||
| 16 | <?if $(var.platform)="" ?> | ||
| 17 | <?undef platform ?> | ||
| 18 | <?define platform="x86" ?> | ||
| 19 | <?endif ?> | ||
| 20 | |||
| 21 | <?ifdef Suffix ?> | ||
| 22 | <?undef Suffix ?> | ||
| 23 | <?endif ?> | ||
| 24 | |||
| 25 | <?if $(var.platform)~="x86" ?> | ||
| 26 | <?define Suffix="_X86" ?> | ||
| 27 | <?endif ?> | ||
| 28 | |||
| 29 | <?if $(var.platform)~="x64" ?> | ||
| 30 | <?define Suffix="_X64" ?> | ||
| 31 | <?endif ?> | ||
| 32 | |||
| 33 | <?if $(var.platform)~="arm" ?> | ||
| 34 | <?define Suffix="_A32" ?> | ||
| 35 | <?endif ?> | ||
| 36 | |||
| 37 | <?if $(var.platform)~="arm64" ?> | ||
| 38 | <?define Suffix="_A64" ?> | ||
| 39 | <?endif ?> | ||
| 40 | </Include> | ||
diff --git a/src/wixlib/caSuffix.wxi b/src/wixlib/caSuffix.wxi deleted file mode 100644 index a56a2393..00000000 --- a/src/wixlib/caSuffix.wxi +++ /dev/null | |||
| @@ -1,28 +0,0 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> | ||
| 3 | |||
| 4 | <Include xmlns="http://wixtoolset.org/schemas/v4/wxs"> | ||
| 5 | <?ifndef platform ?> | ||
| 6 | <?error Required value "platform" not defined in include caSuffix.wxi ?> | ||
| 7 | <?endif ?> | ||
| 8 | |||
| 9 | <?ifdef Suffix ?> | ||
| 10 | <?undef Suffix ?> | ||
| 11 | <?undef DeferredSuffix ?> | ||
| 12 | <?endif ?> | ||
| 13 | |||
| 14 | <?if $(var.platform)="x86" ?> | ||
| 15 | <?define Suffix="" ?> | ||
| 16 | <?define DeferredSuffix="" ?> | ||
| 17 | <?endif ?> | ||
| 18 | |||
| 19 | <?if $(var.platform)="x64" ?> | ||
| 20 | <?define Suffix="_x64" ?> | ||
| 21 | <?define DeferredSuffix="_64" ?> | ||
| 22 | <?endif ?> | ||
| 23 | |||
| 24 | <?if $(var.platform)="arm" ?> | ||
| 25 | <?define Suffix="_ARM" ?> | ||
| 26 | <?define DeferredSuffix="_ARM" ?> | ||
| 27 | <?endif ?> | ||
| 28 | </Include> | ||
diff --git a/src/wixlib/util.wixproj b/src/wixlib/util.wixproj index f9dbabb8..21d96832 100644 --- a/src/wixlib/util.wixproj +++ b/src/wixlib/util.wixproj | |||
| @@ -33,7 +33,7 @@ | |||
| 33 | </ItemGroup> | 33 | </ItemGroup> |
| 34 | <ItemGroup> | 34 | <ItemGroup> |
| 35 | <None Include="caerr.wxi" /> | 35 | <None Include="caerr.wxi" /> |
| 36 | <None Include="caSuffix.wxi" /> | 36 | <None Include="caDecor.wxi" /> |
| 37 | <None Include="UtilExtension_Platform.wxi" /> | 37 | <None Include="UtilExtension_Platform.wxi" /> |
| 38 | </ItemGroup> | 38 | </ItemGroup> |
| 39 | <Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' AND Exists('$(WixTargetsPath)') " /> | 39 | <Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' AND Exists('$(WixTargetsPath)') " /> |
