diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2022-04-04 14:43:06 -0500 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2022-04-05 13:52:11 -0500 |
| commit | 44c2ca035c1a5d52a6b3299ba3abbb8b88f7f1c0 (patch) | |
| tree | 0414e7d41d2f1389b1007984dd3df50cb4dba88e /src/burn/engine | |
| parent | 5ac804d68360fc8a2f66ec020e1fe2536792f179 (diff) | |
| download | wix-44c2ca035c1a5d52a6b3299ba3abbb8b88f7f1c0.tar.gz wix-44c2ca035c1a5d52a6b3299ba3abbb8b88f7f1c0.tar.bz2 wix-44c2ca035c1a5d52a6b3299ba3abbb8b88f7f1c0.zip | |
Move the logic of a bundle registering as a system component into Burn.
Diffstat (limited to 'src/burn/engine')
| -rw-r--r-- | src/burn/engine/registration.cpp | 17 | ||||
| -rw-r--r-- | src/burn/engine/registration.h | 3 |
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 | |||
| 95 | typedef struct _BURN_REGISTRATION | 95 | typedef 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; |
