diff options
Diffstat (limited to 'src/engine/msuengine.cpp')
| -rw-r--r-- | src/engine/msuengine.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/engine/msuengine.cpp b/src/engine/msuengine.cpp index 641d55b1..b7a503ad 100644 --- a/src/engine/msuengine.cpp +++ b/src/engine/msuengine.cpp | |||
| @@ -69,6 +69,11 @@ extern "C" HRESULT MsuEngineDetectPackage( | |||
| 69 | // update detect state | 69 | // update detect state |
| 70 | pPackage->currentState = fDetected ? BOOTSTRAPPER_PACKAGE_STATE_PRESENT : BOOTSTRAPPER_PACKAGE_STATE_ABSENT; | 70 | pPackage->currentState = fDetected ? BOOTSTRAPPER_PACKAGE_STATE_PRESENT : BOOTSTRAPPER_PACKAGE_STATE_ABSENT; |
| 71 | 71 | ||
| 72 | if (pPackage->fCanAffectRegistration) | ||
| 73 | { | ||
| 74 | pPackage->installRegistrationState = BOOTSTRAPPER_PACKAGE_STATE_CACHED < pPackage->currentState ? BURN_PACKAGE_REGISTRATION_STATE_PRESENT : BURN_PACKAGE_REGISTRATION_STATE_ABSENT; | ||
| 75 | } | ||
| 76 | |||
| 72 | LExit: | 77 | LExit: |
| 73 | return hr; | 78 | return hr; |
| 74 | } | 79 | } |
| @@ -424,6 +429,31 @@ LExit: | |||
| 424 | return hr; | 429 | return hr; |
| 425 | } | 430 | } |
| 426 | 431 | ||
| 432 | extern "C" void MsuEngineUpdateInstallRegistrationState( | ||
| 433 | __in BURN_EXECUTE_ACTION* pAction, | ||
| 434 | __in HRESULT hrExecute | ||
| 435 | ) | ||
| 436 | { | ||
| 437 | BURN_PACKAGE* pPackage = pAction->msuPackage.pPackage; | ||
| 438 | |||
| 439 | if (FAILED(hrExecute) || !pPackage->fCanAffectRegistration) | ||
| 440 | { | ||
| 441 | ExitFunction(); | ||
| 442 | } | ||
| 443 | |||
| 444 | if (BOOTSTRAPPER_ACTION_STATE_UNINSTALL == pAction->msuPackage.action) | ||
| 445 | { | ||
| 446 | pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_ABSENT; | ||
| 447 | } | ||
| 448 | else | ||
| 449 | { | ||
| 450 | pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT; | ||
| 451 | } | ||
| 452 | |||
| 453 | LExit: | ||
| 454 | return; | ||
| 455 | } | ||
| 456 | |||
| 427 | static HRESULT EnsureWUServiceEnabled( | 457 | static HRESULT EnsureWUServiceEnabled( |
| 428 | __in BOOL fStopWusaService, | 458 | __in BOOL fStopWusaService, |
| 429 | __out SC_HANDLE* pschWu, | 459 | __out SC_HANDLE* pschWu, |
