aboutsummaryrefslogtreecommitdiff
path: root/src/engine/exeengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/engine/exeengine.cpp30
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
148LExit: 153LExit:
149 return hr; 154 return hr;
150} 155}
@@ -585,6 +590,31 @@ LExit:
585 return hr; 590 return hr;
586} 591}
587 592
593extern "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
614LExit:
615 return;
616}
617
588 618
589// internal helper functions 619// internal helper functions
590 620