diff options
Diffstat (limited to 'src/burn/engine/userexperience.cpp')
-rw-r--r-- | src/burn/engine/userexperience.cpp | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/src/burn/engine/userexperience.cpp b/src/burn/engine/userexperience.cpp index 28429394..372ca901 100644 --- a/src/burn/engine/userexperience.cpp +++ b/src/burn/engine/userexperience.cpp | |||
@@ -35,7 +35,7 @@ static HRESULT SendBAMessageFromInactiveEngine( | |||
35 | // function definitions | 35 | // function definitions |
36 | 36 | ||
37 | /******************************************************************* | 37 | /******************************************************************* |
38 | UserExperienceParseFromXml - | 38 | UserExperienceParseFromXml - |
39 | 39 | ||
40 | *******************************************************************/ | 40 | *******************************************************************/ |
41 | extern "C" HRESULT UserExperienceParseFromXml( | 41 | extern "C" HRESULT UserExperienceParseFromXml( |
@@ -72,7 +72,7 @@ LExit: | |||
72 | } | 72 | } |
73 | 73 | ||
74 | /******************************************************************* | 74 | /******************************************************************* |
75 | UserExperienceUninitialize - | 75 | UserExperienceUninitialize - |
76 | 76 | ||
77 | *******************************************************************/ | 77 | *******************************************************************/ |
78 | extern "C" void UserExperienceUninitialize( | 78 | extern "C" void UserExperienceUninitialize( |
@@ -87,7 +87,7 @@ extern "C" void UserExperienceUninitialize( | |||
87 | } | 87 | } |
88 | 88 | ||
89 | /******************************************************************* | 89 | /******************************************************************* |
90 | UserExperienceLoad - | 90 | UserExperienceLoad - |
91 | 91 | ||
92 | *******************************************************************/ | 92 | *******************************************************************/ |
93 | extern "C" HRESULT UserExperienceLoad( | 93 | extern "C" HRESULT UserExperienceLoad( |
@@ -129,7 +129,7 @@ LExit: | |||
129 | } | 129 | } |
130 | 130 | ||
131 | /******************************************************************* | 131 | /******************************************************************* |
132 | UserExperienceUnload - | 132 | UserExperienceUnload - |
133 | 133 | ||
134 | *******************************************************************/ | 134 | *******************************************************************/ |
135 | extern "C" HRESULT UserExperienceUnload( | 135 | extern "C" HRESULT UserExperienceUnload( |
@@ -380,7 +380,7 @@ EXTERN_C BAAPI UserExperienceOnBeginMsiTransactionBegin( | |||
380 | args.wzTransactionId = wzTransactionId; | 380 | args.wzTransactionId = wzTransactionId; |
381 | 381 | ||
382 | results.cbSize = sizeof(results); | 382 | results.cbSize = sizeof(results); |
383 | 383 | ||
384 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONBEGIN, &args, &results); | 384 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONBEGIN, &args, &results); |
385 | ExitOnFailure(hr, "BA OnBeginMsiTransactionBegin failed."); | 385 | ExitOnFailure(hr, "BA OnBeginMsiTransactionBegin failed."); |
386 | 386 | ||
@@ -1017,7 +1017,7 @@ EXTERN_C BAAPI UserExperienceOnCommitMsiTransactionBegin( | |||
1017 | args.wzTransactionId = wzTransactionId; | 1017 | args.wzTransactionId = wzTransactionId; |
1018 | 1018 | ||
1019 | results.cbSize = sizeof(results); | 1019 | results.cbSize = sizeof(results); |
1020 | 1020 | ||
1021 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN, &args, &results); | 1021 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN, &args, &results); |
1022 | ExitOnFailure(hr, "BA OnCommitMsiTransactionBegin failed."); | 1022 | ExitOnFailure(hr, "BA OnCommitMsiTransactionBegin failed."); |
1023 | 1023 | ||
@@ -1033,8 +1033,10 @@ LExit: | |||
1033 | EXTERN_C BAAPI UserExperienceOnCommitMsiTransactionComplete( | 1033 | EXTERN_C BAAPI UserExperienceOnCommitMsiTransactionComplete( |
1034 | __in BURN_USER_EXPERIENCE* pUserExperience, | 1034 | __in BURN_USER_EXPERIENCE* pUserExperience, |
1035 | __in LPCWSTR wzTransactionId, | 1035 | __in LPCWSTR wzTransactionId, |
1036 | __in HRESULT hrStatus | 1036 | __in HRESULT hrStatus, |
1037 | ) | 1037 | __in BOOTSTRAPPER_APPLY_RESTART restart, |
1038 | __inout BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION* pAction | ||
1039 | ) | ||
1038 | { | 1040 | { |
1039 | HRESULT hr = S_OK; | 1041 | HRESULT hr = S_OK; |
1040 | BA_ONCOMMITMSITRANSACTIONCOMPLETE_ARGS args = { }; | 1042 | BA_ONCOMMITMSITRANSACTIONCOMPLETE_ARGS args = { }; |
@@ -1043,12 +1045,17 @@ EXTERN_C BAAPI UserExperienceOnCommitMsiTransactionComplete( | |||
1043 | args.cbSize = sizeof(args); | 1045 | args.cbSize = sizeof(args); |
1044 | args.wzTransactionId = wzTransactionId; | 1046 | args.wzTransactionId = wzTransactionId; |
1045 | args.hrStatus = hrStatus; | 1047 | args.hrStatus = hrStatus; |
1048 | args.restart = restart; | ||
1049 | args.recommendation = *pAction; | ||
1046 | 1050 | ||
1047 | results.cbSize = sizeof(results); | 1051 | results.cbSize = sizeof(results); |
1052 | results.action = *pAction; | ||
1048 | 1053 | ||
1049 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE, &args, &results); | 1054 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE, &args, &results); |
1050 | ExitOnFailure(hr, "BA OnCommitMsiTransactionComplete failed."); | 1055 | ExitOnFailure(hr, "BA OnCommitMsiTransactionComplete failed."); |
1051 | 1056 | ||
1057 | *pAction = results.action; | ||
1058 | |||
1052 | LExit: | 1059 | LExit: |
1053 | return hr; | 1060 | return hr; |
1054 | } | 1061 | } |
@@ -1908,7 +1915,7 @@ EXTERN_C BAAPI UserExperienceOnPauseAUBegin( | |||
1908 | args.cbSize = sizeof(args); | 1915 | args.cbSize = sizeof(args); |
1909 | 1916 | ||
1910 | results.cbSize = sizeof(results); | 1917 | results.cbSize = sizeof(results); |
1911 | 1918 | ||
1912 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN, &args, &results); | 1919 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN, &args, &results); |
1913 | ExitOnFailure(hr, "BA OnPauseAUBegin failed."); | 1920 | ExitOnFailure(hr, "BA OnPauseAUBegin failed."); |
1914 | 1921 | ||
@@ -2523,7 +2530,7 @@ EXTERN_C BAAPI UserExperienceOnRollbackMsiTransactionBegin( | |||
2523 | args.wzTransactionId = wzTransactionId; | 2530 | args.wzTransactionId = wzTransactionId; |
2524 | 2531 | ||
2525 | results.cbSize = sizeof(results); | 2532 | results.cbSize = sizeof(results); |
2526 | 2533 | ||
2527 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN, &args, &results); | 2534 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN, &args, &results); |
2528 | ExitOnFailure(hr, "BA OnRollbackMsiTransactionBegin failed."); | 2535 | ExitOnFailure(hr, "BA OnRollbackMsiTransactionBegin failed."); |
2529 | 2536 | ||
@@ -2534,7 +2541,9 @@ LExit: | |||
2534 | EXTERN_C BAAPI UserExperienceOnRollbackMsiTransactionComplete( | 2541 | EXTERN_C BAAPI UserExperienceOnRollbackMsiTransactionComplete( |
2535 | __in BURN_USER_EXPERIENCE* pUserExperience, | 2542 | __in BURN_USER_EXPERIENCE* pUserExperience, |
2536 | __in LPCWSTR wzTransactionId, | 2543 | __in LPCWSTR wzTransactionId, |
2537 | __in HRESULT hrStatus | 2544 | __in HRESULT hrStatus, |
2545 | __in BOOTSTRAPPER_APPLY_RESTART restart, | ||
2546 | __inout BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION *pAction | ||
2538 | ) | 2547 | ) |
2539 | { | 2548 | { |
2540 | HRESULT hr = S_OK; | 2549 | HRESULT hr = S_OK; |
@@ -2544,12 +2553,17 @@ EXTERN_C BAAPI UserExperienceOnRollbackMsiTransactionComplete( | |||
2544 | args.cbSize = sizeof(args); | 2553 | args.cbSize = sizeof(args); |
2545 | args.wzTransactionId = wzTransactionId; | 2554 | args.wzTransactionId = wzTransactionId; |
2546 | args.hrStatus = hrStatus; | 2555 | args.hrStatus = hrStatus; |
2556 | args.restart = restart; | ||
2557 | args.recommendation = *pAction; | ||
2547 | 2558 | ||
2548 | results.cbSize = sizeof(results); | 2559 | results.cbSize = sizeof(results); |
2560 | results.action = *pAction; | ||
2549 | 2561 | ||
2550 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE, &args, &results); | 2562 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE, &args, &results); |
2551 | ExitOnFailure(hr, "BA OnRollbackMsiTransactionComplete failed."); | 2563 | ExitOnFailure(hr, "BA OnRollbackMsiTransactionComplete failed."); |
2552 | 2564 | ||
2565 | *pAction = results.action; | ||
2566 | |||
2553 | LExit: | 2567 | LExit: |
2554 | return hr; | 2568 | return hr; |
2555 | } | 2569 | } |
@@ -2651,7 +2665,7 @@ EXTERN_C BAAPI UserExperienceOnSystemRestorePointBegin( | |||
2651 | args.cbSize = sizeof(args); | 2665 | args.cbSize = sizeof(args); |
2652 | 2666 | ||
2653 | results.cbSize = sizeof(results); | 2667 | results.cbSize = sizeof(results); |
2654 | 2668 | ||
2655 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN, &args, &results); | 2669 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN, &args, &results); |
2656 | ExitOnFailure(hr, "BA OnSystemRestorePointBegin failed."); | 2670 | ExitOnFailure(hr, "BA OnSystemRestorePointBegin failed."); |
2657 | 2671 | ||