summaryrefslogtreecommitdiff
path: root/src/api/burn/balutil
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/api/burn/balutil
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/api/burn/balutil')
-rw-r--r--src/api/burn/balutil/inc/BAFunctions.h1
-rw-r--r--src/api/burn/balutil/inc/BalBaseBAFunctions.h10
-rw-r--r--src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h1
-rw-r--r--src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h10
-rw-r--r--src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h12
-rw-r--r--src/api/burn/balutil/inc/IBootstrapperApplication.h9
6 files changed, 43 insertions, 0 deletions
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
880public: // IBAFunctions 890public: // 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
1080public: //CBalBaseBootstrapperApplication 1090public: //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
489static 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
489static HRESULT BalBaseBAProcOnExecuteComplete( 498static 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};