diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2020-05-15 13:48:38 +1000 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2020-05-16 21:47:46 +1000 |
commit | 780cd25e41f2d2982807a0a2a24a734684d27fe6 (patch) | |
tree | eaf7322f1cb79f337f764d778d518f9fa2b2e175 /src/balutil | |
parent | b0b50f1d8512b6d7ebd087d19406629db0a5ef9b (diff) | |
download | wix-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.h | 1 | ||||
-rw-r--r-- | src/balutil/inc/BalBaseBAFunctions.h | 15 | ||||
-rw-r--r-- | src/balutil/inc/BalBaseBAFunctionsProc.h | 1 | ||||
-rw-r--r-- | src/balutil/inc/BalBaseBootstrapperApplication.h | 16 | ||||
-rw-r--r-- | src/balutil/inc/BalBaseBootstrapperApplicationProc.h | 14 | ||||
-rw-r--r-- | src/balutil/inc/IBootstrapperApplication.h | 14 |
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 | ||
408 | static HRESULT BalBaseBAProcOnExecutePatchTarget( | 408 | static 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 | ||
507 | static 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 | /******************************************************************* |
508 | BalBaseBootstrapperApplicationProc - requires pvContext to be of type IBootstrapperApplication. | 517 | BalBaseBootstrapperApplicationProc - 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 | ||