aboutsummaryrefslogtreecommitdiff
path: root/src/api/burn/WixToolset.BootstrapperApplicationApi/EventArgs.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/burn/WixToolset.BootstrapperApplicationApi/EventArgs.cs')
-rw-r--r--src/api/burn/WixToolset.BootstrapperApplicationApi/EventArgs.cs2757
1 files changed, 2757 insertions, 0 deletions
diff --git a/src/api/burn/WixToolset.BootstrapperApplicationApi/EventArgs.cs b/src/api/burn/WixToolset.BootstrapperApplicationApi/EventArgs.cs
new file mode 100644
index 00000000..e1649d43
--- /dev/null
+++ b/src/api/burn/WixToolset.BootstrapperApplicationApi/EventArgs.cs
@@ -0,0 +1,2757 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace WixToolset.BootstrapperApplicationApi
4{
5 using System;
6 using System.Collections.Generic;
7 using System.Collections.ObjectModel;
8 using System.Runtime.InteropServices;
9
10 /// <summary>
11 /// Base class for BA <see cref="EventArgs"/> classes.
12 /// </summary>
13 [Serializable]
14 public abstract class HResultEventArgs : EventArgs
15 {
16 /// <summary>
17 /// This class is for events raised by the engine.
18 /// It is not intended to be instantiated by user code.
19 /// </summary>
20 public HResultEventArgs()
21 {
22 }
23
24 /// <summary>
25 /// Gets or sets the <see cref="HResult"/> of the operation. This is passed back to the engine.
26 /// </summary>
27 public int HResult { get; set; }
28 }
29
30 /// <summary>
31 /// Base class for cancellable BA <see cref="EventArgs"/> classes.
32 /// </summary>
33 [Serializable]
34 public abstract class CancellableHResultEventArgs : HResultEventArgs
35 {
36 /// <summary>
37 /// This class is for events raised by the engine.
38 /// It is not intended to be instantiated by user code.
39 /// </summary>
40 public CancellableHResultEventArgs(bool cancelRecommendation)
41 {
42 this.Cancel = cancelRecommendation;
43 }
44
45 /// <summary>
46 /// Gets or sets whether to cancel the operation. This is passed back to the engine.
47 /// </summary>
48 public bool Cancel { get; set; }
49 }
50
51 /// <summary>
52 /// Base class for <see cref="EventArgs"/> classes that must return a <see cref="Result"/>.
53 /// </summary>
54 [Serializable]
55 public abstract class ResultEventArgs : HResultEventArgs
56 {
57 /// <summary>
58 /// This class is for events raised by the engine.
59 /// It is not intended to be instantiated by user code.
60 /// </summary>
61 public ResultEventArgs(Result recommendation, Result result)
62 {
63 this.Recommendation = recommendation;
64 this.Result = result;
65 }
66
67 /// <summary>
68 /// Gets the recommended <see cref="Result"/> of the operation.
69 /// </summary>
70 public Result Recommendation { get; private set; }
71
72 /// <summary>
73 /// Gets or sets the <see cref="Result"/> of the operation. This is passed back to the engine.
74 /// </summary>
75 public Result Result { get; set; }
76 }
77
78 /// <summary>
79 /// Base class for <see cref="EventArgs"/> classes that receive status from the engine.
80 /// </summary>
81 [Serializable]
82 public abstract class StatusEventArgs : HResultEventArgs
83 {
84 /// <summary>
85 /// This class is for events raised by the engine.
86 /// It is not intended to be instantiated by user code.
87 /// </summary>
88 public StatusEventArgs(int hrStatus)
89 {
90 this.Status = hrStatus;
91 }
92
93 /// <summary>
94 /// Gets the return code of the operation.
95 /// </summary>
96 public int Status { get; private set; }
97 }
98
99 /// <summary>
100 /// Base class for <see cref="EventArgs"/> classes that receive status from the engine and return an action.
101 /// </summary>
102 public abstract class ActionEventArgs<T> : StatusEventArgs
103 {
104 /// <summary>
105 /// This class is for events raised by the engine.
106 /// It is not intended to be instantiated by user code.
107 /// </summary>
108 public ActionEventArgs(int hrStatus, T recommendation, T action)
109 : base(hrStatus)
110 {
111 this.Recommendation = recommendation;
112 this.Action = action;
113 }
114
115 /// <summary>
116 /// Gets the recommended action from the engine.
117 /// </summary>
118 public T Recommendation { get; private set; }
119
120 /// <summary>
121 /// Gets or sets the action to be performed. This is passed back to the engine.
122 /// </summary>
123 public T Action { get; set; }
124 }
125
126 /// <summary>
127 /// Base class for cancellable action BA <see cref="EventArgs"/> classes.
128 /// </summary>
129 [Serializable]
130 public abstract class CancellableActionEventArgs<T> : CancellableHResultEventArgs
131 {
132 /// <summary>
133 /// This class is for events raised by the engine.
134 /// It is not intended to be instantiated by user code.
135 /// </summary>
136 public CancellableActionEventArgs(bool cancelRecommendation, T recommendation, T action)
137 : base(cancelRecommendation)
138 {
139 this.Recommendation = recommendation;
140 this.Action = action;
141 }
142
143 /// <summary>
144 /// Gets the recommended action from the engine.
145 /// </summary>
146 public T Recommendation { get; private set; }
147
148 /// <summary>
149 /// Gets or sets the action to be performed. This is passed back to the engine.
150 /// </summary>
151 public T Action { get; set; }
152 }
153
154 /// <summary>
155 /// Base class for cache progress events.
156 /// </summary>
157 [Serializable]
158 public abstract class CacheProgressBaseEventArgs : CancellableHResultEventArgs
159 {
160 /// <summary>
161 /// This class is for events raised by the engine.
162 /// It is not intended to be instantiated by user code.
163 /// </summary>
164 public CacheProgressBaseEventArgs(string packageOrContainerId, string payloadId, long progress, long total, int overallPercentage, bool cancelRecommendation)
165 : base(cancelRecommendation)
166 {
167 this.PackageOrContainerId = packageOrContainerId;
168 this.PayloadId = payloadId;
169 this.Progress = progress;
170 this.Total = total;
171 this.OverallPercentage = overallPercentage;
172 }
173
174 /// <summary>
175 /// Gets the identifier of the container or package.
176 /// </summary>
177 public string PackageOrContainerId { get; private set; }
178
179 /// <summary>
180 /// Gets the identifier of the payload.
181 /// </summary>
182 public string PayloadId { get; private set; }
183
184 /// <summary>
185 /// Gets the number of bytes cached thus far.
186 /// </summary>
187 public long Progress { get; private set; }
188
189 /// <summary>
190 /// Gets the total bytes to cache.
191 /// </summary>
192 public long Total { get; private set; }
193
194 /// <summary>
195 /// Gets the overall percentage of progress of caching.
196 /// </summary>
197 public int OverallPercentage { get; private set; }
198 }
199
200 /// <summary>
201 /// Event arguments for <see cref="IDefaultBootstrapperApplication.Create"/>.
202 /// </summary>
203 [Serializable]
204 public class CreateEventArgs : HResultEventArgs
205 {
206 /// <summary>
207 /// This class is for events raised by the engine.
208 /// It is not intended to be instantiated by user code.
209 /// </summary>
210 public CreateEventArgs(IEngine engine, IBootstrapperCommand command)
211 {
212 this.Engine = engine;
213 this.Command = command;
214 }
215
216 /// <summary>
217 /// Engine running the application.
218 /// </summary>
219 public IEngine Engine { get; }
220
221 /// <summary>
222 /// Command line arguments.
223 /// </summary>
224 public IBootstrapperCommand Command { get; }
225 }
226
227 /// <summary>
228 /// Event arguments for <see cref="IDefaultBootstrapperApplication.Destroy"/>.
229 /// </summary>
230 [Serializable]
231 public class DestroyEventArgs : HResultEventArgs
232 {
233 /// <summary>
234 /// This class is for events raised by the engine.
235 /// It is not intended to be instantiated by user code.
236 /// </summary>
237 public DestroyEventArgs(bool reload)
238 {
239 this.Reload = reload;
240 }
241
242 /// <summary>
243 /// Bootstrapper application is being reloaded.
244 /// </summary>
245 public bool Reload { get; }
246 }
247
248 /// <summary>
249 /// Event arguments for <see cref="IDefaultBootstrapperApplication.Startup"/>.
250 /// </summary>
251 [Serializable]
252 public class StartupEventArgs : HResultEventArgs
253 {
254 /// <summary>
255 /// This class is for events raised by the engine.
256 /// It is not intended to be instantiated by user code.
257 /// </summary>
258 public StartupEventArgs()
259 {
260 }
261 }
262
263 /// <summary>
264 /// Event arguments for <see cref="IDefaultBootstrapperApplication.Shutdown"/>.
265 /// </summary>
266 [Serializable]
267 public class ShutdownEventArgs : HResultEventArgs
268 {
269 /// <summary>
270 /// This class is for events raised by the engine.
271 /// It is not intended to be instantiated by user code.
272 /// </summary>
273 public ShutdownEventArgs(BOOTSTRAPPER_SHUTDOWN_ACTION action)
274 {
275 this.Action = action;
276 }
277
278 /// <summary>
279 /// The action for OnShutdown.
280 /// </summary>
281 public BOOTSTRAPPER_SHUTDOWN_ACTION Action { get; set; }
282 }
283
284 /// <summary>
285 /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectBegin"/>
286 /// </summary>
287 [Serializable]
288 public class DetectBeginEventArgs : CancellableHResultEventArgs
289 {
290 /// <summary>
291 /// This class is for events raised by the engine.
292 /// It is not intended to be instantiated by user code.
293 /// </summary>
294 public DetectBeginEventArgs(bool cached, RegistrationType registrationType, int packageCount, bool cancelRecommendation)
295 : base(cancelRecommendation)
296 {
297 this.Cached = cached;
298 this.RegistrationType = registrationType;
299 this.PackageCount = packageCount;
300 }
301
302 /// <summary>
303 /// Gets whether the bundle is cached.
304 /// </summary>
305 public bool Cached { get; private set; }
306
307 /// <summary>
308 /// Gets the bundle's registration state.
309 /// </summary>
310 public RegistrationType RegistrationType { get; private set; }
311
312 /// <summary>
313 /// Gets the number of packages to detect.
314 /// </summary>
315 public int PackageCount { get; private set; }
316 }
317
318 /// <summary>
319 /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectForwardCompatibleBundle"/>
320 /// </summary>
321 [Serializable]
322 public class DetectForwardCompatibleBundleEventArgs : CancellableHResultEventArgs
323 {
324 /// <summary>
325 /// This class is for events raised by the engine.
326 /// It is not intended to be instantiated by user code.
327 /// </summary>
328 public DetectForwardCompatibleBundleEventArgs(string bundleId, RelationType relationType, string bundleTag, bool perMachine, string version, bool missingFromCache, bool cancelRecommendation)
329 : base(cancelRecommendation)
330 {
331 this.BundleId = bundleId;
332 this.RelationType = relationType;
333 this.BundleTag = bundleTag;
334 this.PerMachine = perMachine;
335 this.Version = version;
336 this.MissingFromCache = missingFromCache;
337 }
338
339 /// <summary>
340 /// Gets the identity of the forward compatible bundle detected.
341 /// </summary>
342 public string BundleId { get; private set; }
343
344 /// <summary>
345 /// Gets the relationship type of the forward compatible bundle.
346 /// </summary>
347 public RelationType RelationType { get; private set; }
348
349 /// <summary>
350 /// Gets the tag of the forward compatible bundle.
351 /// </summary>
352 public string BundleTag { get; private set; }
353
354 /// <summary>
355 /// Gets whether the detected forward compatible bundle is per machine.
356 /// </summary>
357 public bool PerMachine { get; private set; }
358
359 /// <summary>
360 /// Gets the version of the forward compatible bundle detected.
361 /// </summary>
362 public string Version { get; private set; }
363
364 /// <summary>
365 /// Whether the forward compatible bundle is missing from the package cache.
366 /// </summary>
367 public bool MissingFromCache { get; set; }
368 }
369
370 /// <summary>
371 /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectUpdateBegin"/>
372 /// </summary>
373 [Serializable]
374 public class DetectUpdateBeginEventArgs : CancellableHResultEventArgs
375 {
376 /// <summary>
377 /// This class is for events raised by the engine.
378 /// It is not intended to be instantiated by user code.
379 /// </summary>
380 public DetectUpdateBeginEventArgs(string updateLocation, bool cancelRecommendation, bool skipRecommendation)
381 : base(cancelRecommendation)
382 {
383 this.UpdateLocation = updateLocation;
384 this.Skip = skipRecommendation;
385 }
386
387 /// <summary>
388 /// Gets the identity of the bundle to detect.
389 /// </summary>
390 public string UpdateLocation { get; private set; }
391
392 /// <summary>
393 /// Whether to skip checking for bundle updates.
394 /// </summary>
395 public bool Skip { get; set; }
396 }
397
398 /// <summary>
399 /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectUpdate"/>
400 /// </summary>
401 [Serializable]
402 public class DetectUpdateEventArgs : CancellableHResultEventArgs
403 {
404 /// <summary>
405 /// This class is for events raised by the engine.
406 /// It is not intended to be instantiated by user code.
407 /// </summary>
408 public DetectUpdateEventArgs(string updateLocation, long size, string hash, UpdateHashType hashAlgorithm, string version, string title, string summary, string contentType, string content, bool cancelRecommendation, bool stopRecommendation)
409 : base(cancelRecommendation)
410 {
411 this.UpdateLocation = updateLocation;
412 this.Size = size;
413 this.Hash = hash;
414 this.HashAlgorithm = hashAlgorithm;
415 this.Version = version;
416 this.Title = title;
417 this.Summary = summary;
418 this.ContentType = contentType;
419 this.Content = content;
420 this.StopProcessingUpdates = stopRecommendation;
421 }
422
423 /// <summary>
424 /// Gets the identity of the bundle to detect.
425 /// </summary>
426 public string UpdateLocation { get; private set; }
427
428 /// <summary>
429 /// Gets the size of the updated bundle.
430 /// </summary>
431 public long Size { get; private set; }
432
433 /// <summary>
434 /// File hash of the updated bundle.
435 /// </summary>
436 public string Hash { get; }
437
438 /// <summary>
439 /// The algorithm of the updated bundle's hash.
440 /// </summary>
441 public UpdateHashType HashAlgorithm { get; }
442
443 /// <summary>
444 /// Gets the version of the updated bundle.
445 /// </summary>
446 public string Version { get; private set; }
447
448 /// <summary>
449 /// Gets the title of the the updated bundle.
450 /// </summary>
451 public string Title { get; private set; }
452
453 /// <summary>
454 /// Gets the summary of the updated bundle.
455 /// </summary>
456 public string Summary { get; private set; }
457
458 /// <summary>
459 /// Gets the content type of the content of the updated bundle.
460 /// </summary>
461 public string ContentType { get; private set; }
462
463 /// <summary>
464 /// Gets the content of the updated bundle.
465 /// </summary>
466 public string Content { get; private set; }
467
468 /// <summary>
469 /// Tells the engine to stop giving the rest of the updates found in the feed.
470 /// </summary>
471 public bool StopProcessingUpdates { get; set; }
472 }
473
474 /// <summary>
475 /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectUpdateComplete"/>
476 /// </summary>
477 [Serializable]
478 public class DetectUpdateCompleteEventArgs : StatusEventArgs
479 {
480 /// <summary>
481 /// This class is for events raised by the engine.
482 /// It is not intended to be instantiated by user code.
483 /// </summary>
484 public DetectUpdateCompleteEventArgs(int hrStatus, bool ignoreRecommendation)
485 : base(hrStatus)
486 {
487 this.IgnoreError = ignoreRecommendation;
488 }
489
490 /// <summary>
491 /// If Status is an error, then set this to true to ignore it and continue detecting.
492 /// </summary>
493 public bool IgnoreError { get; set; }
494 }
495
496 /// <summary>
497 /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectRelatedBundle"/>
498 /// </summary>
499 [Serializable]
500 public class DetectRelatedBundleEventArgs : CancellableHResultEventArgs
501 {
502 /// <summary>
503 /// This class is for events raised by the engine.
504 /// It is not intended to be instantiated by user code.
505 /// </summary>
506 public DetectRelatedBundleEventArgs(string productCode, RelationType relationType, string bundleTag, bool perMachine, string version, bool missingFromCache, bool cancelRecommendation)
507 : base(cancelRecommendation)
508 {
509 this.ProductCode = productCode;
510 this.RelationType = relationType;
511 this.BundleTag = bundleTag;
512 this.PerMachine = perMachine;
513 this.Version = version;
514 this.MissingFromCache = missingFromCache;
515 }
516
517 /// <summary>
518 /// Gets the identity of the related bundle detected.
519 /// </summary>
520 public string ProductCode { get; private set; }
521
522 /// <summary>
523 /// Gets the relationship type of the related bundle.
524 /// </summary>
525 public RelationType RelationType { get; private set; }
526
527 /// <summary>
528 /// Gets the tag of the related package bundle.
529 /// </summary>
530 public string BundleTag { get; private set; }
531
532 /// <summary>
533 /// Gets whether the detected bundle is per machine.
534 /// </summary>
535 public bool PerMachine { get; private set; }
536
537 /// <summary>
538 /// Gets the version of the related bundle detected.
539 /// </summary>
540 public string Version { get; private set; }
541
542 /// <summary>
543 /// Whether the related bundle is missing from the package cache.
544 /// </summary>
545 public bool MissingFromCache { get; set; }
546 }
547
548 /// <summary>
549 /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectPackageBegin"/>
550 /// </summary>
551 [Serializable]
552 public class DetectPackageBeginEventArgs : CancellableHResultEventArgs
553 {
554 /// <summary>
555 /// This class is for events raised by the engine.
556 /// It is not intended to be instantiated by user code.
557 /// </summary>
558 public DetectPackageBeginEventArgs(string packageId, bool cancelRecommendation)
559 : base(cancelRecommendation)
560 {
561 this.PackageId = packageId;
562 }
563
564 /// <summary>
565 /// Gets the identity of the package to detect.
566 /// </summary>
567 public string PackageId { get; private set; }
568 }
569
570 /// <summary>
571 /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectCompatibleMsiPackage"/>
572 /// </summary>
573 [Serializable]
574 public class DetectCompatibleMsiPackageEventArgs : CancellableHResultEventArgs
575 {
576 /// <summary>
577 /// This class is for events raised by the engine.
578 /// It is not intended to be instantiated by user code.
579 /// </summary>
580 public DetectCompatibleMsiPackageEventArgs(string packageId, string compatiblePackageId, string compatiblePackageVersion, bool cancelRecommendation)
581 : base(cancelRecommendation)
582 {
583 this.PackageId = packageId;
584 this.CompatiblePackageId = compatiblePackageId;
585 this.CompatiblePackageVersion = compatiblePackageVersion;
586 }
587
588 /// <summary>
589 /// Gets the identity of the package that was not detected.
590 /// </summary>
591 public string PackageId { get; private set; }
592
593 /// <summary>
594 /// Gets the identity of the compatible package that was detected.
595 /// </summary>
596 public string CompatiblePackageId { get; private set; }
597
598 /// <summary>
599 /// Gets the version of the compatible package that was detected.
600 /// </summary>
601 public string CompatiblePackageVersion { get; private set; }
602 }
603
604 /// <summary>
605 /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectRelatedMsiPackage"/>
606 /// </summary>
607 [Serializable]
608 public class DetectRelatedMsiPackageEventArgs : CancellableHResultEventArgs
609 {
610 /// <summary>
611 /// This class is for events raised by the engine.
612 /// It is not intended to be instantiated by user code.
613 /// </summary>
614 public DetectRelatedMsiPackageEventArgs(string packageId, string upgradeCode, string productCode, bool perMachine, string version, RelatedOperation operation, bool cancelRecommendation)
615 : base(cancelRecommendation)
616 {
617 this.PackageId = packageId;
618 this.UpgradeCode = upgradeCode;
619 this.ProductCode = productCode;
620 this.PerMachine = perMachine;
621 this.Version = version;
622 this.Operation = operation;
623 }
624
625 /// <summary>
626 /// Gets the identity of the product's package detected.
627 /// </summary>
628 public string PackageId { get; private set; }
629
630 /// <summary>
631 /// Gets the upgrade code of the related package detected.
632 /// </summary>
633 public string UpgradeCode { get; private set; }
634
635 /// <summary>
636 /// Gets the identity of the related package detected.
637 /// </summary>
638 public string ProductCode { get; private set; }
639
640 /// <summary>
641 /// Gets whether the detected package is per machine.
642 /// </summary>
643 public bool PerMachine { get; private set; }
644
645 /// <summary>
646 /// Gets the version of the related package detected.
647 /// </summary>
648 public string Version { get; private set; }
649
650 /// <summary>
651 /// Gets the operation that will be taken on the detected package.
652 /// </summary>
653 public RelatedOperation Operation { get; private set; }
654 }
655
656 /// <summary>
657 /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectPatchTarget"/>
658 /// </summary>
659 public class DetectPatchTargetEventArgs : CancellableHResultEventArgs
660 {
661 /// <summary>
662 /// This class is for events raised by the engine.
663 /// It is not intended to be instantiated by user code.
664 /// </summary>
665 public DetectPatchTargetEventArgs(string packageId, string productCode, PackageState state, bool cancelRecommendation)
666 : base(cancelRecommendation)
667 {
668 this.PackageId = packageId;
669 this.ProductCode = productCode;
670 this.State = state;
671 }
672
673 /// <summary>
674 /// Gets the identity of the patch's package.
675 /// </summary>
676 public string PackageId { get; private set; }
677
678 /// <summary>
679 /// Gets the product code of the target.
680 /// </summary>
681 public string ProductCode { get; private set; }
682
683 /// <summary>
684 /// Gets the detected patch state for the target.
685 /// </summary>
686 public PackageState State { get; private set; }
687 }
688
689 /// <summary>
690 /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectMsiFeature"/>
691 /// </summary>
692 public class DetectMsiFeatureEventArgs : CancellableHResultEventArgs
693 {
694 /// <summary>
695 /// This class is for events raised by the engine.
696 /// It is not intended to be instantiated by user code.
697 /// </summary>
698 public DetectMsiFeatureEventArgs(string packageId, string featureId, FeatureState state, bool cancelRecommendation)
699 : base(cancelRecommendation)
700 {
701 this.PackageId = packageId;
702 this.FeatureId = featureId;
703 this.State = state;
704 }
705
706 /// <summary>
707 /// Gets the identity of the feature's package detected.
708 /// </summary>
709 public string PackageId { get; private set; }
710
711 /// <summary>
712 /// Gets the identity of the feature detected.
713 /// </summary>
714 public string FeatureId { get; private set; }
715
716 /// <summary>
717 /// Gets the detected feature state.
718 /// </summary>
719 public FeatureState State { get; private set; }
720 }
721
722 /// <summary>
723 /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectPackageComplete"/>.
724 /// </summary>
725 [Serializable]
726 public class DetectPackageCompleteEventArgs : StatusEventArgs
727 {
728 /// <summary>
729 /// This class is for events raised by the engine.
730 /// It is not intended to be instantiated by user code.
731 /// </summary>
732 public DetectPackageCompleteEventArgs(string packageId, int hrStatus, PackageState state, bool cached)
733 : base(hrStatus)
734 {
735 this.PackageId = packageId;
736 this.State = state;
737 this.Cached = cached;
738 }
739
740 /// <summary>
741 /// Gets the identity of the package detected.
742 /// </summary>
743 public string PackageId { get; private set; }
744
745 /// <summary>
746 /// Gets the state of the specified package.
747 /// </summary>
748 public PackageState State { get; private set; }
749
750 /// <summary>
751 /// Gets whether any part of the package is cached.
752 /// </summary>
753 public bool Cached { get; private set; }
754 }
755
756 /// <summary>
757 /// Event arguments used when the detection phase has completed.
758 /// </summary>
759 [Serializable]
760 public class DetectCompleteEventArgs : StatusEventArgs
761 {
762 /// <summary>
763 /// This class is for events raised by the engine.
764 /// It is not intended to be instantiated by user code.
765 /// </summary>
766 public DetectCompleteEventArgs(int hrStatus, bool eligibleForCleanup)
767 : base(hrStatus)
768 {
769 this.EligibleForCleanup = eligibleForCleanup;
770 }
771
772 /// <summary>
773 /// Indicates whether the engine will uninstall the bundle if shutdown without running Apply.
774 /// </summary>
775 public bool EligibleForCleanup { get; private set; }
776 }
777
778 /// <summary>
779 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanBegin"/>
780 /// </summary>
781 [Serializable]
782 public class PlanBeginEventArgs : CancellableHResultEventArgs
783 {
784 /// <summary>
785 /// This class is for events raised by the engine.
786 /// It is not intended to be instantiated by user code.
787 /// </summary>
788 public PlanBeginEventArgs(int packageCount, bool cancelRecommendation)
789 : base(cancelRecommendation)
790 {
791 this.PackageCount = packageCount;
792 }
793
794 /// <summary>
795 /// Gets the number of packages to plan for.
796 /// </summary>
797 public int PackageCount { get; private set; }
798 }
799
800 /// <summary>
801 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanRelatedBundle"/>
802 /// </summary>
803 [Serializable]
804 public class PlanRelatedBundleEventArgs : CancellableHResultEventArgs
805 {
806 /// <summary>
807 /// This class is for events raised by the engine.
808 /// It is not intended to be instantiated by user code.
809 /// </summary>
810 public PlanRelatedBundleEventArgs(string bundleId, RequestState recommendedState, RequestState state, bool cancelRecommendation)
811 : base(cancelRecommendation)
812 {
813 this.BundleId = bundleId;
814 this.RecommendedState = recommendedState;
815 this.State = state;
816 }
817
818 /// <summary>
819 /// Gets the identity of the bundle to plan for.
820 /// </summary>
821 public string BundleId { get; private set; }
822
823 /// <summary>
824 /// Gets the recommended requested state for the bundle.
825 /// </summary>
826 public RequestState RecommendedState { get; private set; }
827
828 /// <summary>
829 /// Gets or sets the requested state for the bundle.
830 /// </summary>
831 public RequestState State { get; set; }
832 }
833
834 /// <summary>
835 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanRelatedBundleType"/>
836 /// </summary>
837 [Serializable]
838 public class PlanRelatedBundleTypeEventArgs : CancellableHResultEventArgs
839 {
840 /// <summary>
841 /// This class is for events raised by the engine.
842 /// It is not intended to be instantiated by user code.
843 /// </summary>
844 public PlanRelatedBundleTypeEventArgs(string bundleId, RelatedBundlePlanType recommendedType, RelatedBundlePlanType type, bool cancelRecommendation)
845 : base(cancelRecommendation)
846 {
847 this.BundleId = bundleId;
848 this.RecommendedType = recommendedType;
849 this.Type = type;
850 }
851
852 /// <summary>
853 /// Gets the identity of the bundle to plan for.
854 /// </summary>
855 public string BundleId { get; private set; }
856
857 /// <summary>
858 /// Gets the recommended plan type for the bundle.
859 /// </summary>
860 public RelatedBundlePlanType RecommendedType { get; private set; }
861
862 /// <summary>
863 /// Gets or sets the plan type for the bundle.
864 /// </summary>
865 public RelatedBundlePlanType Type { get; set; }
866 }
867
868 /// <summary>
869 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanPackageBegin"/>
870 /// </summary>
871 [Serializable]
872 public class PlanPackageBeginEventArgs : CancellableHResultEventArgs
873 {
874 /// <summary>
875 /// This class is for events raised by the engine.
876 /// It is not intended to be instantiated by user code.
877 /// </summary>
878 public PlanPackageBeginEventArgs(string packageId, PackageState currentState, bool cached, BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition, BOOTSTRAPPER_PACKAGE_CONDITION_RESULT repairCondition, RequestState recommendedState, BOOTSTRAPPER_CACHE_TYPE recommendedCacheType, RequestState state, BOOTSTRAPPER_CACHE_TYPE cacheType, bool cancelRecommendation)
879 : base(cancelRecommendation)
880 {
881 this.PackageId = packageId;
882 this.CurrentState = currentState;
883 this.Cached = cached;
884 this.InstallCondition = installCondition;
885 this.RepairCondition = repairCondition;
886 this.RecommendedState = recommendedState;
887 this.RecommendedCacheType = recommendedCacheType;
888 this.State = state;
889 this.CacheType = cacheType;
890 }
891
892 /// <summary>
893 /// Gets the identity of the package to plan for.
894 /// </summary>
895 public string PackageId { get; private set; }
896
897 /// <summary>
898 /// Gets the current state of the package.
899 /// </summary>
900 public PackageState CurrentState { get; private set; }
901
902 /// <summary>
903 /// Gets whether any part of the package is cached.
904 /// </summary>
905 public bool Cached { get; private set; }
906
907 /// <summary>
908 /// Gets the evaluated result of the package's install condition.
909 /// </summary>
910 public BOOTSTRAPPER_PACKAGE_CONDITION_RESULT InstallCondition { get; private set; }
911
912 /// <summary>
913 /// Gets the evaluated result of the package's repair condition.
914 /// </summary>
915 public BOOTSTRAPPER_PACKAGE_CONDITION_RESULT RepairCondition { get; private set; }
916
917 /// <summary>
918 /// Gets the recommended requested state for the package.
919 /// </summary>
920 public RequestState RecommendedState { get; private set; }
921
922 /// <summary>
923 /// The authored cache type of the package.
924 /// </summary>
925 public BOOTSTRAPPER_CACHE_TYPE RecommendedCacheType { get; private set; }
926
927 /// <summary>
928 /// Gets or sets the requested state for the package.
929 /// </summary>
930 public RequestState State { get; set; }
931
932 /// <summary>
933 /// Gets or sets the requested cache type for the package.
934 /// </summary>
935 public BOOTSTRAPPER_CACHE_TYPE CacheType { get; set; }
936 }
937
938 /// <summary>
939 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanCompatibleMsiPackageBegin"/>
940 /// </summary>
941 [Serializable]
942 public class PlanCompatibleMsiPackageBeginEventArgs : CancellableHResultEventArgs
943 {
944 /// <summary>
945 /// This class is for events raised by the engine.
946 /// It is not intended to be instantiated by user code.
947 /// </summary>
948 public PlanCompatibleMsiPackageBeginEventArgs(string packageId, string compatiblePackageId, string compatiblePackageVersion, bool recommendedRemove, bool requestRemove, bool cancelRecommendation)
949 : base(cancelRecommendation)
950 {
951 this.PackageId = packageId;
952 this.CompatiblePackageId = compatiblePackageId;
953 this.CompatiblePackageVersion = compatiblePackageVersion;
954 this.RecommendedRemove = recommendedRemove;
955 this.RequestRemove = requestRemove;
956 }
957
958 /// <summary>
959 /// Gets the identity of the package that was not detected.
960 /// </summary>
961 public string PackageId { get; private set; }
962
963 /// <summary>
964 /// Gets the identity of the compatible package detected.
965 /// </summary>
966 public string CompatiblePackageId { get; private set; }
967
968 /// <summary>
969 /// Gets the version of the compatible package detected.
970 /// </summary>
971 public string CompatiblePackageVersion { get; private set; }
972
973 /// <summary>
974 /// Gets the recommended state to use for the compatible package for planning.
975 /// </summary>
976 public bool RecommendedRemove { get; private set; }
977
978 /// <summary>
979 /// Gets or sets whether to uninstall the compatible package.
980 /// </summary>
981 public bool RequestRemove { get; set; }
982 }
983
984 /// <summary>
985 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanCompatibleMsiPackageComplete"/>
986 /// </summary>
987 [Serializable]
988 public class PlanCompatibleMsiPackageCompleteEventArgs : StatusEventArgs
989 {
990 /// <summary>
991 /// This class is for events raised by the engine.
992 /// It is not intended to be instantiated by user code.
993 /// </summary>
994 public PlanCompatibleMsiPackageCompleteEventArgs(string packageId, string compatiblePackageId, int hrStatus, bool requestedRemove)
995 : base(hrStatus)
996 {
997 this.PackageId = packageId;
998 this.CompatiblePackageId = compatiblePackageId;
999 this.RequestedRemove = requestedRemove;
1000 }
1001
1002 /// <summary>
1003 /// Gets the identity of the package planned for.
1004 /// </summary>
1005 public string PackageId { get; private set; }
1006
1007 /// <summary>
1008 /// Gets the identity of the compatible package detected.
1009 /// </summary>
1010 public string CompatiblePackageId { get; private set; }
1011
1012 /// <summary>
1013 /// Gets the requested state of the package.
1014 /// </summary>
1015 public bool RequestedRemove { get; private set; }
1016 }
1017
1018 /// <summary>
1019 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanRollbackBoundary"/>
1020 /// </summary>
1021 [Serializable]
1022 public class PlanRollbackBoundaryEventArgs : CancellableHResultEventArgs
1023 {
1024 /// <summary>
1025 /// This class is for events raised by the engine.
1026 /// It is not intended to be instantiated by user code.
1027 /// </summary>
1028 public PlanRollbackBoundaryEventArgs(string rollbackBoundaryId, bool recommendedTransaction, bool transaction, bool cancelRecommendation)
1029 : base(cancelRecommendation)
1030 {
1031 this.RollbackBoundaryId = rollbackBoundaryId;
1032 this.RecommendedTransaction = recommendedTransaction;
1033 this.Transaction = transaction;
1034 }
1035
1036 /// <summary>
1037 /// Gets the identity of the rollback boundary to plan for.
1038 /// </summary>
1039 public string RollbackBoundaryId { get; private set; }
1040
1041 /// <summary>
1042 /// Whether or not the rollback boundary was authored to use an MSI transaction.
1043 /// </summary>
1044 public bool RecommendedTransaction { get; private set; }
1045
1046 /// <summary>
1047 /// Whether or not an MSI transaction will be used in the rollback boundary.
1048 /// If <see cref="RecommendedTransaction"/> is false, setting the value to true has no effect.
1049 /// If <see cref="RecommendedTransaction"/> is true, setting the value to false will cause the packages inside this rollback boundary to be executed without a wrapping MSI transaction.
1050 /// </summary>
1051 public bool Transaction { get; set; }
1052 }
1053
1054 /// <summary>
1055 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanPatchTarget"/>
1056 /// </summary>
1057 [Serializable]
1058 public class PlanPatchTargetEventArgs : CancellableHResultEventArgs
1059 {
1060 /// <summary>
1061 /// This class is for events raised by the engine.
1062 /// It is not intended to be instantiated by user code.
1063 /// </summary>
1064 public PlanPatchTargetEventArgs(string packageId, string productCode, RequestState recommendedState, RequestState state, bool cancelRecommendation)
1065 : base(cancelRecommendation)
1066 {
1067 this.PackageId = packageId;
1068 this.ProductCode = productCode;
1069 this.RecommendedState = recommendedState;
1070 this.State = state;
1071 }
1072
1073 /// <summary>
1074 /// Gets the identity of the patch's package.
1075 /// </summary>
1076 public string PackageId { get; private set; }
1077
1078 /// <summary>
1079 /// Gets the product code of the target.
1080 /// </summary>
1081 public string ProductCode { get; private set; }
1082
1083 /// <summary>
1084 /// Gets the recommended state of the patch to use by planning for the target.
1085 /// </summary>
1086 public RequestState RecommendedState { get; private set; }
1087
1088 /// <summary>
1089 /// Gets or sets the state of the patch to use by planning for the target.
1090 /// </summary>
1091 public RequestState State { get; set; }
1092 }
1093
1094 /// <summary>
1095 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanMsiFeature"/>
1096 /// </summary>
1097 [Serializable]
1098 public class PlanMsiFeatureEventArgs : CancellableHResultEventArgs
1099 {
1100 /// <summary>
1101 /// This class is for events raised by the engine.
1102 /// It is not intended to be instantiated by user code.
1103 /// </summary>
1104 public PlanMsiFeatureEventArgs(string packageId, string featureId, FeatureState recommendedState, FeatureState state, bool cancelRecommendation)
1105 : base(cancelRecommendation)
1106 {
1107 this.PackageId = packageId;
1108 this.FeatureId = featureId;
1109 this.RecommendedState = recommendedState;
1110 this.State = state;
1111 }
1112
1113 /// <summary>
1114 /// Gets the identity of the feature's package to plan.
1115 /// </summary>
1116 public string PackageId { get; private set; }
1117
1118 /// <summary>
1119 /// Gets the identity of the feature to plan.
1120 /// </summary>
1121 public string FeatureId { get; private set; }
1122
1123 /// <summary>
1124 /// Gets the recommended feature state to use by planning.
1125 /// </summary>
1126 public FeatureState RecommendedState { get; private set; }
1127
1128 /// <summary>
1129 /// Gets or sets the feature state to use by planning.
1130 /// </summary>
1131 public FeatureState State { get; set; }
1132 }
1133
1134 /// <summary>
1135 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanMsiPackage"/>
1136 /// </summary>
1137 [Serializable]
1138 public class PlanMsiPackageEventArgs : CancellableHResultEventArgs
1139 {
1140 /// <summary>
1141 /// This class is for events raised by the engine.
1142 /// It is not intended to be instantiated by user code.
1143 /// </summary>
1144 public PlanMsiPackageEventArgs(string packageId, bool shouldExecute, ActionState action, BOOTSTRAPPER_MSI_FILE_VERSIONING recommendedFileVersioning, bool cancelRecommendation, BURN_MSI_PROPERTY actionMsiProperty, INSTALLUILEVEL uiLevel, bool disableExternalUiHandler, BOOTSTRAPPER_MSI_FILE_VERSIONING fileVersioning)
1145 : base(cancelRecommendation)
1146 {
1147 this.PackageId = packageId;
1148 this.ShouldExecute = shouldExecute;
1149 this.Action = action;
1150 this.RecommendedFileVersioning = recommendedFileVersioning;
1151 this.ActionMsiProperty = actionMsiProperty;
1152 this.UiLevel = uiLevel;
1153 this.DisableExternalUiHandler = disableExternalUiHandler;
1154 this.FileVersioning = fileVersioning;
1155 }
1156
1157 /// <summary>
1158 /// Gets identity of the package planned for.
1159 /// </summary>
1160 public string PackageId { get; private set; }
1161
1162 /// <summary>
1163 /// Gets whether the package is planned to execute or roll back.
1164 /// </summary>
1165 public bool ShouldExecute { get; private set; }
1166
1167 /// <summary>
1168 /// Gets the action planned for the package.
1169 /// </summary>
1170 public ActionState Action { get; private set; }
1171
1172 /// <summary>
1173 /// Gets the recommended file versioning for the package.
1174 /// </summary>
1175 public BOOTSTRAPPER_MSI_FILE_VERSIONING RecommendedFileVersioning { get; private set; }
1176
1177 /// <summary>
1178 /// Gets or sets the requested MSI property to add.
1179 /// </summary>
1180 public BURN_MSI_PROPERTY ActionMsiProperty { get; set; }
1181
1182 /// <summary>
1183 /// Gets or sets the requested internal UI level.
1184 /// </summary>
1185 public INSTALLUILEVEL UiLevel { get; set; }
1186
1187 /// <summary>
1188 /// Gets or sets whether Burn is requested to set up an external UI handler.
1189 /// </summary>
1190 public bool DisableExternalUiHandler { get; set; }
1191
1192 /// <summary>
1193 /// Gets or sets the requested file versioning.
1194 /// </summary>
1195 public BOOTSTRAPPER_MSI_FILE_VERSIONING FileVersioning { get; set; }
1196 }
1197
1198 /// <summary>
1199 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanPackageComplete"/>
1200 /// </summary>
1201 [Serializable]
1202 public class PlanPackageCompleteEventArgs : StatusEventArgs
1203 {
1204 /// <summary>
1205 /// This class is for events raised by the engine.
1206 /// It is not intended to be instantiated by user code.
1207 /// </summary>
1208 public PlanPackageCompleteEventArgs(string packageId, int hrStatus, RequestState requested)
1209 : base(hrStatus)
1210 {
1211 this.PackageId = packageId;
1212 this.Requested = requested;
1213 }
1214
1215 /// <summary>
1216 /// Gets the identity of the package planned for.
1217 /// </summary>
1218 public string PackageId { get; private set; }
1219
1220 /// <summary>
1221 /// Gets the requested state for the package.
1222 /// </summary>
1223 public RequestState Requested { get; private set; }
1224 }
1225
1226 /// <summary>
1227 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlannedCompatiblePackage"/>
1228 /// </summary>
1229 [Serializable]
1230 public class PlannedCompatiblePackageEventArgs : HResultEventArgs
1231 {
1232 /// <summary>
1233 /// This class is for events raised by the engine.
1234 /// It is not intended to be instantiated by user code.
1235 /// </summary>
1236 public PlannedCompatiblePackageEventArgs(string packageId, string compatiblePackageId, bool remove)
1237 {
1238 this.PackageId = packageId;
1239 this.CompatiblePackageId = compatiblePackageId;
1240 this.Remove = remove;
1241 }
1242
1243 /// <summary>
1244 /// Gets the identity of the package planned for.
1245 /// </summary>
1246 public string PackageId { get; private set; }
1247
1248 /// <summary>
1249 /// Gets the identity of the compatible package detected.
1250 /// </summary>
1251 public string CompatiblePackageId { get; private set; }
1252
1253 /// <summary>
1254 /// Gets the planned state of the package.
1255 /// </summary>
1256 public bool Remove { get; private set; }
1257 }
1258
1259 /// <summary>
1260 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlannedPackage"/>
1261 /// </summary>
1262 [Serializable]
1263 public class PlannedPackageEventArgs : HResultEventArgs
1264 {
1265 /// <summary>
1266 /// This class is for events raised by the engine.
1267 /// It is not intended to be instantiated by user code.
1268 /// </summary>
1269 public PlannedPackageEventArgs(string packageId, ActionState execute, ActionState rollback, bool cache, bool uncache)
1270 {
1271 this.PackageId = packageId;
1272 this.Execute = execute;
1273 this.Rollback = rollback;
1274 this.Cache = cache;
1275 this.Uncache = uncache;
1276 }
1277
1278 /// <summary>
1279 /// Gets the identity of the package planned for.
1280 /// </summary>
1281 public string PackageId { get; private set; }
1282
1283 /// <summary>
1284 /// Gets the planned execution action.
1285 /// </summary>
1286 public ActionState Execute { get; private set; }
1287
1288 /// <summary>
1289 /// Gets the planned rollback action.
1290 /// </summary>
1291 public ActionState Rollback { get; private set; }
1292
1293 /// <summary>
1294 /// Gets whether the package will be cached.
1295 /// </summary>
1296 public bool Cache { get; private set; }
1297
1298 /// <summary>
1299 /// Gets whether the package will be removed from the package cache.
1300 /// </summary>
1301 public bool Uncache { get; private set; }
1302 }
1303
1304 /// <summary>
1305 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanComplete"/>.
1306 /// </summary>
1307 [Serializable]
1308 public class PlanCompleteEventArgs : StatusEventArgs
1309 {
1310 /// <summary>
1311 /// This class is for events raised by the engine.
1312 /// It is not intended to be instantiated by user code.
1313 /// </summary>
1314 public PlanCompleteEventArgs(int hrStatus)
1315 : base(hrStatus)
1316 {
1317 }
1318 }
1319
1320 /// <summary>
1321 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanForwardCompatibleBundle"/>
1322 /// </summary>
1323 [Serializable]
1324 public class PlanForwardCompatibleBundleEventArgs : CancellableHResultEventArgs
1325 {
1326 /// <summary>
1327 /// This class is for events raised by the engine.
1328 /// It is not intended to be instantiated by user code.
1329 /// </summary>
1330 public PlanForwardCompatibleBundleEventArgs(string bundleId, RelationType relationType, string bundleTag, bool perMachine, string version, bool recommendedIgnoreBundle, bool cancelRecommendation, bool ignoreBundle)
1331 : base(cancelRecommendation)
1332 {
1333 this.BundleId = bundleId;
1334 this.RelationType = relationType;
1335 this.BundleTag = bundleTag;
1336 this.PerMachine = perMachine;
1337 this.Version = version;
1338 this.RecommendedIgnoreBundle = recommendedIgnoreBundle;
1339 this.IgnoreBundle = ignoreBundle;
1340 }
1341
1342 /// <summary>
1343 /// Gets the identity of the forward compatible bundle detected.
1344 /// </summary>
1345 public string BundleId { get; private set; }
1346
1347 /// <summary>
1348 /// Gets the relationship type of the forward compatible bundle.
1349 /// </summary>
1350 public RelationType RelationType { get; private set; }
1351
1352 /// <summary>
1353 /// Gets the tag of the forward compatible bundle.
1354 /// </summary>
1355 public string BundleTag { get; private set; }
1356
1357 /// <summary>
1358 /// Gets whether the forward compatible bundle is per machine.
1359 /// </summary>
1360 public bool PerMachine { get; private set; }
1361
1362 /// <summary>
1363 /// Gets the version of the forward compatible bundle.
1364 /// </summary>
1365 public string Version { get; private set; }
1366
1367 /// <summary>
1368 /// Gets the recommendation of whether the engine should use the forward compatible bundle.
1369 /// </summary>
1370 public bool RecommendedIgnoreBundle { get; set; }
1371
1372 /// <summary>
1373 /// Gets or sets whether the engine will use the forward compatible bundle.
1374 /// </summary>
1375 public bool IgnoreBundle { get; set; }
1376 }
1377
1378 /// <summary>
1379 /// Event arguments for <see cref="IDefaultBootstrapperApplication.ApplyBegin"/>
1380 /// </summary>
1381 [Serializable]
1382 public class ApplyBeginEventArgs : CancellableHResultEventArgs
1383 {
1384 /// <summary>
1385 /// This class is for events raised by the engine.
1386 /// It is not intended to be instantiated by user code.
1387 /// </summary>
1388 public ApplyBeginEventArgs(int phaseCount, bool cancelRecommendation)
1389 : base(cancelRecommendation)
1390 {
1391 this.PhaseCount = phaseCount;
1392 }
1393
1394 /// <summary>
1395 /// Gets the number of phases that the engine will go through in apply.
1396 /// There are currently two possible phases: cache and execute.
1397 /// </summary>
1398 public int PhaseCount { get; private set; }
1399 }
1400
1401 /// <summary>
1402 /// Event arguments for <see cref="IDefaultBootstrapperApplication.ElevateBegin"/>
1403 /// </summary>
1404 [Serializable]
1405 public class ElevateBeginEventArgs : CancellableHResultEventArgs
1406 {
1407 /// <summary>
1408 /// This class is for events raised by the engine.
1409 /// It is not intended to be instantiated by user code.
1410 /// </summary>
1411 public ElevateBeginEventArgs(bool cancelRecommendation)
1412 : base(cancelRecommendation)
1413 {
1414 }
1415 }
1416
1417 /// <summary>
1418 /// Event arguments for <see cref="IDefaultBootstrapperApplication.ElevateComplete"/>.
1419 /// </summary>
1420 [Serializable]
1421 public class ElevateCompleteEventArgs : StatusEventArgs
1422 {
1423 /// <summary>
1424 /// This class is for events raised by the engine.
1425 /// It is not intended to be instantiated by user code.
1426 /// </summary>
1427 public ElevateCompleteEventArgs(int hrStatus)
1428 : base(hrStatus)
1429 {
1430 }
1431 }
1432
1433 /// <summary>
1434 /// Event arguments for <see cref="IDefaultBootstrapperApplication.Progress"/>
1435 /// </summary>
1436 [Serializable]
1437 public class ProgressEventArgs : CancellableHResultEventArgs
1438 {
1439 /// <summary>
1440 /// This class is for events raised by the engine.
1441 /// It is not intended to be instantiated by user code.
1442 /// </summary>
1443 public ProgressEventArgs(int progressPercentage, int overallPercentage, bool cancelRecommendation)
1444 : base(cancelRecommendation)
1445 {
1446 this.ProgressPercentage = progressPercentage;
1447 this.OverallPercentage = overallPercentage;
1448 }
1449
1450 /// <summary>
1451 /// Gets the percentage from 0 to 100 completed for a package.
1452 /// </summary>
1453 public int ProgressPercentage { get; private set; }
1454
1455 /// <summary>
1456 /// Gets the percentage from 0 to 100 completed for the bundle.
1457 /// </summary>
1458 public int OverallPercentage { get; private set; }
1459 }
1460
1461 /// <summary>
1462 /// Event arguments for <see cref="IDefaultBootstrapperApplication.Error"/>
1463 /// </summary>
1464 [Serializable]
1465 public class ErrorEventArgs : ResultEventArgs
1466 {
1467 /// <summary>
1468 /// This class is for events raised by the engine.
1469 /// It is not intended to be instantiated by user code.
1470 /// </summary>
1471 public ErrorEventArgs(ErrorType errorType, string packageId, int errorCode, string errorMessage, int dwUIHint, string[] data, Result recommendation, Result result)
1472 : base(recommendation, result)
1473 {
1474 this.ErrorType = errorType;
1475 this.PackageId = packageId;
1476 this.ErrorCode = errorCode;
1477 this.ErrorMessage = errorMessage;
1478 this.UIHint = dwUIHint;
1479 this.Data = new ReadOnlyCollection<string>(data ?? new string[] { });
1480 }
1481
1482 /// <summary>
1483 /// Gets the type of error that occurred.
1484 /// </summary>
1485 public ErrorType ErrorType { get; private set; }
1486
1487 /// <summary>
1488 /// Gets the identity of the package that yielded the error.
1489 /// </summary>
1490 public string PackageId { get; private set; }
1491
1492 /// <summary>
1493 /// Gets the error code.
1494 /// </summary>
1495 public int ErrorCode { get; private set; }
1496
1497 /// <summary>
1498 /// Gets the error message.
1499 /// </summary>
1500 public string ErrorMessage { get; private set; }
1501
1502 /// <summary>
1503 /// Gets the recommended display flags for an error dialog.
1504 /// </summary>
1505 public int UIHint { get; private set; }
1506
1507 /// <summary>
1508 /// Gets the extended data for the error.
1509 /// </summary>
1510 public IList<string> Data { get; private set; }
1511 }
1512
1513 /// <summary>
1514 /// Event arguments for <see cref="IDefaultBootstrapperApplication.RegisterBegin"/>
1515 /// </summary>
1516 [Serializable]
1517 public class RegisterBeginEventArgs : CancellableHResultEventArgs
1518 {
1519 /// <summary>
1520 /// This class is for events raised by the engine.
1521 /// It is not intended to be instantiated by user code.
1522 /// </summary>
1523 public RegisterBeginEventArgs(RegistrationType recommendedRegistrationType, bool cancelRecommendation, RegistrationType registrationType)
1524 : base(cancelRecommendation)
1525 {
1526 this.RecommendedRegistrationType = recommendedRegistrationType;
1527 this.RegistrationType = registrationType;
1528 }
1529
1530 /// <summary>
1531 /// Gets the recommended registration type.
1532 /// </summary>
1533 public RegistrationType RecommendedRegistrationType { get; private set; }
1534
1535 /// <summary>
1536 /// Gets or sets the registration type.
1537 /// </summary>
1538 public RegistrationType RegistrationType { get; set; }
1539 }
1540
1541 /// <summary>
1542 /// Event arguments for <see cref="IDefaultBootstrapperApplication.RegisterComplete"/>.
1543 /// </summary>
1544 [Serializable]
1545 public class RegisterCompleteEventArgs : StatusEventArgs
1546 {
1547 /// <summary>
1548 /// This class is for events raised by the engine.
1549 /// It is not intended to be instantiated by user code.
1550 /// </summary>
1551 public RegisterCompleteEventArgs(int hrStatus)
1552 : base(hrStatus)
1553 {
1554 }
1555 }
1556
1557 /// <summary>
1558 /// Event arguments for <see cref="IDefaultBootstrapperApplication.UnregisterBegin"/>
1559 /// </summary>
1560 [Serializable]
1561 public class UnregisterBeginEventArgs : HResultEventArgs
1562 {
1563 /// <summary>
1564 /// This class is for events raised by the engine.
1565 /// It is not intended to be instantiated by user code.
1566 /// </summary>
1567 public UnregisterBeginEventArgs(RegistrationType recommendedRegistrationType, RegistrationType registrationType)
1568 {
1569 this.RecommendedRegistrationType = recommendedRegistrationType;
1570 this.RegistrationType = registrationType;
1571 }
1572
1573 /// <summary>
1574 /// Gets the recommended registration type.
1575 /// </summary>
1576 public RegistrationType RecommendedRegistrationType { get; private set; }
1577
1578 /// <summary>
1579 /// Gets or sets the registration type.
1580 /// </summary>
1581 public RegistrationType RegistrationType { get; set; }
1582 }
1583
1584 /// <summary>
1585 /// Event arguments for <see cref="IDefaultBootstrapperApplication.UnregisterComplete"/>
1586 /// </summary>
1587 [Serializable]
1588 public class UnregisterCompleteEventArgs : StatusEventArgs
1589 {
1590 /// <summary>
1591 /// This class is for events raised by the engine.
1592 /// It is not intended to be instantiated by user code.
1593 /// </summary>
1594 public UnregisterCompleteEventArgs(int hrStatus)
1595 : base(hrStatus)
1596 {
1597 }
1598 }
1599
1600 /// <summary>
1601 /// Event arguments for <see cref="IDefaultBootstrapperApplication.CacheBegin"/>
1602 /// </summary>
1603 [Serializable]
1604 public class CacheBeginEventArgs : CancellableHResultEventArgs
1605 {
1606 /// <summary>
1607 /// This class is for events raised by the engine.
1608 /// It is not intended to be instantiated by user code.
1609 /// </summary>
1610 public CacheBeginEventArgs(bool cancelRecommendation)
1611 : base(cancelRecommendation)
1612 {
1613 }
1614 }
1615
1616 /// <summary>
1617 /// EventArgs for <see cref="IDefaultBootstrapperApplication.CacheAcquireBegin"/>.
1618 /// </summary>
1619 [Serializable]
1620 public class CacheAcquireBeginEventArgs : CancellableActionEventArgs<CacheOperation>
1621 {
1622 /// <summary>
1623 /// This class is for events raised by the engine.
1624 /// It is not intended to be instantiated by user code.
1625 /// </summary>
1626 public CacheAcquireBeginEventArgs(string packageOrContainerId, string payloadId, string source, string downloadUrl, string payloadContainerId, CacheOperation recommendation, CacheOperation action, bool cancelRecommendation)
1627 : base(cancelRecommendation, recommendation, action)
1628 {
1629 this.PackageOrContainerId = packageOrContainerId;
1630 this.PayloadId = payloadId;
1631 this.Source = source;
1632 this.DownloadUrl = downloadUrl;
1633 this.PayloadContainerId = payloadContainerId;
1634 }
1635
1636 /// <summary>
1637 /// Gets the identifier of the container or package.
1638 /// </summary>
1639 public string PackageOrContainerId { get; private set; }
1640
1641 /// <summary>
1642 /// Gets the identifier of the payload (if acquiring a payload).
1643 /// </summary>
1644 public string PayloadId { get; private set; }
1645
1646 /// <summary>
1647 /// Gets the source of the container or payload.
1648 /// </summary>
1649 public string Source { get; private set; }
1650
1651 /// <summary>
1652 /// Gets the optional URL to download container or payload.
1653 /// </summary>
1654 public string DownloadUrl { get; private set; }
1655
1656 /// <summary>
1657 /// Gets the optional identity of the container that contains the payload being acquired.
1658 /// </summary>
1659 public string PayloadContainerId { get; private set; }
1660 }
1661
1662 /// <summary>
1663 /// EventArgs for <see cref="IDefaultBootstrapperApplication.CacheAcquireProgress"/>.
1664 /// </summary>
1665 [Serializable]
1666 public class CacheAcquireProgressEventArgs : CacheProgressBaseEventArgs
1667 {
1668 /// <summary>
1669 /// This class is for events raised by the engine.
1670 /// It is not intended to be instantiated by user code.
1671 /// </summary>
1672 public CacheAcquireProgressEventArgs(string packageOrContainerId, string payloadId, long progress, long total, int overallPercentage, bool cancelRecommendation)
1673 : base(packageOrContainerId, payloadId, progress, total, overallPercentage, cancelRecommendation)
1674 {
1675 }
1676 }
1677
1678 /// <summary>
1679 /// EventArgs for <see cref="IDefaultBootstrapperApplication.CacheAcquireComplete"/>.
1680 /// </summary>
1681 [Serializable]
1682 public class CacheAcquireCompleteEventArgs : ActionEventArgs<BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION>
1683 {
1684 /// <summary>
1685 /// This class is for events raised by the engine.
1686 /// It is not intended to be instantiated by user code.
1687 /// </summary>
1688 public CacheAcquireCompleteEventArgs(string packageOrContainerId, string payloadId, int hrStatus, BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION recommendation, BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION action)
1689 : base(hrStatus, recommendation, action)
1690 {
1691 this.PackageOrContainerId = packageOrContainerId;
1692 this.PayloadId = payloadId;
1693 }
1694
1695 /// <summary>
1696 /// Gets the identifier of the container or package.
1697 /// </summary>
1698 public string PackageOrContainerId { get; private set; }
1699
1700 /// <summary>
1701 /// Gets the identifier of the payload (if acquiring a payload).
1702 /// </summary>
1703 public string PayloadId { get; private set; }
1704 }
1705
1706 /// <summary>
1707 /// EventArgs for <see cref="IDefaultBootstrapperApplication.CacheVerifyBegin"/>.
1708 /// </summary>
1709 [Serializable]
1710 public class CacheVerifyBeginEventArgs : CancellableHResultEventArgs
1711 {
1712 /// <summary>
1713 /// This class is for events raised by the engine.
1714 /// It is not intended to be instantiated by user code.
1715 /// </summary>
1716 public CacheVerifyBeginEventArgs(string packageOrContainerId, string payloadId, bool cancelRecommendation)
1717 : base(cancelRecommendation)
1718 {
1719 this.PackageOrContainerId = packageOrContainerId;
1720 this.PayloadId = payloadId;
1721 }
1722
1723 /// <summary>
1724 /// Gets the identifier of the container or package.
1725 /// </summary>
1726 public string PackageOrContainerId { get; private set; }
1727
1728 /// <summary>
1729 /// Gets the identifier of the payload.
1730 /// </summary>
1731 public string PayloadId { get; private set; }
1732 }
1733
1734 /// <summary>
1735 /// EventArgs for <see cref="IDefaultBootstrapperApplication.CacheVerifyProgress"/>.
1736 /// </summary>
1737 [Serializable]
1738 public class CacheVerifyProgressEventArgs : CacheProgressBaseEventArgs
1739 {
1740 /// <summary>
1741 /// This class is for events raised by the engine.
1742 /// It is not intended to be instantiated by user code.
1743 /// </summary>
1744 public CacheVerifyProgressEventArgs(string packageOrContainerId, string payloadId, long progress, long total, int overallPercentage, CacheVerifyStep verifyStep, bool cancelRecommendation)
1745 : base(packageOrContainerId, payloadId, progress, total, overallPercentage, cancelRecommendation)
1746 {
1747 this.Step = verifyStep;
1748 }
1749
1750 /// <summary>
1751 /// Gets the current verification step.
1752 /// </summary>
1753 public CacheVerifyStep Step { get; private set; }
1754 }
1755
1756 /// <summary>
1757 /// Event arguments for <see cref="IDefaultBootstrapperApplication.CacheVerifyComplete"/>
1758 /// </summary>
1759 [Serializable]
1760 public class CacheVerifyCompleteEventArgs : ActionEventArgs<BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION>
1761 {
1762 /// <summary>
1763 /// This class is for events raised by the engine.
1764 /// It is not intended to be instantiated by user code.
1765 /// </summary>
1766 public CacheVerifyCompleteEventArgs(string packageOrContainerId, string payloadId, int hrStatus, BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION recommendation, BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION action)
1767 : base(hrStatus, recommendation, action)
1768 {
1769 this.PackageOrContainerId = packageOrContainerId;
1770 this.PayloadId = payloadId;
1771 }
1772
1773 /// <summary>
1774 /// Gets the identifier of the container or package.
1775 /// </summary>
1776 public string PackageOrContainerId { get; private set; }
1777
1778 /// <summary>
1779 /// Gets the identifier of the payload.
1780 /// </summary>
1781 public string PayloadId { get; private set; }
1782 }
1783
1784 /// <summary>
1785 /// Event arguments for <see cref="IDefaultBootstrapperApplication.CacheComplete"/>.
1786 /// </summary>
1787 [Serializable]
1788 public class CacheCompleteEventArgs : StatusEventArgs
1789 {
1790 /// <summary>
1791 /// This class is for events raised by the engine.
1792 /// It is not intended to be instantiated by user code.
1793 /// </summary>
1794 public CacheCompleteEventArgs(int hrStatus)
1795 : base(hrStatus)
1796 {
1797 }
1798 }
1799
1800 /// <summary>
1801 /// Event arguments for <see cref="IDefaultBootstrapperApplication.ExecuteBegin"/>
1802 /// </summary>
1803 [Serializable]
1804 public class ExecuteBeginEventArgs : CancellableHResultEventArgs
1805 {
1806 /// <summary>
1807 /// This class is for events raised by the engine.
1808 /// It is not intended to be instantiated by user code.
1809 /// </summary>
1810 public ExecuteBeginEventArgs(int packageCount, bool cancelRecommendation)
1811 : base(cancelRecommendation)
1812 {
1813 this.PackageCount = packageCount;
1814 }
1815
1816 /// <summary>
1817 /// Gets the number of packages to act on.
1818 /// </summary>
1819 public int PackageCount { get; private set; }
1820 }
1821
1822 /// <summary>
1823 /// Event arguments for <see cref="IDefaultBootstrapperApplication.ExecutePackageBegin"/>
1824 /// </summary>
1825 [Serializable]
1826 public class ExecutePackageBeginEventArgs : CancellableHResultEventArgs
1827 {
1828 /// <summary>
1829 /// This class is for events raised by the engine.
1830 /// It is not intended to be instantiated by user code.
1831 /// </summary>
1832 public ExecutePackageBeginEventArgs(string packageId, bool shouldExecute, ActionState action, INSTALLUILEVEL uiLevel, bool disableExternalUiHandler, bool cancelRecommendation)
1833 : base(cancelRecommendation)
1834 {
1835 this.PackageId = packageId;
1836 this.ShouldExecute = shouldExecute;
1837 this.Action = action;
1838 this.UiLevel = uiLevel;
1839 this.DisableExternalUiHandler = disableExternalUiHandler;
1840 }
1841
1842 /// <summary>
1843 /// Gets the identity of the package to act on.
1844 /// </summary>
1845 public string PackageId { get; private set; }
1846
1847 /// <summary>
1848 /// Gets whether the package is being executed or rolled back.
1849 /// </summary>
1850 public bool ShouldExecute { get; private set; }
1851
1852 /// <summary>
1853 /// Gets the action about to be executed.
1854 /// </summary>
1855 public ActionState Action { get; private set; }
1856
1857 /// <summary>
1858 /// Gets the internal UI level (if this is an MSI or MSP package).
1859 /// </summary>
1860 public INSTALLUILEVEL UiLevel { get; private set; }
1861
1862 /// <summary>
1863 /// Gets whether Burn will set up an external UI handler (if this is an MSI or MSP package).
1864 /// </summary>
1865 public bool DisableExternalUiHandler { get; private set; }
1866 }
1867
1868 /// <summary>
1869 /// Event arguments for <see cref="IDefaultBootstrapperApplication.ExecutePatchTarget"/>
1870 /// </summary>
1871 [Serializable]
1872 public class ExecutePatchTargetEventArgs : CancellableHResultEventArgs
1873 {
1874 /// <summary>
1875 /// This class is for events raised by the engine.
1876 /// It is not intended to be instantiated by user code.
1877 /// </summary>
1878 public ExecutePatchTargetEventArgs(string packageId, string targetProductCode, bool cancelRecommendation)
1879 : base(cancelRecommendation)
1880 {
1881 this.PackageId = packageId;
1882 this.TargetProductCode = targetProductCode;
1883 }
1884
1885 /// <summary>
1886 /// Gets the identity of the package to act on.
1887 /// </summary>
1888 public string PackageId { get; private set; }
1889
1890 /// <summary>
1891 /// Gets the product code being targeted.
1892 /// </summary>
1893 public string TargetProductCode { get; private set; }
1894 }
1895
1896 /// <summary>
1897 /// Event arguments for <see cref="IDefaultBootstrapperApplication.ExecuteMsiMessage"/>
1898 /// </summary>
1899 [Serializable]
1900 public class ExecuteMsiMessageEventArgs : ResultEventArgs
1901 {
1902 /// <summary>
1903 /// This class is for events raised by the engine.
1904 /// It is not intended to be instantiated by user code.
1905 /// </summary>
1906 public ExecuteMsiMessageEventArgs(string packageId, InstallMessage messageType, int dwUIHint, string message, string[] data, Result recommendation, Result result)
1907 : base(recommendation, result)
1908 {
1909 this.PackageId = packageId;
1910 this.MessageType = messageType;
1911 this.UIHint = dwUIHint;
1912 this.Message = message;
1913 this.Data = new ReadOnlyCollection<string>(data ?? new string[] { });
1914 }
1915
1916 /// <summary>
1917 /// Gets the identity of the package that yielded this message.
1918 /// </summary>
1919 public string PackageId { get; private set; }
1920
1921 /// <summary>
1922 /// Gets the type of this message.
1923 /// </summary>
1924 public InstallMessage MessageType { get; private set; }
1925
1926 /// <summary>
1927 /// Gets the recommended display flags for this message.
1928 /// </summary>
1929 public int UIHint { get; private set; }
1930
1931 /// <summary>
1932 /// Gets the message.
1933 /// </summary>
1934 public string Message { get; private set; }
1935
1936 /// <summary>
1937 /// Gets the extended data for the message.
1938 /// </summary>
1939 public IList<string> Data { get; private set; }
1940 }
1941
1942 /// <summary>
1943 /// Event arguments for <see cref="IDefaultBootstrapperApplication.ExecuteFilesInUse"/>
1944 /// </summary>
1945 [Serializable]
1946 public class ExecuteFilesInUseEventArgs : ResultEventArgs
1947 {
1948 /// <summary>
1949 /// This class is for events raised by the engine.
1950 /// It is not intended to be instantiated by user code.
1951 /// </summary>
1952 public ExecuteFilesInUseEventArgs(string packageId, string[] files, Result recommendation, FilesInUseType source, Result result)
1953 : base(recommendation, result)
1954 {
1955 this.PackageId = packageId;
1956 this.Files = new ReadOnlyCollection<string>(files ?? new string[] { });
1957 this.Source = source;
1958 }
1959
1960 /// <summary>
1961 /// Gets the identity of the package that yielded the files in use message.
1962 /// </summary>
1963 public string PackageId { get; private set; }
1964
1965 /// <summary>
1966 /// Gets the list of files in use.
1967 /// </summary>
1968 public IList<string> Files { get; private set; }
1969
1970 /// <summary>
1971 /// Gets the source of the message.
1972 /// </summary>
1973 public FilesInUseType Source { get; private set; }
1974 }
1975
1976 /// <summary>
1977 /// Event arguments for <see cref="IDefaultBootstrapperApplication.ExecutePackageComplete"/>
1978 /// </summary>
1979 [Serializable]
1980 public class ExecutePackageCompleteEventArgs : ActionEventArgs<BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION>
1981 {
1982 /// <summary>
1983 /// This class is for events raised by the engine.
1984 /// It is not intended to be instantiated by user code.
1985 /// </summary>
1986 public ExecutePackageCompleteEventArgs(string packageId, int hrStatus, ApplyRestart restart, BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION recommendation, BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION action)
1987 : base(hrStatus, recommendation, action)
1988 {
1989 this.PackageId = packageId;
1990 this.Restart = restart;
1991 }
1992
1993 /// <summary>
1994 /// Gets the identity of the package that was acted on.
1995 /// </summary>
1996 public string PackageId { get; private set; }
1997
1998 /// <summary>
1999 /// Gets the package restart state after being applied.
2000 /// </summary>
2001 public ApplyRestart Restart { get; private set; }
2002 }
2003
2004 /// <summary>
2005 /// Event arguments for <see cref="IDefaultBootstrapperApplication.ExecuteComplete"/>.
2006 /// </summary>
2007 [Serializable]
2008 public class ExecuteCompleteEventArgs : StatusEventArgs
2009 {
2010 /// <summary>
2011 /// This class is for events raised by the engine.
2012 /// It is not intended to be instantiated by user code.
2013 /// </summary>
2014 public ExecuteCompleteEventArgs(int hrStatus)
2015 : base(hrStatus)
2016 {
2017 }
2018 }
2019
2020 /// <summary>
2021 /// Event arguments for <see cref="IDefaultBootstrapperApplication.ApplyComplete"/>
2022 /// </summary>
2023 [Serializable]
2024 public class ApplyCompleteEventArgs : ActionEventArgs<BOOTSTRAPPER_APPLYCOMPLETE_ACTION>
2025 {
2026 /// <summary>
2027 /// This class is for events raised by the engine.
2028 /// It is not intended to be instantiated by user code.
2029 /// </summary>
2030 public ApplyCompleteEventArgs(int hrStatus, ApplyRestart restart, BOOTSTRAPPER_APPLYCOMPLETE_ACTION recommendation, BOOTSTRAPPER_APPLYCOMPLETE_ACTION action)
2031 : base(hrStatus, recommendation, action)
2032 {
2033 this.Restart = restart;
2034 }
2035
2036 /// <summary>
2037 /// Gets the apply restart state when complete.
2038 /// </summary>
2039 public ApplyRestart Restart { get; private set; }
2040 }
2041
2042 /// <summary>
2043 /// Event arguments for <see cref="IDefaultBootstrapperApplication.ApplyDowngrade"/>
2044 /// </summary>
2045 [Serializable]
2046 public class ApplyDowngradeEventArgs : HResultEventArgs
2047 {
2048 /// <summary>
2049 /// This class is for events raised by the engine.
2050 /// It is not intended to be instantiated by user code.
2051 /// </summary>
2052 public ApplyDowngradeEventArgs(int hrRecommendation, int hrStatus)
2053 {
2054 this.Recommendation = hrRecommendation;
2055 this.Status = hrStatus;
2056 }
2057
2058 /// <summary>
2059 /// Gets the recommended HRESULT.
2060 /// </summary>
2061 public int Recommendation { get; private set; }
2062
2063 /// <summary>
2064 /// Gets or sets the HRESULT for Apply.
2065 /// </summary>
2066 public int Status { get; set; }
2067 }
2068
2069 /// <summary>
2070 /// EventArgs for <see cref="IDefaultBootstrapperApplication.CacheAcquireResolving"/>.
2071 /// </summary>
2072 [Serializable]
2073 public class CacheAcquireResolvingEventArgs : CancellableActionEventArgs<CacheResolveOperation>
2074 {
2075 /// <summary>
2076 /// This class is for events raised by the engine.
2077 /// It is not intended to be instantiated by user code.
2078 /// </summary>
2079 public CacheAcquireResolvingEventArgs(string packageOrContainerId, string payloadId, string[] searchPaths, bool foundLocal, int recommendedSearchPath, string downloadUrl, string payloadContainerId, CacheResolveOperation recommendation, int chosenSearchPath, CacheResolveOperation action, bool cancel)
2080 : base(cancel, recommendation, action)
2081 {
2082 this.PackageOrContainerId = packageOrContainerId;
2083 this.PayloadId = payloadId;
2084 this.SearchPaths = searchPaths;
2085 this.FoundLocal = foundLocal;
2086 this.RecommendedSearchPath = recommendedSearchPath;
2087 this.DownloadUrl = downloadUrl;
2088 this.PayloadContainerId = payloadContainerId;
2089 this.ChosenSearchPath = chosenSearchPath;
2090 }
2091
2092 /// <summary>
2093 /// Gets the identity of the package or container that is being acquired.
2094 /// </summary>
2095 public string PackageOrContainerId { get; private set; }
2096
2097 /// <summary>
2098 /// Gets the identity of the payload that is being acquired.
2099 /// </summary>
2100 public string PayloadId { get; private set; }
2101
2102 /// <summary>
2103 /// Gets the search paths used for source resolution.
2104 /// </summary>
2105 public string[] SearchPaths { get; private set; }
2106
2107 /// <summary>
2108 /// Gets whether <see cref="RecommendedSearchPath"/> indicates that a file was found at that search path.
2109 /// </summary>
2110 public bool FoundLocal { get; private set; }
2111
2112 /// <summary>
2113 /// When <see cref="FoundLocal"/> is true, the index to <see cref="SearchPaths"/> for the recommended local file.
2114 /// </summary>
2115 public int RecommendedSearchPath { get; private set; }
2116
2117 /// <summary>
2118 /// Gets the optional URL to download container or payload.
2119 /// </summary>
2120 public string DownloadUrl { get; private set; }
2121
2122 /// <summary>
2123 /// Gets the optional identity of the container that contains the payload being acquired.
2124 /// </summary>
2125 public string PayloadContainerId { get; private set; }
2126
2127 /// <summary>
2128 /// Gets or sets the index to <see cref="SearchPaths"/> to use when <see cref="CancellableActionEventArgs{T}.Action"/> is set to <see cref="CacheOperation.Copy"/>.
2129 /// </summary>
2130 public int ChosenSearchPath { get; set; }
2131 }
2132
2133 /// <summary>
2134 /// Event arguments for <see cref="IDefaultBootstrapperApplication.CachePackageBegin"/>
2135 /// </summary>
2136 [Serializable]
2137 public class CachePackageBeginEventArgs : CancellableHResultEventArgs
2138 {
2139 /// <summary>
2140 /// This class is for events raised by the engine.
2141 /// It is not intended to be instantiated by user code.
2142 /// </summary>
2143 public CachePackageBeginEventArgs(string packageId, int cachePayloads, long packageCacheSize, bool vital, bool cancelRecommendation)
2144 : base(cancelRecommendation)
2145 {
2146 this.PackageId = packageId;
2147 this.CachePayloads = cachePayloads;
2148 this.PackageCacheSize = packageCacheSize;
2149 this.Vital = vital;
2150 }
2151
2152 /// <summary>
2153 /// Gets the identity of the package that is being cached.
2154 /// </summary>
2155 public string PackageId { get; private set; }
2156
2157 /// <summary>
2158 /// Gets number of payloads to be cached.
2159 /// </summary>
2160 public long CachePayloads { get; private set; }
2161
2162 /// <summary>
2163 /// Gets the size on disk required by the specific package.
2164 /// </summary>
2165 public long PackageCacheSize { get; private set; }
2166
2167 /// <summary>
2168 /// If caching a package is not vital, then acquisition will be skipped unless the BA opts in through <see cref="IDefaultBootstrapperApplication.CachePackageNonVitalValidationFailure"/>.
2169 /// </summary>
2170 public bool Vital { get; private set; }
2171 }
2172
2173 /// <summary>
2174 /// Event arguments for <see cref="IDefaultBootstrapperApplication.CachePackageComplete"/>
2175 /// </summary>
2176 [Serializable]
2177 public class CachePackageCompleteEventArgs : ActionEventArgs<BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION>
2178 {
2179 /// <summary>
2180 /// This class is for events raised by the engine.
2181 /// It is not intended to be instantiated by user code.
2182 /// </summary>
2183 public CachePackageCompleteEventArgs(string packageId, int hrStatus, BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION recommendation, BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION action)
2184 : base(hrStatus, recommendation, action)
2185 {
2186 this.PackageId = packageId;
2187 }
2188
2189 /// <summary>
2190 /// Gets the identity of the package that was cached.
2191 /// </summary>
2192 public string PackageId { get; private set; }
2193 }
2194
2195 /// <summary>
2196 /// Event arguments for <see cref="IDefaultBootstrapperApplication.ExecuteProgress"/>
2197 /// </summary>
2198 [Serializable]
2199 public class ExecuteProgressEventArgs : CancellableHResultEventArgs
2200 {
2201 /// <summary>
2202 /// This class is for events raised by the engine.
2203 /// It is not intended to be instantiated by user code.
2204 /// </summary>
2205 public ExecuteProgressEventArgs(string packageId, int progressPercentage, int overallPercentage, bool cancelRecommendation)
2206 : base(cancelRecommendation)
2207 {
2208 this.PackageId = packageId;
2209 this.ProgressPercentage = progressPercentage;
2210 this.OverallPercentage = overallPercentage;
2211 }
2212
2213 /// <summary>
2214 /// Gets the identity of the package that was executed.
2215 /// </summary>
2216 public string PackageId { get; private set; }
2217
2218 /// <summary>
2219 /// Gets the percentage from 0 to 100 of the execution progress for a single payload.
2220 /// </summary>
2221 public int ProgressPercentage { get; private set; }
2222
2223 /// <summary>
2224 /// Gets the percentage from 0 to 100 of the execution progress for all payloads.
2225 /// </summary>
2226 public int OverallPercentage { get; private set; }
2227 }
2228
2229 /// <summary>
2230 /// Event arguments for <see cref="IDefaultBootstrapperApplication.LaunchApprovedExeBegin"/>.
2231 /// </summary>
2232 [Serializable]
2233 public class LaunchApprovedExeBeginEventArgs : CancellableHResultEventArgs
2234 {
2235 /// <summary>
2236 /// This class is for events raised by the engine.
2237 /// It is not intended to be instantiated by user code.
2238 /// </summary>
2239 public LaunchApprovedExeBeginEventArgs(bool cancelRecommendation)
2240 : base(cancelRecommendation)
2241 {
2242 }
2243 }
2244
2245 /// <summary>
2246 /// Event arguments for <see cref="IDefaultBootstrapperApplication.LaunchApprovedExeComplete"/>.
2247 /// </summary>
2248 [Serializable]
2249 public class LaunchApprovedExeCompleteEventArgs : StatusEventArgs
2250 {
2251 /// <summary>
2252 /// This class is for events raised by the engine.
2253 /// It is not intended to be instantiated by user code.
2254 /// </summary>
2255 public LaunchApprovedExeCompleteEventArgs(int hrStatus, int processId)
2256 : base(hrStatus)
2257 {
2258 this.ProcessId = processId;
2259 }
2260
2261 /// <summary>
2262 /// Gets the ProcessId of the process that was launched.
2263 /// This is only valid if the status reports success.
2264 /// </summary>
2265 public int ProcessId { get; private set; }
2266 }
2267
2268 /// <summary>
2269 /// Event arguments for <see cref="IDefaultBootstrapperApplication.BeginMsiTransactionBegin"/>.
2270 /// </summary>
2271 [Serializable]
2272 public class BeginMsiTransactionBeginEventArgs : CancellableHResultEventArgs
2273 {
2274 /// <summary>
2275 /// This class is for events raised by the engine.
2276 /// It is not intended to be instantiated by user code.
2277 /// </summary>
2278 public BeginMsiTransactionBeginEventArgs(string transactionId, bool cancelRecommendation)
2279 : base(cancelRecommendation)
2280 {
2281 this.TransactionId = transactionId;
2282 }
2283
2284 /// <summary>
2285 /// Gets the MSI transaction Id.
2286 /// </summary>
2287 public string TransactionId { get; private set; }
2288 }
2289
2290 /// <summary>
2291 /// Event arguments for <see cref="IDefaultBootstrapperApplication.BeginMsiTransactionComplete"/>.
2292 /// </summary>
2293 [Serializable]
2294 public class BeginMsiTransactionCompleteEventArgs : StatusEventArgs
2295 {
2296 /// <summary>
2297 /// This class is for events raised by the engine.
2298 /// It is not intended to be instantiated by user code.
2299 /// </summary>
2300 public BeginMsiTransactionCompleteEventArgs(string transactionId, int hrStatus)
2301 : base(hrStatus)
2302 {
2303 this.TransactionId = transactionId;
2304 }
2305
2306 /// <summary>
2307 /// Gets the MSI transaction Id.
2308 /// </summary>
2309 public string TransactionId { get; private set; }
2310 }
2311
2312 /// <summary>
2313 /// Event arguments for <see cref="IDefaultBootstrapperApplication.CommitMsiTransactionBegin"/>.
2314 /// </summary>
2315 [Serializable]
2316 public class CommitMsiTransactionBeginEventArgs : CancellableHResultEventArgs
2317 {
2318 /// <summary>
2319 /// This class is for events raised by the engine.
2320 /// It is not intended to be instantiated by user code.
2321 /// </summary>
2322 public CommitMsiTransactionBeginEventArgs(string transactionId, bool cancelRecommendation)
2323 : base(cancelRecommendation)
2324 {
2325 this.TransactionId = transactionId;
2326 }
2327
2328 /// <summary>
2329 /// Gets the MSI transaction Id.
2330 /// </summary>
2331 public string TransactionId { get; private set; }
2332 }
2333
2334 /// <summary>
2335 /// Event arguments for <see cref="IDefaultBootstrapperApplication.CommitMsiTransactionComplete"/>.
2336 /// </summary>
2337 [Serializable]
2338 public class CommitMsiTransactionCompleteEventArgs : ActionEventArgs<BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION>
2339 {
2340 /// <summary>
2341 /// This class is for events raised by the engine.
2342 /// It is not intended to be instantiated by user code.
2343 /// </summary>
2344 public CommitMsiTransactionCompleteEventArgs(string transactionId, int hrStatus, ApplyRestart restart, BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION recommendation, BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION action)
2345 : base(hrStatus, recommendation, action)
2346 {
2347 this.TransactionId = transactionId;
2348 this.Restart = restart;
2349 }
2350
2351 /// <summary>
2352 /// Gets the MSI transaction Id.
2353 /// </summary>
2354 public string TransactionId { get; private set; }
2355
2356 /// <summary>
2357 /// Gets the package restart state after being applied.
2358 /// </summary>
2359 public ApplyRestart Restart { get; private set; }
2360 }
2361
2362 /// <summary>
2363 /// Event arguments for <see cref="IDefaultBootstrapperApplication.RollbackMsiTransactionBegin"/>.
2364 /// </summary>
2365 [Serializable]
2366 public class RollbackMsiTransactionBeginEventArgs : HResultEventArgs
2367 {
2368 /// <summary>
2369 /// This class is for events raised by the engine.
2370 /// It is not intended to be instantiated by user code.
2371 /// </summary>
2372 public RollbackMsiTransactionBeginEventArgs(string transactionId)
2373 {
2374 this.TransactionId = transactionId;
2375 }
2376
2377 /// <summary>
2378 /// Gets the MSI transaction Id.
2379 /// </summary>
2380 public string TransactionId { get; private set; }
2381 }
2382
2383 /// <summary>
2384 /// Event arguments for <see cref="IDefaultBootstrapperApplication.RollbackMsiTransactionComplete"/>.
2385 /// </summary>
2386 [Serializable]
2387 public class RollbackMsiTransactionCompleteEventArgs : ActionEventArgs<BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION>
2388 {
2389 /// <summary>
2390 /// This class is for events raised by the engine.
2391 /// It is not intended to be instantiated by user code.
2392 /// </summary>
2393 public RollbackMsiTransactionCompleteEventArgs(string transactionId, int hrStatus, ApplyRestart restart, BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION recommendation, BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION action)
2394 : base(hrStatus, recommendation, action)
2395 {
2396 this.TransactionId = transactionId;
2397 this.Restart = restart;
2398 }
2399
2400 /// <summary>
2401 /// Gets the MSI transaction Id.
2402 /// </summary>
2403 public string TransactionId { get; private set; }
2404
2405 /// <summary>
2406 /// Gets the package restart state after being applied.
2407 /// </summary>
2408 public ApplyRestart Restart { get; private set; }
2409 }
2410
2411 /// <summary>
2412 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PauseAutomaticUpdatesBegin"/>.
2413 /// </summary>
2414 [Serializable]
2415 public class PauseAutomaticUpdatesBeginEventArgs : HResultEventArgs
2416 {
2417 /// <summary>
2418 /// This class is for events raised by the engine.
2419 /// It is not intended to be instantiated by user code.
2420 /// </summary>
2421 public PauseAutomaticUpdatesBeginEventArgs()
2422 {
2423 }
2424 }
2425
2426 /// <summary>
2427 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PauseAutomaticUpdatesComplete"/>.
2428 /// </summary>
2429 [Serializable]
2430 public class PauseAutomaticUpdatesCompleteEventArgs : StatusEventArgs
2431 {
2432 /// <summary>
2433 /// This class is for events raised by the engine.
2434 /// It is not intended to be instantiated by user code.
2435 /// </summary>
2436 public PauseAutomaticUpdatesCompleteEventArgs(int hrStatus)
2437 : base(hrStatus)
2438 {
2439 }
2440 }
2441
2442 /// <summary>
2443 /// Event arguments for <see cref="IDefaultBootstrapperApplication.SystemRestorePointBegin"/>.
2444 /// </summary>
2445 [Serializable]
2446 public class SystemRestorePointBeginEventArgs : HResultEventArgs
2447 {
2448 /// <summary>
2449 /// This class is for events raised by the engine.
2450 /// It is not intended to be instantiated by user code.
2451 /// </summary>
2452 public SystemRestorePointBeginEventArgs()
2453 {
2454 }
2455 }
2456
2457 /// <summary>
2458 /// Event arguments for <see cref="IDefaultBootstrapperApplication.SystemRestorePointComplete"/>.
2459 /// </summary>
2460 [Serializable]
2461 public class SystemRestorePointCompleteEventArgs : StatusEventArgs
2462 {
2463 /// <summary>
2464 /// This class is for events raised by the engine.
2465 /// It is not intended to be instantiated by user code.
2466 /// </summary>
2467 public SystemRestorePointCompleteEventArgs(int hrStatus)
2468 : base(hrStatus)
2469 {
2470 }
2471 }
2472
2473 /// <summary>
2474 /// EventArgs for <see cref="IDefaultBootstrapperApplication.CacheContainerOrPayloadVerifyBegin"/>.
2475 /// </summary>
2476 [Serializable]
2477 public class CacheContainerOrPayloadVerifyBeginEventArgs : CancellableHResultEventArgs
2478 {
2479 /// <summary>
2480 /// This class is for events raised by the engine.
2481 /// It is not intended to be instantiated by user code.
2482 /// </summary>
2483 public CacheContainerOrPayloadVerifyBeginEventArgs(string packageOrContainerId, string payloadId, bool cancelRecommendation)
2484 : base(cancelRecommendation)
2485 {
2486 this.PackageOrContainerId = packageOrContainerId;
2487 this.PayloadId = payloadId;
2488 }
2489
2490 /// <summary>
2491 /// Gets the identifier of the container or package.
2492 /// </summary>
2493 public string PackageOrContainerId { get; private set; }
2494
2495 /// <summary>
2496 /// Gets the identifier of the payload.
2497 /// </summary>
2498 public string PayloadId { get; private set; }
2499 }
2500
2501 /// <summary>
2502 /// EventArgs for <see cref="IDefaultBootstrapperApplication.CacheContainerOrPayloadVerifyProgress"/>.
2503 /// </summary>
2504 [Serializable]
2505 public class CacheContainerOrPayloadVerifyProgressEventArgs : CacheProgressBaseEventArgs
2506 {
2507 /// <summary>
2508 /// This class is for events raised by the engine.
2509 /// It is not intended to be instantiated by user code.
2510 /// </summary>
2511 public CacheContainerOrPayloadVerifyProgressEventArgs(string packageOrContainerId, string payloadId, long progress, long total, int overallPercentage, bool cancelRecommendation)
2512 : base(packageOrContainerId, payloadId, progress, total, overallPercentage, cancelRecommendation)
2513 {
2514 }
2515 }
2516
2517 /// <summary>
2518 /// Event arguments for <see cref="IDefaultBootstrapperApplication.CacheContainerOrPayloadVerifyComplete"/>
2519 /// </summary>
2520 [Serializable]
2521 public class CacheContainerOrPayloadVerifyCompleteEventArgs : StatusEventArgs
2522 {
2523 /// <summary>
2524 /// This class is for events raised by the engine.
2525 /// It is not intended to be instantiated by user code.
2526 /// </summary>
2527 public CacheContainerOrPayloadVerifyCompleteEventArgs(string packageOrContainerId, string payloadId, int hrStatus)
2528 : base(hrStatus)
2529 {
2530 this.PackageOrContainerId = packageOrContainerId;
2531 this.PayloadId = payloadId;
2532 }
2533
2534 /// <summary>
2535 /// Gets the identifier of the container or package.
2536 /// </summary>
2537 public string PackageOrContainerId { get; private set; }
2538
2539 /// <summary>
2540 /// Gets the identifier of the payload.
2541 /// </summary>
2542 public string PayloadId { get; private set; }
2543 }
2544
2545 /// <summary>
2546 /// EventArgs for <see cref="IDefaultBootstrapperApplication.CachePayloadExtractBegin"/>.
2547 /// </summary>
2548 [Serializable]
2549 public class CachePayloadExtractBeginEventArgs : CancellableHResultEventArgs
2550 {
2551 /// <summary>
2552 /// This class is for events raised by the engine.
2553 /// It is not intended to be instantiated by user code.
2554 /// </summary>
2555 public CachePayloadExtractBeginEventArgs(string containerId, string payloadId, bool cancelRecommendation)
2556 : base(cancelRecommendation)
2557 {
2558 this.ContainerId = containerId;
2559 this.PayloadId = payloadId;
2560 }
2561
2562 /// <summary>
2563 /// Gets the identifier of the container.
2564 /// </summary>
2565 public string ContainerId { get; private set; }
2566
2567 /// <summary>
2568 /// Gets the identifier of the payload.
2569 /// </summary>
2570 public string PayloadId { get; private set; }
2571 }
2572
2573 /// <summary>
2574 /// EventArgs for <see cref="IDefaultBootstrapperApplication.CachePayloadExtractProgress"/>.
2575 /// </summary>
2576 [Serializable]
2577 public class CachePayloadExtractProgressEventArgs : CacheProgressBaseEventArgs
2578 {
2579 /// <summary>
2580 /// This class is for events raised by the engine.
2581 /// It is not intended to be instantiated by user code.
2582 /// </summary>
2583 public CachePayloadExtractProgressEventArgs(string containerId, string payloadId, long progress, long total, int overallPercentage, bool cancelRecommendation)
2584 : base(containerId, payloadId, progress, total, overallPercentage, cancelRecommendation)
2585 {
2586 }
2587 }
2588
2589 /// <summary>
2590 /// Event arguments for <see cref="IDefaultBootstrapperApplication.CachePayloadExtractComplete"/>
2591 /// </summary>
2592 [Serializable]
2593 public class CachePayloadExtractCompleteEventArgs : StatusEventArgs
2594 {
2595 /// <summary>
2596 /// This class is for events raised by the engine.
2597 /// It is not intended to be instantiated by user code.
2598 /// </summary>
2599 public CachePayloadExtractCompleteEventArgs(string containerId, string payloadId, int hrStatus)
2600 : base(hrStatus)
2601 {
2602 this.ContainerId = containerId;
2603 this.PayloadId = payloadId;
2604 }
2605
2606 /// <summary>
2607 /// Gets the identifier of the container.
2608 /// </summary>
2609 public string ContainerId { get; private set; }
2610
2611 /// <summary>
2612 /// Gets the identifier of the payload.
2613 /// </summary>
2614 public string PayloadId { get; private set; }
2615 }
2616
2617 /// <summary>
2618 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanRestoreRelatedBundle"/>
2619 /// </summary>
2620 [Serializable]
2621 public class PlanRestoreRelatedBundleEventArgs : CancellableHResultEventArgs
2622 {
2623 /// <summary>
2624 /// This class is for events raised by the engine.
2625 /// It is not intended to be instantiated by user code.
2626 /// </summary>
2627 public PlanRestoreRelatedBundleEventArgs(string bundleId, RequestState recommendedState, RequestState state, bool cancelRecommendation)
2628 : base(cancelRecommendation)
2629 {
2630 this.BundleId = bundleId;
2631 this.RecommendedState = recommendedState;
2632 this.State = state;
2633 }
2634
2635 /// <summary>
2636 /// Gets the identity of the bundle to plan for.
2637 /// </summary>
2638 public string BundleId { get; private set; }
2639
2640 /// <summary>
2641 /// Gets the recommended requested state for the bundle.
2642 /// </summary>
2643 public RequestState RecommendedState { get; private set; }
2644
2645 /// <summary>
2646 /// Gets or sets the requested state for the bundle.
2647 /// </summary>
2648 public RequestState State { get; set; }
2649 }
2650
2651 /// <summary>
2652 /// Event arguments for <see cref="IDefaultBootstrapperApplication.ExecuteProcessCancel"/>
2653 /// </summary>
2654 [Serializable]
2655 public class ExecuteProcessCancelEventArgs : HResultEventArgs
2656 {
2657 /// <summary>
2658 /// This class is for events raised by the engine.
2659 /// It is not intended to be instantiated by user code.
2660 /// </summary>
2661 public ExecuteProcessCancelEventArgs(string packageId, int processId, BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION recommendation, BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION action)
2662 {
2663 this.PackageId = packageId;
2664 this.ProcessId = processId;
2665 this.Recommendation = recommendation;
2666 this.Action = action;
2667 }
2668
2669 /// <summary>
2670 /// Gets the identity of the package.
2671 /// </summary>
2672 public string PackageId { get; private set; }
2673
2674 /// <summary>
2675 /// Gets the process id.
2676 /// </summary>
2677 public int ProcessId { get; private set; }
2678
2679 /// <summary>
2680 /// Gets the recommended action from the engine.
2681 /// </summary>
2682 public BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION Recommendation { get; private set; }
2683
2684 /// <summary>
2685 /// Gets or sets the action to be performed. This is passed back to the engine.
2686 /// </summary>
2687 public BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION Action { get; set; }
2688 }
2689
2690 /// <summary>
2691 /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectRelatedBundlePackage"/>
2692 /// </summary>
2693 [Serializable]
2694 public class DetectRelatedBundlePackageEventArgs : CancellableHResultEventArgs
2695 {
2696 /// <summary>
2697 /// This class is for events raised by the engine.
2698 /// It is not intended to be instantiated by user code.
2699 /// </summary>
2700 public DetectRelatedBundlePackageEventArgs(string packageId, string productCode, RelationType relationType, bool perMachine, string version, bool cancelRecommendation)
2701 : base(cancelRecommendation)
2702 {
2703 this.PackageId = packageId;
2704 this.ProductCode = productCode;
2705 this.RelationType = relationType;
2706 this.PerMachine = perMachine;
2707 this.Version = version;
2708 }
2709
2710 /// <summary>
2711 /// Gets the identity of the product's package detected.
2712 /// </summary>
2713 public string PackageId { get; private set; }
2714
2715 /// <summary>
2716 /// Gets the identity of the related bundle detected.
2717 /// </summary>
2718 public string ProductCode { get; private set; }
2719
2720 /// <summary>
2721 /// Gets the relationship type of the related bundle.
2722 /// </summary>
2723 public RelationType RelationType { get; private set; }
2724
2725 /// <summary>
2726 /// Gets whether the detected bundle is per machine.
2727 /// </summary>
2728 public bool PerMachine { get; private set; }
2729
2730 /// <summary>
2731 /// Gets the version of the related bundle detected.
2732 /// </summary>
2733 public string Version { get; private set; }
2734 }
2735
2736 /// <summary>
2737 /// Event arguments for <see cref="IDefaultBootstrapperApplication.CachePackageNonVitalValidationFailure"/>
2738 /// </summary>
2739 [Serializable]
2740 public class CachePackageNonVitalValidationFailureEventArgs : ActionEventArgs<BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION>
2741 {
2742 /// <summary>
2743 /// This class is for events raised by the engine.
2744 /// It is not intended to be instantiated by user code.
2745 /// </summary>
2746 public CachePackageNonVitalValidationFailureEventArgs(string packageId, int hrStatus, BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION recommendation, BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION action)
2747 : base(hrStatus, recommendation, action)
2748 {
2749 this.PackageId = packageId;
2750 }
2751
2752 /// <summary>
2753 /// Gets the identity of the package that was being validated.
2754 /// </summary>
2755 public string PackageId { get; private set; }
2756 }
2757}