summaryrefslogtreecommitdiff
path: root/src/burn/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine')
-rw-r--r--src/burn/engine/registration.cpp17
-rw-r--r--src/burn/engine/registration.h3
2 files changed, 10 insertions, 10 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);
diff --git a/src/burn/engine/registration.h b/src/burn/engine/registration.h
index 58c883da..c07be962 100644
--- a/src/burn/engine/registration.h
+++ b/src/burn/engine/registration.h
@@ -95,7 +95,7 @@ typedef struct _BURN_SOFTWARE_TAGS
95typedef struct _BURN_REGISTRATION 95typedef struct _BURN_REGISTRATION
96{ 96{
97 BOOL fPerMachine; 97 BOOL fPerMachine;
98 BOOL fRegisterArp; 98 BOOL fForceSystemComponent;
99 BOOL fDisableResume; 99 BOOL fDisableResume;
100 BOOL fCached; 100 BOOL fCached;
101 BOOTSTRAPPER_REGISTRATION_TYPE detectedRegistrationType; 101 BOOTSTRAPPER_REGISTRATION_TYPE detectedRegistrationType;
@@ -140,7 +140,6 @@ typedef struct _BURN_REGISTRATION
140 LPWSTR sczContact; 140 LPWSTR sczContact;
141 //DWORD64 qwEstimatedSize; // TODO: size should come from disk cost calculation 141 //DWORD64 qwEstimatedSize; // TODO: size should come from disk cost calculation
142 BURN_REGISTRATION_MODIFY_TYPE modify; 142 BURN_REGISTRATION_MODIFY_TYPE modify;
143 BOOL fNoRemoveDefined;
144 BOOL fNoRemove; 143 BOOL fNoRemove;
145 144
146 BURN_SOFTWARE_TAGS softwareTags; 145 BURN_SOFTWARE_TAGS softwareTags;