diff options
-rw-r--r-- | src/libs/dutil/WixToolset.DUtil/butil.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/butil.cpp b/src/libs/dutil/WixToolset.DUtil/butil.cpp index 47f206ea..4b6cd02a 100644 --- a/src/libs/dutil/WixToolset.DUtil/butil.cpp +++ b/src/libs/dutil/WixToolset.DUtil/butil.cpp | |||
@@ -361,6 +361,12 @@ DAPI_(HRESULT) BundleQueryRelatedBundles( | |||
361 | { | 361 | { |
362 | HRESULT hr = S_OK; | 362 | HRESULT hr = S_OK; |
363 | BUNDLE_QUERY_CONTEXT queryContext = { }; | 363 | BUNDLE_QUERY_CONTEXT queryContext = { }; |
364 | BOOL fSearch64 = TRUE; | ||
365 | |||
366 | #if !defined(_WIN64) | ||
367 | // On 32-bit OS's, the requested bitness of the key is ignored so need to avoid searching the same place twice. | ||
368 | ProcWow64(::GetCurrentProcess(), &fSearch64); | ||
369 | #endif | ||
364 | 370 | ||
365 | queryContext.installContext = installContext; | 371 | queryContext.installContext = installContext; |
366 | queryContext.rgwzDetectCodes = rgwzDetectCodes; | 372 | queryContext.rgwzDetectCodes = rgwzDetectCodes; |
@@ -379,10 +385,13 @@ DAPI_(HRESULT) BundleQueryRelatedBundles( | |||
379 | hr = QueryRelatedBundlesForScopeAndBitness(&queryContext); | 385 | hr = QueryRelatedBundlesForScopeAndBitness(&queryContext); |
380 | ButilExitOnFailure(hr, "Failed to query 32-bit related bundles."); | 386 | ButilExitOnFailure(hr, "Failed to query 32-bit related bundles."); |
381 | 387 | ||
382 | queryContext.regBitness = REG_KEY_64BIT; | 388 | if (fSearch64) |
389 | { | ||
390 | queryContext.regBitness = REG_KEY_64BIT; | ||
383 | 391 | ||
384 | hr = QueryRelatedBundlesForScopeAndBitness(&queryContext); | 392 | hr = QueryRelatedBundlesForScopeAndBitness(&queryContext); |
385 | ButilExitOnFailure(hr, "Failed to query 64-bit related bundles."); | 393 | ButilExitOnFailure(hr, "Failed to query 64-bit related bundles."); |
394 | } | ||
386 | 395 | ||
387 | LExit: | 396 | LExit: |
388 | return hr; | 397 | return hr; |