summaryrefslogtreecommitdiff
path: root/src/burn/engine/userexperience.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-03-18 20:15:33 -0500
committerSean Hall <r.sean.hall@gmail.com>2022-03-19 12:07:32 -0500
commitfb54576f1d05e82ba47cd718c4c4f8b3bad624c9 (patch)
treeb7d6b30bd3c9294b74874c1a48b20a8da8869a69 /src/burn/engine/userexperience.cpp
parent581c320e04949300d6c3bee71fb5fc1a557f9263 (diff)
downloadwix-fb54576f1d05e82ba47cd718c4c4f8b3bad624c9.tar.gz
wix-fb54576f1d05e82ba47cd718c4c4f8b3bad624c9.tar.bz2
wix-fb54576f1d05e82ba47cd718c4c4f8b3bad624c9.zip
Give BA process id and option to wait for cancelled process to exit.
Diffstat (limited to 'src/burn/engine/userexperience.cpp')
-rw-r--r--src/burn/engine/userexperience.cpp30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/burn/engine/userexperience.cpp b/src/burn/engine/userexperience.cpp
index 81ce8bb9..06f87363 100644
--- a/src/burn/engine/userexperience.cpp
+++ b/src/burn/engine/userexperience.cpp
@@ -104,7 +104,7 @@ extern "C" HRESULT UserExperienceLoad(
104 args.pCommand = pCommand; 104 args.pCommand = pCommand;
105 args.pfnBootstrapperEngineProc = EngineForApplicationProc; 105 args.pfnBootstrapperEngineProc = EngineForApplicationProc;
106 args.pvBootstrapperEngineProcContext = pEngineContext; 106 args.pvBootstrapperEngineProcContext = pEngineContext;
107 args.qwEngineAPIVersion = MAKEQWORDVERSION(2022, 3, 14, 0); 107 args.qwEngineAPIVersion = MAKEQWORDVERSION(2022, 3, 17, 0);
108 108
109 results.cbSize = sizeof(BOOTSTRAPPER_CREATE_RESULTS); 109 results.cbSize = sizeof(BOOTSTRAPPER_CREATE_RESULTS);
110 110
@@ -1701,6 +1701,34 @@ LExit:
1701 return hr; 1701 return hr;
1702} 1702}
1703 1703
1704BAAPI UserExperienceOnExecuteProcessCancel(
1705 __in BURN_USER_EXPERIENCE* pUserExperience,
1706 __in_z LPCWSTR wzPackageId,
1707 __in DWORD dwProcessId,
1708 __inout BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION* pAction
1709 )
1710{
1711 HRESULT hr = S_OK;
1712 BA_ONEXECUTEPROCESSCANCEL_ARGS args = { };
1713 BA_ONEXECUTEPROCESSCANCEL_RESULTS results = { };
1714
1715 args.cbSize = sizeof(args);
1716 args.wzPackageId = wzPackageId;
1717 args.dwProcessId = dwProcessId;
1718 args.recommendation = *pAction;
1719
1720 results.cbSize = sizeof(results);
1721 results.action = *pAction;
1722
1723 hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROCESSCANCEL, &args, &results);
1724 ExitOnFailure(hr, "BA OnExecuteProcessCancel failed.");
1725
1726 *pAction = results.action;
1727
1728LExit:
1729 return hr;
1730}
1731
1704EXTERN_C BAAPI UserExperienceOnExecuteProgress( 1732EXTERN_C BAAPI UserExperienceOnExecuteProgress(
1705 __in BURN_USER_EXPERIENCE* pUserExperience, 1733 __in BURN_USER_EXPERIENCE* pUserExperience,
1706 __in_z LPCWSTR wzPackageId, 1734 __in_z LPCWSTR wzPackageId,