From d2ba0da55725f2908b67e1470afc7cfd71cb3d1f Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 1 Nov 2025 21:52:31 -0700 Subject: Use CompareStringOrdinal() instead of CompareString() case-sensitive This commit moves to the modern CompareStringOrdinal() for all case-sensitve uses of CompareString() with the invariant locale. Resolves 6947 --- src/burn/engine/approvedexe.cpp | 2 +- src/burn/engine/bundlepackageengine.cpp | 8 ++-- src/burn/engine/burnextension.cpp | 2 +- src/burn/engine/burnpipe.cpp | 2 +- src/burn/engine/condition.cpp | 10 ++--- src/burn/engine/container.cpp | 2 +- src/burn/engine/exeengine.cpp | 12 +++--- src/burn/engine/logging.cpp | 2 +- src/burn/engine/manifest.cpp | 2 +- src/burn/engine/mspengine.cpp | 6 +-- src/burn/engine/package.cpp | 28 +++++++------- src/burn/engine/payload.cpp | 4 +- src/burn/engine/registration.cpp | 8 ++-- src/burn/engine/relatedbundle.cpp | 2 +- src/burn/engine/search.cpp | 66 ++++++++++++++++----------------- src/burn/engine/variable.cpp | 12 +++--- 16 files changed, 84 insertions(+), 84 deletions(-) (limited to 'src/burn/engine') diff --git a/src/burn/engine/approvedexe.cpp b/src/burn/engine/approvedexe.cpp index 383ee7fa..27ec2adc 100644 --- a/src/burn/engine/approvedexe.cpp +++ b/src/burn/engine/approvedexe.cpp @@ -129,7 +129,7 @@ extern "C" HRESULT ApprovedExesFindById( { pApprovedExe = &pApprovedExes->rgApprovedExes[i]; - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, pApprovedExe->sczId, -1, wzId, -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(pApprovedExe->sczId, -1, wzId, -1, FALSE)) { *ppApprovedExe = pApprovedExe; ExitFunction1(hr = S_OK); diff --git a/src/burn/engine/bundlepackageengine.cpp b/src/burn/engine/bundlepackageengine.cpp index 1a8ba982..7ada5f6a 100644 --- a/src/burn/engine/bundlepackageengine.cpp +++ b/src/burn/engine/bundlepackageengine.cpp @@ -146,7 +146,7 @@ extern "C" HRESULT BundlePackageEngineParseRelatedCodes( hr = XmlGetAttributeEx(pixnElement, L"Code", &sczCode); ExitOnFailure(hr, "Failed to get @Code."); - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, sczAction, -1, L"Detect", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(sczAction, -1, L"Detect", -1, FALSE)) { hr = MemEnsureArraySizeForNewItems(reinterpret_cast(prgsczDetectCodes), *pcDetectCodes, 1, sizeof(LPWSTR), 5); ExitOnFailure(hr, "Failed to resize Detect code array"); @@ -155,7 +155,7 @@ extern "C" HRESULT BundlePackageEngineParseRelatedCodes( sczCode = NULL; *pcDetectCodes += 1; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, sczAction, -1, L"Upgrade", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(sczAction, -1, L"Upgrade", -1, FALSE)) { hr = MemEnsureArraySizeForNewItems(reinterpret_cast(prgsczUpgradeCodes), *pcUpgradeCodes, 1, sizeof(LPWSTR), 5); ExitOnFailure(hr, "Failed to resize Upgrade code array"); @@ -164,7 +164,7 @@ extern "C" HRESULT BundlePackageEngineParseRelatedCodes( sczCode = NULL; *pcUpgradeCodes += 1; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, sczAction, -1, L"Addon", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(sczAction, -1, L"Addon", -1, FALSE)) { hr = MemEnsureArraySizeForNewItems(reinterpret_cast(prgsczAddonCodes), *pcAddonCodes, 1, sizeof(LPWSTR), 5); ExitOnFailure(hr, "Failed to resize Addon code array"); @@ -173,7 +173,7 @@ extern "C" HRESULT BundlePackageEngineParseRelatedCodes( sczCode = NULL; *pcAddonCodes += 1; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, sczAction, -1, L"Patch", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(sczAction, -1, L"Patch", -1, FALSE)) { hr = MemEnsureArraySizeForNewItems(reinterpret_cast(prgsczPatchCodes), *pcPatchCodes, 1, sizeof(LPWSTR), 5); ExitOnFailure(hr, "Failed to resize Patch code array"); diff --git a/src/burn/engine/burnextension.cpp b/src/burn/engine/burnextension.cpp index 536dbcc9..50657f32 100644 --- a/src/burn/engine/burnextension.cpp +++ b/src/burn/engine/burnextension.cpp @@ -214,7 +214,7 @@ EXTERN_C HRESULT BurnExtensionFindById( { pExtension = &pBurnExtensions->rgExtensions[i]; - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, pExtension->sczId, -1, wzId, -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(pExtension->sczId, -1, wzId, -1, FALSE)) { *ppExtension = pExtension; ExitFunction1(hr = S_OK); diff --git a/src/burn/engine/burnpipe.cpp b/src/burn/engine/burnpipe.cpp index 25d602b1..ec85822e 100644 --- a/src/burn/engine/burnpipe.cpp +++ b/src/burn/engine/burnpipe.cpp @@ -515,7 +515,7 @@ static HRESULT ChildPipeConnected( ExitOnFailure(hr, "Failed to read verification secret from parent pipe."); // Verify the secrets match. - if (CSTR_EQUAL != ::CompareStringW(LOCALE_NEUTRAL, 0, sczVerificationSecret, -1, wzSecret, -1)) + if (CSTR_EQUAL != ::CompareStringOrdinal(sczVerificationSecret, -1, wzSecret, -1, FALSE)) { hr = HRESULT_FROM_WIN32(ERROR_INVALID_DATA); ExitOnRootFailure(hr, "Verification secret from parent does not match."); diff --git a/src/burn/engine/condition.cpp b/src/burn/engine/condition.cpp index ecce2d5c..3719ce79 100644 --- a/src/burn/engine/condition.cpp +++ b/src/burn/engine/condition.cpp @@ -928,7 +928,7 @@ static HRESULT CompareStringValues( ) { HRESULT hr = S_OK; - DWORD dwCompareString = (comparison & INSENSITIVE) ? NORM_IGNORECASE : 0; + BOOL fIgnoreCase = (comparison & INSENSITIVE) ? TRUE : FALSE; size_t cchLeftSize = 0; size_t cchRightSize = 0; int cchLeft = 0; @@ -958,7 +958,7 @@ static HRESULT CompareStringValues( case BURN_SYMBOL_TYPE_EQ_I: case BURN_SYMBOL_TYPE_NE_I: { - int i = ::CompareStringW(LOCALE_INVARIANT, dwCompareString, wzLeftOperand, cchLeft, wzRightOperand, cchRight); + int i = ::CompareStringOrdinal(wzLeftOperand, cchLeft, wzRightOperand, cchRight, fIgnoreCase); hr = CompareIntegerValues(comparison, i, CSTR_EQUAL, pfResult); } break; @@ -967,7 +967,7 @@ static HRESULT CompareStringValues( // test if left string contains right string for (int i = 0; (i + cchRight) <= cchLeft; ++i) { - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, dwCompareString, wzLeftOperand + i, cchRight, wzRightOperand, cchRight)) + if (CSTR_EQUAL == ::CompareStringOrdinal(wzLeftOperand + i, cchRight, wzRightOperand, cchRight, fIgnoreCase)) { *pfResult = TRUE; ExitFunction(); @@ -978,12 +978,12 @@ static HRESULT CompareStringValues( case BURN_SYMBOL_TYPE_HIEQ: case BURN_SYMBOL_TYPE_HIEQ_I: // test if left string starts with right string - *pfResult = cchLeft >= cchRight && CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, dwCompareString, wzLeftOperand, cchRight, wzRightOperand, cchRight); + *pfResult = cchLeft >= cchRight && CSTR_EQUAL == ::CompareStringOrdinal(wzLeftOperand, cchRight, wzRightOperand, cchRight, fIgnoreCase); break; case BURN_SYMBOL_TYPE_LOEQ: case BURN_SYMBOL_TYPE_LOEQ_I: // test if left string ends with right string - *pfResult = cchLeft >= cchRight && CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, dwCompareString, wzLeftOperand + (cchLeft - cchRight), cchRight, wzRightOperand, cchRight); + *pfResult = cchLeft >= cchRight && CSTR_EQUAL == ::CompareStringOrdinal(wzLeftOperand + (cchLeft - cchRight), cchRight, wzRightOperand, cchRight, fIgnoreCase); break; default: ExitFunction1(hr = E_INVALIDARG); diff --git a/src/burn/engine/container.cpp b/src/burn/engine/container.cpp index fad010cf..41ab0919 100644 --- a/src/burn/engine/container.cpp +++ b/src/burn/engine/container.cpp @@ -400,7 +400,7 @@ extern "C" HRESULT ContainerFindById( { pContainer = &pContainers->rgContainers[i]; - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, pContainer->sczId, -1, wzId, -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(pContainer->sczId, -1, wzId, -1, FALSE)) { *ppContainer = pContainer; ExitFunction1(hr = S_OK); diff --git a/src/burn/engine/exeengine.cpp b/src/burn/engine/exeengine.cpp index 3a2816dd..4df762da 100644 --- a/src/burn/engine/exeengine.cpp +++ b/src/burn/engine/exeengine.cpp @@ -25,15 +25,15 @@ extern "C" HRESULT ExeEngineParsePackageFromXml( hr = XmlGetAttributeEx(pixnExePackage, L"DetectionType", &scz); ExitOnRequiredXmlQueryFailure(hr, "Failed to get @DetectionType."); - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"condition", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"condition", -1, FALSE)) { pPackage->Exe.detectionType = BURN_EXE_DETECTION_TYPE_CONDITION; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"arp", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"arp", -1, FALSE)) { pPackage->Exe.detectionType = BURN_EXE_DETECTION_TYPE_ARP; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"none", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"none", -1, FALSE)) { pPackage->Exe.detectionType = BURN_EXE_DETECTION_TYPE_NONE; } @@ -114,15 +114,15 @@ extern "C" HRESULT ExeEngineParsePackageFromXml( if (fFoundXml) { - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"burn", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"burn", -1, FALSE)) { pPackage->Exe.protocol = BURN_EXE_PROTOCOL_TYPE_BURN; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"netfx4", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"netfx4", -1, FALSE)) { pPackage->Exe.protocol = BURN_EXE_PROTOCOL_TYPE_NETFX4; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"none", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"none", -1, FALSE)) { pPackage->Exe.protocol = BURN_EXE_PROTOCOL_TYPE_NONE; } diff --git a/src/burn/engine/logging.cpp b/src/burn/engine/logging.cpp index 60c16c01..51b546ad 100644 --- a/src/burn/engine/logging.cpp +++ b/src/burn/engine/logging.cpp @@ -1052,7 +1052,7 @@ static HRESULT GetNonSessionSpecificTempFolder( hr = ::StringCchLengthW(sczSessionId, STRSAFE_MAX_CCH, reinterpret_cast(&cchSessionId)); ExitOnFailure(hr, "Failed to get length of session id string."); - if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, sczTempFolder + cchTempFolder - cchSessionId, static_cast(cchSessionId), sczSessionId, static_cast(cchSessionId))) + if (CSTR_EQUAL == ::CompareStringOrdinal(sczTempFolder + cchTempFolder - cchSessionId, static_cast(cchSessionId), sczSessionId, static_cast(cchSessionId), FALSE)) { cchTempFolder -= cchSessionId; } diff --git a/src/burn/engine/manifest.cpp b/src/burn/engine/manifest.cpp index 266d1987..b2680387 100644 --- a/src/burn/engine/manifest.cpp +++ b/src/burn/engine/manifest.cpp @@ -177,7 +177,7 @@ static void ValidateHarvestingAttributes( hr = XmlGetYesNoAttribute(pixeBundle, L"Win64", &fWin64); ExitOnRequiredXmlQueryFailure(hr, "Failed to get BurnManifest/@Win64 attribute."); - Assert(CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, sczEngineVersion, -1, wzVerMajorMinorBuild, -1)); + Assert(CSTR_EQUAL == ::CompareStringOrdinal(sczEngineVersion, -1, wzVerMajorMinorBuild, -1, FALSE)); Assert(BURN_PROTOCOL_VERSION == dwProtocolVersion); diff --git a/src/burn/engine/mspengine.cpp b/src/burn/engine/mspengine.cpp index c057c06d..e8ef7fcb 100644 --- a/src/burn/engine/mspengine.cpp +++ b/src/burn/engine/mspengine.cpp @@ -771,7 +771,7 @@ extern "C" void MspEngineUpdateInstallRegistrationState( { pTargetProduct = pPackage->Msp.rgTargetProducts + j; if (pAction->mspTarget.fPerMachineTarget == (MSIINSTALLCONTEXT_MACHINE == pTargetProduct->context) && - CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, pAction->mspTarget.sczTargetProductCode, -1, pTargetProduct->wzTargetProductCode, -1)) + CSTR_EQUAL == ::CompareStringOrdinal(pAction->mspTarget.sczTargetProductCode, -1, pTargetProduct->wzTargetProductCode, -1, FALSE)) { break; } @@ -1069,7 +1069,7 @@ static HRESULT DeterminePatchChainedTarget( { BURN_PACKAGE* pPackage = pPackages->rgPackages + iPackage; - if (BURN_PACKAGE_TYPE_MSI == pPackage->type && CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, wzTargetProductCode, -1, pPackage->Msi.sczProductCode, -1)) + if (BURN_PACKAGE_TYPE_MSI == pPackage->type && CSTR_EQUAL == ::CompareStringOrdinal(wzTargetProductCode, -1, pPackage->Msi.sczProductCode, -1, FALSE)) { pTargetProduct->pChainedTargetPackage = pPackage; @@ -1123,7 +1123,7 @@ static HRESULT PlanTargetProduct( if (BURN_EXECUTE_ACTION_TYPE_MSP_TARGET == pAction->type && pAction->mspTarget.action == actionState && pAction->mspTarget.fPerMachineTarget == (MSIINSTALLCONTEXT_MACHINE == pTargetProduct->context) && - CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, pAction->mspTarget.sczTargetProductCode, -1, pTargetProduct->wzTargetProductCode, -1)) + CSTR_EQUAL == ::CompareStringOrdinal(pAction->mspTarget.sczTargetProductCode, -1, pTargetProduct->wzTargetProductCode, -1, FALSE)) { dwInsertSequence = i; break; diff --git a/src/burn/engine/package.cpp b/src/burn/engine/package.cpp index fe8af497..3bf676ba 100644 --- a/src/burn/engine/package.cpp +++ b/src/burn/engine/package.cpp @@ -123,15 +123,15 @@ extern "C" HRESULT PackagesParseFromXml( if (fFoundXml) { - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"remove", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"remove", -1, FALSE)) { pPackage->authoredCacheType = BOOTSTRAPPER_CACHE_TYPE_REMOVE; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"keep", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"keep", -1, FALSE)) { pPackage->authoredCacheType = BOOTSTRAPPER_CACHE_TYPE_KEEP; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"force", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"force", -1, FALSE)) { pPackage->authoredCacheType = BOOTSTRAPPER_CACHE_TYPE_FORCE; } @@ -210,28 +210,28 @@ extern "C" HRESULT PackagesParseFromXml( } // read type specific attributes - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"BundlePackage", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"BundlePackage", -1, FALSE)) { pPackage->type = BURN_PACKAGE_TYPE_BUNDLE; hr = BundlePackageEngineParsePackageFromXml(pixnNode, pPackage); // TODO: Modularization ExitOnFailure(hr, "Failed to parse BUNDLE package."); } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"ExePackage", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"ExePackage", -1, FALSE)) { pPackage->type = BURN_PACKAGE_TYPE_EXE; hr = ExeEngineParsePackageFromXml(pixnNode, pPackage); // TODO: Modularization ExitOnFailure(hr, "Failed to parse EXE package."); } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"MsiPackage", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"MsiPackage", -1, FALSE)) { pPackage->type = BURN_PACKAGE_TYPE_MSI; hr = MsiEngineParsePackageFromXml(pixnNode, pPackage); // TODO: Modularization ExitOnFailure(hr, "Failed to parse MSI package."); } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"MspPackage", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"MspPackage", -1, FALSE)) { pPackage->type = BURN_PACKAGE_TYPE_MSP; @@ -240,7 +240,7 @@ extern "C" HRESULT PackagesParseFromXml( ++cMspPackages; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"MsuPackage", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"MsuPackage", -1, FALSE)) { pPackage->type = BURN_PACKAGE_TYPE_MSU; @@ -315,7 +315,7 @@ extern "C" HRESULT PackagesParseFromXml( { for (DWORD k = 0; k < pMsiPackage->Msi.cSlipstreamMspPackages; ++k) { - if (pMsiPackage->Msi.rgsczSlipstreamMspPackageIds[k] && CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, pPackage->sczId, -1, pMsiPackage->Msi.rgsczSlipstreamMspPackageIds[k], -1)) + if (pMsiPackage->Msi.rgsczSlipstreamMspPackageIds[k] && CSTR_EQUAL == ::CompareStringOrdinal(pPackage->sczId, -1, pMsiPackage->Msi.rgsczSlipstreamMspPackageIds[k], -1, FALSE)) { BURN_SLIPSTREAM_MSP* pSlipstreamMsp = pMsiPackage->Msi.rgSlipstreamMsps + k; pSlipstreamMsp->pMspPackage = pPackage; @@ -486,7 +486,7 @@ extern "C" HRESULT PackageFindById( { pPackage = &pPackages->rgPackages[i]; - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, pPackage->sczId, -1, wzId, -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(pPackage->sczId, -1, wzId, -1, FALSE)) { *ppPackage = pPackage; ExitFunction1(hr = S_OK); @@ -508,7 +508,7 @@ extern "C" HRESULT PackageFindRelatedById( { HRESULT hr = S_OK; BURN_RELATED_BUNDLE* pRelatedBundle = NULL; - + hr = RelatedBundleFindById(pRelatedBundles, wzId, &pRelatedBundle); *ppPackage = FAILED(hr) ? NULL : &pRelatedBundle->package; @@ -551,7 +551,7 @@ extern "C" HRESULT PackageGetProperty( { const BURN_MSIPROPERTY* pProperty = &rgProperties[i]; - if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, pProperty->sczId, -1, wzProperty, -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(pProperty->sczId, -1, wzProperty, -1, FALSE)) { if (psczValue) { @@ -580,7 +580,7 @@ extern "C" HRESULT PackageFindRollbackBoundaryById( { pRollbackBoundary = &pPackages->rgRollbackBoundaries[i]; - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, pRollbackBoundary->sczId, -1, wzId, -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(pRollbackBoundary->sczId, -1, wzId, -1, FALSE)) { *ppRollbackBoundary = pRollbackBoundary; ExitFunction1(hr = S_OK); @@ -730,7 +730,7 @@ static HRESULT FindRollbackBoundaryById( { pRollbackBoundary = &pPackages->rgRollbackBoundaries[i]; - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, pRollbackBoundary->sczId, -1, wzId, -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(pRollbackBoundary->sczId, -1, wzId, -1, FALSE)) { *ppRollbackBoundary = pRollbackBoundary; ExitFunction1(hr = S_OK); diff --git a/src/burn/engine/payload.cpp b/src/burn/engine/payload.cpp index 270da6aa..a2649f97 100644 --- a/src/burn/engine/payload.cpp +++ b/src/burn/engine/payload.cpp @@ -80,11 +80,11 @@ extern "C" HRESULT PayloadsParseFromXml( hr = XmlGetAttributeEx(pixnNode, L"Packaging", &scz); ExitOnRequiredXmlQueryFailure(hr, "Failed to get @Packaging."); - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"embedded", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"embedded", -1, FALSE)) { pPayload->packaging = BURN_PAYLOAD_PACKAGING_EMBEDDED; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"external", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"external", -1, FALSE)) { pPayload->packaging = BURN_PAYLOAD_PACKAGING_EXTERNAL; } diff --git a/src/burn/engine/registration.cpp b/src/burn/engine/registration.cpp index 966fc849..9733e92c 100644 --- a/src/burn/engine/registration.cpp +++ b/src/burn/engine/registration.cpp @@ -223,15 +223,15 @@ extern "C" HRESULT RegistrationParseFromXml( if (fFoundXml) { - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"button", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"button", -1, FALSE)) { pRegistration->modify = BURN_REGISTRATION_MODIFY_DISABLE_BUTTON; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"yes", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"yes", -1, FALSE)) { pRegistration->modify = BURN_REGISTRATION_MODIFY_DISABLE; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"no", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"no", -1, FALSE)) { pRegistration->modify = BURN_REGISTRATION_MODIFY_ENABLED; } @@ -1512,7 +1512,7 @@ static HRESULT RemoveUpdateRegistration( hr = RegReadString(hkKey, L"PackageVersion", &sczPackageVersion); if (SUCCEEDED(hr)) { - if (CSTR_EQUAL != ::CompareStringW(LOCALE_INVARIANT, 0, sczPackageVersion, -1, pRegistration->sczDisplayVersion, -1)) + if (CSTR_EQUAL != ::CompareStringOrdinal(sczPackageVersion, -1, pRegistration->sczDisplayVersion, -1, FALSE)) { fDeleteRegKey = FALSE; } diff --git a/src/burn/engine/relatedbundle.cpp b/src/burn/engine/relatedbundle.cpp index d426dc53..c9aa7170 100644 --- a/src/burn/engine/relatedbundle.cpp +++ b/src/burn/engine/relatedbundle.cpp @@ -116,7 +116,7 @@ extern "C" HRESULT RelatedBundleFindById( pRelatedBundle = pRelatedBundles->rgRelatedBundles + i; pPackage = &pRelatedBundle->package; - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, pPackage->sczId, -1, wzId, -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(pPackage->sczId, -1, wzId, -1, FALSE)) { *ppRelatedBundle = pRelatedBundle; ExitFunction1(hr = S_OK); diff --git a/src/burn/engine/search.cpp b/src/burn/engine/search.cpp index a1b6b74a..b5218600 100644 --- a/src/burn/engine/search.cpp +++ b/src/burn/engine/search.cpp @@ -106,7 +106,7 @@ extern "C" HRESULT SearchesParseFromXml( ExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to get @Condition."); // read type specific attributes - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"DirectorySearch", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"DirectorySearch", -1, FALSE)) { pSearch->Type = BURN_SEARCH_TYPE_DIRECTORY; @@ -118,11 +118,11 @@ extern "C" HRESULT SearchesParseFromXml( hr = XmlGetAttributeEx(pixnNode, L"Type", &scz); ExitOnRequiredXmlQueryFailure(hr, "Failed to get @Type."); - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"exists", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"exists", -1, FALSE)) { pSearch->DirectorySearch.Type = BURN_DIRECTORY_SEARCH_TYPE_EXISTS; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"path", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"path", -1, FALSE)) { pSearch->DirectorySearch.Type = BURN_DIRECTORY_SEARCH_TYPE_PATH; } @@ -131,7 +131,7 @@ extern "C" HRESULT SearchesParseFromXml( ExitWithRootFailure(hr, E_INVALIDARG, "Invalid value for @Type: %ls", scz); } } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"FileSearch", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"FileSearch", -1, FALSE)) { pSearch->Type = BURN_SEARCH_TYPE_FILE; @@ -147,15 +147,15 @@ extern "C" HRESULT SearchesParseFromXml( hr = XmlGetAttributeEx(pixnNode, L"Type", &scz); ExitOnRequiredXmlQueryFailure(hr, "Failed to get @Type."); - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"exists", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"exists", -1, FALSE)) { pSearch->FileSearch.Type = BURN_FILE_SEARCH_TYPE_EXISTS; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"version", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"version", -1, FALSE)) { pSearch->FileSearch.Type = BURN_FILE_SEARCH_TYPE_VERSION; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"path", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"path", -1, FALSE)) { pSearch->FileSearch.Type = BURN_FILE_SEARCH_TYPE_PATH; } @@ -164,7 +164,7 @@ extern "C" HRESULT SearchesParseFromXml( ExitWithRootFailure(hr, E_INVALIDARG, "Invalid value for @Type: %ls", scz); } } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"RegistrySearch", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"RegistrySearch", -1, FALSE)) { pSearch->Type = BURN_SEARCH_TYPE_REGISTRY; @@ -172,19 +172,19 @@ extern "C" HRESULT SearchesParseFromXml( hr = XmlGetAttributeEx(pixnNode, L"Root", &scz); ExitOnRequiredXmlQueryFailure(hr, "Failed to get @Root."); - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"HKCR", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"HKCR", -1, FALSE)) { pSearch->RegistrySearch.hRoot = HKEY_CLASSES_ROOT; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"HKCU", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"HKCU", -1, FALSE)) { pSearch->RegistrySearch.hRoot = HKEY_CURRENT_USER; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"HKLM", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"HKLM", -1, FALSE)) { pSearch->RegistrySearch.hRoot = HKEY_LOCAL_MACHINE; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"HKU", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"HKU", -1, FALSE)) { pSearch->RegistrySearch.hRoot = HKEY_USERS; } @@ -208,11 +208,11 @@ extern "C" HRESULT SearchesParseFromXml( hr = XmlGetYesNoAttribute(pixnNode, L"Win64", &pSearch->RegistrySearch.fWin64); ExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to get Win64 attribute."); - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"exists", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"exists", -1, FALSE)) { pSearch->RegistrySearch.Type = BURN_REGISTRY_SEARCH_TYPE_EXISTS; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"value", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"value", -1, FALSE)) { pSearch->RegistrySearch.Type = BURN_REGISTRY_SEARCH_TYPE_VALUE; @@ -224,19 +224,19 @@ extern "C" HRESULT SearchesParseFromXml( hr = XmlGetAttributeEx(pixnNode, L"VariableType", &scz); ExitOnRequiredXmlQueryFailure(hr, "Failed to get @VariableType."); - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"formatted", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"formatted", -1, FALSE)) { pSearch->RegistrySearch.VariableType = BURN_VARIANT_TYPE_FORMATTED; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"numeric", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"numeric", -1, FALSE)) { pSearch->RegistrySearch.VariableType = BURN_VARIANT_TYPE_NUMERIC; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"string", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"string", -1, FALSE)) { pSearch->RegistrySearch.VariableType = BURN_VARIANT_TYPE_STRING; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"version", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"version", -1, FALSE)) { pSearch->RegistrySearch.VariableType = BURN_VARIANT_TYPE_VERSION; } @@ -250,7 +250,7 @@ extern "C" HRESULT SearchesParseFromXml( ExitWithRootFailure(hr, E_INVALIDARG, "Invalid value for @Type: %ls", scz); } } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"MsiComponentSearch", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"MsiComponentSearch", -1, FALSE)) { pSearch->Type = BURN_SEARCH_TYPE_MSI_COMPONENT; @@ -266,15 +266,15 @@ extern "C" HRESULT SearchesParseFromXml( hr = XmlGetAttributeEx(pixnNode, L"Type", &scz); ExitOnRequiredXmlQueryFailure(hr, "Failed to get @Type."); - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"keyPath", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"keyPath", -1, FALSE)) { pSearch->MsiComponentSearch.Type = BURN_MSI_COMPONENT_SEARCH_TYPE_KEYPATH; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"state", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"state", -1, FALSE)) { pSearch->MsiComponentSearch.Type = BURN_MSI_COMPONENT_SEARCH_TYPE_STATE; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"directory", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"directory", -1, FALSE)) { pSearch->MsiComponentSearch.Type = BURN_MSI_COMPONENT_SEARCH_TYPE_DIRECTORY; } @@ -283,7 +283,7 @@ extern "C" HRESULT SearchesParseFromXml( ExitWithRootFailure(hr, E_INVALIDARG, "Invalid value for @Type: %ls", scz); } } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"MsiProductSearch", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"MsiProductSearch", -1, FALSE)) { pSearch->Type = BURN_SEARCH_TYPE_MSI_PRODUCT; pSearch->MsiProductSearch.GuidType = BURN_MSI_PRODUCT_SEARCH_GUID_TYPE_NONE; @@ -318,19 +318,19 @@ extern "C" HRESULT SearchesParseFromXml( hr = XmlGetAttributeEx(pixnNode, L"Type", &scz); ExitOnRequiredXmlQueryFailure(hr, "Failed to get @Type."); - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"version", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"version", -1, FALSE)) { pSearch->MsiProductSearch.Type = BURN_MSI_PRODUCT_SEARCH_TYPE_VERSION; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"language", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"language", -1, FALSE)) { pSearch->MsiProductSearch.Type = BURN_MSI_PRODUCT_SEARCH_TYPE_LANGUAGE; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"state", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"state", -1, FALSE)) { pSearch->MsiProductSearch.Type = BURN_MSI_PRODUCT_SEARCH_TYPE_STATE; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"assignment", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"assignment", -1, FALSE)) { pSearch->MsiProductSearch.Type = BURN_MSI_PRODUCT_SEARCH_TYPE_ASSIGNMENT; } @@ -339,7 +339,7 @@ extern "C" HRESULT SearchesParseFromXml( ExitWithRootFailure(hr, E_INVALIDARG, "Invalid value for @Type: %ls", scz); } } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"ExtensionSearch", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"ExtensionSearch", -1, FALSE)) { pSearch->Type = BURN_SEARCH_TYPE_EXTENSION; @@ -350,7 +350,7 @@ extern "C" HRESULT SearchesParseFromXml( hr = BurnExtensionFindById(pBurnExtensions, scz, &pSearch->ExtensionSearch.pExtension); ExitOnRootFailure(hr, "Failed to find extension '%ls' for search '%ls'", scz, pSearch->sczKey); } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"SetVariable", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"SetVariable", -1, FALSE)) { pSearch->Type = BURN_SEARCH_TYPE_SET_VARIABLE; @@ -367,19 +367,19 @@ extern "C" HRESULT SearchesParseFromXml( hr = XmlGetAttributeEx(pixnNode, L"Type", &scz); ExitOnRequiredXmlQueryFailure(hr, "Failed to get @Type."); - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"formatted", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"formatted", -1, FALSE)) { pSearch->SetVariable.targetType = BURN_VARIANT_TYPE_FORMATTED; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"numeric", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"numeric", -1, FALSE)) { pSearch->SetVariable.targetType = BURN_VARIANT_TYPE_NUMERIC; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"string", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"string", -1, FALSE)) { pSearch->SetVariable.targetType = BURN_VARIANT_TYPE_STRING; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"version", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"version", -1, FALSE)) { pSearch->SetVariable.targetType = BURN_VARIANT_TYPE_VERSION; } diff --git a/src/burn/engine/variable.cpp b/src/burn/engine/variable.cpp index dc59916a..a795d76c 100644 --- a/src/burn/engine/variable.cpp +++ b/src/burn/engine/variable.cpp @@ -397,7 +397,7 @@ extern "C" HRESULT VariablesParseFromXml( hr = XmlGetAttributeEx(pixnNode, L"Type", &scz); ExitOnRequiredXmlQueryFailure(hr, "Failed to get @Type."); - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"formatted", -1)) + if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"formatted", -1, FALSE)) { if (!fHidden) { @@ -405,7 +405,7 @@ extern "C" HRESULT VariablesParseFromXml( } valueType = BURN_VARIANT_TYPE_FORMATTED; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"numeric", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"numeric", -1, FALSE)) { if (!fHidden) { @@ -413,7 +413,7 @@ extern "C" HRESULT VariablesParseFromXml( } valueType = BURN_VARIANT_TYPE_NUMERIC; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"string", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"string", -1, FALSE)) { if (!fHidden) { @@ -421,7 +421,7 @@ extern "C" HRESULT VariablesParseFromXml( } valueType = BURN_VARIANT_TYPE_STRING; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"version", -1)) + else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"version", -1, FALSE)) { if (!fHidden) { @@ -1556,7 +1556,7 @@ static HRESULT FindVariableIndexByName( DWORD iPosition = cRangeLength / 2; BURN_VARIABLE* pVariable = &pVariables->rgVariables[iRangeFirst + iPosition]; - switch (::CompareStringW(LOCALE_INVARIANT, SORT_STRINGSORT, wzVariable, -1, pVariable->sczName, -1)) + switch (::CompareStringOrdinal(wzVariable, -1, pVariable->sczName, -1, FALSE)) { case CSTR_LESS_THAN: // restrict range to elements before the current @@ -1591,7 +1591,7 @@ static HRESULT InsertUserVariable( { HRESULT hr = S_OK; - if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, wzVariable, 3, L"Wix", 3)) + if (CSTR_EQUAL == ::CompareStringOrdinal(wzVariable, 3, L"Wix", 3, FALSE)) { ExitWithRootFailure(hr, E_INVALIDARG, "Attempted to insert variable with reserved prefix: %ls", wzVariable); } -- cgit v1.2.3-55-g6feb