diff options
Diffstat (limited to '')
-rw-r--r-- | src/engine/exeengine.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/engine/exeengine.cpp b/src/engine/exeengine.cpp index fd33d926..1ca28473 100644 --- a/src/engine/exeengine.cpp +++ b/src/engine/exeengine.cpp | |||
@@ -145,6 +145,11 @@ extern "C" HRESULT ExeEngineDetectPackage( | |||
145 | // update detect state | 145 | // update detect state |
146 | pPackage->currentState = fDetected ? BOOTSTRAPPER_PACKAGE_STATE_PRESENT : BOOTSTRAPPER_PACKAGE_STATE_ABSENT; | 146 | pPackage->currentState = fDetected ? BOOTSTRAPPER_PACKAGE_STATE_PRESENT : BOOTSTRAPPER_PACKAGE_STATE_ABSENT; |
147 | 147 | ||
148 | if (pPackage->fCanAffectRegistration) | ||
149 | { | ||
150 | pPackage->installRegistrationState = BOOTSTRAPPER_PACKAGE_STATE_CACHED < pPackage->currentState ? BURN_PACKAGE_REGISTRATION_STATE_PRESENT : BURN_PACKAGE_REGISTRATION_STATE_ABSENT; | ||
151 | } | ||
152 | |||
148 | LExit: | 153 | LExit: |
149 | return hr; | 154 | return hr; |
150 | } | 155 | } |
@@ -585,6 +590,31 @@ LExit: | |||
585 | return hr; | 590 | return hr; |
586 | } | 591 | } |
587 | 592 | ||
593 | extern "C" void ExeEngineUpdateInstallRegistrationState( | ||
594 | __in BURN_EXECUTE_ACTION* pAction, | ||
595 | __in HRESULT hrExecute | ||
596 | ) | ||
597 | { | ||
598 | BURN_PACKAGE* pPackage = pAction->exePackage.pPackage; | ||
599 | |||
600 | if (FAILED(hrExecute) || !pPackage->fCanAffectRegistration) | ||
601 | { | ||
602 | ExitFunction(); | ||
603 | } | ||
604 | |||
605 | if (BOOTSTRAPPER_ACTION_STATE_UNINSTALL == pAction->exePackage.action) | ||
606 | { | ||
607 | pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_ABSENT; | ||
608 | } | ||
609 | else | ||
610 | { | ||
611 | pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT; | ||
612 | } | ||
613 | |||
614 | LExit: | ||
615 | return; | ||
616 | } | ||
617 | |||
588 | 618 | ||
589 | // internal helper functions | 619 | // internal helper functions |
590 | 620 | ||