diff options
Diffstat (limited to 'src/burn/engine/registration.cpp')
-rw-r--r-- | src/burn/engine/registration.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/burn/engine/registration.cpp b/src/burn/engine/registration.cpp index 7b6aa6bb..961e86bc 100644 --- a/src/burn/engine/registration.cpp +++ b/src/burn/engine/registration.cpp | |||
@@ -169,10 +169,6 @@ extern "C" HRESULT RegistrationParseFromXml( | |||
169 | 169 | ||
170 | if (fFoundXml) | 170 | if (fFoundXml) |
171 | { | 171 | { |
172 | // @Register | ||
173 | hr = XmlGetYesNoAttribute(pixnArpNode, L"Register", &pRegistration->fRegisterArp); | ||
174 | ExitOnRequiredXmlQueryFailure(hr, "Failed to get @Register."); | ||
175 | |||
176 | // @DisplayName | 172 | // @DisplayName |
177 | hr = XmlGetAttributeEx(pixnArpNode, L"DisplayName", &pRegistration->sczDisplayName); | 173 | hr = XmlGetAttributeEx(pixnArpNode, L"DisplayName", &pRegistration->sczDisplayName); |
178 | ExitOnOptionalXmlQueryFailure(hr, fFoundXml, "Failed to get @DisplayName."); | 174 | ExitOnOptionalXmlQueryFailure(hr, fFoundXml, "Failed to get @DisplayName."); |
@@ -247,7 +243,12 @@ extern "C" HRESULT RegistrationParseFromXml( | |||
247 | 243 | ||
248 | // @DisableRemove | 244 | // @DisableRemove |
249 | hr = XmlGetYesNoAttribute(pixnArpNode, L"DisableRemove", &pRegistration->fNoRemove); | 245 | hr = XmlGetYesNoAttribute(pixnArpNode, L"DisableRemove", &pRegistration->fNoRemove); |
250 | ExitOnOptionalXmlQueryFailure(hr, pRegistration->fNoRemoveDefined, "Failed to get @DisableRemove."); | 246 | ExitOnOptionalXmlQueryFailure(hr, fFoundXml, "Failed to get @DisableRemove."); |
247 | } | ||
248 | |||
249 | if (pRegistration->fNoRemove && BURN_REGISTRATION_MODIFY_ENABLED != pRegistration->modify) | ||
250 | { | ||
251 | pRegistration->fForceSystemComponent = TRUE; | ||
251 | } | 252 | } |
252 | 253 | ||
253 | hr = ParseSoftwareTagsFromXml(pixnRegistrationNode, &pRegistration->softwareTags.rgSoftwareTags, &pRegistration->softwareTags.cSoftwareTags); | 254 | hr = ParseSoftwareTagsFromXml(pixnRegistrationNode, &pRegistration->softwareTags.rgSoftwareTags, &pRegistration->softwareTags.cSoftwareTags); |
@@ -759,14 +760,14 @@ extern "C" HRESULT RegistrationSessionBegin( | |||
759 | } | 760 | } |
760 | 761 | ||
761 | // NoRemove: should this be allowed? | 762 | // NoRemove: should this be allowed? |
762 | if (pRegistration->fNoRemoveDefined) | 763 | if (pRegistration->fNoRemove) |
763 | { | 764 | { |
764 | hr = RegWriteNumber(hkRegistration, REGISTRY_BUNDLE_NO_REMOVE, (DWORD)pRegistration->fNoRemove); | 765 | hr = RegWriteNumber(hkRegistration, REGISTRY_BUNDLE_NO_REMOVE, 1); |
765 | ExitOnFailure(hr, "Failed to write %ls value.", REGISTRY_BUNDLE_NO_REMOVE); | 766 | ExitOnFailure(hr, "Failed to write %ls value.", REGISTRY_BUNDLE_NO_REMOVE); |
766 | } | 767 | } |
767 | 768 | ||
768 | // Conditionally hide the ARP entry. | 769 | // Conditionally hide the ARP entry. |
769 | if (!pRegistration->fRegisterArp) | 770 | if (pRegistration->fForceSystemComponent) |
770 | { | 771 | { |
771 | hr = RegWriteNumber(hkRegistration, REGISTRY_BUNDLE_SYSTEM_COMPONENT, 1); | 772 | hr = RegWriteNumber(hkRegistration, REGISTRY_BUNDLE_SYSTEM_COMPONENT, 1); |
772 | ExitOnFailure(hr, "Failed to write %ls value.", REGISTRY_BUNDLE_SYSTEM_COMPONENT); | 773 | ExitOnFailure(hr, "Failed to write %ls value.", REGISTRY_BUNDLE_SYSTEM_COMPONENT); |