diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2021-04-19 17:35:44 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-04-19 23:23:39 -0500 |
commit | 11fe2c881d182f9caff28bd9ff08c2e4fe513989 (patch) | |
tree | a2f1769b78e9b1eb4708678fe6b5374eec209c6a /src/balutil | |
parent | 62b32cd6f21292c73dae8d5cfcd3a1cb13a1fd7d (diff) | |
download | wix-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.h | 7 | ||||
-rw-r--r-- | src/balutil/inc/BalBaseBAFunctions.h | 101 | ||||
-rw-r--r-- | src/balutil/inc/BalBaseBootstrapperApplication.h | 106 | ||||
-rw-r--r-- | src/balutil/inc/BalBaseBootstrapperApplicationProc.h | 84 | ||||
-rw-r--r-- | src/balutil/inc/IBootstrapperApplication.h | 87 |
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 | ||
71 | public: // IBootstrapperApplication | 71 | public: // 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 | ||
707 | public: // IBAFunctions | 780 | public: // 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 | ||
63 | public: // IBootstrapperApplication | 63 | public: // 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 | ||
893 | protected: | 971 | protected: |
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 | ||
345 | static 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 | |||
345 | static HRESULT BalBaseBAProcOnCacheVerifyComplete( | 354 | static 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 | ||
606 | static 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 | |||
615 | static 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 | |||
624 | static 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 | |||
633 | static 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 | |||
642 | static 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 | |||
651 | static 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 | /******************************************************************* |
598 | BalBaseBootstrapperApplicationProc - requires pvContext to be of type IBootstrapperApplication. | 661 | BalBaseBootstrapperApplicationProc - 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 | ||
5 | DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-AB06-099D717C67FE") | 5 | DECLARE_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 | }; |