aboutsummaryrefslogtreecommitdiff
path: root/src/balutil
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-04-19 17:35:44 -0500
committerSean Hall <r.sean.hall@gmail.com>2021-04-19 23:23:39 -0500
commit11fe2c881d182f9caff28bd9ff08c2e4fe513989 (patch)
treea2f1769b78e9b1eb4708678fe6b5374eec209c6a /src/balutil
parent62b32cd6f21292c73dae8d5cfcd3a1cb13a1fd7d (diff)
downloadwix-11fe2c881d182f9caff28bd9ff08c2e4fe513989.tar.gz
wix-11fe2c881d182f9caff28bd9ff08c2e4fe513989.tar.bz2
wix-11fe2c881d182f9caff28bd9ff08c2e4fe513989.zip
Add new caching BA events.
#3640
Diffstat (limited to 'src/balutil')
-rw-r--r--src/balutil/inc/BAFunctions.h7
-rw-r--r--src/balutil/inc/BalBaseBAFunctions.h101
-rw-r--r--src/balutil/inc/BalBaseBootstrapperApplication.h106
-rw-r--r--src/balutil/inc/BalBaseBootstrapperApplicationProc.h84
-rw-r--r--src/balutil/inc/IBootstrapperApplication.h87
5 files changed, 339 insertions, 46 deletions
diff --git a/src/balutil/inc/BAFunctions.h b/src/balutil/inc/BAFunctions.h
index 07f7a750..2970478f 100644
--- a/src/balutil/inc/BAFunctions.h
+++ b/src/balutil/inc/BAFunctions.h
@@ -74,6 +74,13 @@ enum BA_FUNCTIONS_MESSAGE
74 BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE, 74 BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE,
75 BA_FUNCTIONS_MESSAGE_ONPLANNEDPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDPACKAGE, 75 BA_FUNCTIONS_MESSAGE_ONPLANNEDPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDPACKAGE,
76 BA_FUNCTIONS_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE, 76 BA_FUNCTIONS_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE,
77 BA_FUNCTIONS_MESSAGE_ONCACHEVERIFYPROGRESS = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYPROGRESS,
78 BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYBEGIN,
79 BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE,
80 BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS,
81 BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN,
82 BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE,
83 BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS,
77 84
78 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, 85 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024,
79 BA_FUNCTIONS_MESSAGE_WNDPROC, 86 BA_FUNCTIONS_MESSAGE_WNDPROC,
diff --git a/src/balutil/inc/BalBaseBAFunctions.h b/src/balutil/inc/BalBaseBAFunctions.h
index ca727f49..054bfb26 100644
--- a/src/balutil/inc/BalBaseBAFunctions.h
+++ b/src/balutil/inc/BalBaseBAFunctions.h
@@ -69,6 +69,26 @@ public: // IUnknown
69 } 69 }
70 70
71public: // IBootstrapperApplication 71public: // IBootstrapperApplication
72 virtual STDMETHODIMP_(HRESULT) BAProc(
73 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/,
74 __in const LPVOID /*pvArgs*/,
75 __inout LPVOID /*pvResults*/,
76 __in_opt LPVOID /*pvContext*/
77 )
78 {
79 return E_NOTIMPL;
80 }
81
82 virtual STDMETHODIMP_(void) BAProcFallback(
83 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/,
84 __in const LPVOID /*pvArgs*/,
85 __inout LPVOID /*pvResults*/,
86 __inout HRESULT* /*phr*/,
87 __in_opt LPVOID /*pvContext*/
88 )
89 {
90 }
91
72 virtual STDMETHODIMP OnStartup() 92 virtual STDMETHODIMP OnStartup()
73 { 93 {
74 return S_OK; 94 return S_OK;
@@ -439,7 +459,7 @@ public: // IBootstrapperApplication
439 } 459 }
440 460
441 virtual STDMETHODIMP OnCacheVerifyBegin( 461 virtual STDMETHODIMP OnCacheVerifyBegin(
442 __in_z LPCWSTR /*wzPackageId*/, 462 __in_z LPCWSTR /*wzPackageOrContainerId*/,
443 __in_z LPCWSTR /*wzPayloadId*/, 463 __in_z LPCWSTR /*wzPayloadId*/,
444 __inout BOOL* /*pfCancel*/ 464 __inout BOOL* /*pfCancel*/
445 ) 465 )
@@ -447,8 +467,21 @@ public: // IBootstrapperApplication
447 return S_OK; 467 return S_OK;
448 } 468 }
449 469
470 virtual STDMETHODIMP OnCacheVerifyProgress(
471 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
472 __in_z_opt LPCWSTR /*wzPayloadId*/,
473 __in DWORD64 /*dw64Progress*/,
474 __in DWORD64 /*dw64Total*/,
475 __in DWORD /*dwOverallPercentage*/,
476 __in BOOTSTRAPPER_CACHE_VERIFY_STEP /*verifyStep*/,
477 __inout BOOL* /*pfCancel*/
478 )
479 {
480 return S_OK;
481 }
482
450 virtual STDMETHODIMP OnCacheVerifyComplete( 483 virtual STDMETHODIMP OnCacheVerifyComplete(
451 __in_z LPCWSTR /*wzPackageId*/, 484 __in_z LPCWSTR /*wzPackageOrContainerId*/,
452 __in_z LPCWSTR /*wzPayloadId*/, 485 __in_z LPCWSTR /*wzPayloadId*/,
453 __in HRESULT /*hrStatus*/, 486 __in HRESULT /*hrStatus*/,
454 __in BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION /*recommendation*/, 487 __in BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION /*recommendation*/,
@@ -684,24 +717,64 @@ public: // IBootstrapperApplication
684 return S_OK; 717 return S_OK;
685 } 718 }
686 719
687 virtual STDMETHODIMP_(HRESULT) BAProc( 720 virtual STDMETHODIMP OnCacheContainerOrPayloadVerifyBegin(
688 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/, 721 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
689 __in const LPVOID /*pvArgs*/, 722 __in_z_opt LPCWSTR /*wzPayloadId*/,
690 __inout LPVOID /*pvResults*/, 723 __inout BOOL* /*pfCancel*/
691 __in_opt LPVOID /*pvContext*/
692 ) 724 )
693 { 725 {
694 return E_NOTIMPL; 726 return S_OK;
695 } 727 }
696 728
697 virtual STDMETHODIMP_(void) BAProcFallback( 729 virtual STDMETHODIMP OnCacheContainerOrPayloadVerifyProgress(
698 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/, 730 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
699 __in const LPVOID /*pvArgs*/, 731 __in_z_opt LPCWSTR /*wzPayloadId*/,
700 __inout LPVOID /*pvResults*/, 732 __in DWORD64 /*dw64Progress*/,
701 __inout HRESULT* /*phr*/, 733 __in DWORD64 /*dw64Total*/,
702 __in_opt LPVOID /*pvContext*/ 734 __in DWORD /*dwOverallPercentage*/,
735 __inout BOOL* /*pfCancel*/
736 )
737 {
738 return S_OK;
739 }
740
741 virtual STDMETHODIMP OnCacheContainerOrPayloadVerifyComplete(
742 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
743 __in_z_opt LPCWSTR /*wzPayloadId*/,
744 __in HRESULT /*hrStatus*/
745 )
746 {
747 return S_OK;
748 }
749
750 virtual STDMETHODIMP OnCachePayloadExtractBegin(
751 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
752 __in_z_opt LPCWSTR /*wzPayloadId*/,
753 __inout BOOL* /*pfCancel*/
703 ) 754 )
704 { 755 {
756 return S_OK;
757 }
758
759 virtual STDMETHODIMP OnCachePayloadExtractProgress(
760 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
761 __in_z_opt LPCWSTR /*wzPayloadId*/,
762 __in DWORD64 /*dw64Progress*/,
763 __in DWORD64 /*dw64Total*/,
764 __in DWORD /*dwOverallPercentage*/,
765 __inout BOOL* /*pfCancel*/
766 )
767 {
768 return S_OK;
769 }
770
771 virtual STDMETHODIMP OnCachePayloadExtractComplete(
772 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
773 __in_z_opt LPCWSTR /*wzPayloadId*/,
774 __in HRESULT /*hrStatus*/
775 )
776 {
777 return S_OK;
705 } 778 }
706 779
707public: // IBAFunctions 780public: // IBAFunctions
diff --git a/src/balutil/inc/BalBaseBootstrapperApplication.h b/src/balutil/inc/BalBaseBootstrapperApplication.h
index 3d3e4ffa..812025eb 100644
--- a/src/balutil/inc/BalBaseBootstrapperApplication.h
+++ b/src/balutil/inc/BalBaseBootstrapperApplication.h
@@ -61,6 +61,26 @@ public: // IUnknown
61 } 61 }
62 62
63public: // IBootstrapperApplication 63public: // IBootstrapperApplication
64 virtual STDMETHODIMP_(HRESULT) BAProc(
65 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/,
66 __in const LPVOID /*pvArgs*/,
67 __inout LPVOID /*pvResults*/,
68 __in_opt LPVOID /*pvContext*/
69 )
70 {
71 return E_NOTIMPL;
72 }
73
74 virtual STDMETHODIMP_(void) BAProcFallback(
75 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/,
76 __in const LPVOID /*pvArgs*/,
77 __inout LPVOID /*pvResults*/,
78 __inout HRESULT* /*phr*/,
79 __in_opt LPVOID /*pvContext*/
80 )
81 {
82 }
83
64 virtual STDMETHODIMP OnStartup() 84 virtual STDMETHODIMP OnStartup()
65 { 85 {
66 return S_OK; 86 return S_OK;
@@ -540,7 +560,7 @@ public: // IBootstrapperApplication
540 } 560 }
541 561
542 virtual STDMETHODIMP OnCacheVerifyBegin( 562 virtual STDMETHODIMP OnCacheVerifyBegin(
543 __in_z LPCWSTR /*wzPackageId*/, 563 __in_z LPCWSTR /*wzPackageOrContainerId*/,
544 __in_z LPCWSTR /*wzPayloadId*/, 564 __in_z LPCWSTR /*wzPayloadId*/,
545 __inout BOOL* pfCancel 565 __inout BOOL* pfCancel
546 ) 566 )
@@ -549,8 +569,22 @@ public: // IBootstrapperApplication
549 return S_OK; 569 return S_OK;
550 } 570 }
551 571
572 virtual STDMETHODIMP OnCacheVerifyProgress(
573 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
574 __in_z_opt LPCWSTR /*wzPayloadId*/,
575 __in DWORD64 /*dw64Progress*/,
576 __in DWORD64 /*dw64Total*/,
577 __in DWORD /*dwOverallPercentage*/,
578 __in BOOTSTRAPPER_CACHE_VERIFY_STEP /*verifyStep*/,
579 __inout BOOL* pfCancel
580 )
581 {
582 *pfCancel |= CheckCanceled();
583 return S_OK;
584 }
585
552 virtual STDMETHODIMP OnCacheVerifyComplete( 586 virtual STDMETHODIMP OnCacheVerifyComplete(
553 __in_z LPCWSTR /*wzPackageId*/, 587 __in_z LPCWSTR /*wzPackageOrContainerId*/,
554 __in_z LPCWSTR /*wzPayloadId*/, 588 __in_z LPCWSTR /*wzPayloadId*/,
555 __in HRESULT /*hrStatus*/, 589 __in HRESULT /*hrStatus*/,
556 __in BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION /*recommendation*/, 590 __in BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION /*recommendation*/,
@@ -870,24 +904,68 @@ public: // IBootstrapperApplication
870 return S_OK; 904 return S_OK;
871 } 905 }
872 906
873 virtual STDMETHODIMP_(HRESULT) BAProc( 907 virtual STDMETHODIMP OnCacheContainerOrPayloadVerifyBegin(
874 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/, 908 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
875 __in const LPVOID /*pvArgs*/, 909 __in_z_opt LPCWSTR /*wzPayloadId*/,
876 __inout LPVOID /*pvResults*/, 910 __inout BOOL* pfCancel
877 __in_opt LPVOID /*pvContext*/
878 ) 911 )
879 { 912 {
880 return E_NOTIMPL; 913 *pfCancel |= CheckCanceled();
914 return S_OK;
881 } 915 }
882 916
883 virtual STDMETHODIMP_(void) BAProcFallback( 917 virtual STDMETHODIMP OnCacheContainerOrPayloadVerifyProgress(
884 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/, 918 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
885 __in const LPVOID /*pvArgs*/, 919 __in_z_opt LPCWSTR /*wzPayloadId*/,
886 __inout LPVOID /*pvResults*/, 920 __in DWORD64 /*dw64Progress*/,
887 __inout HRESULT* /*phr*/, 921 __in DWORD64 /*dw64Total*/,
888 __in_opt LPVOID /*pvContext*/ 922 __in DWORD /*dwOverallPercentage*/,
923 __inout BOOL* pfCancel
889 ) 924 )
890 { 925 {
926 *pfCancel |= CheckCanceled();
927 return S_OK;
928 }
929
930 virtual STDMETHODIMP OnCacheContainerOrPayloadVerifyComplete(
931 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
932 __in_z_opt LPCWSTR /*wzPayloadId*/,
933 __in HRESULT /*hrStatus*/
934 )
935 {
936 return S_OK;
937 }
938
939 virtual STDMETHODIMP OnCachePayloadExtractBegin(
940 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
941 __in_z_opt LPCWSTR /*wzPayloadId*/,
942 __inout BOOL* pfCancel
943 )
944 {
945 *pfCancel |= CheckCanceled();
946 return S_OK;
947 }
948
949 virtual STDMETHODIMP OnCachePayloadExtractProgress(
950 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
951 __in_z_opt LPCWSTR /*wzPayloadId*/,
952 __in DWORD64 /*dw64Progress*/,
953 __in DWORD64 /*dw64Total*/,
954 __in DWORD /*dwOverallPercentage*/,
955 __inout BOOL* pfCancel
956 )
957 {
958 *pfCancel |= CheckCanceled();
959 return S_OK;
960 }
961
962 virtual STDMETHODIMP OnCachePayloadExtractComplete(
963 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
964 __in_z_opt LPCWSTR /*wzPayloadId*/,
965 __in HRESULT /*hrStatus*/
966 )
967 {
968 return S_OK;
891 } 969 }
892 970
893protected: 971protected:
diff --git a/src/balutil/inc/BalBaseBootstrapperApplicationProc.h b/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
index 42ffeb79..10769529 100644
--- a/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
+++ b/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
@@ -342,6 +342,15 @@ static HRESULT BalBaseBAProcOnCacheVerifyBegin(
342 return pBA->OnCacheVerifyBegin(pArgs->wzPackageOrContainerId, pArgs->wzPayloadId, &pResults->fCancel); 342 return pBA->OnCacheVerifyBegin(pArgs->wzPackageOrContainerId, pArgs->wzPayloadId, &pResults->fCancel);
343} 343}
344 344
345static HRESULT BalBaseBAProcOnCacheVerifyProgress(
346 __in IBootstrapperApplication* pBA,
347 __in BA_ONCACHEVERIFYPROGRESS_ARGS* pArgs,
348 __inout BA_ONCACHEVERIFYPROGRESS_RESULTS* pResults
349 )
350{
351 return pBA->OnCacheVerifyProgress(pArgs->wzPackageOrContainerId, pArgs->wzPayloadId, pArgs->dw64Progress, pArgs->dw64Total, pArgs->dwOverallPercentage, pArgs->verifyStep, &pResults->fCancel);
352}
353
345static HRESULT BalBaseBAProcOnCacheVerifyComplete( 354static HRESULT BalBaseBAProcOnCacheVerifyComplete(
346 __in IBootstrapperApplication* pBA, 355 __in IBootstrapperApplication* pBA,
347 __in BA_ONCACHEVERIFYCOMPLETE_ARGS* pArgs, 356 __in BA_ONCACHEVERIFYCOMPLETE_ARGS* pArgs,
@@ -594,6 +603,60 @@ static HRESULT BalBaseBAProcOnPlanForwardCompatibleBundle(
594 return pBA->OnPlanForwardCompatibleBundle(pArgs->wzBundleId, pArgs->relationType, pArgs->wzBundleTag, pArgs->fPerMachine, pArgs->wzVersion, pArgs->fRecommendedIgnoreBundle, &pResults->fCancel, &pResults->fIgnoreBundle); 603 return pBA->OnPlanForwardCompatibleBundle(pArgs->wzBundleId, pArgs->relationType, pArgs->wzBundleTag, pArgs->fPerMachine, pArgs->wzVersion, pArgs->fRecommendedIgnoreBundle, &pResults->fCancel, &pResults->fIgnoreBundle);
595} 604}
596 605
606static HRESULT BalBaseBAProcOnCacheContainerOrPayloadVerifyBegin(
607 __in IBootstrapperApplication* pBA,
608 __in BA_ONCACHECONTAINERORPAYLOADVERIFYBEGIN_ARGS* pArgs,
609 __inout BA_ONCACHECONTAINERORPAYLOADVERIFYBEGIN_RESULTS* pResults
610 )
611{
612 return pBA->OnCacheContainerOrPayloadVerifyBegin(pArgs->wzPackageOrContainerId, pArgs->wzPayloadId, &pResults->fCancel);
613}
614
615static HRESULT BalBaseBAProcOnCacheContainerOrPayloadVerifyProgress(
616 __in IBootstrapperApplication* pBA,
617 __in BA_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS_ARGS* pArgs,
618 __inout BA_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS_RESULTS* pResults
619 )
620{
621 return pBA->OnCacheContainerOrPayloadVerifyProgress(pArgs->wzPackageOrContainerId, pArgs->wzPayloadId, pArgs->dw64Progress, pArgs->dw64Total, pArgs->dwOverallPercentage, &pResults->fCancel);
622}
623
624static HRESULT BalBaseBAProcOnCacheContainerOrPayloadVerifyComplete(
625 __in IBootstrapperApplication* pBA,
626 __in BA_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE_ARGS* pArgs,
627 __inout BA_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE_RESULTS* /*pResults*/
628 )
629{
630 return pBA->OnCacheContainerOrPayloadVerifyComplete(pArgs->wzPackageOrContainerId, pArgs->wzPayloadId, pArgs->hrStatus);
631}
632
633static HRESULT BalBaseBAProcOnCachePayloadExtractBegin(
634 __in IBootstrapperApplication* pBA,
635 __in BA_ONCACHEPAYLOADEXTRACTBEGIN_ARGS* pArgs,
636 __inout BA_ONCACHEPAYLOADEXTRACTBEGIN_RESULTS* pResults
637 )
638{
639 return pBA->OnCachePayloadExtractBegin(pArgs->wzContainerId, pArgs->wzPayloadId, &pResults->fCancel);
640}
641
642static HRESULT BalBaseBAProcOnCachePayloadExtractProgress(
643 __in IBootstrapperApplication* pBA,
644 __in BA_ONCACHEPAYLOADEXTRACTPROGRESS_ARGS* pArgs,
645 __inout BA_ONCACHEPAYLOADEXTRACTPROGRESS_RESULTS* pResults
646 )
647{
648 return pBA->OnCachePayloadExtractProgress(pArgs->wzContainerId, pArgs->wzPayloadId, pArgs->dw64Progress, pArgs->dw64Total, pArgs->dwOverallPercentage, &pResults->fCancel);
649}
650
651static HRESULT BalBaseBAProcOnCachePayloadExtractComplete(
652 __in IBootstrapperApplication* pBA,
653 __in BA_ONCACHEPAYLOADEXTRACTCOMPLETE_ARGS* pArgs,
654 __inout BA_ONCACHEPAYLOADEXTRACTCOMPLETE_RESULTS* /*pResults*/
655 )
656{
657 return pBA->OnCachePayloadExtractComplete(pArgs->wzContainerId, pArgs->wzPayloadId, pArgs->hrStatus);
658}
659
597/******************************************************************* 660/*******************************************************************
598BalBaseBootstrapperApplicationProc - requires pvContext to be of type IBootstrapperApplication. 661BalBaseBootstrapperApplicationProc - requires pvContext to be of type IBootstrapperApplication.
599 Provides a default mapping between the new message based BA interface and 662 Provides a default mapping between the new message based BA interface and
@@ -722,6 +785,9 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc(
722 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYBEGIN: 785 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYBEGIN:
723 hr = BalBaseBAProcOnCacheVerifyBegin(pBA, reinterpret_cast<BA_ONCACHEVERIFYBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEVERIFYBEGIN_RESULTS*>(pvResults)); 786 hr = BalBaseBAProcOnCacheVerifyBegin(pBA, reinterpret_cast<BA_ONCACHEVERIFYBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEVERIFYBEGIN_RESULTS*>(pvResults));
724 break; 787 break;
788 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYPROGRESS:
789 hr = BalBaseBAProcOnCacheVerifyProgress(pBA, reinterpret_cast<BA_ONCACHEVERIFYPROGRESS_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEVERIFYPROGRESS_RESULTS*>(pvResults));
790 break;
725 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYCOMPLETE: 791 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYCOMPLETE:
726 hr = BalBaseBAProcOnCacheVerifyComplete(pBA, reinterpret_cast<BA_ONCACHEVERIFYCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEVERIFYCOMPLETE_RESULTS*>(pvResults)); 792 hr = BalBaseBAProcOnCacheVerifyComplete(pBA, reinterpret_cast<BA_ONCACHEVERIFYCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEVERIFYCOMPLETE_RESULTS*>(pvResults));
727 break; 793 break;
@@ -808,6 +874,24 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc(
808 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE: 874 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE:
809 hr = BalBaseBAProcOnPlanForwardCompatibleBundle(pBA, reinterpret_cast<BA_ONPLANFORWARDCOMPATIBLEBUNDLE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANFORWARDCOMPATIBLEBUNDLE_RESULTS*>(pvResults)); 875 hr = BalBaseBAProcOnPlanForwardCompatibleBundle(pBA, reinterpret_cast<BA_ONPLANFORWARDCOMPATIBLEBUNDLE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANFORWARDCOMPATIBLEBUNDLE_RESULTS*>(pvResults));
810 break; 876 break;
877 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYBEGIN:
878 hr = BalBaseBAProcOnCacheContainerOrPayloadVerifyBegin(pBA, reinterpret_cast<BA_ONCACHECONTAINERORPAYLOADVERIFYBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHECONTAINERORPAYLOADVERIFYBEGIN_RESULTS*>(pvResults));
879 break;
880 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS:
881 hr = BalBaseBAProcOnCacheContainerOrPayloadVerifyProgress(pBA, reinterpret_cast<BA_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS_RESULTS*>(pvResults));
882 break;
883 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE:
884 hr = BalBaseBAProcOnCacheContainerOrPayloadVerifyComplete(pBA, reinterpret_cast<BA_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE_RESULTS*>(pvResults));
885 break;
886 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN:
887 hr = BalBaseBAProcOnCachePayloadExtractBegin(pBA, reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTBEGIN_RESULTS*>(pvResults));
888 break;
889 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS:
890 hr = BalBaseBAProcOnCachePayloadExtractProgress(pBA, reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTPROGRESS_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTPROGRESS_RESULTS*>(pvResults));
891 break;
892 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE:
893 hr = BalBaseBAProcOnCachePayloadExtractComplete(pBA, reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTCOMPLETE_RESULTS*>(pvResults));
894 break;
811 } 895 }
812 } 896 }
813 897
diff --git a/src/balutil/inc/IBootstrapperApplication.h b/src/balutil/inc/IBootstrapperApplication.h
index 8fcdd318..7d6a7164 100644
--- a/src/balutil/inc/IBootstrapperApplication.h
+++ b/src/balutil/inc/IBootstrapperApplication.h
@@ -4,6 +4,26 @@
4 4
5DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-AB06-099D717C67FE") 5DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-AB06-099D717C67FE")
6{ 6{
7 // BAProc - The PFN_BOOTSTRAPPER_APPLICATION_PROC can call this method to give the BA raw access to the callback from the engine.
8 // This might be used to help the BA support more than one version of the engine.
9 STDMETHOD(BAProc)(
10 __in BOOTSTRAPPER_APPLICATION_MESSAGE message,
11 __in const LPVOID pvArgs,
12 __inout LPVOID pvResults,
13 __in_opt LPVOID pvContext
14 ) = 0;
15
16 // BAProcFallback - The PFN_BOOTSTRAPPER_APPLICATION_PROC can call this method
17 // to give the BA the ability to use default behavior
18 // and then forward the message to extensions.
19 STDMETHOD_(void, BAProcFallback)(
20 __in BOOTSTRAPPER_APPLICATION_MESSAGE message,
21 __in const LPVOID pvArgs,
22 __inout LPVOID pvResults,
23 __inout HRESULT* phr,
24 __in_opt LPVOID pvContext
25 ) = 0;
26
7 // OnStartup - called when the engine is ready for the bootstrapper application to start. 27 // OnStartup - called when the engine is ready for the bootstrapper application to start.
8 // 28 //
9 STDMETHOD(OnStartup)() = 0; 29 STDMETHOD(OnStartup)() = 0;
@@ -297,8 +317,7 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
297 __inout BOOL* pfCancel 317 __inout BOOL* pfCancel
298 ) = 0; 318 ) = 0;
299 319
300 // OnCacheAcquireProgress - called when the engine makes progresss copying 320 // OnCacheAcquireProgress - called when the engine makes progress acquiring the payload or container.
301 // or downloading a payload to the working folder.
302 // 321 //
303 STDMETHOD(OnCacheAcquireProgress)( 322 STDMETHOD(OnCacheAcquireProgress)(
304 __in_z_opt LPCWSTR wzPackageOrContainerId, 323 __in_z_opt LPCWSTR wzPackageOrContainerId,
@@ -359,6 +378,16 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
359 __inout BOOL* pfCancel 378 __inout BOOL* pfCancel
360 ) = 0; 379 ) = 0;
361 380
381 STDMETHOD(OnCacheVerifyProgress)(
382 __in_z_opt LPCWSTR wzPackageOrContainerId,
383 __in_z_opt LPCWSTR wzPayloadId,
384 __in DWORD64 dw64Progress,
385 __in DWORD64 dw64Total,
386 __in DWORD dwOverallPercentage,
387 __in BOOTSTRAPPER_CACHE_VERIFY_STEP verifyStep,
388 __inout BOOL* pfCancel
389 ) = 0;
390
362 // OnCacheVerifyComplete - called after the engine verifies and copies 391 // OnCacheVerifyComplete - called after the engine verifies and copies
363 // a payload or container to the package cache folder. 392 // a payload or container to the package cache folder.
364 // 393 //
@@ -570,23 +599,45 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
570 __inout BOOL* pfIgnoreBundle 599 __inout BOOL* pfIgnoreBundle
571 ) = 0; 600 ) = 0;
572 601
573 // BAProc - The PFN_BOOTSTRAPPER_APPLICATION_PROC can call this method to give the BA raw access to the callback from the engine. 602 STDMETHOD(OnCacheContainerOrPayloadVerifyBegin)(
574 // This might be used to help the BA support more than one version of the engine. 603 __in_z_opt LPCWSTR wzPackageOrContainerId,
575 STDMETHOD(BAProc)( 604 __in_z_opt LPCWSTR wzPayloadId,
576 __in BOOTSTRAPPER_APPLICATION_MESSAGE message, 605 __inout BOOL* pfCancel
577 __in const LPVOID pvArgs,
578 __inout LPVOID pvResults,
579 __in_opt LPVOID pvContext
580 ) = 0; 606 ) = 0;
581 607
582 // BAProcFallback - The PFN_BOOTSTRAPPER_APPLICATION_PROC can call this method 608 STDMETHOD(OnCacheContainerOrPayloadVerifyProgress)(
583 // to give the BA the ability to use default behavior 609 __in_z_opt LPCWSTR wzPackageOrContainerId,
584 // and then forward the message to extensions. 610 __in_z_opt LPCWSTR wzPayloadId,
585 STDMETHOD_(void, BAProcFallback)( 611 __in DWORD64 dw64Progress,
586 __in BOOTSTRAPPER_APPLICATION_MESSAGE message, 612 __in DWORD64 dw64Total,
587 __in const LPVOID pvArgs, 613 __in DWORD dwOverallPercentage,
588 __inout LPVOID pvResults, 614 __inout BOOL* pfCancel
589 __inout HRESULT* phr, 615 ) = 0;
590 __in_opt LPVOID pvContext 616
617 STDMETHOD(OnCacheContainerOrPayloadVerifyComplete)(
618 __in_z_opt LPCWSTR wzPackageOrContainerId,
619 __in_z_opt LPCWSTR wzPayloadId,
620 __in HRESULT hrStatus
621 ) = 0;
622
623 STDMETHOD(OnCachePayloadExtractBegin)(
624 __in_z_opt LPCWSTR wzContainerId,
625 __in_z_opt LPCWSTR wzPayloadId,
626 __inout BOOL* pfCancel
627 ) = 0;
628
629 STDMETHOD(OnCachePayloadExtractProgress)(
630 __in_z_opt LPCWSTR wzContainerId,
631 __in_z_opt LPCWSTR wzPayloadId,
632 __in DWORD64 dw64Progress,
633 __in DWORD64 dw64Total,
634 __in DWORD dwOverallPercentage,
635 __inout BOOL* pfCancel
636 ) = 0;
637
638 STDMETHOD(OnCachePayloadExtractComplete)(
639 __in_z_opt LPCWSTR wzContainerId,
640 __in_z_opt LPCWSTR wzPayloadId,
641 __in HRESULT hrStatus
591 ) = 0; 642 ) = 0;
592}; 643};