aboutsummaryrefslogtreecommitdiff
path: root/src/balutil
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2020-05-15 13:48:38 +1000
committerSean Hall <r.sean.hall@gmail.com>2020-05-16 21:47:46 +1000
commit780cd25e41f2d2982807a0a2a24a734684d27fe6 (patch)
treeeaf7322f1cb79f337f764d778d518f9fa2b2e175 /src/balutil
parentb0b50f1d8512b6d7ebd087d19406629db0a5ef9b (diff)
downloadwix-780cd25e41f2d2982807a0a2a24a734684d27fe6.tar.gz
wix-780cd25e41f2d2982807a0a2a24a734684d27fe6.tar.bz2
wix-780cd25e41f2d2982807a0a2a24a734684d27fe6.zip
WIXFEAT:6164 Add OnPlanMsiPackage.
Diffstat (limited to 'src/balutil')
-rw-r--r--src/balutil/inc/BAFunctions.h1
-rw-r--r--src/balutil/inc/BalBaseBAFunctions.h15
-rw-r--r--src/balutil/inc/BalBaseBAFunctionsProc.h1
-rw-r--r--src/balutil/inc/BalBaseBootstrapperApplication.h16
-rw-r--r--src/balutil/inc/BalBaseBootstrapperApplicationProc.h14
-rw-r--r--src/balutil/inc/IBootstrapperApplication.h14
6 files changed, 60 insertions, 1 deletions
diff --git a/src/balutil/inc/BAFunctions.h b/src/balutil/inc/BAFunctions.h
index 1338253d..8101afdb 100644
--- a/src/balutil/inc/BAFunctions.h
+++ b/src/balutil/inc/BAFunctions.h
@@ -64,6 +64,7 @@ enum BA_FUNCTIONS_MESSAGE
64 BA_FUNCTIONS_MESSAGE_ONAPPLYCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYCOMPLETE, 64 BA_FUNCTIONS_MESSAGE_ONAPPLYCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYCOMPLETE,
65 BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN, 65 BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN,
66 BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE, 66 BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE,
67 BA_FUNCTIONS_MESSAGE_ONPLANMSIPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIPACKAGE,
67 68
68 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, 69 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024,
69 BA_FUNCTIONS_MESSAGE_WNDPROC, 70 BA_FUNCTIONS_MESSAGE_WNDPROC,
diff --git a/src/balutil/inc/BalBaseBAFunctions.h b/src/balutil/inc/BalBaseBAFunctions.h
index 411524fb..4e095fb8 100644
--- a/src/balutil/inc/BalBaseBAFunctions.h
+++ b/src/balutil/inc/BalBaseBAFunctions.h
@@ -298,6 +298,19 @@ public: // IBootstrapperApplication
298 return S_OK; 298 return S_OK;
299 } 299 }
300 300
301 virtual STDMETHODIMP OnPlanMsiPackage(
302 __in_z LPCWSTR /*wzPackageId*/,
303 __in BOOL /*fExecute*/,
304 __in BOOTSTRAPPER_ACTION_STATE /*action*/,
305 __inout BOOL* /*pfCancel*/,
306 __inout BURN_MSI_PROPERTY* /*pActionMsiProperty*/,
307 __inout INSTALLUILEVEL* /*pUiLevel*/,
308 __inout BOOL* /*pfDisableExternalUiHandler*/
309 )
310 {
311 return S_OK;
312 }
313
301 virtual STDMETHODIMP OnPlanPackageComplete( 314 virtual STDMETHODIMP OnPlanPackageComplete(
302 __in_z LPCWSTR /*wzPackageId*/, 315 __in_z LPCWSTR /*wzPackageId*/,
303 __in HRESULT /*hrStatus*/, 316 __in HRESULT /*hrStatus*/,
@@ -490,6 +503,8 @@ public: // IBootstrapperApplication
490 __in_z LPCWSTR /*wzPackageId*/, 503 __in_z LPCWSTR /*wzPackageId*/,
491 __in BOOL /*fExecute*/, 504 __in BOOL /*fExecute*/,
492 __in BOOTSTRAPPER_ACTION_STATE /*action*/, 505 __in BOOTSTRAPPER_ACTION_STATE /*action*/,
506 __in INSTALLUILEVEL /*uiLevel*/,
507 __in BOOL /*fDisableExternalUiHandler*/,
493 __inout BOOL* /*pfCancel*/ 508 __inout BOOL* /*pfCancel*/
494 ) 509 )
495 { 510 {
diff --git a/src/balutil/inc/BalBaseBAFunctionsProc.h b/src/balutil/inc/BalBaseBAFunctionsProc.h
index da0a71f7..f6ebd9f6 100644
--- a/src/balutil/inc/BalBaseBAFunctionsProc.h
+++ b/src/balutil/inc/BalBaseBAFunctionsProc.h
@@ -99,6 +99,7 @@ static HRESULT WINAPI BalBaseBAFunctionsProc(
99 case BA_FUNCTIONS_MESSAGE_ONAPPLYCOMPLETE: 99 case BA_FUNCTIONS_MESSAGE_ONAPPLYCOMPLETE:
100 case BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN: 100 case BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN:
101 case BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE: 101 case BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE:
102 case BA_FUNCTIONS_MESSAGE_ONPLANMSIPACKAGE:
102 hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext); 103 hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext);
103 break; 104 break;
104 case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED: 105 case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED:
diff --git a/src/balutil/inc/BalBaseBootstrapperApplication.h b/src/balutil/inc/BalBaseBootstrapperApplication.h
index 269777a6..1d014419 100644
--- a/src/balutil/inc/BalBaseBootstrapperApplication.h
+++ b/src/balutil/inc/BalBaseBootstrapperApplication.h
@@ -311,6 +311,20 @@ public: // IBootstrapperApplication
311 return S_OK; 311 return S_OK;
312 } 312 }
313 313
314 virtual STDMETHODIMP OnPlanMsiPackage(
315 __in_z LPCWSTR /*wzPackageId*/,
316 __in BOOL /*fExecute*/,
317 __in BOOTSTRAPPER_ACTION_STATE /*action*/,
318 __inout BOOL* pfCancel,
319 __inout BURN_MSI_PROPERTY* /*pActionMsiProperty*/,
320 __inout INSTALLUILEVEL* /*pUiLevel*/,
321 __inout BOOL* /*pfDisableExternalUiHandler*/
322 )
323 {
324 *pfCancel |= CheckCanceled();
325 return S_OK;
326 }
327
314 virtual STDMETHODIMP OnPlanPackageComplete( 328 virtual STDMETHODIMP OnPlanPackageComplete(
315 __in_z LPCWSTR /*wzPackageId*/, 329 __in_z LPCWSTR /*wzPackageId*/,
316 __in HRESULT /*hrStatus*/, 330 __in HRESULT /*hrStatus*/,
@@ -604,6 +618,8 @@ public: // IBootstrapperApplication
604 __in_z LPCWSTR wzPackageId, 618 __in_z LPCWSTR wzPackageId,
605 __in BOOL fExecute, 619 __in BOOL fExecute,
606 __in BOOTSTRAPPER_ACTION_STATE /*action*/, 620 __in BOOTSTRAPPER_ACTION_STATE /*action*/,
621 __in INSTALLUILEVEL /*uiLevel*/,
622 __in BOOL /*fDisableExternalUiHandler*/,
607 __inout BOOL* pfCancel 623 __inout BOOL* pfCancel
608 ) 624 )
609 { 625 {
diff --git a/src/balutil/inc/BalBaseBootstrapperApplicationProc.h b/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
index 35bc0a9e..d25af1f7 100644
--- a/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
+++ b/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
@@ -402,7 +402,7 @@ static HRESULT BalBaseBAProcOnExecutePackageBegin(
402 __inout BA_ONEXECUTEPACKAGEBEGIN_RESULTS* pResults 402 __inout BA_ONEXECUTEPACKAGEBEGIN_RESULTS* pResults
403 ) 403 )
404{ 404{
405 return pBA->OnExecutePackageBegin(pArgs->wzPackageId, pArgs->fExecute, pArgs->action, &pResults->fCancel); 405 return pBA->OnExecutePackageBegin(pArgs->wzPackageId, pArgs->fExecute, pArgs->action, pArgs->uiLevel, pArgs->fDisableExternalUiHandler, &pResults->fCancel);
406} 406}
407 407
408static HRESULT BalBaseBAProcOnExecutePatchTarget( 408static HRESULT BalBaseBAProcOnExecutePatchTarget(
@@ -504,6 +504,15 @@ static HRESULT BalBaseBAProcOnLaunchApprovedExeComplete(
504 return pBA->OnLaunchApprovedExeComplete(pArgs->hrStatus, pArgs->dwProcessId); 504 return pBA->OnLaunchApprovedExeComplete(pArgs->hrStatus, pArgs->dwProcessId);
505} 505}
506 506
507static HRESULT BalBaseBAProcOnPlanMsiPackage(
508 __in IBootstrapperApplication* pBA,
509 __in BA_ONPLANMSIPACKAGE_ARGS* pArgs,
510 __inout BA_ONPLANMSIPACKAGE_RESULTS* pResults
511 )
512{
513 return pBA->OnPlanMsiPackage(pArgs->wzPackageId, pArgs->fExecute, pArgs->action, &pResults->fCancel, &pResults->actionMsiProperty, &pResults->uiLevel, &pResults->fDisableExternalUiHandler);
514}
515
507/******************************************************************* 516/*******************************************************************
508BalBaseBootstrapperApplicationProc - requires pvContext to be of type IBootstrapperApplication. 517BalBaseBootstrapperApplicationProc - requires pvContext to be of type IBootstrapperApplication.
509 Provides a default mapping between the new message based BA interface and 518 Provides a default mapping between the new message based BA interface and
@@ -689,6 +698,9 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc(
689 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE: 698 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE:
690 hr = BalBaseBAProcOnLaunchApprovedExeComplete(pBA, reinterpret_cast<BA_ONLAUNCHAPPROVEDEXECOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONLAUNCHAPPROVEDEXECOMPLETE_RESULTS*>(pvResults)); 699 hr = BalBaseBAProcOnLaunchApprovedExeComplete(pBA, reinterpret_cast<BA_ONLAUNCHAPPROVEDEXECOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONLAUNCHAPPROVEDEXECOMPLETE_RESULTS*>(pvResults));
691 break; 700 break;
701 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIPACKAGE:
702 hr = BalBaseBAProcOnPlanMsiPackage(pBA, reinterpret_cast<BA_ONPLANMSIPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANMSIPACKAGE_RESULTS*>(pvResults));
703 break;
692 } 704 }
693 } 705 }
694 706
diff --git a/src/balutil/inc/IBootstrapperApplication.h b/src/balutil/inc/IBootstrapperApplication.h
index 30b456c7..e17d2589 100644
--- a/src/balutil/inc/IBootstrapperApplication.h
+++ b/src/balutil/inc/IBootstrapperApplication.h
@@ -194,6 +194,18 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
194 __inout BOOL* pfCancel 194 __inout BOOL* pfCancel
195 ) = 0; 195 ) = 0;
196 196
197 // OnPlanMsiPackage - called when the engine plans an MSI or MSP package.
198 //
199 STDMETHOD(OnPlanMsiPackage)(
200 __in_z LPCWSTR wzPackageId,
201 __in BOOL fExecute, // false means rollback.
202 __in BOOTSTRAPPER_ACTION_STATE action,
203 __inout BOOL* pfCancel,
204 __inout BURN_MSI_PROPERTY* pActionMsiProperty,
205 __inout INSTALLUILEVEL* pUiLevel,
206 __inout BOOL* pfDisableExternalUiHandler
207 ) = 0;
208
197 // OnPlanPackageComplete - called after the engine plans a package. 209 // OnPlanPackageComplete - called after the engine plans a package.
198 // 210 //
199 STDMETHOD(OnPlanPackageComplete)( 211 STDMETHOD(OnPlanPackageComplete)(
@@ -390,6 +402,8 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
390 __in_z LPCWSTR wzPackageId, 402 __in_z LPCWSTR wzPackageId,
391 __in BOOL fExecute, // false means rollback. 403 __in BOOL fExecute, // false means rollback.
392 __in BOOTSTRAPPER_ACTION_STATE action, 404 __in BOOTSTRAPPER_ACTION_STATE action,
405 __in INSTALLUILEVEL uiLevel,
406 __in BOOL fDisableExternalUiHandler,
393 __inout BOOL* pfCancel 407 __inout BOOL* pfCancel
394 ) = 0; 408 ) = 0;
395 409