diff options
author | Bob Arnson <bob@firegiant.com> | 2022-01-15 21:40:54 -0500 |
---|---|---|
committer | Bob Arnson <github@bobs.org> | 2022-01-16 10:28:44 -0500 |
commit | 47bca2dc51525fcad86f325278b14953ac5b137e (patch) | |
tree | 80a153833efbe0794be7153c64e712a5799649c4 /src/libs/dutil/WixToolset.DUtil/inc | |
parent | 6d1c4cc83214b65032251c67239b02da59a3e635 (diff) | |
download | wix-47bca2dc51525fcad86f325278b14953ac5b137e.tar.gz wix-47bca2dc51525fcad86f325278b14953ac5b137e.tar.bz2 wix-47bca2dc51525fcad86f325278b14953ac5b137e.zip |
Fix 32/64-bit bitness handling in Burn and BUtil.
- Take advantage of RegOpenEx.
- Always look for related bundles in both 32 and 64 hives.
- BundleEnumRelatedBundle requires caller to specify bitness.
Diffstat (limited to 'src/libs/dutil/WixToolset.DUtil/inc')
-rw-r--r-- | src/libs/dutil/WixToolset.DUtil/inc/butil.h | 7 | ||||
-rw-r--r-- | src/libs/dutil/WixToolset.DUtil/inc/regutil.h | 9 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/inc/butil.h b/src/libs/dutil/WixToolset.DUtil/inc/butil.h index 3b316e66..9c2010ee 100644 --- a/src/libs/dutil/WixToolset.DUtil/inc/butil.h +++ b/src/libs/dutil/WixToolset.DUtil/inc/butil.h | |||
@@ -60,7 +60,9 @@ HRESULT DAPI BundleGetBundleInfoFixed( | |||
60 | ); | 60 | ); |
61 | 61 | ||
62 | /******************************************************************** | 62 | /******************************************************************** |
63 | BundleEnumRelatedBundle - Queries the bundle installation metadata for installs with the given upgrade code | 63 | BundleEnumRelatedBundle - Queries the bundle installation metadata for installs with the given upgrade code. |
64 | Enumerate 32-bit and 64-bit in two passes. | ||
65 | |||
64 | RETURNS: | 66 | RETURNS: |
65 | E_INVALIDARG | 67 | E_INVALIDARG |
66 | An invalid parameter was passed to the function. | 68 | An invalid parameter was passed to the function. |
@@ -74,12 +76,14 @@ RETURNS: | |||
74 | HRESULT DAPI BundleEnumRelatedBundle( | 76 | HRESULT DAPI BundleEnumRelatedBundle( |
75 | __in_z LPCWSTR wzUpgradeCode, | 77 | __in_z LPCWSTR wzUpgradeCode, |
76 | __in BUNDLE_INSTALL_CONTEXT context, | 78 | __in BUNDLE_INSTALL_CONTEXT context, |
79 | __in REG_KEY_BITNESS kbKeyBitness, | ||
77 | __inout PDWORD pdwStartIndex, | 80 | __inout PDWORD pdwStartIndex, |
78 | __deref_out_z LPWSTR* psczBundleId | 81 | __deref_out_z LPWSTR* psczBundleId |
79 | ); | 82 | ); |
80 | 83 | ||
81 | /******************************************************************** | 84 | /******************************************************************** |
82 | BundleEnumRelatedBundleFixed - Queries the bundle installation metadata for installs with the given upgrade code | 85 | BundleEnumRelatedBundleFixed - Queries the bundle installation metadata for installs with the given upgrade code |
86 | Enumerate 32-bit and 64-bit in two passes. | ||
83 | 87 | ||
84 | NOTE: lpBundleIdBuff is a buffer to receive the bundle GUID. This buffer must be 39 characters long. | 88 | NOTE: lpBundleIdBuff is a buffer to receive the bundle GUID. This buffer must be 39 characters long. |
85 | The first 38 characters are for the GUID, and the last character is for the terminating null character. | 89 | The first 38 characters are for the GUID, and the last character is for the terminating null character. |
@@ -96,6 +100,7 @@ RETURNS: | |||
96 | HRESULT DAPI BundleEnumRelatedBundleFixed( | 100 | HRESULT DAPI BundleEnumRelatedBundleFixed( |
97 | __in_z LPCWSTR wzUpgradeCode, | 101 | __in_z LPCWSTR wzUpgradeCode, |
98 | __in BUNDLE_INSTALL_CONTEXT context, | 102 | __in BUNDLE_INSTALL_CONTEXT context, |
103 | __in REG_KEY_BITNESS kbKeyBitness, | ||
99 | __inout PDWORD pdwStartIndex, | 104 | __inout PDWORD pdwStartIndex, |
100 | __out_ecount(MAX_GUID_CHARS+1) LPWSTR wzBundleId | 105 | __out_ecount(MAX_GUID_CHARS+1) LPWSTR wzBundleId |
101 | ); | 106 | ); |
diff --git a/src/libs/dutil/WixToolset.DUtil/inc/regutil.h b/src/libs/dutil/WixToolset.DUtil/inc/regutil.h index db8e0c5c..3cbb53b0 100644 --- a/src/libs/dutil/WixToolset.DUtil/inc/regutil.h +++ b/src/libs/dutil/WixToolset.DUtil/inc/regutil.h | |||
@@ -408,6 +408,15 @@ BOOL DAPI RegValueExists( | |||
408 | __in REG_KEY_BITNESS kbKeyBitness | 408 | __in REG_KEY_BITNESS kbKeyBitness |
409 | ); | 409 | ); |
410 | 410 | ||
411 | /******************************************************************** | ||
412 | RegTranslateKeyBitness - Converts from REG_KEY_BITNESS values to | ||
413 | REGSAM-compatible values. | ||
414 | |||
415 | *********************************************************************/ | ||
416 | REGSAM DAPI RegTranslateKeyBitness( | ||
417 | __in REG_KEY_BITNESS kbKeyBitness | ||
418 | ); | ||
419 | |||
411 | #ifdef __cplusplus | 420 | #ifdef __cplusplus |
412 | } | 421 | } |
413 | #endif | 422 | #endif |