diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-01-14 21:37:24 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-01-16 10:30:28 -0600 |
commit | da1d1376953ef1c9afb32d5eee02b785e52e372e (patch) | |
tree | 0df8550960259d7b13f5cd90f04d21b5576f16b7 /src/api/burn/WixToolset.Mba.Core | |
parent | abe316b80fae80eba54b0b79e76b6362105fa098 (diff) | |
download | wix-da1d1376953ef1c9afb32d5eee02b785e52e372e.tar.gz wix-da1d1376953ef1c9afb32d5eee02b785e52e372e.tar.bz2 wix-da1d1376953ef1c9afb32d5eee02b785e52e372e.zip |
Remove orphan compatible MSI packages.
Reimplements #3190
Diffstat (limited to 'src/api/burn/WixToolset.Mba.Core')
4 files changed, 304 insertions, 9 deletions
diff --git a/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs b/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs index 34b63a50..f277425e 100644 --- a/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs +++ b/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs | |||
@@ -63,6 +63,9 @@ namespace WixToolset.Mba.Core | |||
63 | 63 | ||
64 | /// <inheritdoc/> | 64 | /// <inheritdoc/> |
65 | public event EventHandler<DetectPackageBeginEventArgs> DetectPackageBegin; | 65 | public event EventHandler<DetectPackageBeginEventArgs> DetectPackageBegin; |
66 | |||
67 | /// <inheritdoc/> | ||
68 | public event EventHandler<DetectCompatibleMsiPackageEventArgs> DetectCompatibleMsiPackage; | ||
66 | 69 | ||
67 | /// <inheritdoc/> | 70 | /// <inheritdoc/> |
68 | public event EventHandler<DetectRelatedMsiPackageEventArgs> DetectRelatedMsiPackage; | 71 | public event EventHandler<DetectRelatedMsiPackageEventArgs> DetectRelatedMsiPackage; |
@@ -92,6 +95,12 @@ namespace WixToolset.Mba.Core | |||
92 | public event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin; | 95 | public event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin; |
93 | 96 | ||
94 | /// <inheritdoc/> | 97 | /// <inheritdoc/> |
98 | public event EventHandler<PlanCompatibleMsiPackageBeginEventArgs> PlanCompatibleMsiPackageBegin; | ||
99 | |||
100 | /// <inheritdoc/> | ||
101 | public event EventHandler<PlanCompatibleMsiPackageCompleteEventArgs> PlanCompatibleMsiPackageComplete; | ||
102 | |||
103 | /// <inheritdoc/> | ||
95 | public event EventHandler<PlanPatchTargetEventArgs> PlanPatchTarget; | 104 | public event EventHandler<PlanPatchTargetEventArgs> PlanPatchTarget; |
96 | 105 | ||
97 | /// <inheritdoc/> | 106 | /// <inheritdoc/> |
@@ -104,6 +113,9 @@ namespace WixToolset.Mba.Core | |||
104 | public event EventHandler<PlanPackageCompleteEventArgs> PlanPackageComplete; | 113 | public event EventHandler<PlanPackageCompleteEventArgs> PlanPackageComplete; |
105 | 114 | ||
106 | /// <inheritdoc/> | 115 | /// <inheritdoc/> |
116 | public event EventHandler<PlannedCompatiblePackageEventArgs> PlannedCompatiblePackage; | ||
117 | |||
118 | /// <inheritdoc/> | ||
107 | public event EventHandler<PlannedPackageEventArgs> PlannedPackage; | 119 | public event EventHandler<PlannedPackageEventArgs> PlannedPackage; |
108 | 120 | ||
109 | /// <inheritdoc/> | 121 | /// <inheritdoc/> |
@@ -415,6 +427,19 @@ namespace WixToolset.Mba.Core | |||
415 | } | 427 | } |
416 | 428 | ||
417 | /// <summary> | 429 | /// <summary> |
430 | /// Called by the engine, raises the <see cref="DetectCompatibleMsiPackage"/> event. | ||
431 | /// </summary> | ||
432 | /// <param name="args">Additional arguments for this event.</param> | ||
433 | protected virtual void OnDetectCompatibleMsiPackage(DetectCompatibleMsiPackageEventArgs args) | ||
434 | { | ||
435 | EventHandler<DetectCompatibleMsiPackageEventArgs> handler = this.DetectCompatibleMsiPackage; | ||
436 | if (null != handler) | ||
437 | { | ||
438 | handler(this, args); | ||
439 | } | ||
440 | } | ||
441 | |||
442 | /// <summary> | ||
418 | /// Called by the engine, raises the <see cref="DetectRelatedMsiPackage"/> event. | 443 | /// Called by the engine, raises the <see cref="DetectRelatedMsiPackage"/> event. |
419 | /// </summary> | 444 | /// </summary> |
420 | /// <param name="args">Additional arguments for this event.</param> | 445 | /// <param name="args">Additional arguments for this event.</param> |
@@ -531,6 +556,32 @@ namespace WixToolset.Mba.Core | |||
531 | } | 556 | } |
532 | 557 | ||
533 | /// <summary> | 558 | /// <summary> |
559 | /// Called by the engine, raises the <see cref="PlanCompatibleMsiPackageBegin"/> event. | ||
560 | /// </summary> | ||
561 | /// <param name="args">Additional arguments for this event.</param> | ||
562 | protected virtual void OnPlanCompatibleMsiPackageBegin(PlanCompatibleMsiPackageBeginEventArgs args) | ||
563 | { | ||
564 | EventHandler<PlanCompatibleMsiPackageBeginEventArgs> handler = this.PlanCompatibleMsiPackageBegin; | ||
565 | if (null != handler) | ||
566 | { | ||
567 | handler(this, args); | ||
568 | } | ||
569 | } | ||
570 | |||
571 | /// <summary> | ||
572 | /// Called by the engine, raises the <see cref="PlanCompatibleMsiPackageComplete"/> event. | ||
573 | /// </summary> | ||
574 | /// <param name="args">Additional arguments for this event.</param> | ||
575 | protected virtual void OnPlanCompatibleMsiPackageComplete(PlanCompatibleMsiPackageCompleteEventArgs args) | ||
576 | { | ||
577 | EventHandler<PlanCompatibleMsiPackageCompleteEventArgs> handler = this.PlanCompatibleMsiPackageComplete; | ||
578 | if (null != handler) | ||
579 | { | ||
580 | handler(this, args); | ||
581 | } | ||
582 | } | ||
583 | |||
584 | /// <summary> | ||
534 | /// Called by the engine, raises the <see cref="PlanPatchTarget"/> event. | 585 | /// Called by the engine, raises the <see cref="PlanPatchTarget"/> event. |
535 | /// </summary> | 586 | /// </summary> |
536 | /// <param name="args">Additional arguments for this event.</param> | 587 | /// <param name="args">Additional arguments for this event.</param> |
@@ -583,6 +634,19 @@ namespace WixToolset.Mba.Core | |||
583 | } | 634 | } |
584 | 635 | ||
585 | /// <summary> | 636 | /// <summary> |
637 | /// Called by the engine, raises the <see cref="PlannedCompatiblePackage"/> event. | ||
638 | /// </summary> | ||
639 | /// <param name="args">Additional arguments for this event.</param> | ||
640 | protected virtual void OnPlannedCompatiblePackage(PlannedCompatiblePackageEventArgs args) | ||
641 | { | ||
642 | EventHandler<PlannedCompatiblePackageEventArgs> handler = this.PlannedCompatiblePackage; | ||
643 | if (null != handler) | ||
644 | { | ||
645 | handler(this, args); | ||
646 | } | ||
647 | } | ||
648 | |||
649 | /// <summary> | ||
586 | /// Called by the engine, raises the <see cref="PlannedPackage"/> event. | 650 | /// Called by the engine, raises the <see cref="PlannedPackage"/> event. |
587 | /// </summary> | 651 | /// </summary> |
588 | /// <param name="args">Additional arguments for this event.</param> | 652 | /// <param name="args">Additional arguments for this event.</param> |
@@ -1363,6 +1427,15 @@ namespace WixToolset.Mba.Core | |||
1363 | return args.HResult; | 1427 | return args.HResult; |
1364 | } | 1428 | } |
1365 | 1429 | ||
1430 | int IBootstrapperApplication.OnDetectCompatibleMsiPackage(string wzPackageId, string wzCompatiblePackageId, string wzCompatiblePackageVersion, ref bool fCancel) | ||
1431 | { | ||
1432 | DetectCompatibleMsiPackageEventArgs args = new DetectCompatibleMsiPackageEventArgs(wzPackageId, wzCompatiblePackageId, wzCompatiblePackageVersion, fCancel); | ||
1433 | this.OnDetectCompatibleMsiPackage(args); | ||
1434 | |||
1435 | fCancel = args.Cancel; | ||
1436 | return args.HResult; | ||
1437 | } | ||
1438 | |||
1366 | int IBootstrapperApplication.OnDetectRelatedMsiPackage(string wzPackageId, string wzUpgradeCode, string wzProductCode, bool fPerMachine, string wzVersion, RelatedOperation operation, ref bool fCancel) | 1439 | int IBootstrapperApplication.OnDetectRelatedMsiPackage(string wzPackageId, string wzUpgradeCode, string wzProductCode, bool fPerMachine, string wzVersion, RelatedOperation operation, ref bool fCancel) |
1367 | { | 1440 | { |
1368 | DetectRelatedMsiPackageEventArgs args = new DetectRelatedMsiPackageEventArgs(wzPackageId, wzUpgradeCode, wzProductCode, fPerMachine, wzVersion, operation, fCancel); | 1441 | DetectRelatedMsiPackageEventArgs args = new DetectRelatedMsiPackageEventArgs(wzPackageId, wzUpgradeCode, wzProductCode, fPerMachine, wzVersion, operation, fCancel); |
@@ -1445,6 +1518,24 @@ namespace WixToolset.Mba.Core | |||
1445 | return args.HResult; | 1518 | return args.HResult; |
1446 | } | 1519 | } |
1447 | 1520 | ||
1521 | int IBootstrapperApplication.OnPlanCompatibleMsiPackageBegin(string wzPackageId, string wzCompatiblePackageId, string wzCompatiblePackageVersion, bool recommendedRemove, ref bool pRequestedRemove, ref bool fCancel) | ||
1522 | { | ||
1523 | PlanCompatibleMsiPackageBeginEventArgs args = new PlanCompatibleMsiPackageBeginEventArgs(wzPackageId, wzCompatiblePackageId, wzCompatiblePackageVersion, recommendedRemove, pRequestedRemove, fCancel); | ||
1524 | this.OnPlanCompatibleMsiPackageBegin(args); | ||
1525 | |||
1526 | pRequestedRemove = args.RequestRemove; | ||
1527 | fCancel = args.Cancel; | ||
1528 | return args.HResult; | ||
1529 | } | ||
1530 | |||
1531 | int IBootstrapperApplication.OnPlanCompatibleMsiPackageComplete(string wzPackageId, string wzCompatiblePackageId, int hrStatus, bool requestedRemove) | ||
1532 | { | ||
1533 | PlanCompatibleMsiPackageCompleteEventArgs args = new PlanCompatibleMsiPackageCompleteEventArgs(wzPackageId, wzCompatiblePackageId, hrStatus, requestedRemove); | ||
1534 | this.OnPlanCompatibleMsiPackageComplete(args); | ||
1535 | |||
1536 | return args.HResult; | ||
1537 | } | ||
1538 | |||
1448 | int IBootstrapperApplication.OnPlanPatchTarget(string wzPackageId, string wzProductCode, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel) | 1539 | int IBootstrapperApplication.OnPlanPatchTarget(string wzPackageId, string wzProductCode, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel) |
1449 | { | 1540 | { |
1450 | PlanPatchTargetEventArgs args = new PlanPatchTargetEventArgs(wzPackageId, wzProductCode, recommendedState, pRequestedState, fCancel); | 1541 | PlanPatchTargetEventArgs args = new PlanPatchTargetEventArgs(wzPackageId, wzProductCode, recommendedState, pRequestedState, fCancel); |
@@ -1486,6 +1577,14 @@ namespace WixToolset.Mba.Core | |||
1486 | return args.HResult; | 1577 | return args.HResult; |
1487 | } | 1578 | } |
1488 | 1579 | ||
1580 | int IBootstrapperApplication.OnPlannedCompatiblePackage(string wzPackageId, string wzCompatiblePackageId, bool remove) | ||
1581 | { | ||
1582 | var args = new PlannedCompatiblePackageEventArgs(wzPackageId, wzCompatiblePackageId, remove); | ||
1583 | this.OnPlannedCompatiblePackage(args); | ||
1584 | |||
1585 | return args.HResult; | ||
1586 | } | ||
1587 | |||
1489 | int IBootstrapperApplication.OnPlannedPackage(string wzPackageId, ActionState execute, ActionState rollback, bool fPlannedCache, bool fPlannedUncache) | 1588 | int IBootstrapperApplication.OnPlannedPackage(string wzPackageId, ActionState execute, ActionState rollback, bool fPlannedCache, bool fPlannedUncache) |
1490 | { | 1589 | { |
1491 | var args = new PlannedPackageEventArgs(wzPackageId, execute, rollback, fPlannedCache, fPlannedUncache); | 1590 | var args = new PlannedPackageEventArgs(wzPackageId, execute, rollback, fPlannedCache, fPlannedUncache); |
diff --git a/src/api/burn/WixToolset.Mba.Core/EventArgs.cs b/src/api/burn/WixToolset.Mba.Core/EventArgs.cs index 93831be6..d4d70651 100644 --- a/src/api/burn/WixToolset.Mba.Core/EventArgs.cs +++ b/src/api/burn/WixToolset.Mba.Core/EventArgs.cs | |||
@@ -496,6 +496,37 @@ namespace WixToolset.Mba.Core | |||
496 | } | 496 | } |
497 | 497 | ||
498 | /// <summary> | 498 | /// <summary> |
499 | /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectCompatibleMsiPackage"/> | ||
500 | /// </summary> | ||
501 | [Serializable] | ||
502 | public class DetectCompatibleMsiPackageEventArgs : CancellableHResultEventArgs | ||
503 | { | ||
504 | /// <summary /> | ||
505 | public DetectCompatibleMsiPackageEventArgs(string packageId, string compatiblePackageId, string compatiblePackageVersion, bool cancelRecommendation) | ||
506 | : base(cancelRecommendation) | ||
507 | { | ||
508 | this.PackageId = packageId; | ||
509 | this.CompatiblePackageId = compatiblePackageId; | ||
510 | this.CompatiblePackageVersion = compatiblePackageVersion; | ||
511 | } | ||
512 | |||
513 | /// <summary> | ||
514 | /// Gets the identity of the package that was not detected. | ||
515 | /// </summary> | ||
516 | public string PackageId { get; private set; } | ||
517 | |||
518 | /// <summary> | ||
519 | /// Gets the identity of the compatible package that was detected. | ||
520 | /// </summary> | ||
521 | public string CompatiblePackageId { get; private set; } | ||
522 | |||
523 | /// <summary> | ||
524 | /// Gets the version of the compatible package that was detected. | ||
525 | /// </summary> | ||
526 | public string CompatiblePackageVersion { get; private set; } | ||
527 | } | ||
528 | |||
529 | /// <summary> | ||
499 | /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectRelatedMsiPackage"/> | 530 | /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectRelatedMsiPackage"/> |
500 | /// </summary> | 531 | /// </summary> |
501 | [Serializable] | 532 | [Serializable] |
@@ -776,6 +807,80 @@ namespace WixToolset.Mba.Core | |||
776 | } | 807 | } |
777 | 808 | ||
778 | /// <summary> | 809 | /// <summary> |
810 | /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanCompatibleMsiPackageBegin"/> | ||
811 | /// </summary> | ||
812 | [Serializable] | ||
813 | public class PlanCompatibleMsiPackageBeginEventArgs : CancellableHResultEventArgs | ||
814 | { | ||
815 | /// <summary /> | ||
816 | public PlanCompatibleMsiPackageBeginEventArgs(string packageId, string compatiblePackageId, string compatiblePackageVersion, bool recommendedRemove, bool requestRemove, bool cancelRecommendation) | ||
817 | : base(cancelRecommendation) | ||
818 | { | ||
819 | this.PackageId = packageId; | ||
820 | this.CompatiblePackageId = compatiblePackageId; | ||
821 | this.CompatiblePackageVersion = compatiblePackageVersion; | ||
822 | this.RecommendedRemove = recommendedRemove; | ||
823 | this.RequestRemove = requestRemove; | ||
824 | } | ||
825 | |||
826 | /// <summary> | ||
827 | /// Gets the identity of the package that was not detected. | ||
828 | /// </summary> | ||
829 | public string PackageId { get; private set; } | ||
830 | |||
831 | /// <summary> | ||
832 | /// Gets the identity of the compatible package detected. | ||
833 | /// </summary> | ||
834 | public string CompatiblePackageId { get; private set; } | ||
835 | |||
836 | /// <summary> | ||
837 | /// Gets the version of the compatible package detected. | ||
838 | /// </summary> | ||
839 | public string CompatiblePackageVersion { get; private set; } | ||
840 | |||
841 | /// <summary> | ||
842 | /// Gets the recommended state to use for the compatible package for planning. | ||
843 | /// </summary> | ||
844 | public bool RecommendedRemove { get; private set; } | ||
845 | |||
846 | /// <summary> | ||
847 | /// Gets or sets whether to uninstall the compatible package. | ||
848 | /// </summary> | ||
849 | public bool RequestRemove { get; set; } | ||
850 | } | ||
851 | |||
852 | /// <summary> | ||
853 | /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanCompatibleMsiPackageComplete"/> | ||
854 | /// </summary> | ||
855 | [Serializable] | ||
856 | public class PlanCompatibleMsiPackageCompleteEventArgs : StatusEventArgs | ||
857 | { | ||
858 | /// <summary /> | ||
859 | public PlanCompatibleMsiPackageCompleteEventArgs(string packageId, string compatiblePackageId, int hrStatus, bool requestedRemove) | ||
860 | : base(hrStatus) | ||
861 | { | ||
862 | this.PackageId = packageId; | ||
863 | this.CompatiblePackageId = compatiblePackageId; | ||
864 | this.RequestedRemove = requestedRemove; | ||
865 | } | ||
866 | |||
867 | /// <summary> | ||
868 | /// Gets the identity of the package planned for. | ||
869 | /// </summary> | ||
870 | public string PackageId { get; private set; } | ||
871 | |||
872 | /// <summary> | ||
873 | /// Gets the identity of the compatible package detected. | ||
874 | /// </summary> | ||
875 | public string CompatiblePackageId { get; private set; } | ||
876 | |||
877 | /// <summary> | ||
878 | /// Gets the requested state of the package. | ||
879 | /// </summary> | ||
880 | public bool RequestedRemove { get; private set; } | ||
881 | } | ||
882 | |||
883 | /// <summary> | ||
779 | /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanRollbackBoundary"/> | 884 | /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanRollbackBoundary"/> |
780 | /// </summary> | 885 | /// </summary> |
781 | [Serializable] | 886 | [Serializable] |
@@ -981,6 +1086,36 @@ namespace WixToolset.Mba.Core | |||
981 | } | 1086 | } |
982 | 1087 | ||
983 | /// <summary> | 1088 | /// <summary> |
1089 | /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlannedCompatiblePackage"/> | ||
1090 | /// </summary> | ||
1091 | [Serializable] | ||
1092 | public class PlannedCompatiblePackageEventArgs : HResultEventArgs | ||
1093 | { | ||
1094 | /// <summary /> | ||
1095 | public PlannedCompatiblePackageEventArgs(string packageId, string compatiblePackageId, bool remove) | ||
1096 | { | ||
1097 | this.PackageId = packageId; | ||
1098 | this.CompatiblePackageId = compatiblePackageId; | ||
1099 | this.Remove = remove; | ||
1100 | } | ||
1101 | |||
1102 | /// <summary> | ||
1103 | /// Gets the identity of the package planned for. | ||
1104 | /// </summary> | ||
1105 | public string PackageId { get; private set; } | ||
1106 | |||
1107 | /// <summary> | ||
1108 | /// Gets the identity of the compatible package detected. | ||
1109 | /// </summary> | ||
1110 | public string CompatiblePackageId { get; private set; } | ||
1111 | |||
1112 | /// <summary> | ||
1113 | /// Gets the planned state of the package. | ||
1114 | /// </summary> | ||
1115 | public bool Remove { get; private set; } | ||
1116 | } | ||
1117 | |||
1118 | /// <summary> | ||
984 | /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlannedPackage"/> | 1119 | /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlannedPackage"/> |
985 | /// </summary> | 1120 | /// </summary> |
986 | [Serializable] | 1121 | [Serializable] |
diff --git a/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs b/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs index babd523a..05f96106 100644 --- a/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs +++ b/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs | |||
@@ -182,16 +182,20 @@ namespace WixToolset.Mba.Core | |||
182 | ); | 182 | ); |
183 | 183 | ||
184 | /// <summary> | 184 | /// <summary> |
185 | /// See <see cref="IDefaultBootstrapperApplication.DetectCompatibleMsiPackage"/>. | ||
186 | /// </summary> | ||
187 | [PreserveSig] | ||
188 | [return: MarshalAs(UnmanagedType.I4)] | ||
189 | int OnDetectCompatibleMsiPackage( | ||
190 | [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, | ||
191 | [MarshalAs(UnmanagedType.LPWStr)] string wzCompatiblePackageId, | ||
192 | [MarshalAs(UnmanagedType.LPWStr)] string wzCompatiblePackageVersion, | ||
193 | [MarshalAs(UnmanagedType.Bool)] ref bool fCancel | ||
194 | ); | ||
195 | |||
196 | /// <summary> | ||
185 | /// See <see cref="IDefaultBootstrapperApplication.DetectRelatedMsiPackage"/>. | 197 | /// See <see cref="IDefaultBootstrapperApplication.DetectRelatedMsiPackage"/>. |
186 | /// </summary> | 198 | /// </summary> |
187 | /// <param name="wzPackageId"></param> | ||
188 | /// <param name="wzUpgradeCode"></param> | ||
189 | /// <param name="wzProductCode"></param> | ||
190 | /// <param name="fPerMachine"></param> | ||
191 | /// <param name="wzVersion"></param> | ||
192 | /// <param name="operation"></param> | ||
193 | /// <param name="fCancel"></param> | ||
194 | /// <returns></returns> | ||
195 | [PreserveSig] | 199 | [PreserveSig] |
196 | [return: MarshalAs(UnmanagedType.I4)] | 200 | [return: MarshalAs(UnmanagedType.I4)] |
197 | int OnDetectRelatedMsiPackage( | 201 | int OnDetectRelatedMsiPackage( |
@@ -318,6 +322,32 @@ namespace WixToolset.Mba.Core | |||
318 | ); | 322 | ); |
319 | 323 | ||
320 | /// <summary> | 324 | /// <summary> |
325 | /// See <see cref="IDefaultBootstrapperApplication.PlanCompatibleMsiPackageBegin"/>. | ||
326 | /// </summary> | ||
327 | [PreserveSig] | ||
328 | [return: MarshalAs(UnmanagedType.I4)] | ||
329 | int OnPlanCompatibleMsiPackageBegin( | ||
330 | [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, | ||
331 | [MarshalAs(UnmanagedType.LPWStr)] string wzCompatiblePackageId, | ||
332 | [MarshalAs(UnmanagedType.LPWStr)] string wzCompatiblePackageVersion, | ||
333 | [MarshalAs(UnmanagedType.Bool)] bool fRecommendedRemove, | ||
334 | [MarshalAs(UnmanagedType.Bool)] ref bool fRequestRemove, | ||
335 | [MarshalAs(UnmanagedType.Bool)] ref bool fCancel | ||
336 | ); | ||
337 | |||
338 | /// <summary> | ||
339 | /// See <see cref="IDefaultBootstrapperApplication.PlanCompatibleMsiPackageComplete"/>. | ||
340 | /// </summary> | ||
341 | [PreserveSig] | ||
342 | [return: MarshalAs(UnmanagedType.I4)] | ||
343 | int OnPlanCompatibleMsiPackageComplete( | ||
344 | [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, | ||
345 | [MarshalAs(UnmanagedType.LPWStr)] string wzCompatiblePackageId, | ||
346 | int hrStatus, | ||
347 | [MarshalAs(UnmanagedType.Bool)] bool fRequestedRemove | ||
348 | ); | ||
349 | |||
350 | /// <summary> | ||
321 | /// See <see cref="IDefaultBootstrapperApplication.PlanPatchTarget"/>. | 351 | /// See <see cref="IDefaultBootstrapperApplication.PlanPatchTarget"/>. |
322 | /// </summary> | 352 | /// </summary> |
323 | /// <param name="wzPackageId"></param> | 353 | /// <param name="wzPackageId"></param> |
@@ -388,6 +418,17 @@ namespace WixToolset.Mba.Core | |||
388 | ); | 418 | ); |
389 | 419 | ||
390 | /// <summary> | 420 | /// <summary> |
421 | /// See <see cref="IDefaultBootstrapperApplication.PlannedCompatiblePackage"/>. | ||
422 | /// </summary> | ||
423 | [PreserveSig] | ||
424 | [return: MarshalAs(UnmanagedType.I4)] | ||
425 | int OnPlannedCompatiblePackage( | ||
426 | [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, | ||
427 | [MarshalAs(UnmanagedType.LPWStr)] string wzCompatiblePackageId, | ||
428 | [MarshalAs(UnmanagedType.Bool)] bool fRemove | ||
429 | ); | ||
430 | |||
431 | /// <summary> | ||
391 | /// See <see cref="IDefaultBootstrapperApplication.PlannedPackage"/>. | 432 | /// See <see cref="IDefaultBootstrapperApplication.PlannedPackage"/>. |
392 | /// </summary> | 433 | /// </summary> |
393 | [PreserveSig] | 434 | [PreserveSig] |
diff --git a/src/api/burn/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs b/src/api/burn/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs index e809a965..ce06408e 100644 --- a/src/api/burn/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs +++ b/src/api/burn/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs | |||
@@ -134,6 +134,11 @@ namespace WixToolset.Mba.Core | |||
134 | event EventHandler<DetectBeginEventArgs> DetectBegin; | 134 | event EventHandler<DetectBeginEventArgs> DetectBegin; |
135 | 135 | ||
136 | /// <summary> | 136 | /// <summary> |
137 | /// Fired when a package was not detected but a package using the same provider key was. | ||
138 | /// </summary> | ||
139 | event EventHandler<DetectCompatibleMsiPackageEventArgs> DetectCompatibleMsiPackage; | ||
140 | |||
141 | /// <summary> | ||
137 | /// Fired when the detection phase has completed. | 142 | /// Fired when the detection phase has completed. |
138 | /// </summary> | 143 | /// </summary> |
139 | event EventHandler<DetectCompleteEventArgs> DetectComplete; | 144 | event EventHandler<DetectCompleteEventArgs> DetectComplete; |
@@ -269,6 +274,16 @@ namespace WixToolset.Mba.Core | |||
269 | event EventHandler<PlanBeginEventArgs> PlanBegin; | 274 | event EventHandler<PlanBeginEventArgs> PlanBegin; |
270 | 275 | ||
271 | /// <summary> | 276 | /// <summary> |
277 | /// Fired when the engine plans a new, compatible package using the same provider key. | ||
278 | /// </summary> | ||
279 | event EventHandler<PlanCompatibleMsiPackageBeginEventArgs> PlanCompatibleMsiPackageBegin; | ||
280 | |||
281 | /// <summary> | ||
282 | /// Fired when the engine has completed planning the installation of a specific package. | ||
283 | /// </summary> | ||
284 | event EventHandler<PlanCompatibleMsiPackageCompleteEventArgs> PlanCompatibleMsiPackageComplete; | ||
285 | |||
286 | /// <summary> | ||
272 | /// Fired when the engine has completed planning the installation. | 287 | /// Fired when the engine has completed planning the installation. |
273 | /// </summary> | 288 | /// </summary> |
274 | event EventHandler<PlanCompleteEventArgs> PlanComplete; | 289 | event EventHandler<PlanCompleteEventArgs> PlanComplete; |
@@ -279,6 +294,11 @@ namespace WixToolset.Mba.Core | |||
279 | event EventHandler<PlanForwardCompatibleBundleEventArgs> PlanForwardCompatibleBundle; | 294 | event EventHandler<PlanForwardCompatibleBundleEventArgs> PlanForwardCompatibleBundle; |
280 | 295 | ||
281 | /// <summary> | 296 | /// <summary> |
297 | /// Fired when the engine has completed planning a compatible package. | ||
298 | /// </summary> | ||
299 | event EventHandler<PlannedCompatiblePackageEventArgs> PlannedCompatiblePackage; | ||
300 | |||
301 | /// <summary> | ||
282 | /// Fired when the engine has completed planning a package. | 302 | /// Fired when the engine has completed planning a package. |
283 | /// </summary> | 303 | /// </summary> |
284 | event EventHandler<PlannedPackageEventArgs> PlannedPackage; | 304 | event EventHandler<PlannedPackageEventArgs> PlannedPackage; |
@@ -399,4 +419,4 @@ namespace WixToolset.Mba.Core | |||
399 | /// </summary> | 419 | /// </summary> |
400 | event EventHandler<UnregisterCompleteEventArgs> UnregisterComplete; | 420 | event EventHandler<UnregisterCompleteEventArgs> UnregisterComplete; |
401 | } | 421 | } |
402 | } \ No newline at end of file | 422 | } |