diff options
Diffstat (limited to 'src/api/burn/balutil')
-rw-r--r-- | src/api/burn/balutil/balinfo.cpp | 6 | ||||
-rw-r--r-- | src/api/burn/balutil/inc/BAFunctions.h | 1 | ||||
-rw-r--r-- | src/api/burn/balutil/inc/BalBaseBAFunctions.h | 12 | ||||
-rw-r--r-- | src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h | 1 | ||||
-rw-r--r-- | src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h | 13 | ||||
-rw-r--r-- | src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h | 12 | ||||
-rw-r--r-- | src/api/burn/balutil/inc/IBootstrapperApplication.h | 10 | ||||
-rw-r--r-- | src/api/burn/balutil/inc/balinfo.h | 1 |
8 files changed, 55 insertions, 1 deletions
diff --git a/src/api/burn/balutil/balinfo.cpp b/src/api/burn/balutil/balinfo.cpp index d9cc9b76..f0eb9904 100644 --- a/src/api/burn/balutil/balinfo.cpp +++ b/src/api/burn/balutil/balinfo.cpp | |||
@@ -433,7 +433,11 @@ static HRESULT ParsePackagesFromXml( | |||
433 | hr = XmlGetAttributeEx(pNode, L"PackageType", &scz); | 433 | hr = XmlGetAttributeEx(pNode, L"PackageType", &scz); |
434 | ExitOnFailure(hr, "Failed to get package type for package."); | 434 | ExitOnFailure(hr, "Failed to get package type for package."); |
435 | 435 | ||
436 | if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, L"Exe", -1, scz, -1)) | 436 | if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, L"Bundle", -1, scz, -1)) |
437 | { | ||
438 | prgPackages[iPackage].type = BAL_INFO_PACKAGE_TYPE_BUNDLE_CHAIN; | ||
439 | } | ||
440 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, L"Exe", -1, scz, -1)) | ||
437 | { | 441 | { |
438 | prgPackages[iPackage].type = BAL_INFO_PACKAGE_TYPE_EXE; | 442 | prgPackages[iPackage].type = BAL_INFO_PACKAGE_TYPE_EXE; |
439 | } | 443 | } |
diff --git a/src/api/burn/balutil/inc/BAFunctions.h b/src/api/burn/balutil/inc/BAFunctions.h index 158e65b5..9be3f62f 100644 --- a/src/api/burn/balutil/inc/BAFunctions.h +++ b/src/api/burn/balutil/inc/BAFunctions.h | |||
@@ -92,6 +92,7 @@ enum BA_FUNCTIONS_MESSAGE | |||
92 | BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLETYPE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLETYPE, | 92 | BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLETYPE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLETYPE, |
93 | BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE, | 93 | BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE, |
94 | BA_FUNCTIONS_MESSAGE_ONEXECUTEPROCESSCANCEL = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROCESSCANCEL, | 94 | BA_FUNCTIONS_MESSAGE_ONEXECUTEPROCESSCANCEL = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROCESSCANCEL, |
95 | BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE, | ||
95 | 96 | ||
96 | BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, | 97 | BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, |
97 | BA_FUNCTIONS_MESSAGE_WNDPROC, | 98 | BA_FUNCTIONS_MESSAGE_WNDPROC, |
diff --git a/src/api/burn/balutil/inc/BalBaseBAFunctions.h b/src/api/burn/balutil/inc/BalBaseBAFunctions.h index 614d4bcf..6bde05d2 100644 --- a/src/api/burn/balutil/inc/BalBaseBAFunctions.h +++ b/src/api/burn/balutil/inc/BalBaseBAFunctions.h | |||
@@ -887,6 +887,18 @@ public: // IBootstrapperApplication | |||
887 | return S_OK; | 887 | return S_OK; |
888 | } | 888 | } |
889 | 889 | ||
890 | virtual STDMETHODIMP OnDetectRelatedBundlePackage( | ||
891 | __in_z LPCWSTR /*wzPackageId*/, | ||
892 | __in_z LPCWSTR /*wzBundleId*/, | ||
893 | __in BOOTSTRAPPER_RELATION_TYPE /*relationType*/, | ||
894 | __in BOOL /*fPerMachine*/, | ||
895 | __in LPCWSTR /*wzVersion*/, | ||
896 | __inout BOOL* /*pfCancel*/ | ||
897 | ) | ||
898 | { | ||
899 | return S_OK; | ||
900 | } | ||
901 | |||
890 | public: // IBAFunctions | 902 | public: // IBAFunctions |
891 | virtual STDMETHODIMP OnPlan( | 903 | virtual STDMETHODIMP OnPlan( |
892 | ) | 904 | ) |
diff --git a/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h b/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h index b96a180c..4564ad0c 100644 --- a/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h +++ b/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h | |||
@@ -163,6 +163,7 @@ static HRESULT WINAPI BalBaseBAFunctionsProc( | |||
163 | case BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLETYPE: | 163 | case BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLETYPE: |
164 | case BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE: | 164 | case BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE: |
165 | case BA_FUNCTIONS_MESSAGE_ONEXECUTEPROCESSCANCEL: | 165 | case BA_FUNCTIONS_MESSAGE_ONEXECUTEPROCESSCANCEL: |
166 | case BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE: | ||
166 | hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext); | 167 | hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext); |
167 | break; | 168 | break; |
168 | case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED: | 169 | case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED: |
diff --git a/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h b/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h index 25570ffd..b661c7c9 100644 --- a/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h +++ b/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h | |||
@@ -1087,6 +1087,19 @@ public: // IBootstrapperApplication | |||
1087 | return S_OK; | 1087 | return S_OK; |
1088 | } | 1088 | } |
1089 | 1089 | ||
1090 | virtual STDMETHODIMP OnDetectRelatedBundlePackage( | ||
1091 | __in_z LPCWSTR /*wzPackageId*/, | ||
1092 | __in_z LPCWSTR /*wzBundleId*/, | ||
1093 | __in BOOTSTRAPPER_RELATION_TYPE /*relationType*/, | ||
1094 | __in BOOL /*fPerMachine*/, | ||
1095 | __in LPCWSTR /*wzVersion*/, | ||
1096 | __inout BOOL* pfCancel | ||
1097 | ) | ||
1098 | { | ||
1099 | *pfCancel |= CheckCanceled(); | ||
1100 | return S_OK; | ||
1101 | } | ||
1102 | |||
1090 | public: //CBalBaseBootstrapperApplication | 1103 | public: //CBalBaseBootstrapperApplication |
1091 | virtual STDMETHODIMP Initialize( | 1104 | virtual STDMETHODIMP Initialize( |
1092 | __in const BOOTSTRAPPER_CREATE_ARGS* pCreateArgs | 1105 | __in const BOOTSTRAPPER_CREATE_ARGS* pCreateArgs |
diff --git a/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h b/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h index b196d183..4ef7bac5 100644 --- a/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h +++ b/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h | |||
@@ -756,6 +756,15 @@ static HRESULT BalBaseBAProcOnApplyDowngrade( | |||
756 | return pBA->OnApplyDowngrade(pArgs->hrRecommended, &pResults->hrStatus); | 756 | return pBA->OnApplyDowngrade(pArgs->hrRecommended, &pResults->hrStatus); |
757 | } | 757 | } |
758 | 758 | ||
759 | static HRESULT BalBaseBAProcOnDetectRelatedBundlePackage( | ||
760 | __in IBootstrapperApplication* pBA, | ||
761 | __in BA_ONDETECTRELATEDBUNDLEPACKAGE_ARGS* pArgs, | ||
762 | __inout BA_ONDETECTRELATEDBUNDLEPACKAGE_RESULTS* pResults | ||
763 | ) | ||
764 | { | ||
765 | return pBA->OnDetectRelatedBundlePackage(pArgs->wzPackageId, pArgs->wzBundleId, pArgs->relationType, pArgs->fPerMachine, pArgs->wzVersion, &pResults->fCancel); | ||
766 | } | ||
767 | |||
759 | /******************************************************************* | 768 | /******************************************************************* |
760 | BalBaseBootstrapperApplicationProc - requires pvContext to be of type IBootstrapperApplication. | 769 | BalBaseBootstrapperApplicationProc - requires pvContext to be of type IBootstrapperApplication. |
761 | Provides a default mapping between the new message based BA interface and | 770 | Provides a default mapping between the new message based BA interface and |
@@ -1024,6 +1033,9 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc( | |||
1024 | case BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROCESSCANCEL: | 1033 | case BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROCESSCANCEL: |
1025 | hr = BalBaseBAProcOnExecuteProcessCancel(pBA, reinterpret_cast<BA_ONEXECUTEPROCESSCANCEL_ARGS*>(pvArgs), reinterpret_cast<BA_ONEXECUTEPROCESSCANCEL_RESULTS*>(pvResults)); | 1034 | hr = BalBaseBAProcOnExecuteProcessCancel(pBA, reinterpret_cast<BA_ONEXECUTEPROCESSCANCEL_ARGS*>(pvArgs), reinterpret_cast<BA_ONEXECUTEPROCESSCANCEL_RESULTS*>(pvResults)); |
1026 | break; | 1035 | break; |
1036 | case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE: | ||
1037 | hr = BalBaseBAProcOnDetectRelatedBundlePackage(pBA, reinterpret_cast<BA_ONDETECTRELATEDBUNDLEPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONDETECTRELATEDBUNDLEPACKAGE_RESULTS*>(pvResults)); | ||
1038 | break; | ||
1027 | } | 1039 | } |
1028 | } | 1040 | } |
1029 | 1041 | ||
diff --git a/src/api/burn/balutil/inc/IBootstrapperApplication.h b/src/api/burn/balutil/inc/IBootstrapperApplication.h index 6174c290..a4840228 100644 --- a/src/api/burn/balutil/inc/IBootstrapperApplication.h +++ b/src/api/burn/balutil/inc/IBootstrapperApplication.h | |||
@@ -723,4 +723,14 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A | |||
723 | __in BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION recommendation, | 723 | __in BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION recommendation, |
724 | __inout BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION* pAction | 724 | __inout BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION* pAction |
725 | ) = 0; | 725 | ) = 0; |
726 | |||
727 | // OnDetectRelatedBundlePackage - called when the engine detects a related bundle for a BundlePackage. | ||
728 | STDMETHOD(OnDetectRelatedBundlePackage)( | ||
729 | __in_z LPCWSTR wzPackageId, | ||
730 | __in_z LPCWSTR wzBundleId, | ||
731 | __in BOOTSTRAPPER_RELATION_TYPE relationType, | ||
732 | __in BOOL fPerMachine, | ||
733 | __in_z LPCWSTR wzVersion, | ||
734 | __inout BOOL* pfCancel | ||
735 | ) = 0; | ||
726 | }; | 736 | }; |
diff --git a/src/api/burn/balutil/inc/balinfo.h b/src/api/burn/balutil/inc/balinfo.h index 8f61685f..0c7a5b93 100644 --- a/src/api/burn/balutil/inc/balinfo.h +++ b/src/api/burn/balutil/inc/balinfo.h | |||
@@ -17,6 +17,7 @@ typedef enum BAL_INFO_PACKAGE_TYPE | |||
17 | BAL_INFO_PACKAGE_TYPE_BUNDLE_ADDON, | 17 | BAL_INFO_PACKAGE_TYPE_BUNDLE_ADDON, |
18 | BAL_INFO_PACKAGE_TYPE_BUNDLE_PATCH, | 18 | BAL_INFO_PACKAGE_TYPE_BUNDLE_PATCH, |
19 | BAL_INFO_PACKAGE_TYPE_BUNDLE_UPDATE, | 19 | BAL_INFO_PACKAGE_TYPE_BUNDLE_UPDATE, |
20 | BAL_INFO_PACKAGE_TYPE_BUNDLE_CHAIN, | ||
20 | } BAL_INFO_PACKAGE_TYPE; | 21 | } BAL_INFO_PACKAGE_TYPE; |
21 | 22 | ||
22 | typedef enum _BAL_INFO_RESTART | 23 | typedef enum _BAL_INFO_RESTART |