aboutsummaryrefslogtreecommitdiff
path: root/src/api/burn/WixToolset.Mba.Core
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-01-14 21:37:24 -0600
committerSean Hall <r.sean.hall@gmail.com>2022-01-16 10:30:28 -0600
commitda1d1376953ef1c9afb32d5eee02b785e52e372e (patch)
tree0df8550960259d7b13f5cd90f04d21b5576f16b7 /src/api/burn/WixToolset.Mba.Core
parentabe316b80fae80eba54b0b79e76b6362105fa098 (diff)
downloadwix-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')
-rw-r--r--src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs99
-rw-r--r--src/api/burn/WixToolset.Mba.Core/EventArgs.cs135
-rw-r--r--src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs57
-rw-r--r--src/api/burn/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs22
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}