aboutsummaryrefslogtreecommitdiff
path: root/src/api/burn/balutil/balinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/burn/balutil/balinfo.cpp')
-rw-r--r--src/api/burn/balutil/balinfo.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/api/burn/balutil/balinfo.cpp b/src/api/burn/balutil/balinfo.cpp
index 5832281f..52a7f911 100644
--- a/src/api/burn/balutil/balinfo.cpp
+++ b/src/api/burn/balutil/balinfo.cpp
@@ -529,6 +529,33 @@ static HRESULT ParseBalPackageInfoFromXml(
529 hr = XmlGetAttributeEx(pNode, L"DisplayInternalUICondition", &pPackage->sczDisplayInternalUICondition); 529 hr = XmlGetAttributeEx(pNode, L"DisplayInternalUICondition", &pPackage->sczDisplayInternalUICondition);
530 ExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to get DisplayInternalUICondition setting for package."); 530 ExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to get DisplayInternalUICondition setting for package.");
531 531
532 hr = XmlGetAttributeEx(pNode, L"PrimaryPackageType", &scz);
533 ExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to get PrimaryPackageType setting for package.");
534
535 if (fXmlFound)
536 {
537 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"default", -1))
538 {
539 pPackage->primaryPackageType = BAL_INFO_PRIMARY_PACKAGE_TYPE_DEFAULT;
540 }
541 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"x86", -1))
542 {
543 pPackage->primaryPackageType = BAL_INFO_PRIMARY_PACKAGE_TYPE_X86;
544 }
545 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"x64", -1))
546 {
547 pPackage->primaryPackageType = BAL_INFO_PRIMARY_PACKAGE_TYPE_X64;
548 }
549 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"arm64", -1))
550 {
551 pPackage->primaryPackageType = BAL_INFO_PRIMARY_PACKAGE_TYPE_ARM64;
552 }
553 else
554 {
555 ExitWithRootFailure(hr, E_INVALIDARG, "Invalid value for WixBalPackageInfo/@PrimaryPackageType: %ls", scz);
556 }
557 }
558
532 ReleaseNullObject(pNode); 559 ReleaseNullObject(pNode);
533 } 560 }
534 ExitOnFailure(hr, "Failed to parse all WixBalPackageInfo elements."); 561 ExitOnFailure(hr, "Failed to parse all WixBalPackageInfo elements.");