diff options
Diffstat (limited to 'src/libs/dutil/WixToolset.DUtil/butil.cpp')
-rw-r--r-- | src/libs/dutil/WixToolset.DUtil/butil.cpp | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/butil.cpp b/src/libs/dutil/WixToolset.DUtil/butil.cpp index 4b6cd02a..87e58e36 100644 --- a/src/libs/dutil/WixToolset.DUtil/butil.cpp +++ b/src/libs/dutil/WixToolset.DUtil/butil.cpp | |||
@@ -61,12 +61,12 @@ static HRESULT QueryRelatedBundlesForScopeAndBitness( | |||
61 | static HRESULT QueryPotentialRelatedBundle( | 61 | static HRESULT QueryPotentialRelatedBundle( |
62 | __in BUNDLE_QUERY_CONTEXT* pQueryContext, | 62 | __in BUNDLE_QUERY_CONTEXT* pQueryContext, |
63 | __in HKEY hkUninstallKey, | 63 | __in HKEY hkUninstallKey, |
64 | __in_z LPCWSTR wzRelatedBundleId, | 64 | __in_z LPCWSTR wzRelatedBundleCode, |
65 | __inout BUNDLE_QUERY_CALLBACK_RESULT* pResult | 65 | __inout BUNDLE_QUERY_CALLBACK_RESULT* pResult |
66 | ); | 66 | ); |
67 | static HRESULT DetermineRelationType( | 67 | static HRESULT DetermineRelationType( |
68 | __in BUNDLE_QUERY_CONTEXT* pQueryContext, | 68 | __in BUNDLE_QUERY_CONTEXT* pQueryContext, |
69 | __in HKEY hkBundleId, | 69 | __in HKEY hkBundleCode, |
70 | __out BUNDLE_RELATION_TYPE* pRelationType | 70 | __out BUNDLE_RELATION_TYPE* pRelationType |
71 | ); | 71 | ); |
72 | /******************************************************************** | 72 | /******************************************************************** |
@@ -76,7 +76,7 @@ LocateAndQueryBundleValue - Locates the requested key for the bundle, | |||
76 | NOTE: caller is responsible for closing key | 76 | NOTE: caller is responsible for closing key |
77 | ********************************************************************/ | 77 | ********************************************************************/ |
78 | static HRESULT LocateAndQueryBundleValue( | 78 | static HRESULT LocateAndQueryBundleValue( |
79 | __in_z LPCWSTR wzBundleId, | 79 | __in_z LPCWSTR wzBundleCode, |
80 | __in_opt LPCWSTR wzSubKey, | 80 | __in_opt LPCWSTR wzSubKey, |
81 | __in LPCWSTR wzValueName, | 81 | __in LPCWSTR wzValueName, |
82 | __inout HKEY* phKey, | 82 | __inout HKEY* phKey, |
@@ -91,7 +91,7 @@ static HRESULT CopyStringToBuffer( | |||
91 | 91 | ||
92 | 92 | ||
93 | DAPI_(HRESULT) BundleGetBundleInfo( | 93 | DAPI_(HRESULT) BundleGetBundleInfo( |
94 | __in_z LPCWSTR wzBundleId, | 94 | __in_z LPCWSTR wzBundleCode, |
95 | __in_z LPCWSTR wzAttribute, | 95 | __in_z LPCWSTR wzAttribute, |
96 | __deref_out_z LPWSTR* psczValue | 96 | __deref_out_z LPWSTR* psczValue |
97 | ) | 97 | ) |
@@ -102,12 +102,12 @@ DAPI_(HRESULT) BundleGetBundleInfo( | |||
102 | DWORD dwType = 0; | 102 | DWORD dwType = 0; |
103 | DWORD dwValue = 0; | 103 | DWORD dwValue = 0; |
104 | 104 | ||
105 | if (!wzBundleId || !wzAttribute || !psczValue) | 105 | if (!wzBundleCode || !wzAttribute || !psczValue) |
106 | { | 106 | { |
107 | ButilExitWithRootFailure(hr, E_INVALIDARG, "An invalid parameter was passed to the function."); | 107 | ButilExitWithRootFailure(hr, E_INVALIDARG, "An invalid parameter was passed to the function."); |
108 | } | 108 | } |
109 | 109 | ||
110 | hr = LocateAndQueryBundleValue(wzBundleId, NULL, wzAttribute, &hkBundle, &dwType, &status); | 110 | hr = LocateAndQueryBundleValue(wzBundleCode, NULL, wzAttribute, &hkBundle, &dwType, &status); |
111 | ButilExitOnFailure(hr, "Failed to locate and query bundle attribute."); | 111 | ButilExitOnFailure(hr, "Failed to locate and query bundle attribute."); |
112 | 112 | ||
113 | switch (status) | 113 | switch (status) |
@@ -144,7 +144,7 @@ LExit: | |||
144 | 144 | ||
145 | 145 | ||
146 | DAPI_(HRESULT) BundleGetBundleInfoFixed( | 146 | DAPI_(HRESULT) BundleGetBundleInfoFixed( |
147 | __in_z LPCWSTR wzBundleId, | 147 | __in_z LPCWSTR wzBundleCode, |
148 | __in_z LPCWSTR wzAttribute, | 148 | __in_z LPCWSTR wzAttribute, |
149 | __out_ecount_opt(*pcchValue) LPWSTR wzValue, | 149 | __out_ecount_opt(*pcchValue) LPWSTR wzValue, |
150 | __inout SIZE_T* pcchValue | 150 | __inout SIZE_T* pcchValue |
@@ -158,7 +158,7 @@ DAPI_(HRESULT) BundleGetBundleInfoFixed( | |||
158 | ButilExitWithRootFailure(hr, E_INVALIDARG, "An invalid parameter was passed to the function."); | 158 | ButilExitWithRootFailure(hr, E_INVALIDARG, "An invalid parameter was passed to the function."); |
159 | } | 159 | } |
160 | 160 | ||
161 | hr = BundleGetBundleInfo(wzBundleId, wzAttribute, &sczValue); | 161 | hr = BundleGetBundleInfo(wzBundleCode, wzAttribute, &sczValue); |
162 | if (SUCCEEDED(hr)) | 162 | if (SUCCEEDED(hr)) |
163 | { | 163 | { |
164 | hr = CopyStringToBuffer(sczValue, wzValue, pcchValue); | 164 | hr = CopyStringToBuffer(sczValue, wzValue, pcchValue); |
@@ -176,7 +176,7 @@ DAPI_(HRESULT) BundleEnumRelatedBundle( | |||
176 | __in BUNDLE_INSTALL_CONTEXT context, | 176 | __in BUNDLE_INSTALL_CONTEXT context, |
177 | __in REG_KEY_BITNESS kbKeyBitness, | 177 | __in REG_KEY_BITNESS kbKeyBitness, |
178 | __inout PDWORD pdwStartIndex, | 178 | __inout PDWORD pdwStartIndex, |
179 | __deref_out_z LPWSTR* psczBundleId | 179 | __deref_out_z LPWSTR* psczBundleCode |
180 | ) | 180 | ) |
181 | { | 181 | { |
182 | HRESULT hr = S_OK; | 182 | HRESULT hr = S_OK; |
@@ -218,9 +218,9 @@ DAPI_(HRESULT) BundleEnumRelatedBundle( | |||
218 | fUpgradeCodeFound = TRUE; | 218 | fUpgradeCodeFound = TRUE; |
219 | *pdwStartIndex = dwIndex; | 219 | *pdwStartIndex = dwIndex; |
220 | 220 | ||
221 | if (psczBundleId) | 221 | if (psczBundleCode) |
222 | { | 222 | { |
223 | *psczBundleId = sczUninstallSubKey; | 223 | *psczBundleCode = sczUninstallSubKey; |
224 | sczUninstallSubKey = NULL; | 224 | sczUninstallSubKey = NULL; |
225 | } | 225 | } |
226 | 226 | ||
@@ -246,7 +246,7 @@ DAPI_(HRESULT) BundleEnumRelatedBundleFixed( | |||
246 | __in BUNDLE_INSTALL_CONTEXT context, | 246 | __in BUNDLE_INSTALL_CONTEXT context, |
247 | __in REG_KEY_BITNESS kbKeyBitness, | 247 | __in REG_KEY_BITNESS kbKeyBitness, |
248 | __inout PDWORD pdwStartIndex, | 248 | __inout PDWORD pdwStartIndex, |
249 | __out_ecount(MAX_GUID_CHARS+1) LPWSTR wzBundleId | 249 | __out_ecount(MAX_GUID_CHARS+1) LPWSTR wzBundleCode |
250 | ) | 250 | ) |
251 | { | 251 | { |
252 | HRESULT hr = S_OK; | 252 | HRESULT hr = S_OK; |
@@ -254,12 +254,12 @@ DAPI_(HRESULT) BundleEnumRelatedBundleFixed( | |||
254 | size_t cchValue = 0; | 254 | size_t cchValue = 0; |
255 | 255 | ||
256 | hr = BundleEnumRelatedBundle(wzUpgradeCode, context, kbKeyBitness, pdwStartIndex, &sczValue); | 256 | hr = BundleEnumRelatedBundle(wzUpgradeCode, context, kbKeyBitness, pdwStartIndex, &sczValue); |
257 | if (S_OK == hr && wzBundleId) | 257 | if (S_OK == hr && wzBundleCode) |
258 | { | 258 | { |
259 | hr = ::StringCchLengthW(sczValue, STRSAFE_MAX_CCH, &cchValue); | 259 | hr = ::StringCchLengthW(sczValue, STRSAFE_MAX_CCH, &cchValue); |
260 | ButilExitOnRootFailure(hr, "Failed to calculate length of string."); | 260 | ButilExitOnRootFailure(hr, "Failed to calculate length of string."); |
261 | 261 | ||
262 | hr = ::StringCchCopyNExW(wzBundleId, MAX_GUID_CHARS + 1, sczValue, cchValue, NULL, NULL, STRSAFE_FILL_BEHIND_NULL); | 262 | hr = ::StringCchCopyNExW(wzBundleCode, MAX_GUID_CHARS + 1, sczValue, cchValue, NULL, NULL, STRSAFE_FILL_BEHIND_NULL); |
263 | ButilExitOnRootFailure(hr, "Failed to copy the property value to the output buffer."); | 263 | ButilExitOnRootFailure(hr, "Failed to copy the property value to the output buffer."); |
264 | } | 264 | } |
265 | 265 | ||
@@ -271,7 +271,7 @@ LExit: | |||
271 | 271 | ||
272 | 272 | ||
273 | DAPI_(HRESULT) BundleGetBundleVariable( | 273 | DAPI_(HRESULT) BundleGetBundleVariable( |
274 | __in_z LPCWSTR wzBundleId, | 274 | __in_z LPCWSTR wzBundleCode, |
275 | __in_z LPCWSTR wzVariable, | 275 | __in_z LPCWSTR wzVariable, |
276 | __deref_out_z LPWSTR* psczValue | 276 | __deref_out_z LPWSTR* psczValue |
277 | ) | 277 | ) |
@@ -281,12 +281,12 @@ DAPI_(HRESULT) BundleGetBundleVariable( | |||
281 | INTERNAL_BUNDLE_STATUS status = INTERNAL_BUNDLE_STATUS_SUCCESS; | 281 | INTERNAL_BUNDLE_STATUS status = INTERNAL_BUNDLE_STATUS_SUCCESS; |
282 | DWORD dwType = 0; | 282 | DWORD dwType = 0; |
283 | 283 | ||
284 | if (!wzBundleId || !wzVariable || !psczValue) | 284 | if (!wzBundleCode || !wzVariable || !psczValue) |
285 | { | 285 | { |
286 | ButilExitWithRootFailure(hr, E_INVALIDARG, "An invalid parameter was passed to the function."); | 286 | ButilExitWithRootFailure(hr, E_INVALIDARG, "An invalid parameter was passed to the function."); |
287 | } | 287 | } |
288 | 288 | ||
289 | hr = LocateAndQueryBundleValue(wzBundleId, BUNDLE_REGISTRATION_REGISTRY_BUNDLE_VARIABLE_KEY, wzVariable, &hkBundle, &dwType, &status); | 289 | hr = LocateAndQueryBundleValue(wzBundleCode, BUNDLE_REGISTRATION_REGISTRY_BUNDLE_VARIABLE_KEY, wzVariable, &hkBundle, &dwType, &status); |
290 | ButilExitOnFailure(hr, "Failed to locate and query bundle variable."); | 290 | ButilExitOnFailure(hr, "Failed to locate and query bundle variable."); |
291 | 291 | ||
292 | switch (status) | 292 | switch (status) |
@@ -319,7 +319,7 @@ LExit: | |||
319 | 319 | ||
320 | 320 | ||
321 | DAPI_(HRESULT) BundleGetBundleVariableFixed( | 321 | DAPI_(HRESULT) BundleGetBundleVariableFixed( |
322 | __in_z LPCWSTR wzBundleId, | 322 | __in_z LPCWSTR wzBundleCode, |
323 | __in_z LPCWSTR wzVariable, | 323 | __in_z LPCWSTR wzVariable, |
324 | __out_ecount_opt(*pcchValue) LPWSTR wzValue, | 324 | __out_ecount_opt(*pcchValue) LPWSTR wzValue, |
325 | __inout SIZE_T* pcchValue | 325 | __inout SIZE_T* pcchValue |
@@ -333,7 +333,7 @@ DAPI_(HRESULT) BundleGetBundleVariableFixed( | |||
333 | ButilExitWithRootFailure(hr, E_INVALIDARG, "An invalid parameter was passed to the function."); | 333 | ButilExitWithRootFailure(hr, E_INVALIDARG, "An invalid parameter was passed to the function."); |
334 | } | 334 | } |
335 | 335 | ||
336 | hr = BundleGetBundleVariable(wzBundleId, wzVariable, &sczValue); | 336 | hr = BundleGetBundleVariable(wzBundleCode, wzVariable, &sczValue); |
337 | if (SUCCEEDED(hr)) | 337 | if (SUCCEEDED(hr)) |
338 | { | 338 | { |
339 | hr = CopyStringToBuffer(sczValue, wzValue, pcchValue); | 339 | hr = CopyStringToBuffer(sczValue, wzValue, pcchValue); |
@@ -405,7 +405,7 @@ static HRESULT QueryRelatedBundlesForScopeAndBitness( | |||
405 | HKEY hkRoot = BUNDLE_INSTALL_CONTEXT_USER == pQueryContext->installContext ? HKEY_CURRENT_USER : HKEY_LOCAL_MACHINE; | 405 | HKEY hkRoot = BUNDLE_INSTALL_CONTEXT_USER == pQueryContext->installContext ? HKEY_CURRENT_USER : HKEY_LOCAL_MACHINE; |
406 | HKEY hkUninstallKey = NULL; | 406 | HKEY hkUninstallKey = NULL; |
407 | BOOL fExists = FALSE; | 407 | BOOL fExists = FALSE; |
408 | LPWSTR sczRelatedBundleId = NULL; | 408 | LPWSTR sczRelatedBundleCode = NULL; |
409 | BUNDLE_QUERY_CALLBACK_RESULT result = BUNDLE_QUERY_CALLBACK_RESULT_CONTINUE; | 409 | BUNDLE_QUERY_CALLBACK_RESULT result = BUNDLE_QUERY_CALLBACK_RESULT_CONTINUE; |
410 | 410 | ||
411 | hr = RegOpenEx(hkRoot, BUNDLE_REGISTRATION_REGISTRY_UNINSTALL_KEY, KEY_READ, pQueryContext->regBitness, &hkUninstallKey); | 411 | hr = RegOpenEx(hkRoot, BUNDLE_REGISTRATION_REGISTRY_UNINSTALL_KEY, KEY_READ, pQueryContext->regBitness, &hkUninstallKey); |
@@ -418,7 +418,7 @@ static HRESULT QueryRelatedBundlesForScopeAndBitness( | |||
418 | 418 | ||
419 | for (DWORD dwIndex = 0; /* exit via break below */; ++dwIndex) | 419 | for (DWORD dwIndex = 0; /* exit via break below */; ++dwIndex) |
420 | { | 420 | { |
421 | hr = RegKeyEnum(hkUninstallKey, dwIndex, &sczRelatedBundleId); | 421 | hr = RegKeyEnum(hkUninstallKey, dwIndex, &sczRelatedBundleCode); |
422 | if (E_NOMOREITEMS == hr) | 422 | if (E_NOMOREITEMS == hr) |
423 | { | 423 | { |
424 | hr = S_OK; | 424 | hr = S_OK; |
@@ -428,7 +428,7 @@ static HRESULT QueryRelatedBundlesForScopeAndBitness( | |||
428 | 428 | ||
429 | // Ignore failures here since we'll often find products that aren't actually | 429 | // Ignore failures here since we'll often find products that aren't actually |
430 | // related bundles (or even bundles at all). | 430 | // related bundles (or even bundles at all). |
431 | HRESULT hrRelatedBundle = QueryPotentialRelatedBundle(pQueryContext, hkUninstallKey, sczRelatedBundleId, &result); | 431 | HRESULT hrRelatedBundle = QueryPotentialRelatedBundle(pQueryContext, hkUninstallKey, sczRelatedBundleCode, &result); |
432 | if (SUCCEEDED(hrRelatedBundle) && BUNDLE_QUERY_CALLBACK_RESULT_CONTINUE != result) | 432 | if (SUCCEEDED(hrRelatedBundle) && BUNDLE_QUERY_CALLBACK_RESULT_CONTINUE != result) |
433 | { | 433 | { |
434 | ExitFunction1(hr = HRESULT_FROM_WIN32(ERROR_REQUEST_ABORTED)); | 434 | ExitFunction1(hr = HRESULT_FROM_WIN32(ERROR_REQUEST_ABORTED)); |
@@ -436,7 +436,7 @@ static HRESULT QueryRelatedBundlesForScopeAndBitness( | |||
436 | } | 436 | } |
437 | 437 | ||
438 | LExit: | 438 | LExit: |
439 | ReleaseStr(sczRelatedBundleId); | 439 | ReleaseStr(sczRelatedBundleCode); |
440 | ReleaseRegKey(hkUninstallKey); | 440 | ReleaseRegKey(hkUninstallKey); |
441 | 441 | ||
442 | return hr; | 442 | return hr; |
@@ -445,19 +445,19 @@ LExit: | |||
445 | static HRESULT QueryPotentialRelatedBundle( | 445 | static HRESULT QueryPotentialRelatedBundle( |
446 | __in BUNDLE_QUERY_CONTEXT* pQueryContext, | 446 | __in BUNDLE_QUERY_CONTEXT* pQueryContext, |
447 | __in HKEY hkUninstallKey, | 447 | __in HKEY hkUninstallKey, |
448 | __in_z LPCWSTR wzRelatedBundleId, | 448 | __in_z LPCWSTR wzRelatedBundleCode, |
449 | __inout BUNDLE_QUERY_CALLBACK_RESULT* pResult | 449 | __inout BUNDLE_QUERY_CALLBACK_RESULT* pResult |
450 | ) | 450 | ) |
451 | { | 451 | { |
452 | HRESULT hr = S_OK; | 452 | HRESULT hr = S_OK; |
453 | HKEY hkBundleId = NULL; | 453 | HKEY hkBundleCode = NULL; |
454 | BUNDLE_RELATION_TYPE relationType = BUNDLE_RELATION_NONE; | 454 | BUNDLE_RELATION_TYPE relationType = BUNDLE_RELATION_NONE; |
455 | BUNDLE_QUERY_RELATED_BUNDLE_RESULT bundle = { }; | 455 | BUNDLE_QUERY_RELATED_BUNDLE_RESULT bundle = { }; |
456 | 456 | ||
457 | hr = RegOpenEx(hkUninstallKey, wzRelatedBundleId, KEY_READ, pQueryContext->regBitness, &hkBundleId); | 457 | hr = RegOpenEx(hkUninstallKey, wzRelatedBundleCode, KEY_READ, pQueryContext->regBitness, &hkBundleCode); |
458 | ButilExitOnFailure(hr, "Failed to open uninstall key for potential related bundle: %ls", wzRelatedBundleId); | 458 | ButilExitOnFailure(hr, "Failed to open uninstall key for potential related bundle: %ls", wzRelatedBundleCode); |
459 | 459 | ||
460 | hr = DetermineRelationType(pQueryContext, hkBundleId, &relationType); | 460 | hr = DetermineRelationType(pQueryContext, hkBundleCode, &relationType); |
461 | if (FAILED(hr)) | 461 | if (FAILED(hr)) |
462 | { | 462 | { |
463 | ExitFunction(); | 463 | ExitFunction(); |
@@ -465,21 +465,21 @@ static HRESULT QueryPotentialRelatedBundle( | |||
465 | 465 | ||
466 | bundle.installContext = pQueryContext->installContext; | 466 | bundle.installContext = pQueryContext->installContext; |
467 | bundle.regBitness = pQueryContext->regBitness; | 467 | bundle.regBitness = pQueryContext->regBitness; |
468 | bundle.wzBundleId = wzRelatedBundleId; | 468 | bundle.wzBundleCode = wzRelatedBundleCode; |
469 | bundle.relationType = relationType; | 469 | bundle.relationType = relationType; |
470 | bundle.hkBundle = hkBundleId; | 470 | bundle.hkBundle = hkBundleCode; |
471 | 471 | ||
472 | *pResult = pQueryContext->pfnCallback(&bundle, pQueryContext->pvContext); | 472 | *pResult = pQueryContext->pfnCallback(&bundle, pQueryContext->pvContext); |
473 | 473 | ||
474 | LExit: | 474 | LExit: |
475 | ReleaseRegKey(hkBundleId); | 475 | ReleaseRegKey(hkBundleCode); |
476 | 476 | ||
477 | return hr; | 477 | return hr; |
478 | } | 478 | } |
479 | 479 | ||
480 | static HRESULT DetermineRelationType( | 480 | static HRESULT DetermineRelationType( |
481 | __in BUNDLE_QUERY_CONTEXT* pQueryContext, | 481 | __in BUNDLE_QUERY_CONTEXT* pQueryContext, |
482 | __in HKEY hkBundleId, | 482 | __in HKEY hkBundleCode, |
483 | __out BUNDLE_RELATION_TYPE* pRelationType | 483 | __out BUNDLE_RELATION_TYPE* pRelationType |
484 | ) | 484 | ) |
485 | { | 485 | { |
@@ -499,7 +499,7 @@ static HRESULT DetermineRelationType( | |||
499 | 499 | ||
500 | *pRelationType = BUNDLE_RELATION_NONE; | 500 | *pRelationType = BUNDLE_RELATION_NONE; |
501 | 501 | ||
502 | hr = RegReadStringArray(hkBundleId, BUNDLE_REGISTRATION_REGISTRY_BUNDLE_UPGRADE_CODE, &rgsczUpgradeCodes, &cUpgradeCodes); | 502 | hr = RegReadStringArray(hkBundleCode, BUNDLE_REGISTRATION_REGISTRY_BUNDLE_UPGRADE_CODE, &rgsczUpgradeCodes, &cUpgradeCodes); |
503 | if (HRESULT_FROM_WIN32(ERROR_INVALID_DATATYPE) == hr) | 503 | if (HRESULT_FROM_WIN32(ERROR_INVALID_DATATYPE) == hr) |
504 | { | 504 | { |
505 | TraceError(hr, "Failed to read upgrade codes as REG_MULTI_SZ. Trying again as REG_SZ in case of older bundles."); | 505 | TraceError(hr, "Failed to read upgrade codes as REG_MULTI_SZ. Trying again as REG_SZ in case of older bundles."); |
@@ -507,7 +507,7 @@ static HRESULT DetermineRelationType( | |||
507 | rgsczUpgradeCodes = reinterpret_cast<LPWSTR*>(MemAlloc(sizeof(LPWSTR), TRUE)); | 507 | rgsczUpgradeCodes = reinterpret_cast<LPWSTR*>(MemAlloc(sizeof(LPWSTR), TRUE)); |
508 | ButilExitOnNull(rgsczUpgradeCodes, hr, E_OUTOFMEMORY, "Failed to allocate list for a single upgrade code from older bundle."); | 508 | ButilExitOnNull(rgsczUpgradeCodes, hr, E_OUTOFMEMORY, "Failed to allocate list for a single upgrade code from older bundle."); |
509 | 509 | ||
510 | hr = RegReadString(hkBundleId, BUNDLE_REGISTRATION_REGISTRY_BUNDLE_UPGRADE_CODE, &rgsczUpgradeCodes[0]); | 510 | hr = RegReadString(hkBundleCode, BUNDLE_REGISTRATION_REGISTRY_BUNDLE_UPGRADE_CODE, &rgsczUpgradeCodes[0]); |
511 | if (SUCCEEDED(hr)) | 511 | if (SUCCEEDED(hr)) |
512 | { | 512 | { |
513 | cUpgradeCodes = 1; | 513 | cUpgradeCodes = 1; |
@@ -581,7 +581,7 @@ static HRESULT DetermineRelationType( | |||
581 | } | 581 | } |
582 | 582 | ||
583 | // Compare addon codes. | 583 | // Compare addon codes. |
584 | hr = RegReadStringArray(hkBundleId, BUNDLE_REGISTRATION_REGISTRY_BUNDLE_ADDON_CODE, &rgsczAddonCodes, &cAddonCodes); | 584 | hr = RegReadStringArray(hkBundleCode, BUNDLE_REGISTRATION_REGISTRY_BUNDLE_ADDON_CODE, &rgsczAddonCodes, &cAddonCodes); |
585 | if (SUCCEEDED(hr)) | 585 | if (SUCCEEDED(hr)) |
586 | { | 586 | { |
587 | hr = DictCreateStringListFromArray(&sdAddonCodes, rgsczAddonCodes, cAddonCodes, DICT_FLAG_CASEINSENSITIVE); | 587 | hr = DictCreateStringListFromArray(&sdAddonCodes, rgsczAddonCodes, cAddonCodes, DICT_FLAG_CASEINSENSITIVE); |
@@ -620,7 +620,7 @@ static HRESULT DetermineRelationType( | |||
620 | } | 620 | } |
621 | 621 | ||
622 | // Compare patch codes. | 622 | // Compare patch codes. |
623 | hr = RegReadStringArray(hkBundleId, BUNDLE_REGISTRATION_REGISTRY_BUNDLE_PATCH_CODE, &rgsczPatchCodes, &cPatchCodes); | 623 | hr = RegReadStringArray(hkBundleCode, BUNDLE_REGISTRATION_REGISTRY_BUNDLE_PATCH_CODE, &rgsczPatchCodes, &cPatchCodes); |
624 | if (SUCCEEDED(hr)) | 624 | if (SUCCEEDED(hr)) |
625 | { | 625 | { |
626 | hr = DictCreateStringListFromArray(&sdPatchCodes, rgsczPatchCodes, cPatchCodes, DICT_FLAG_CASEINSENSITIVE); | 626 | hr = DictCreateStringListFromArray(&sdPatchCodes, rgsczPatchCodes, cPatchCodes, DICT_FLAG_CASEINSENSITIVE); |
@@ -659,7 +659,7 @@ static HRESULT DetermineRelationType( | |||
659 | } | 659 | } |
660 | 660 | ||
661 | // Compare detect codes. | 661 | // Compare detect codes. |
662 | hr = RegReadStringArray(hkBundleId, BUNDLE_REGISTRATION_REGISTRY_BUNDLE_DETECT_CODE, &rgsczDetectCodes, &cDetectCodes); | 662 | hr = RegReadStringArray(hkBundleCode, BUNDLE_REGISTRATION_REGISTRY_BUNDLE_DETECT_CODE, &rgsczDetectCodes, &cDetectCodes); |
663 | if (SUCCEEDED(hr)) | 663 | if (SUCCEEDED(hr)) |
664 | { | 664 | { |
665 | hr = DictCreateStringListFromArray(&sdDetectCodes, rgsczDetectCodes, cDetectCodes, DICT_FLAG_CASEINSENSITIVE); | 665 | hr = DictCreateStringListFromArray(&sdDetectCodes, rgsczDetectCodes, cDetectCodes, DICT_FLAG_CASEINSENSITIVE); |
@@ -730,7 +730,7 @@ LExit: | |||
730 | } | 730 | } |
731 | 731 | ||
732 | static HRESULT LocateAndQueryBundleValue( | 732 | static HRESULT LocateAndQueryBundleValue( |
733 | __in_z LPCWSTR wzBundleId, | 733 | __in_z LPCWSTR wzBundleCode, |
734 | __in_opt LPCWSTR wzSubKey, | 734 | __in_opt LPCWSTR wzSubKey, |
735 | __in LPCWSTR wzValueName, | 735 | __in LPCWSTR wzValueName, |
736 | __inout HKEY* phKey, | 736 | __inout HKEY* phKey, |
@@ -746,11 +746,11 @@ static HRESULT LocateAndQueryBundleValue( | |||
746 | 746 | ||
747 | if (wzSubKey) | 747 | if (wzSubKey) |
748 | { | 748 | { |
749 | hr = StrAllocFormatted(&sczKeypath, L"%ls\\%ls\\%ls", BUNDLE_REGISTRATION_REGISTRY_UNINSTALL_KEY, wzBundleId, wzSubKey); | 749 | hr = StrAllocFormatted(&sczKeypath, L"%ls\\%ls\\%ls", BUNDLE_REGISTRATION_REGISTRY_UNINSTALL_KEY, wzBundleCode, wzSubKey); |
750 | } | 750 | } |
751 | else | 751 | else |
752 | { | 752 | { |
753 | hr = StrAllocFormatted(&sczKeypath, L"%ls\\%ls", BUNDLE_REGISTRATION_REGISTRY_UNINSTALL_KEY, wzBundleId); | 753 | hr = StrAllocFormatted(&sczKeypath, L"%ls\\%ls", BUNDLE_REGISTRATION_REGISTRY_UNINSTALL_KEY, wzBundleCode); |
754 | } | 754 | } |
755 | ButilExitOnFailure(hr, "Failed to allocate bundle uninstall key path."); | 755 | ButilExitOnFailure(hr, "Failed to allocate bundle uninstall key path."); |
756 | 756 | ||