Process new cache BA messages.
Sean Hall committed
Apr 19, 2021 at 19:41 UTC
5bbff3ae92decfd071f835b5d489e63000f8cf19
1 file changed
+159
src/wixstdba/WixStandardBootstrapperApplication.cpp
+159
@@ -628,6 +628,64 @@ public: // IBootstrapperApplication
628
}
629
630
631
+ virtual STDMETHODIMP OnCacheContainerOrPayloadVerifyProgress(
632
+ __in_z LPCWSTR wzPackageOrContainerId,
633
+ __in_z_opt LPCWSTR wzPayloadId,
634
+ __in DWORD64 dw64Progress,
635
+ __in DWORD64 dw64Total,
636
+ __in DWORD dwOverallPercentage,
637
+ __inout BOOL* pfCancel
638
+ )
639
+ {
640
+#ifdef DEBUG
641
+ BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "WIXSTDBA: OnCacheContainerOrPayloadVerifyProgress() - container/package: %ls, payload: %ls, progress: %I64u, total: %I64u, overall progress: %u%%", wzPackageOrContainerId, wzPayloadId, dw64Progress, dw64Total, dwOverallPercentage);
642
+#endif
643
+
644
+ UpdateCacheProgress(dwOverallPercentage);
645
+
646
+ return __super::OnCacheContainerOrPayloadVerifyProgress(wzPackageOrContainerId, wzPayloadId, dw64Progress, dw64Total, dwOverallPercentage, pfCancel);
647
+ }
648
+
649
+
650
+ virtual STDMETHODIMP OnCachePayloadExtractProgress(
651
+ __in_z LPCWSTR wzPackageOrContainerId,
652
+ __in_z_opt LPCWSTR wzPayloadId,
653
+ __in DWORD64 dw64Progress,
654
+ __in DWORD64 dw64Total,
655
+ __in DWORD dwOverallPercentage,
656
+ __inout BOOL* pfCancel
657
+ )
658
+ {
659
+#ifdef DEBUG
660
+ BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "WIXSTDBA: OnCachePayloadExtractProgress() - container/package: %ls, payload: %ls, progress: %I64u, total: %I64u, overall progress: %u%%", wzPackageOrContainerId, wzPayloadId, dw64Progress, dw64Total, dwOverallPercentage);
661
+#endif
662
+
663
+ UpdateCacheProgress(dwOverallPercentage);
664
+
665
+ return __super::OnCachePayloadExtractProgress(wzPackageOrContainerId, wzPayloadId, dw64Progress, dw64Total, dwOverallPercentage, pfCancel);
666
+ }
667
+
668
+
669
+ virtual STDMETHODIMP OnCacheVerifyProgress(
670
+ __in_z LPCWSTR wzPackageOrContainerId,
671
+ __in_z_opt LPCWSTR wzPayloadId,
672
+ __in DWORD64 dw64Progress,
673
+ __in DWORD64 dw64Total,
674
+ __in DWORD dwOverallPercentage,
675
+ __in BOOTSTRAPPER_CACHE_VERIFY_STEP verifyStep,
676
+ __inout BOOL* pfCancel
677
+ )
678
+ {
679
+#ifdef DEBUG
680
+ BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "WIXSTDBA: OnCacheVerifyProgress() - container/package: %ls, payload: %ls, progress: %I64u, total: %I64u, overall progress: %u%%, step: %u", wzPackageOrContainerId, wzPayloadId, dw64Progress, dw64Total, dwOverallPercentage, verifyStep);
681
+#endif
682
+
683
+ UpdateCacheProgress(dwOverallPercentage);
684
+
685
+ return __super::OnCacheVerifyProgress(wzPackageOrContainerId, wzPayloadId, dw64Progress, dw64Total, dwOverallPercentage, verifyStep, pfCancel);
686
+ }
687
+
688
+
689
virtual STDMETHODIMP OnCacheAcquireComplete(
690
__in_z LPCWSTR wzPackageOrContainerId,
691
__in_z_opt LPCWSTR wzPayloadId,
@@ -641,6 +699,28 @@ public: // IBootstrapperApplication
699
}
700
701
702
+ virtual STDMETHODIMP OnCacheContainerOrPayloadVerifyComplete(
703
+ __in_z LPCWSTR wzPackageOrContainerId,
704
+ __in_z_opt LPCWSTR wzPayloadId,
705
+ __in HRESULT hrStatus
706
+ )
707
+ {
708
+ SetProgressState(hrStatus);
709
+ return __super::OnCacheContainerOrPayloadVerifyComplete(wzPackageOrContainerId, wzPayloadId, hrStatus);
710
+ }
711
+
712
+
713
+ virtual STDMETHODIMP OnCachePayloadExtractComplete(
714
+ __in_z LPCWSTR wzPackageOrContainerId,
715
+ __in_z_opt LPCWSTR wzPayloadId,
716
+ __in HRESULT hrStatus
717
+ )
718
+ {
719
+ SetProgressState(hrStatus);
720
+ return __super::OnCachePayloadExtractComplete(wzPackageOrContainerId, wzPayloadId, hrStatus);
721
+ }
722
+
723
+
724
virtual STDMETHODIMP OnCacheVerifyComplete(
725
__in_z LPCWSTR wzPackageId,
726
__in_z LPCWSTR wzPayloadId,
@@ -1282,8 +1362,31 @@ public: // IBootstrapperApplication
1362
case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDPACKAGE:
1363
OnPlannedPackageFallback(reinterpret_cast<BA_ONPLANNEDPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANNEDPACKAGE_RESULTS*>(pvResults));
1364
break;
1365
+ case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYPROGRESS:
1366
+ OnCacheVerifyProgressFallback(reinterpret_cast<BA_ONCACHEVERIFYPROGRESS_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEVERIFYPROGRESS_RESULTS*>(pvResults));
1367
+ break;
1368
+ case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYBEGIN:
1369
+ OnCacheContainerOrPayloadVerifyBeginFallback(reinterpret_cast<BA_ONCACHECONTAINERORPAYLOADVERIFYBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHECONTAINERORPAYLOADVERIFYBEGIN_RESULTS*>(pvResults));
1370
+ break;
1371
+ case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE:
1372
+ OnCacheContainerOrPayloadVerifyCompleteFallback(reinterpret_cast<BA_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE_RESULTS*>(pvResults));
1373
+ break;
1374
+ case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS:
1375
+ OnCacheContainerOrPayloadVerifyProgressFallback(reinterpret_cast<BA_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS_RESULTS*>(pvResults));
1376
+ break;
1377
+ case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN:
1378
+ OnCachePayloadExtractBeginFallback(reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTBEGIN_RESULTS*>(pvResults));
1379
+ break;
1380
+ case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE:
1381
+ OnCachePayloadExtractCompleteFallback(reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTCOMPLETE_RESULTS*>(pvResults));
1382
+ break;
1383
+ case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS:
1384
+ OnCachePayloadExtractProgressFallback(reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTPROGRESS_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTPROGRESS_RESULTS*>(pvResults));
1385
+ break;
1386
default:
1387
+#ifdef DEBUG
1388
BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "WIXSTDBA: Forwarding unknown BA message: %d", message);
1389
+#endif
1390
m_pfnBAFunctionsProc((BA_FUNCTIONS_MESSAGE)message, pvArgs, pvResults, m_pvBAFunctionsProcContext);
1391
break;
1392
}
@@ -1817,6 +1920,62 @@ private: // privates
1920
BalLogId(BOOTSTRAPPER_LOG_LEVEL_STANDARD, MSG_WIXSTDBA_PLANNED_FORWARD_COMPATIBLE_BUNDLE, m_hModule, pArgs->wzBundleId, fIgnoreBundle ? "ignore" : "enable", pResults->fIgnoreBundle ? "ignore" : "enable");
1921
}
1922
1923
+ void OnCacheVerifyProgressFallback(
1924
+ __in BA_ONCACHEVERIFYPROGRESS_ARGS* pArgs,
1925
+ __inout BA_ONCACHEVERIFYPROGRESS_RESULTS* pResults
1926
+ )
1927
+ {
1928
+ m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONCACHEVERIFYPROGRESS, pArgs, pResults, m_pvBAFunctionsProcContext);
1929
+ }
1930
+
1931
+ void OnCacheContainerOrPayloadVerifyBeginFallback(
1932
+ __in BA_ONCACHECONTAINERORPAYLOADVERIFYBEGIN_ARGS* pArgs,
1933
+ __inout BA_ONCACHECONTAINERORPAYLOADVERIFYBEGIN_RESULTS* pResults
1934
+ )
1935
+ {
1936
+ m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYBEGIN, pArgs, pResults, m_pvBAFunctionsProcContext);
1937
+ }
1938
+
1939
+ void OnCacheContainerOrPayloadVerifyCompleteFallback(
1940
+ __in BA_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE_ARGS* pArgs,
1941
+ __inout BA_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE_RESULTS* pResults
1942
+ )
1943
+ {
1944
+ m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE, pArgs, pResults, m_pvBAFunctionsProcContext);
1945
+ }
1946
+
1947
+ void OnCacheContainerOrPayloadVerifyProgressFallback(
1948
+ __in BA_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS_ARGS* pArgs,
1949
+ __inout BA_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS_RESULTS* pResults
1950
+ )
1951
+ {
1952
+ m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS, pArgs, pResults, m_pvBAFunctionsProcContext);
1953
+ }
1954
+
1955
+ void OnCachePayloadExtractBeginFallback(
1956
+ __in BA_ONCACHEPAYLOADEXTRACTBEGIN_ARGS* pArgs,
1957
+ __inout BA_ONCACHEPAYLOADEXTRACTBEGIN_RESULTS* pResults
1958
+ )
1959
+ {
1960
+ m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN, pArgs, pResults, m_pvBAFunctionsProcContext);
1961
+ }
1962
+
1963
+ void OnCachePayloadExtractCompleteFallback(
1964
+ __in BA_ONCACHEPAYLOADEXTRACTCOMPLETE_ARGS* pArgs,
1965
+ __inout BA_ONCACHEPAYLOADEXTRACTCOMPLETE_RESULTS* pResults
1966
+ )
1967
+ {
1968
+ m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE, pArgs, pResults, m_pvBAFunctionsProcContext);
1969
+ }
1970
+
1971
+ void OnCachePayloadExtractProgressFallback(
1972
+ __in BA_ONCACHEPAYLOADEXTRACTPROGRESS_ARGS* pArgs,
1973
+ __inout BA_ONCACHEPAYLOADEXTRACTPROGRESS_RESULTS* pResults
1974
+ )
1975
+ {
1976
+ m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS, pArgs, pResults, m_pvBAFunctionsProcContext);
1977
+ }
1978
+
1979
//
1980
// UiThreadProc - entrypoint for UI thread.
1981
//