aboutsummaryrefslogtreecommitdiff
path: root/src/engine/msuengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/msuengine.cpp')
-rw-r--r--src/engine/msuengine.cpp30
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
72LExit: 77LExit:
73 return hr; 78 return hr;
74} 79}
@@ -424,6 +429,31 @@ LExit:
424 return hr; 429 return hr;
425} 430}
426 431
432extern "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
453LExit:
454 return;
455}
456
427static HRESULT EnsureWUServiceEnabled( 457static HRESULT EnsureWUServiceEnabled(
428 __in BOOL fStopWusaService, 458 __in BOOL fStopWusaService,
429 __out SC_HANDLE* pschWu, 459 __out SC_HANDLE* pschWu,