diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2022-03-18 20:15:33 -0500 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2022-03-19 12:07:32 -0500 |
| commit | fb54576f1d05e82ba47cd718c4c4f8b3bad624c9 (patch) | |
| tree | b7d6b30bd3c9294b74874c1a48b20a8da8869a69 /src/api | |
| parent | 581c320e04949300d6c3bee71fb5fc1a557f9263 (diff) | |
| download | wix-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/api')
11 files changed, 168 insertions, 0 deletions
diff --git a/src/api/burn/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h b/src/api/burn/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h index 0b81b35a..df8cac76 100644 --- a/src/api/burn/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h +++ b/src/api/burn/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h | |||
| @@ -224,6 +224,7 @@ enum BOOTSTRAPPER_APPLICATION_MESSAGE | |||
| 224 | BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRESTORERELATEDBUNDLE, | 224 | BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRESTORERELATEDBUNDLE, |
| 225 | BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLETYPE, | 225 | BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLETYPE, |
| 226 | BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE, | 226 | BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE, |
| 227 | BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROCESSCANCEL, | ||
| 227 | }; | 228 | }; |
| 228 | 229 | ||
| 229 | enum BOOTSTRAPPER_APPLYCOMPLETE_ACTION | 230 | enum BOOTSTRAPPER_APPLYCOMPLETE_ACTION |
| @@ -282,6 +283,18 @@ enum BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION | |||
| 282 | BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_SUSPEND, | 283 | BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_SUSPEND, |
| 283 | }; | 284 | }; |
| 284 | 285 | ||
| 286 | enum BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION | ||
| 287 | { | ||
| 288 | // Instructs the engine to stop waiting for the process to exit. | ||
| 289 | // The package is immediately considered to have failed with ERROR_INSTALL_USEREXIT. | ||
| 290 | // The engine will never rollback the package. | ||
| 291 | BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION_ABANDON, | ||
| 292 | // Instructs the engine to wait for the process to exit. | ||
| 293 | // Once the process has exited, the package is considered to have failed with ERROR_INSTALL_USEREXIT. | ||
| 294 | // This allows the engine to rollback the package if necessary. | ||
| 295 | BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION_WAIT, | ||
| 296 | }; | ||
| 297 | |||
| 285 | enum BOOTSTRAPPER_SHUTDOWN_ACTION | 298 | enum BOOTSTRAPPER_SHUTDOWN_ACTION |
| 286 | { | 299 | { |
| 287 | BOOTSTRAPPER_SHUTDOWN_ACTION_NONE, | 300 | BOOTSTRAPPER_SHUTDOWN_ACTION_NONE, |
| @@ -997,6 +1010,20 @@ struct BA_ONEXECUTEPATCHTARGET_RESULTS | |||
| 997 | BOOL fCancel; | 1010 | BOOL fCancel; |
| 998 | }; | 1011 | }; |
| 999 | 1012 | ||
| 1013 | struct BA_ONEXECUTEPROCESSCANCEL_ARGS | ||
| 1014 | { | ||
| 1015 | DWORD cbSize; | ||
| 1016 | LPCWSTR wzPackageId; | ||
| 1017 | DWORD dwProcessId; | ||
| 1018 | BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION recommendation; | ||
| 1019 | }; | ||
| 1020 | |||
| 1021 | struct BA_ONEXECUTEPROCESSCANCEL_RESULTS | ||
| 1022 | { | ||
| 1023 | DWORD cbSize; | ||
| 1024 | BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION action; | ||
| 1025 | }; | ||
| 1026 | |||
| 1000 | struct BA_ONEXECUTEPROGRESS_ARGS | 1027 | struct BA_ONEXECUTEPROGRESS_ARGS |
| 1001 | { | 1028 | { |
| 1002 | DWORD cbSize; | 1029 | DWORD cbSize; |
diff --git a/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs b/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs index 8a2e0e93..5ed064fa 100644 --- a/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs +++ b/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs | |||
| @@ -280,6 +280,9 @@ namespace WixToolset.Mba.Core | |||
| 280 | /// <inheritdoc/> | 280 | /// <inheritdoc/> |
| 281 | public event EventHandler<PlanRestoreRelatedBundleEventArgs> PlanRestoreRelatedBundle; | 281 | public event EventHandler<PlanRestoreRelatedBundleEventArgs> PlanRestoreRelatedBundle; |
| 282 | 282 | ||
| 283 | /// <inheritdoc/> | ||
| 284 | public event EventHandler<ExecuteProcessCancelEventArgs> ExecuteProcessCancel; | ||
| 285 | |||
| 283 | /// <summary> | 286 | /// <summary> |
| 284 | /// Entry point that is called when the bootstrapper application is ready to run. | 287 | /// Entry point that is called when the bootstrapper application is ready to run. |
| 285 | /// </summary> | 288 | /// </summary> |
| @@ -1369,6 +1372,19 @@ namespace WixToolset.Mba.Core | |||
| 1369 | } | 1372 | } |
| 1370 | } | 1373 | } |
| 1371 | 1374 | ||
| 1375 | /// <summary> | ||
| 1376 | /// Called by the engine, raises the <see cref="ExecuteProcessCancel"/> event. | ||
| 1377 | /// </summary> | ||
| 1378 | /// <param name="args">Additional arguments for this event.</param> | ||
| 1379 | protected virtual void OnExecuteProcessCancel(ExecuteProcessCancelEventArgs args) | ||
| 1380 | { | ||
| 1381 | EventHandler<ExecuteProcessCancelEventArgs> handler = this.ExecuteProcessCancel; | ||
| 1382 | if (null != handler) | ||
| 1383 | { | ||
| 1384 | handler(this, args); | ||
| 1385 | } | ||
| 1386 | } | ||
| 1387 | |||
| 1372 | #region IBootstrapperApplication Members | 1388 | #region IBootstrapperApplication Members |
| 1373 | 1389 | ||
| 1374 | int IBootstrapperApplication.BAProc(int message, IntPtr pvArgs, IntPtr pvResults, IntPtr pvContext) | 1390 | int IBootstrapperApplication.BAProc(int message, IntPtr pvArgs, IntPtr pvResults, IntPtr pvContext) |
| @@ -2119,6 +2135,15 @@ namespace WixToolset.Mba.Core | |||
| 2119 | return args.HResult; | 2135 | return args.HResult; |
| 2120 | } | 2136 | } |
| 2121 | 2137 | ||
| 2138 | int IBootstrapperApplication.OnExecuteProcessCancel(string wzPackageId, int processId, BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION recommendation, ref BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION pAction) | ||
| 2139 | { | ||
| 2140 | ExecuteProcessCancelEventArgs args = new ExecuteProcessCancelEventArgs(wzPackageId, processId, recommendation, pAction); | ||
| 2141 | this.OnExecuteProcessCancel(args); | ||
| 2142 | |||
| 2143 | pAction = args.Action; | ||
| 2144 | return args.HResult; | ||
| 2145 | } | ||
| 2146 | |||
| 2122 | #endregion | 2147 | #endregion |
| 2123 | } | 2148 | } |
| 2124 | } | 2149 | } |
diff --git a/src/api/burn/WixToolset.Mba.Core/EventArgs.cs b/src/api/burn/WixToolset.Mba.Core/EventArgs.cs index c93c2885..c2c73067 100644 --- a/src/api/burn/WixToolset.Mba.Core/EventArgs.cs +++ b/src/api/burn/WixToolset.Mba.Core/EventArgs.cs | |||
| @@ -2488,4 +2488,40 @@ namespace WixToolset.Mba.Core | |||
| 2488 | /// </summary> | 2488 | /// </summary> |
| 2489 | public RequestState State { get; set; } | 2489 | public RequestState State { get; set; } |
| 2490 | } | 2490 | } |
| 2491 | |||
| 2492 | /// <summary> | ||
| 2493 | /// Event arguments for <see cref="IDefaultBootstrapperApplication.ExecuteProcessCancel"/> | ||
| 2494 | /// </summary> | ||
| 2495 | [Serializable] | ||
| 2496 | public class ExecuteProcessCancelEventArgs : HResultEventArgs | ||
| 2497 | { | ||
| 2498 | /// <summary /> | ||
| 2499 | public ExecuteProcessCancelEventArgs(string packageId, int processId, BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION recommendation, BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION action) | ||
| 2500 | { | ||
| 2501 | this.PackageId = packageId; | ||
| 2502 | this.ProcessId = processId; | ||
| 2503 | this.Recommendation = recommendation; | ||
| 2504 | this.Action = action; | ||
| 2505 | } | ||
| 2506 | |||
| 2507 | /// <summary> | ||
| 2508 | /// Gets the identity of the package. | ||
| 2509 | /// </summary> | ||
| 2510 | public string PackageId { get; private set; } | ||
| 2511 | |||
| 2512 | /// <summary> | ||
| 2513 | /// Gets the process id. | ||
| 2514 | /// </summary> | ||
| 2515 | public int ProcessId { get; private set; } | ||
| 2516 | |||
| 2517 | /// <summary> | ||
| 2518 | /// Gets the recommended action from the engine. | ||
| 2519 | /// </summary> | ||
| 2520 | public BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION Recommendation { get; private set; } | ||
| 2521 | |||
| 2522 | /// <summary> | ||
| 2523 | /// Gets or sets the action to be performed. This is passed back to the engine. | ||
| 2524 | /// </summary> | ||
| 2525 | public BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION Action { get; set; } | ||
| 2526 | } | ||
| 2491 | } | 2527 | } |
diff --git a/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs b/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs index d4fe8320..1786eecd 100644 --- a/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs +++ b/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs | |||
| @@ -1170,6 +1170,18 @@ namespace WixToolset.Mba.Core | |||
| 1170 | [MarshalAs(UnmanagedType.I4)] int hrRecommended, | 1170 | [MarshalAs(UnmanagedType.I4)] int hrRecommended, |
| 1171 | [MarshalAs(UnmanagedType.I4)] ref int hrStatus | 1171 | [MarshalAs(UnmanagedType.I4)] ref int hrStatus |
| 1172 | ); | 1172 | ); |
| 1173 | |||
| 1174 | /// <summary> | ||
| 1175 | /// See <see cref="IDefaultBootstrapperApplication.ExecuteProcessCancel"/>. | ||
| 1176 | /// </summary> | ||
| 1177 | [PreserveSig] | ||
| 1178 | [return: MarshalAs(UnmanagedType.I4)] | ||
| 1179 | int OnExecuteProcessCancel( | ||
| 1180 | [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, | ||
| 1181 | int processId, | ||
| 1182 | [MarshalAs(UnmanagedType.I4)] BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION recommendation, | ||
| 1183 | [MarshalAs(UnmanagedType.I4)] ref BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION pAction | ||
| 1184 | ); | ||
| 1173 | } | 1185 | } |
| 1174 | 1186 | ||
| 1175 | /// <summary> | 1187 | /// <summary> |
| @@ -1907,6 +1919,26 @@ namespace WixToolset.Mba.Core | |||
| 1907 | } | 1919 | } |
| 1908 | 1920 | ||
| 1909 | /// <summary> | 1921 | /// <summary> |
| 1922 | /// The available actions for <see cref="IDefaultBootstrapperApplication.ExecuteProcessCancel"/>. | ||
| 1923 | /// </summary> | ||
| 1924 | public enum BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION | ||
| 1925 | { | ||
| 1926 | /// <summary> | ||
| 1927 | /// Instructs the engine to stop waiting for the process to exit. | ||
| 1928 | /// The package is immediately considered to have failed with ERROR_INSTALL_USEREXIT. | ||
| 1929 | /// The engine will never rollback the package. | ||
| 1930 | /// </summary> | ||
| 1931 | Abandon, | ||
| 1932 | |||
| 1933 | /// <summary> | ||
| 1934 | /// Instructs the engine to wait for the process to exit. | ||
| 1935 | /// Once the process has exited, the package is considered to have failed with ERROR_INSTALL_USEREXIT. | ||
| 1936 | /// This allows the engine to rollback the package if necessary. | ||
| 1937 | /// </summary> | ||
| 1938 | Wait, | ||
| 1939 | } | ||
| 1940 | |||
| 1941 | /// <summary> | ||
| 1910 | /// The result of evaluating a condition from a package. | 1942 | /// The result of evaluating a condition from a package. |
| 1911 | /// </summary> | 1943 | /// </summary> |
| 1912 | public enum BOOTSTRAPPER_PACKAGE_CONDITION_RESULT | 1944 | public enum BOOTSTRAPPER_PACKAGE_CONDITION_RESULT |
diff --git a/src/api/burn/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs b/src/api/burn/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs index c9284b69..21d99b32 100644 --- a/src/api/burn/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs +++ b/src/api/burn/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs | |||
| @@ -244,6 +244,11 @@ namespace WixToolset.Mba.Core | |||
| 244 | event EventHandler<ExecutePackageCompleteEventArgs> ExecutePackageComplete; | 244 | event EventHandler<ExecutePackageCompleteEventArgs> ExecutePackageComplete; |
| 245 | 245 | ||
| 246 | /// <summary> | 246 | /// <summary> |
| 247 | /// Fired when a package that spawned a process is cancelled. | ||
| 248 | /// </summary> | ||
| 249 | event EventHandler<ExecuteProcessCancelEventArgs> ExecuteProcessCancel; | ||
| 250 | |||
| 251 | /// <summary> | ||
| 247 | /// Fired when the engine executes one or more patches targeting a product. | 252 | /// Fired when the engine executes one or more patches targeting a product. |
| 248 | /// </summary> | 253 | /// </summary> |
| 249 | event EventHandler<ExecutePatchTargetEventArgs> ExecutePatchTarget; | 254 | event EventHandler<ExecutePatchTargetEventArgs> ExecutePatchTarget; |
diff --git a/src/api/burn/balutil/inc/BAFunctions.h b/src/api/burn/balutil/inc/BAFunctions.h index 58c26166..158e65b5 100644 --- a/src/api/burn/balutil/inc/BAFunctions.h +++ b/src/api/burn/balutil/inc/BAFunctions.h | |||
| @@ -91,6 +91,7 @@ enum BA_FUNCTIONS_MESSAGE | |||
| 91 | BA_FUNCTIONS_MESSAGE_ONPLANRESTORERELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRESTORERELATEDBUNDLE, | 91 | BA_FUNCTIONS_MESSAGE_ONPLANRESTORERELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRESTORERELATEDBUNDLE, |
| 92 | BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLETYPE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLETYPE, | 92 | BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLETYPE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLETYPE, |
| 93 | BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE, | 93 | BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE, |
| 94 | BA_FUNCTIONS_MESSAGE_ONEXECUTEPROCESSCANCEL = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROCESSCANCEL, | ||
| 94 | 95 | ||
| 95 | BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, | 96 | BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, |
| 96 | BA_FUNCTIONS_MESSAGE_WNDPROC, | 97 | BA_FUNCTIONS_MESSAGE_WNDPROC, |
diff --git a/src/api/burn/balutil/inc/BalBaseBAFunctions.h b/src/api/burn/balutil/inc/BalBaseBAFunctions.h index fe5c99ba..614d4bcf 100644 --- a/src/api/burn/balutil/inc/BalBaseBAFunctions.h +++ b/src/api/burn/balutil/inc/BalBaseBAFunctions.h | |||
| @@ -877,6 +877,16 @@ public: // IBootstrapperApplication | |||
| 877 | return S_OK; | 877 | return S_OK; |
| 878 | } | 878 | } |
| 879 | 879 | ||
| 880 | virtual STDMETHODIMP OnExecuteProcessCancel( | ||
| 881 | __in_z LPCWSTR /*wzPackageId*/, | ||
| 882 | __in DWORD /*dwProcessId*/, | ||
| 883 | __in BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION /*recommendation*/, | ||
| 884 | __inout BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION* /*pAction*/ | ||
| 885 | ) | ||
| 886 | { | ||
| 887 | return S_OK; | ||
| 888 | } | ||
| 889 | |||
| 880 | public: // IBAFunctions | 890 | public: // IBAFunctions |
| 881 | virtual STDMETHODIMP OnPlan( | 891 | virtual STDMETHODIMP OnPlan( |
| 882 | ) | 892 | ) |
diff --git a/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h b/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h index 100e5c30..b96a180c 100644 --- a/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h +++ b/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h | |||
| @@ -162,6 +162,7 @@ static HRESULT WINAPI BalBaseBAFunctionsProc( | |||
| 162 | case BA_FUNCTIONS_MESSAGE_ONPLANRESTORERELATEDBUNDLE: | 162 | case BA_FUNCTIONS_MESSAGE_ONPLANRESTORERELATEDBUNDLE: |
| 163 | case BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLETYPE: | 163 | case BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLETYPE: |
| 164 | case BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE: | 164 | case BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE: |
| 165 | case BA_FUNCTIONS_MESSAGE_ONEXECUTEPROCESSCANCEL: | ||
| 165 | hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext); | 166 | hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext); |
| 166 | break; | 167 | break; |
| 167 | case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED: | 168 | case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED: |
diff --git a/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h b/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h index fd06a83f..25570ffd 100644 --- a/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h +++ b/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h | |||
| @@ -1077,6 +1077,16 @@ public: // IBootstrapperApplication | |||
| 1077 | return S_OK; | 1077 | return S_OK; |
| 1078 | } | 1078 | } |
| 1079 | 1079 | ||
| 1080 | virtual STDMETHODIMP OnExecuteProcessCancel( | ||
| 1081 | __in_z LPCWSTR /*wzPackageId*/, | ||
| 1082 | __in DWORD /*dwProcessId*/, | ||
| 1083 | __in BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION /*recommendation*/, | ||
| 1084 | __inout BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION* /*pAction*/ | ||
| 1085 | ) | ||
| 1086 | { | ||
| 1087 | return S_OK; | ||
| 1088 | } | ||
| 1089 | |||
| 1080 | public: //CBalBaseBootstrapperApplication | 1090 | public: //CBalBaseBootstrapperApplication |
| 1081 | virtual STDMETHODIMP Initialize( | 1091 | virtual STDMETHODIMP Initialize( |
| 1082 | __in const BOOTSTRAPPER_CREATE_ARGS* pCreateArgs | 1092 | __in const BOOTSTRAPPER_CREATE_ARGS* pCreateArgs |
diff --git a/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h b/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h index 4e413e4e..b196d183 100644 --- a/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h +++ b/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h | |||
| @@ -486,6 +486,15 @@ static HRESULT BalBaseBAProcOnExecutePackageComplete( | |||
| 486 | return pBA->OnExecutePackageComplete(pArgs->wzPackageId, pArgs->hrStatus, pArgs->restart, pArgs->recommendation, &pResults->action); | 486 | return pBA->OnExecutePackageComplete(pArgs->wzPackageId, pArgs->hrStatus, pArgs->restart, pArgs->recommendation, &pResults->action); |
| 487 | } | 487 | } |
| 488 | 488 | ||
| 489 | static HRESULT BalBaseBAProcOnExecuteProcessCancel( | ||
| 490 | __in IBootstrapperApplication* pBA, | ||
| 491 | __in BA_ONEXECUTEPROCESSCANCEL_ARGS* pArgs, | ||
| 492 | __inout BA_ONEXECUTEPROCESSCANCEL_RESULTS* pResults | ||
| 493 | ) | ||
| 494 | { | ||
| 495 | return pBA->OnExecuteProcessCancel(pArgs->wzPackageId, pArgs->dwProcessId, pArgs->recommendation, &pResults->action); | ||
| 496 | } | ||
| 497 | |||
| 489 | static HRESULT BalBaseBAProcOnExecuteComplete( | 498 | static HRESULT BalBaseBAProcOnExecuteComplete( |
| 490 | __in IBootstrapperApplication* pBA, | 499 | __in IBootstrapperApplication* pBA, |
| 491 | __in BA_ONEXECUTECOMPLETE_ARGS* pArgs, | 500 | __in BA_ONEXECUTECOMPLETE_ARGS* pArgs, |
| @@ -1012,6 +1021,9 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc( | |||
| 1012 | case BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE: | 1021 | case BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE: |
| 1013 | hr = BalBaseBAProcOnApplyDowngrade(pBA, reinterpret_cast<BA_ONAPPLYDOWNGRADE_ARGS*>(pvArgs), reinterpret_cast<BA_ONAPPLYDOWNGRADE_RESULTS*>(pvResults)); | 1022 | hr = BalBaseBAProcOnApplyDowngrade(pBA, reinterpret_cast<BA_ONAPPLYDOWNGRADE_ARGS*>(pvArgs), reinterpret_cast<BA_ONAPPLYDOWNGRADE_RESULTS*>(pvResults)); |
| 1014 | break; | 1023 | break; |
| 1024 | case BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROCESSCANCEL: | ||
| 1025 | hr = BalBaseBAProcOnExecuteProcessCancel(pBA, reinterpret_cast<BA_ONEXECUTEPROCESSCANCEL_ARGS*>(pvArgs), reinterpret_cast<BA_ONEXECUTEPROCESSCANCEL_RESULTS*>(pvResults)); | ||
| 1026 | break; | ||
| 1015 | } | 1027 | } |
| 1016 | } | 1028 | } |
| 1017 | 1029 | ||
diff --git a/src/api/burn/balutil/inc/IBootstrapperApplication.h b/src/api/burn/balutil/inc/IBootstrapperApplication.h index c9cf3126..6174c290 100644 --- a/src/api/burn/balutil/inc/IBootstrapperApplication.h +++ b/src/api/burn/balutil/inc/IBootstrapperApplication.h | |||
| @@ -714,4 +714,13 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A | |||
| 714 | __in HRESULT hrRecommended, | 714 | __in HRESULT hrRecommended, |
| 715 | __inout HRESULT* phrStatus | 715 | __inout HRESULT* phrStatus |
| 716 | ) = 0; | 716 | ) = 0; |
| 717 | |||
| 718 | // OnExecuteProcessCancel - called when a package that spawned a process is cancelled. | ||
| 719 | // | ||
| 720 | STDMETHOD(OnExecuteProcessCancel)( | ||
| 721 | __in_z LPCWSTR wzPackageId, | ||
| 722 | __in DWORD dwProcessId, | ||
| 723 | __in BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION recommendation, | ||
| 724 | __inout BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION* pAction | ||
| 725 | ) = 0; | ||
| 717 | }; | 726 | }; |
