diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-02-22 20:23:43 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-02-22 23:37:57 -0600 |
commit | 8e8f724d90c6835febb8b5865009746aea73a334 (patch) | |
tree | b255c0a7232af8d24bcf44fd476b95bdfdcfe777 /src/burn/engine/elevation.cpp | |
parent | 0740d93ca8be06ec0e5da5b51ceff52f67ab5bf5 (diff) | |
download | wix-8e8f724d90c6835febb8b5865009746aea73a334.tar.gz wix-8e8f724d90c6835febb8b5865009746aea73a334.tar.bz2 wix-8e8f724d90c6835febb8b5865009746aea73a334.zip |
Add UnsafeUninstall action.
Fixes #6721
Diffstat (limited to 'src/burn/engine/elevation.cpp')
-rw-r--r-- | src/burn/engine/elevation.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/burn/engine/elevation.cpp b/src/burn/engine/elevation.cpp index 86b65cf9..d12a151a 100644 --- a/src/burn/engine/elevation.cpp +++ b/src/burn/engine/elevation.cpp | |||
@@ -2289,8 +2289,21 @@ static HRESULT OnApplyInitialize( | |||
2289 | 2289 | ||
2290 | LogId(REPORT_STANDARD, MSG_SYSTEM_RESTORE_POINT_STARTING); | 2290 | LogId(REPORT_STANDARD, MSG_SYSTEM_RESTORE_POINT_STARTING); |
2291 | 2291 | ||
2292 | BOOTSTRAPPER_ACTION action = static_cast<BOOTSTRAPPER_ACTION>(dwAction); | 2292 | SRP_ACTION restoreAction = SRP_ACTION_UNKNOWN; |
2293 | SRP_ACTION restoreAction = (BOOTSTRAPPER_ACTION_INSTALL == action) ? SRP_ACTION_INSTALL : (BOOTSTRAPPER_ACTION_UNINSTALL == action) ? SRP_ACTION_UNINSTALL : SRP_ACTION_MODIFY; | 2293 | switch (static_cast<BOOTSTRAPPER_ACTION>(dwAction)) |
2294 | { | ||
2295 | case BOOTSTRAPPER_ACTION_INSTALL: | ||
2296 | restoreAction = SRP_ACTION_INSTALL; | ||
2297 | break; | ||
2298 | case BOOTSTRAPPER_ACTION_UNSAFE_UNINSTALL: __fallthrough; | ||
2299 | case BOOTSTRAPPER_ACTION_UNINSTALL: | ||
2300 | restoreAction = SRP_ACTION_UNINSTALL; | ||
2301 | break; | ||
2302 | default: | ||
2303 | restoreAction = SRP_ACTION_MODIFY; | ||
2304 | break; | ||
2305 | } | ||
2306 | |||
2294 | hrStatus = hr = SrpCreateRestorePoint(sczBundleName, restoreAction); | 2307 | hrStatus = hr = SrpCreateRestorePoint(sczBundleName, restoreAction); |
2295 | if (SUCCEEDED(hr)) | 2308 | if (SUCCEEDED(hr)) |
2296 | { | 2309 | { |