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, |