summaryrefslogtreecommitdiff
path: root/src/api/burn/balutil
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/burn/balutil')
-rw-r--r--src/api/burn/balutil/balinfo.cpp6
-rw-r--r--src/api/burn/balutil/inc/BAFunctions.h1
-rw-r--r--src/api/burn/balutil/inc/BalBaseBAFunctions.h12
-rw-r--r--src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h1
-rw-r--r--src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h13
-rw-r--r--src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h12
-rw-r--r--src/api/burn/balutil/inc/IBootstrapperApplication.h10
-rw-r--r--src/api/burn/balutil/inc/balinfo.h1
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
890public: // IBAFunctions 902public: // 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
1090public: //CBalBaseBootstrapperApplication 1103public: //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
759static 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/*******************************************************************
760BalBaseBootstrapperApplicationProc - requires pvContext to be of type IBootstrapperApplication. 769BalBaseBootstrapperApplicationProc - 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
22typedef enum _BAL_INFO_RESTART 23typedef enum _BAL_INFO_RESTART