diff options
| author | Bob Arnson <bob@firegiant.com> | 2021-08-23 19:05:48 -0400 |
|---|---|---|
| committer | Bob Arnson <bob@firegiant.com> | 2021-08-23 19:34:57 -0400 |
| commit | a4dc574fa13d828614058906c4e99fcb45965fe5 (patch) | |
| tree | 705a00f750c861420ab6bd5c2a12a023e1e9e483 /src/ext | |
| parent | 19c52f14644ac666c12f1a44bc2c0cce1586b8c5 (diff) | |
| download | wix-a4dc574fa13d828614058906c4e99fcb45965fe5.tar.gz wix-a4dc574fa13d828614058906c4e99fcb45965fe5.tar.bz2 wix-a4dc574fa13d828614058906c4e99fcb45965fe5.zip | |
Skip Wow64 redirection on 64-bit CA builds.
Diffstat (limited to 'src/ext')
| -rw-r--r-- | src/ext/Util/ca/RemoveFoldersEx.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ext/Util/ca/RemoveFoldersEx.cpp b/src/ext/Util/ca/RemoveFoldersEx.cpp index cbc7f4bb..fc8574bc 100644 --- a/src/ext/Util/ca/RemoveFoldersEx.cpp +++ b/src/ext/Util/ca/RemoveFoldersEx.cpp | |||
| @@ -28,11 +28,15 @@ static HRESULT RecursePath( | |||
| 28 | WIN32_FIND_DATAW wfd; | 28 | WIN32_FIND_DATAW wfd; |
| 29 | LPWSTR sczNext = NULL; | 29 | LPWSTR sczNext = NULL; |
| 30 | 30 | ||
| 31 | #ifdef _WIN64 | ||
| 32 | UNREFERENCED_PARAMETER(fDisableWow64Redirection); | ||
| 33 | #else | ||
| 31 | if (fDisableWow64Redirection) | 34 | if (fDisableWow64Redirection) |
| 32 | { | 35 | { |
| 33 | hr = WcaDisableWow64FSRedirection(); | 36 | hr = WcaDisableWow64FSRedirection(); |
| 34 | ExitOnFailure(hr, "Custom action was told to act on a 64-bit component, but was unable to disable filesystem redirection through the Wow64 API."); | 37 | ExitOnFailure(hr, "Custom action was told to act on a 64-bit component, but was unable to disable filesystem redirection through the Wow64 API."); |
| 35 | } | 38 | } |
| 39 | #endif | ||
| 36 | 40 | ||
| 37 | // First recurse down to all the child directories. | 41 | // First recurse down to all the child directories. |
| 38 | hr = StrAllocFormatted(&sczSearch, L"%s*", wzPath); | 42 | hr = StrAllocFormatted(&sczSearch, L"%s*", wzPath); |
| @@ -103,10 +107,12 @@ LExit: | |||
| 103 | ::FindClose(hFind); | 107 | ::FindClose(hFind); |
| 104 | } | 108 | } |
| 105 | 109 | ||
| 110 | #ifndef _WIN64 | ||
| 106 | if (fDisableWow64Redirection) | 111 | if (fDisableWow64Redirection) |
| 107 | { | 112 | { |
| 108 | WcaRevertWow64FSRedirection(); | 113 | WcaRevertWow64FSRedirection(); |
| 109 | } | 114 | } |
| 115 | #endif | ||
| 110 | 116 | ||
| 111 | ReleaseStr(sczNext); | 117 | ReleaseStr(sczNext); |
| 112 | ReleaseStr(sczProperty); | 118 | ReleaseStr(sczProperty); |
| @@ -140,7 +146,9 @@ extern "C" UINT WINAPI WixRemoveFoldersEx( | |||
| 140 | hr = WcaInitialize(hInstall, "WixRemoveFoldersEx"); | 146 | hr = WcaInitialize(hInstall, "WixRemoveFoldersEx"); |
| 141 | ExitOnFailure(hr, "Failed to initialize WixRemoveFoldersEx."); | 147 | ExitOnFailure(hr, "Failed to initialize WixRemoveFoldersEx."); |
| 142 | 148 | ||
| 149 | #ifndef _WIN64 | ||
| 143 | WcaInitializeWow64(); | 150 | WcaInitializeWow64(); |
| 151 | #endif | ||
| 144 | 152 | ||
| 145 | // anything to do? | 153 | // anything to do? |
| 146 | if (S_OK != WcaTableExists(L"Wix4RemoveFolderEx")) | 154 | if (S_OK != WcaTableExists(L"Wix4RemoveFolderEx")) |
| @@ -219,7 +227,9 @@ extern "C" UINT WINAPI WixRemoveFoldersEx( | |||
| 219 | ExitOnFailure(hr, "Failure occured while processing Wix4RemoveFolderEx table"); | 227 | ExitOnFailure(hr, "Failure occured while processing Wix4RemoveFolderEx table"); |
| 220 | 228 | ||
| 221 | LExit: | 229 | LExit: |
| 230 | #ifndef _WIN64 | ||
| 222 | WcaFinalizeWow64(); | 231 | WcaFinalizeWow64(); |
| 232 | #endif | ||
| 223 | 233 | ||
| 224 | if (hColumns) | 234 | if (hColumns) |
| 225 | { | 235 | { |
