From 022beff26b46c7808eefacfebccfc1fcb5aa5256 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 22 Feb 2021 20:25:55 -0600 Subject: Integrate patch related changes in Burn headers. --- appveyor.cmd | 2 +- src/WixToolset.Mba.Core/BootstrapperApplication.cs | 60 +++++++--- src/WixToolset.Mba.Core/EventArgs.cs | 126 +++++++++++++-------- .../IBootstrapperApplication.cs | 31 +++-- .../IDefaultBootstrapperApplication.cs | 27 +++-- src/balutil/balutil.vcxproj | 8 +- src/balutil/inc/BAFunctions.h | 5 +- src/balutil/inc/BalBaseBAFunctions.h | 16 ++- src/balutil/inc/BalBaseBAFunctionsProc.h | 5 +- src/balutil/inc/BalBaseBootstrapperApplication.h | 16 ++- .../inc/BalBaseBootstrapperApplicationProc.h | 40 ++++--- src/balutil/inc/IBootstrapperApplication.h | 29 +++-- src/balutil/packages.config | 4 +- src/bextutil/bextutil.vcxproj | 8 +- src/bextutil/packages.config | 4 +- src/mbanative/mbanative.vcxproj | 12 +- src/mbanative/packages.config | 4 +- src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj | 12 +- src/test/BalUtilUnitTest/packages.config | 4 +- src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj | 12 +- src/test/BextUtilUnitTest/packages.config | 4 +- 21 files changed, 271 insertions(+), 158 deletions(-) diff --git a/appveyor.cmd b/appveyor.cmd index 3b170ad4..19c2d49f 100644 --- a/appveyor.cmd +++ b/appveyor.cmd @@ -19,7 +19,7 @@ dotnet test -c %_C% --no-build src\test\WixToolsetTest.Mba.Core\WixToolsetTest.M msbuild -t:Pack -p:Configuration=%_C% src\balutil\balutil.vcxproj || exit /b msbuild -t:Pack -p:Configuration=%_C% src\bextutil\bextutil.vcxproj || exit /b -msbuild -t:Pack -p:Configuration=%_C% src\WixToolset.Mba.Core\WixToolset.Mba.Core.csproj || exit /b +msbuild -t:Pack -p:Configuration=%_C% -p:NoBuild=true src\WixToolset.Mba.Core\WixToolset.Mba.Core.csproj || exit /b @popd @endlocal \ No newline at end of file diff --git a/src/WixToolset.Mba.Core/BootstrapperApplication.cs b/src/WixToolset.Mba.Core/BootstrapperApplication.cs index 9f4f6330..43e69e81 100644 --- a/src/WixToolset.Mba.Core/BootstrapperApplication.cs +++ b/src/WixToolset.Mba.Core/BootstrapperApplication.cs @@ -68,7 +68,7 @@ namespace WixToolset.Mba.Core public event EventHandler DetectRelatedMsiPackage; /// - public event EventHandler DetectTargetMsiPackage; + public event EventHandler DetectPatchTarget; /// public event EventHandler DetectMsiFeature; @@ -89,7 +89,7 @@ namespace WixToolset.Mba.Core public event EventHandler PlanPackageBegin; /// - public event EventHandler PlanTargetMsiPackage; + public event EventHandler PlanPatchTarget; /// public event EventHandler PlanMsiFeature; @@ -100,6 +100,9 @@ namespace WixToolset.Mba.Core /// public event EventHandler PlanPackageComplete; + /// + public event EventHandler PlannedPackage; + /// public event EventHandler PlanComplete; @@ -392,12 +395,12 @@ namespace WixToolset.Mba.Core } /// - /// Called by the engine, raises the event. + /// Called by the engine, raises the event. /// /// Additional arguments for this event. - protected virtual void OnDetectTargetMsiPackage(DetectTargetMsiPackageEventArgs args) + protected virtual void OnDetectPatchTarget(DetectPatchTargetEventArgs args) { - EventHandler handler = this.DetectTargetMsiPackage; + EventHandler handler = this.DetectPatchTarget; if (null != handler) { handler(this, args); @@ -483,12 +486,12 @@ namespace WixToolset.Mba.Core } /// - /// Called by the engine, raises the event. + /// Called by the engine, raises the event. /// /// Additional arguments for this event. - protected virtual void OnPlanTargetMsiPackage(PlanTargetMsiPackageEventArgs args) + protected virtual void OnPlanPatchTarget(PlanPatchTargetEventArgs args) { - EventHandler handler = this.PlanTargetMsiPackage; + EventHandler handler = this.PlanPatchTarget; if (null != handler) { handler(this, args); @@ -534,6 +537,19 @@ namespace WixToolset.Mba.Core } } + /// + /// Called by the engine, raises the event. + /// + /// Additional arguments for this event. + protected virtual void OnPlannedPackage(PlannedPackageEventArgs args) + { + EventHandler handler = this.PlannedPackage; + if (null != handler) + { + handler(this, args); + } + } + /// /// Called by the engine, raises the event. /// @@ -1170,10 +1186,10 @@ namespace WixToolset.Mba.Core return args.HResult; } - int IBootstrapperApplication.OnDetectTargetMsiPackage(string wzPackageId, string wzProductCode, PackageState patchState, ref bool fCancel) + int IBootstrapperApplication.OnDetectPatchTarget(string wzPackageId, string wzProductCode, PackageState patchState, ref bool fCancel) { - DetectTargetMsiPackageEventArgs args = new DetectTargetMsiPackageEventArgs(wzPackageId, wzProductCode, patchState, fCancel); - this.OnDetectTargetMsiPackage(args); + DetectPatchTargetEventArgs args = new DetectPatchTargetEventArgs(wzPackageId, wzProductCode, patchState, fCancel); + this.OnDetectPatchTarget(args); fCancel = args.Cancel; return args.HResult; @@ -1223,9 +1239,9 @@ namespace WixToolset.Mba.Core return args.HResult; } - int IBootstrapperApplication.OnPlanPackageBegin(string wzPackageId, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel) + int IBootstrapperApplication.OnPlanPackageBegin(string wzPackageId, PackageState state, bool fInstallCondition, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel) { - PlanPackageBeginEventArgs args = new PlanPackageBeginEventArgs(wzPackageId, recommendedState, pRequestedState, fCancel); + PlanPackageBeginEventArgs args = new PlanPackageBeginEventArgs(wzPackageId, state, fInstallCondition, recommendedState, pRequestedState, fCancel); this.OnPlanPackageBegin(args); pRequestedState = args.State; @@ -1233,10 +1249,10 @@ namespace WixToolset.Mba.Core return args.HResult; } - int IBootstrapperApplication.OnPlanTargetMsiPackage(string wzPackageId, string wzProductCode, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel) + int IBootstrapperApplication.OnPlanPatchTarget(string wzPackageId, string wzProductCode, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel) { - PlanTargetMsiPackageEventArgs args = new PlanTargetMsiPackageEventArgs(wzPackageId, wzProductCode, recommendedState, pRequestedState, fCancel); - this.OnPlanTargetMsiPackage(args); + PlanPatchTargetEventArgs args = new PlanPatchTargetEventArgs(wzPackageId, wzProductCode, recommendedState, pRequestedState, fCancel); + this.OnPlanPatchTarget(args); pRequestedState = args.State; fCancel = args.Cancel; @@ -1265,14 +1281,22 @@ namespace WixToolset.Mba.Core return args.HResult; } - int IBootstrapperApplication.OnPlanPackageComplete(string wzPackageId, int hrStatus, PackageState state, RequestState requested, ActionState execute, ActionState rollback) + int IBootstrapperApplication.OnPlanPackageComplete(string wzPackageId, int hrStatus, RequestState requested) { - var args = new PlanPackageCompleteEventArgs(wzPackageId, hrStatus, state, requested, execute, rollback); + var args = new PlanPackageCompleteEventArgs(wzPackageId, hrStatus, requested); this.OnPlanPackageComplete(args); return args.HResult; } + int IBootstrapperApplication.OnPlannedPackage(string wzPackageId, ActionState execute, ActionState rollback) + { + var args = new PlannedPackageEventArgs(wzPackageId, execute, rollback); + this.OnPlannedPackage(args); + + return args.HResult; + } + int IBootstrapperApplication.OnPlanComplete(int hrStatus) { PlanCompleteEventArgs args = new PlanCompleteEventArgs(hrStatus); diff --git a/src/WixToolset.Mba.Core/EventArgs.cs b/src/WixToolset.Mba.Core/EventArgs.cs index 2f21b50e..953e31ee 100644 --- a/src/WixToolset.Mba.Core/EventArgs.cs +++ b/src/WixToolset.Mba.Core/EventArgs.cs @@ -547,18 +547,18 @@ namespace WixToolset.Mba.Core } /// - /// Additional arguments used when a target MSI package has been detected. + /// Event arguments for /// - public class DetectTargetMsiPackageEventArgs : CancellableHResultEventArgs + public class DetectPatchTargetEventArgs : CancellableHResultEventArgs { /// - /// Creates a new instance of the class. + /// /// - /// Detected package identifier. - /// Detected product code. - /// Package state detected. - /// The recommendation from the engine. - public DetectTargetMsiPackageEventArgs(string packageId, string productCode, PackageState state, bool cancelRecommendation) + /// + /// + /// + /// + public DetectPatchTargetEventArgs(string packageId, string productCode, PackageState state, bool cancelRecommendation) : base(cancelRecommendation) { this.PackageId = packageId; @@ -567,17 +567,17 @@ namespace WixToolset.Mba.Core } /// - /// Gets the identity of the target's package detected. + /// Gets the identity of the patch's package. /// public string PackageId { get; private set; } /// - /// Gets the product code of the target MSI detected. + /// Gets the product code of the target. /// public string ProductCode { get; private set; } /// - /// Gets the detected patch package state. + /// Gets the detected patch state for the target. /// public PackageState State { get; private set; } } @@ -732,22 +732,26 @@ namespace WixToolset.Mba.Core } /// - /// Additional arguments used when the engine has begun planning the installation of a specific package. + /// Event arguments for /// [Serializable] public class PlanPackageBeginEventArgs : CancellableHResultEventArgs { /// - /// Creates a new instance of the class. + /// /// - /// The identity of the package to plan for. - /// The recommended requested state for the package. - /// The requested state for the package. - /// The recommendation from the engine. - public PlanPackageBeginEventArgs(string packageId, RequestState recommendedState, RequestState state, bool cancelRecommendation) + /// + /// + /// + /// + /// + /// + public PlanPackageBeginEventArgs(string packageId, PackageState currentState, bool installCondition, RequestState recommendedState, RequestState state, bool cancelRecommendation) : base(cancelRecommendation) { this.PackageId = packageId; + this.CurrentState = currentState; + this.InstallCondition = installCondition; this.RecommendedState = recommendedState; this.State = state; } @@ -757,6 +761,16 @@ namespace WixToolset.Mba.Core /// public string PackageId { get; private set; } + /// + /// Gets the current state of the package. + /// + public PackageState CurrentState { get; private set; } + + /// + /// Gets the evaluated result of the package's install condition. + /// + public bool InstallCondition { get; private set; } + /// /// Gets the recommended requested state for the package. /// @@ -769,20 +783,20 @@ namespace WixToolset.Mba.Core } /// - /// Additional arguments used when engine is about to plan a MSP applied to a target MSI package. + /// Event arguments for /// [Serializable] - public class PlanTargetMsiPackageEventArgs : CancellableHResultEventArgs + public class PlanPatchTargetEventArgs : CancellableHResultEventArgs { /// - /// Creates a new instance of the class. + /// /// - /// Package identifier of the patch being planned. - /// Product code identifier being planned. - /// Recommended package state of the patch being planned. - /// Package state of the patch being planned. - /// The recommendation from the engine. - public PlanTargetMsiPackageEventArgs(string packageId, string productCode, RequestState recommendedState, RequestState state, bool cancelRecommendation) + /// + /// + /// + /// + /// + public PlanPatchTargetEventArgs(string packageId, string productCode, RequestState recommendedState, RequestState state, bool cancelRecommendation) : base(cancelRecommendation) { this.PackageId = packageId; @@ -792,22 +806,22 @@ namespace WixToolset.Mba.Core } /// - /// Gets the identity of the patch package to plan. + /// Gets the identity of the patch's package. /// public string PackageId { get; private set; } /// - /// Gets the identity of the patch's target MSI to plan. + /// Gets the product code of the target. /// public string ProductCode { get; private set; } /// - /// Gets the recommended state of the patch to use by planning. + /// Gets the recommended state of the patch to use by planning for the target. /// public RequestState RecommendedState { get; private set; } /// - /// Gets or sets the state of the patch to use by planning. + /// Gets or sets the state of the patch to use by planning for the target. /// public RequestState State { get; set; } } @@ -915,28 +929,22 @@ namespace WixToolset.Mba.Core } /// - /// Additional arguments used when then engine has completed planning the installation of a specific package. + /// Event arguments for /// [Serializable] public class PlanPackageCompleteEventArgs : StatusEventArgs { /// - /// Creates a new instance of the class. + /// /// - /// The identity of the package planned for. - /// The return code of the operation. - /// The current state of the package. - /// The requested state for the package - /// The execution action to take. - /// The rollback action to take. - public PlanPackageCompleteEventArgs(string packageId, int hrStatus, PackageState state, RequestState requested, ActionState execute, ActionState rollback) + /// + /// + /// + public PlanPackageCompleteEventArgs(string packageId, int hrStatus, RequestState requested) : base(hrStatus) { this.PackageId = packageId; - this.State = state; this.Requested = requested; - this.Execute = execute; - this.Rollback = rollback; } /// @@ -945,22 +953,42 @@ namespace WixToolset.Mba.Core public string PackageId { get; private set; } /// - /// Gets the current state of the package. + /// Gets the requested state for the package. /// - public PackageState State { get; private set; } + public RequestState Requested { get; private set; } + } + /// + /// Event arguments for + /// + [Serializable] + public class PlannedPackageEventArgs : HResultEventArgs + { /// - /// Gets the requested state for the package. + /// /// - public RequestState Requested { get; private set; } + /// + /// + /// + public PlannedPackageEventArgs(string packageId, ActionState execute, ActionState rollback) + { + this.PackageId = packageId; + this.Execute = execute; + this.Rollback = rollback; + } + + /// + /// Gets the identity of the package planned for. + /// + public string PackageId { get; private set; } /// - /// Gets the execution action to take. + /// Gets the planned execution action. /// public ActionState Execute { get; private set; } /// - /// Gets the rollback action to take. + /// Gets the planned rollback action. /// public ActionState Rollback { get; private set; } } diff --git a/src/WixToolset.Mba.Core/IBootstrapperApplication.cs b/src/WixToolset.Mba.Core/IBootstrapperApplication.cs index c1a32ed4..7ff243d2 100644 --- a/src/WixToolset.Mba.Core/IBootstrapperApplication.cs +++ b/src/WixToolset.Mba.Core/IBootstrapperApplication.cs @@ -194,7 +194,7 @@ namespace WixToolset.Mba.Core ); /// - /// See . + /// See . /// /// /// @@ -203,7 +203,7 @@ namespace WixToolset.Mba.Core /// [PreserveSig] [return: MarshalAs(UnmanagedType.I4)] - int OnDetectTargetMsiPackage( + int OnDetectPatchTarget( [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, [MarshalAs(UnmanagedType.LPWStr)] string wzProductCode, [MarshalAs(UnmanagedType.U4)] PackageState patchState, @@ -289,6 +289,8 @@ namespace WixToolset.Mba.Core /// See . /// /// + /// + /// /// /// /// @@ -297,13 +299,15 @@ namespace WixToolset.Mba.Core [return: MarshalAs(UnmanagedType.I4)] int OnPlanPackageBegin( [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, + [MarshalAs(UnmanagedType.U4)] PackageState state, + [MarshalAs(UnmanagedType.Bool)] bool fInstallCondition, [MarshalAs(UnmanagedType.U4)] RequestState recommendedState, [MarshalAs(UnmanagedType.U4)] ref RequestState pRequestedState, [MarshalAs(UnmanagedType.Bool)] ref bool fCancel ); /// - /// See . + /// See . /// /// /// @@ -313,7 +317,7 @@ namespace WixToolset.Mba.Core /// [PreserveSig] [return: MarshalAs(UnmanagedType.I4)] - int OnPlanTargetMsiPackage( + int OnPlanPatchTarget( [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, [MarshalAs(UnmanagedType.LPWStr)] string wzProductCode, [MarshalAs(UnmanagedType.U4)] RequestState recommendedState, @@ -368,18 +372,27 @@ namespace WixToolset.Mba.Core /// /// /// - /// /// - /// - /// /// [PreserveSig] [return: MarshalAs(UnmanagedType.I4)] int OnPlanPackageComplete( [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, int hrStatus, - [MarshalAs(UnmanagedType.U4)] PackageState state, - [MarshalAs(UnmanagedType.U4)] RequestState requested, + [MarshalAs(UnmanagedType.U4)] RequestState requested + ); + + /// + /// See . + /// + /// + /// + /// + /// + [PreserveSig] + [return: MarshalAs(UnmanagedType.I4)] + int OnPlannedPackage( + [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, [MarshalAs(UnmanagedType.U4)] ActionState execute, [MarshalAs(UnmanagedType.U4)] ActionState rollback ); diff --git a/src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs b/src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs index 9970dc3e..d0518049 100644 --- a/src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs +++ b/src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs @@ -114,6 +114,11 @@ namespace WixToolset.Mba.Core /// event EventHandler DetectPackageComplete; + /// + /// Fired when the engine detects a target product for an MSP package. + /// + event EventHandler DetectPatchTarget; + /// /// Fired when a related bundle has been detected for a bundle. /// @@ -124,11 +129,6 @@ namespace WixToolset.Mba.Core /// event EventHandler DetectRelatedMsiPackage; - /// - /// Fired when an MSP package detects a target MSI has been detected. - /// - event EventHandler DetectTargetMsiPackage; - /// /// Fired when the update detection has found a potential update candidate. /// @@ -229,6 +229,11 @@ namespace WixToolset.Mba.Core /// event EventHandler PlanComplete; + /// + /// Fired when the engine has completed planning a package. + /// + event EventHandler PlannedPackage; + /// /// Fired when the engine is about to plan a feature in an MSI package. /// @@ -240,24 +245,24 @@ namespace WixToolset.Mba.Core event EventHandler PlanMsiPackage; /// - /// Fired when the engine has begun planning the installation of a specific package. + /// Fired when the engine has begun getting the BA's input for planning a package. /// event EventHandler PlanPackageBegin; /// - /// Fired when the engine has completed planning the installation of a specific package. + /// Fired when the engine has completed getting the BA's input for planning a package. /// event EventHandler PlanPackageComplete; /// - /// Fired when the engine has begun planning for a related bundle. + /// Fired when the engine is about to plan a target of an MSP package. /// - event EventHandler PlanRelatedBundle; + event EventHandler PlanPatchTarget; /// - /// Fired when the engine is about to plan the target MSI of a MSP package. + /// Fired when the engine has begun planning for a related bundle. /// - event EventHandler PlanTargetMsiPackage; + event EventHandler PlanRelatedBundle; /// /// Fired when the engine has changed progress for the bundle installation. diff --git a/src/balutil/balutil.vcxproj b/src/balutil/balutil.vcxproj index 702a25c0..578586e8 100644 --- a/src/balutil/balutil.vcxproj +++ b/src/balutil/balutil.vcxproj @@ -2,8 +2,8 @@ - - + + @@ -98,8 +98,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + diff --git a/src/balutil/inc/BAFunctions.h b/src/balutil/inc/BAFunctions.h index eb6d96d8..6d36ad8c 100644 --- a/src/balutil/inc/BAFunctions.h +++ b/src/balutil/inc/BAFunctions.h @@ -23,12 +23,12 @@ enum BA_FUNCTIONS_MESSAGE BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLE, BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGEBEGIN, BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDMSIPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDMSIPACKAGE, - BA_FUNCTIONS_MESSAGE_ONDETECTTARGETMSIPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTTARGETMSIPACKAGE, + BA_FUNCTIONS_MESSAGE_ONDETECTPATCHTARGET = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPATCHTARGET, BA_FUNCTIONS_MESSAGE_ONDETECTMSIFEATURE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTMSIFEATURE, BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGECOMPLETE, BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLE, BA_FUNCTIONS_MESSAGE_ONPLANPACKAGEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGEBEGIN, - BA_FUNCTIONS_MESSAGE_ONPLANTARGETMSIPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANTARGETMSIPACKAGE, + BA_FUNCTIONS_MESSAGE_ONPLANPATCHTARGET = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPATCHTARGET, BA_FUNCTIONS_MESSAGE_ONPLANMSIFEATURE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIFEATURE, BA_FUNCTIONS_MESSAGE_ONPLANPACKAGECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGECOMPLETE, BA_FUNCTIONS_MESSAGE_ONAPPLYBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYBEGIN, @@ -72,6 +72,7 @@ enum BA_FUNCTIONS_MESSAGE BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE, BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN, BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE, + BA_FUNCTIONS_MESSAGE_ONPLANNEDPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDPACKAGE, BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, BA_FUNCTIONS_MESSAGE_WNDPROC, diff --git a/src/balutil/inc/BalBaseBAFunctions.h b/src/balutil/inc/BalBaseBAFunctions.h index 10334a18..7699b8ff 100644 --- a/src/balutil/inc/BalBaseBAFunctions.h +++ b/src/balutil/inc/BalBaseBAFunctions.h @@ -177,7 +177,7 @@ public: // IBootstrapperApplication return S_OK; } - virtual STDMETHODIMP OnDetectTargetMsiPackage( + virtual STDMETHODIMP OnDetectPatchTarget( __in_z LPCWSTR /*wzPackageId*/, __in_z LPCWSTR /*wzProductCode*/, __in BOOTSTRAPPER_PACKAGE_STATE /*patchState*/, @@ -234,6 +234,8 @@ public: // IBootstrapperApplication virtual STDMETHODIMP OnPlanPackageBegin( __in_z LPCWSTR /*wzPackageId*/, + __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, + __in BOOL /*fInstallCondition*/, __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/, __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/, __inout BOOL* /*pfCancel*/ @@ -242,7 +244,7 @@ public: // IBootstrapperApplication return S_OK; } - virtual STDMETHODIMP OnPlanTargetMsiPackage( + virtual STDMETHODIMP OnPlanPatchTarget( __in_z LPCWSTR /*wzPackageId*/, __in_z LPCWSTR /*wzProductCode*/, __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/, @@ -280,8 +282,14 @@ public: // IBootstrapperApplication virtual STDMETHODIMP OnPlanPackageComplete( __in_z LPCWSTR /*wzPackageId*/, __in HRESULT /*hrStatus*/, - __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, - __in BOOTSTRAPPER_REQUEST_STATE /*requested*/, + __in BOOTSTRAPPER_REQUEST_STATE /*requested*/ + ) + { + return S_OK; + } + + virtual STDMETHODIMP OnPlannedPackage( + __in_z LPCWSTR /*wzPackageId*/, __in BOOTSTRAPPER_ACTION_STATE /*execute*/, __in BOOTSTRAPPER_ACTION_STATE /*rollback*/ ) diff --git a/src/balutil/inc/BalBaseBAFunctionsProc.h b/src/balutil/inc/BalBaseBAFunctionsProc.h index 4f0906d2..1b11c300 100644 --- a/src/balutil/inc/BalBaseBAFunctionsProc.h +++ b/src/balutil/inc/BalBaseBAFunctionsProc.h @@ -58,12 +58,12 @@ static HRESULT WINAPI BalBaseBAFunctionsProc( case BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLE: case BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGEBEGIN: case BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDMSIPACKAGE: - case BA_FUNCTIONS_MESSAGE_ONDETECTTARGETMSIPACKAGE: + case BA_FUNCTIONS_MESSAGE_ONDETECTPATCHTARGET: case BA_FUNCTIONS_MESSAGE_ONDETECTMSIFEATURE: case BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGECOMPLETE: case BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLE: case BA_FUNCTIONS_MESSAGE_ONPLANPACKAGEBEGIN: - case BA_FUNCTIONS_MESSAGE_ONPLANTARGETMSIPACKAGE: + case BA_FUNCTIONS_MESSAGE_ONPLANPATCHTARGET: case BA_FUNCTIONS_MESSAGE_ONPLANMSIFEATURE: case BA_FUNCTIONS_MESSAGE_ONPLANPACKAGECOMPLETE: case BA_FUNCTIONS_MESSAGE_ONAPPLYBEGIN: @@ -107,6 +107,7 @@ static HRESULT WINAPI BalBaseBAFunctionsProc( case BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE: case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN: case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE: + case BA_FUNCTIONS_MESSAGE_ONPLANNEDPACKAGE: hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext); break; case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED: diff --git a/src/balutil/inc/BalBaseBootstrapperApplication.h b/src/balutil/inc/BalBaseBootstrapperApplication.h index 1b0230de..59e57de1 100644 --- a/src/balutil/inc/BalBaseBootstrapperApplication.h +++ b/src/balutil/inc/BalBaseBootstrapperApplication.h @@ -181,7 +181,7 @@ public: // IBootstrapperApplication return S_OK; } - virtual STDMETHODIMP OnDetectTargetMsiPackage( + virtual STDMETHODIMP OnDetectPatchTarget( __in_z LPCWSTR /*wzPackageId*/, __in_z LPCWSTR /*wzProductCode*/, __in BOOTSTRAPPER_PACKAGE_STATE /*patchState*/, @@ -242,6 +242,8 @@ public: // IBootstrapperApplication virtual STDMETHODIMP OnPlanPackageBegin( __in_z LPCWSTR /*wzPackageId*/, + __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, + __in BOOL /*fInstallCondition*/, __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/, __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/, __inout BOOL* pfCancel @@ -251,7 +253,7 @@ public: // IBootstrapperApplication return S_OK; } - virtual STDMETHODIMP OnPlanTargetMsiPackage( + virtual STDMETHODIMP OnPlanPatchTarget( __in_z LPCWSTR /*wzPackageId*/, __in_z LPCWSTR /*wzProductCode*/, __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/, @@ -292,8 +294,14 @@ public: // IBootstrapperApplication virtual STDMETHODIMP OnPlanPackageComplete( __in_z LPCWSTR /*wzPackageId*/, __in HRESULT /*hrStatus*/, - __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, - __in BOOTSTRAPPER_REQUEST_STATE /*requested*/, + __in BOOTSTRAPPER_REQUEST_STATE /*requested*/ + ) + { + return S_OK; + } + + virtual STDMETHODIMP OnPlannedPackage( + __in_z LPCWSTR /*wzPackageId*/, __in BOOTSTRAPPER_ACTION_STATE /*execute*/, __in BOOTSTRAPPER_ACTION_STATE /*rollback*/ ) diff --git a/src/balutil/inc/BalBaseBootstrapperApplicationProc.h b/src/balutil/inc/BalBaseBootstrapperApplicationProc.h index e16640e5..6ce8710d 100644 --- a/src/balutil/inc/BalBaseBootstrapperApplicationProc.h +++ b/src/balutil/inc/BalBaseBootstrapperApplicationProc.h @@ -135,13 +135,13 @@ static HRESULT BalBaseBAProcOnDetectRelatedMsiPackage( return pBA->OnDetectRelatedMsiPackage(pArgs->wzPackageId, pArgs->wzUpgradeCode, pArgs->wzProductCode, pArgs->fPerMachine, pArgs->wzVersion, pArgs->operation, &pResults->fCancel); } -static HRESULT BalBaseBAProcOnDetectTargetMsiPackage( +static HRESULT BalBaseBAProcOnDetectPatchTarget( __in IBootstrapperApplication* pBA, - __in BA_ONDETECTTARGETMSIPACKAGE_ARGS* pArgs, - __inout BA_ONDETECTTARGETMSIPACKAGE_RESULTS* pResults + __in BA_ONDETECTPATCHTARGET_ARGS* pArgs, + __inout BA_ONDETECTPATCHTARGET_RESULTS* pResults ) { - return pBA->OnDetectTargetMsiPackage(pArgs->wzPackageId, pArgs->wzProductCode, pArgs->patchState, &pResults->fCancel); + return pBA->OnDetectPatchTarget(pArgs->wzPackageId, pArgs->wzProductCode, pArgs->patchState, &pResults->fCancel); } static HRESULT BalBaseBAProcOnDetectMsiFeature( @@ -177,16 +177,16 @@ static HRESULT BalBaseBAProcOnPlanPackageBegin( __inout BA_ONPLANPACKAGEBEGIN_RESULTS* pResults ) { - return pBA->OnPlanPackageBegin(pArgs->wzPackageId, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel); + return pBA->OnPlanPackageBegin(pArgs->wzPackageId, pArgs->state, pArgs->fInstallCondition, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel); } -static HRESULT BalBaseBAProcOnPlanTargetMsiPackage( +static HRESULT BalBaseBAProcOnPlanPatchTarget( __in IBootstrapperApplication* pBA, - __in BA_ONPLANTARGETMSIPACKAGE_ARGS* pArgs, - __inout BA_ONPLANTARGETMSIPACKAGE_RESULTS* pResults + __in BA_ONPLANPATCHTARGET_ARGS* pArgs, + __inout BA_ONPLANPATCHTARGET_RESULTS* pResults ) { - return pBA->OnPlanTargetMsiPackage(pArgs->wzPackageId, pArgs->wzProductCode, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel); + return pBA->OnPlanPatchTarget(pArgs->wzPackageId, pArgs->wzProductCode, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel); } static HRESULT BalBaseBAProcOnPlanMsiFeature( @@ -204,7 +204,16 @@ static HRESULT BalBaseBAProcOnPlanPackageComplete( __inout BA_ONPLANPACKAGECOMPLETE_RESULTS* /*pResults*/ ) { - return pBA->OnPlanPackageComplete(pArgs->wzPackageId, pArgs->hrStatus, pArgs->state, pArgs->requested, pArgs->execute, pArgs->rollback); + return pBA->OnPlanPackageComplete(pArgs->wzPackageId, pArgs->hrStatus, pArgs->requested); +} + +static HRESULT BalBaseBAProcOnPlannedPackage( + __in IBootstrapperApplication* pBA, + __in BA_ONPLANNEDPACKAGE_ARGS* pArgs, + __inout BA_ONPLANNEDPACKAGE_RESULTS* /*pResults*/ + ) +{ + return pBA->OnPlannedPackage(pArgs->wzPackageId, pArgs->execute, pArgs->rollback); } static HRESULT BalBaseBAProcOnApplyBegin( @@ -638,8 +647,8 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc( case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDMSIPACKAGE: hr = BalBaseBAProcOnDetectRelatedMsiPackage(pBA, reinterpret_cast(pvArgs), reinterpret_cast(pvResults)); break; - case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTTARGETMSIPACKAGE: - hr = BalBaseBAProcOnDetectTargetMsiPackage(pBA, reinterpret_cast(pvArgs), reinterpret_cast(pvResults)); + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPATCHTARGET: + hr = BalBaseBAProcOnDetectPatchTarget(pBA, reinterpret_cast(pvArgs), reinterpret_cast(pvResults)); break; case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTMSIFEATURE: hr = BalBaseBAProcOnDetectMsiFeature(pBA, reinterpret_cast(pvArgs), reinterpret_cast(pvResults)); @@ -653,8 +662,8 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc( case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGEBEGIN: hr = BalBaseBAProcOnPlanPackageBegin(pBA, reinterpret_cast(pvArgs), reinterpret_cast(pvResults)); break; - case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANTARGETMSIPACKAGE: - hr = BalBaseBAProcOnPlanTargetMsiPackage(pBA, reinterpret_cast(pvArgs), reinterpret_cast(pvResults)); + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPATCHTARGET: + hr = BalBaseBAProcOnPlanPatchTarget(pBA, reinterpret_cast(pvArgs), reinterpret_cast(pvResults)); break; case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIFEATURE: hr = BalBaseBAProcOnPlanMsiFeature(pBA, reinterpret_cast(pvArgs), reinterpret_cast(pvResults)); @@ -784,6 +793,9 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc( case BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE: hr = BalBaseBAProcOnSystemRestorePointComplete(pBA, reinterpret_cast(pvArgs), reinterpret_cast(pvResults)); break; + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDPACKAGE: + hr = BalBaseBAProcOnPlannedPackage(pBA, reinterpret_cast(pvArgs), reinterpret_cast(pvResults)); + break; } } diff --git a/src/balutil/inc/IBootstrapperApplication.h b/src/balutil/inc/IBootstrapperApplication.h index 4569cdab..7d710b26 100644 --- a/src/balutil/inc/IBootstrapperApplication.h +++ b/src/balutil/inc/IBootstrapperApplication.h @@ -91,9 +91,9 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A __inout BOOL* pfCancel ) = 0; - // OnDetectTargetMsiPackage - called when the engine detects a target MSI package for - // an MSP package. - STDMETHOD(OnDetectTargetMsiPackage)( + // OnDetectPatchTarget - called when the engine detects a target product + // for an MSP package. + STDMETHOD(OnDetectPatchTarget)( __in_z LPCWSTR wzPackageId, __in_z LPCWSTR wzProductCode, __in BOOTSTRAPPER_PACKAGE_STATE patchState, @@ -137,17 +137,20 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A __inout BOOL* pfCancel ) = 0; - // OnPlanPackageBegin - called when the engine begins planning a package. + // OnPlanPackageBegin - called when the engine has begun getting the BA's input + // for planning a package. STDMETHOD(OnPlanPackageBegin)( __in_z LPCWSTR wzPackageId, + __in BOOTSTRAPPER_PACKAGE_STATE state, + __in BOOL fInstallCondition, __in BOOTSTRAPPER_REQUEST_STATE recommendedState, __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState, __inout BOOL* pfCancel ) = 0; - // OnPlanTargetMsiPackage - called when the engine plans an MSP package - // to apply to an MSI package. - STDMETHOD(OnPlanTargetMsiPackage)( + // OnPlanPatchTarget - called when the engine is about to plan a target + // of an MSP package. + STDMETHOD(OnPlanPatchTarget)( __in_z LPCWSTR wzPackageId, __in_z LPCWSTR wzProductCode, __in BOOTSTRAPPER_REQUEST_STATE recommendedState, @@ -177,13 +180,17 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A __inout BOOL* pfDisableExternalUiHandler ) = 0; - // OnPlanPackageComplete - called after the engine plans a package. - // + // OnPlanPackageComplete - called after the engine has completed getting the BA's input + // for planning a package. STDMETHOD(OnPlanPackageComplete)( __in_z LPCWSTR wzPackageId, __in HRESULT hrStatus, - __in BOOTSTRAPPER_PACKAGE_STATE state, - __in BOOTSTRAPPER_REQUEST_STATE requested, + __in BOOTSTRAPPER_REQUEST_STATE requested + ) = 0; + + // OnPlannedPackage - called after the engine has completed planning a package. + STDMETHOD(OnPlannedPackage)( + __in_z LPCWSTR wzPackageId, __in BOOTSTRAPPER_ACTION_STATE execute, __in BOOTSTRAPPER_ACTION_STATE rollback ) = 0; diff --git a/src/balutil/packages.config b/src/balutil/packages.config index 9a928742..68970a7e 100644 --- a/src/balutil/packages.config +++ b/src/balutil/packages.config @@ -1,6 +1,6 @@  - - + + \ No newline at end of file diff --git a/src/bextutil/bextutil.vcxproj b/src/bextutil/bextutil.vcxproj index f81ce469..44393f94 100644 --- a/src/bextutil/bextutil.vcxproj +++ b/src/bextutil/bextutil.vcxproj @@ -2,8 +2,8 @@ - - + + @@ -87,8 +87,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + diff --git a/src/bextutil/packages.config b/src/bextutil/packages.config index 9a928742..68970a7e 100644 --- a/src/bextutil/packages.config +++ b/src/bextutil/packages.config @@ -1,6 +1,6 @@  - - + + \ No newline at end of file diff --git a/src/mbanative/mbanative.vcxproj b/src/mbanative/mbanative.vcxproj index 7132cf1a..eaf95157 100644 --- a/src/mbanative/mbanative.vcxproj +++ b/src/mbanative/mbanative.vcxproj @@ -5,8 +5,8 @@ - - + + @@ -79,7 +79,9 @@ - + + {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB} + @@ -94,7 +96,7 @@ - - + + \ No newline at end of file diff --git a/src/mbanative/packages.config b/src/mbanative/packages.config index b60fbb82..e9fcafcd 100644 --- a/src/mbanative/packages.config +++ b/src/mbanative/packages.config @@ -4,6 +4,6 @@ - - + + \ No newline at end of file diff --git a/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj b/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj index 5f250d39..aad361c1 100644 --- a/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj +++ b/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj @@ -4,8 +4,8 @@ - - + + Debug @@ -57,7 +57,9 @@ - + + {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB} + @@ -67,7 +69,7 @@ - - + + diff --git a/src/test/BalUtilUnitTest/packages.config b/src/test/BalUtilUnitTest/packages.config index 273ae5d9..9e1a6a0e 100644 --- a/src/test/BalUtilUnitTest/packages.config +++ b/src/test/BalUtilUnitTest/packages.config @@ -10,6 +10,6 @@ - - + + \ No newline at end of file diff --git a/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj b/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj index c648b86b..566a2abd 100644 --- a/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj +++ b/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj @@ -4,8 +4,8 @@ - - + + Debug @@ -56,7 +56,9 @@ - + + {06027492-1CB9-48BC-B31E-C1F9356ED07E} + @@ -66,7 +68,7 @@ - - + + diff --git a/src/test/BextUtilUnitTest/packages.config b/src/test/BextUtilUnitTest/packages.config index 273ae5d9..9e1a6a0e 100644 --- a/src/test/BextUtilUnitTest/packages.config +++ b/src/test/BextUtilUnitTest/packages.config @@ -10,6 +10,6 @@ - - + + \ No newline at end of file -- cgit v1.2.3-55-g6feb