aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libs/dutil/WixToolset.DUtil/butil.cpp15
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
387LExit: 396LExit:
388 return hr; 397 return hr;