// 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. namespace WixToolset.Mba.Core { using System; /// <summary> /// Interface for built-in implementation of <see cref="IBootstrapperApplication"/>. /// </summary> public interface IDefaultBootstrapperApplication : IBootstrapperApplication { /// <summary> /// Fired when the engine has begun installing the bundle. /// </summary> event EventHandler<ApplyBeginEventArgs> ApplyBegin; /// <summary> /// Fired when the engine has completed installing the bundle. /// </summary> event EventHandler<ApplyCompleteEventArgs> ApplyComplete; /// <summary> /// Fired when the plan determined that nothing should happen to prevent downgrading. /// </summary> event EventHandler<ApplyDowngradeEventArgs> ApplyDowngrade; /// <summary> /// Fired when the engine is about to begin an MSI transaction. /// </summary> event EventHandler<BeginMsiTransactionBeginEventArgs> BeginMsiTransactionBegin; /// <summary> /// Fired when the engine has completed beginning an MSI transaction. /// </summary> event EventHandler<BeginMsiTransactionCompleteEventArgs> BeginMsiTransactionComplete; /// <summary> /// Fired when the engine has begun acquiring the payload or container. /// The BA can change the source using <see cref="IEngine.SetLocalSource(String, String, String)"/> /// or <see cref="IEngine.SetDownloadSource(String, String, String, String, String)"/>. /// </summary> event EventHandler<CacheAcquireBeginEventArgs> CacheAcquireBegin; /// <summary> /// Fired when the engine has completed the acquisition of the payload or container. /// The BA can change the source using <see cref="IEngine.SetLocalSource(String, String, String)"/> /// or <see cref="IEngine.SetDownloadSource(String, String, String, String, String)"/>. /// </summary> event EventHandler<CacheAcquireCompleteEventArgs> CacheAcquireComplete; /// <summary> /// Fired when the engine has progress acquiring the payload or container. /// </summary> event EventHandler<CacheAcquireProgressEventArgs> CacheAcquireProgress; /// <summary> /// Fired by the engine to allow the BA to override the acquisition action. /// </summary> event EventHandler<CacheAcquireResolvingEventArgs> CacheAcquireResolving; /// <summary> /// Fired when the engine has begun caching the installation sources. /// </summary> event EventHandler<CacheBeginEventArgs> CacheBegin; /// <summary> /// Fired after the engine has cached the installation sources. /// </summary> event EventHandler<CacheCompleteEventArgs> CacheComplete; /// <summary> /// Fired when the engine begins the verification of the payload or container that was already in the package cache. /// </summary> event EventHandler<CacheContainerOrPayloadVerifyBeginEventArgs> CacheContainerOrPayloadVerifyBegin; /// <summary> /// Fired when the engine has completed the verification of the payload or container that was already in the package cache. /// </summary> event EventHandler<CacheContainerOrPayloadVerifyCompleteEventArgs> CacheContainerOrPayloadVerifyComplete; /// <summary> /// Fired when the engine has progress verifying the payload or container that was already in the package cache. /// </summary> event EventHandler<CacheContainerOrPayloadVerifyProgressEventArgs> CacheContainerOrPayloadVerifyProgress; /// <summary> /// Fired when the engine has begun caching a specific package. /// </summary> event EventHandler<CachePackageBeginEventArgs> CachePackageBegin; /// <summary> /// Fired when the engine has completed caching a specific package. /// </summary> event EventHandler<CachePackageCompleteEventArgs> CachePackageComplete; /// <summary> /// Fired when the engine failed validating a package in the package cache that is non-vital to execution. /// </summary> event EventHandler<CachePackageNonVitalValidationFailureEventArgs> CachePackageNonVitalValidationFailure; /// <summary> /// Fired when the engine begins the extraction of the payload from the container. /// </summary> event EventHandler<CachePayloadExtractBeginEventArgs> CachePayloadExtractBegin; /// <summary> /// Fired when the engine has completed the extraction of the payload from the container. /// </summary> event EventHandler<CachePayloadExtractCompleteEventArgs> CachePayloadExtractComplete; /// <summary> /// Fired when the engine has progress extracting the payload from the container. /// </summary> event EventHandler<CachePayloadExtractProgressEventArgs> CachePayloadExtractProgress; /// <summary> /// Fired when the engine begins the verification of the acquired payload or container. /// </summary> event EventHandler<CacheVerifyBeginEventArgs> CacheVerifyBegin; /// <summary> /// Fired when the engine has completed the verification of the acquired payload or container. /// </summary> event EventHandler<CacheVerifyCompleteEventArgs> CacheVerifyComplete; /// <summary> /// Fired when the engine has progress verifying the payload or container. /// </summary> event EventHandler<CacheVerifyProgressEventArgs> CacheVerifyProgress; /// <summary> /// Fired when the engine is about to commit an MSI transaction. /// </summary> event EventHandler<CommitMsiTransactionBeginEventArgs> CommitMsiTransactionBegin; /// <summary> /// Fired when the engine has completed comitting an MSI transaction. /// </summary> event EventHandler<CommitMsiTransactionCompleteEventArgs> CommitMsiTransactionComplete; /// <summary> /// Fired when the overall detection phase has begun. /// </summary> event EventHandler<DetectBeginEventArgs> DetectBegin; /// <summary> /// Fired when a package was not detected but a package using the same provider key was. /// </summary> event EventHandler<DetectCompatibleMsiPackageEventArgs> DetectCompatibleMsiPackage; /// <summary> /// Fired when the detection phase has completed. /// </summary> event EventHandler<DetectCompleteEventArgs> DetectComplete; /// <summary> /// Fired when a forward compatible bundle is detected. /// </summary> event EventHandler<DetectForwardCompatibleBundleEventArgs> DetectForwardCompatibleBundle; /// <summary> /// Fired when a feature in an MSI package has been detected. /// </summary> event EventHandler<DetectMsiFeatureEventArgs> DetectMsiFeature; /// <summary> /// Fired when the detection for a specific package has begun. /// </summary> event EventHandler<DetectPackageBeginEventArgs> DetectPackageBegin; /// <summary> /// Fired when the detection for a specific package has completed. /// </summary> event EventHandler<DetectPackageCompleteEventArgs> DetectPackageComplete; /// <summary> /// Fired when the engine detects a target product for an MSP package. /// </summary> event EventHandler<DetectPatchTargetEventArgs> DetectPatchTarget; /// <summary> /// Fired when a related bundle has been detected for a bundle. /// </summary> event EventHandler<DetectRelatedBundleEventArgs> DetectRelatedBundle; /// <summary> /// Fired when a related bundle has been detected for a bundle package. /// </summary> event EventHandler<DetectRelatedBundlePackageEventArgs> DetectRelatedBundlePackage; /// <summary> /// Fired when a related MSI package has been detected for a package. /// </summary> event EventHandler<DetectRelatedMsiPackageEventArgs> DetectRelatedMsiPackage; /// <summary> /// Fired when the update detection has found a potential update candidate. /// </summary> event EventHandler<DetectUpdateEventArgs> DetectUpdate; /// <summary> /// Fired when the update detection phase has begun. /// </summary> event EventHandler<DetectUpdateBeginEventArgs> DetectUpdateBegin; /// <summary> /// Fired when the update detection phase has completed. /// </summary> event EventHandler<DetectUpdateCompleteEventArgs> DetectUpdateComplete; /// <summary> /// Fired when the engine is about to start the elevated process. /// </summary> event EventHandler<ElevateBeginEventArgs> ElevateBegin; /// <summary> /// Fired when the engine has completed starting the elevated process. /// </summary> event EventHandler<ElevateCompleteEventArgs> ElevateComplete; /// <summary> /// Fired when the engine has encountered an error. /// </summary> event EventHandler<ErrorEventArgs> Error; /// <summary> /// Fired when the engine has begun installing packages. /// </summary> event EventHandler<ExecuteBeginEventArgs> ExecuteBegin; /// <summary> /// Fired when the engine has completed installing packages. /// </summary> event EventHandler<ExecuteCompleteEventArgs> ExecuteComplete; /// <summary> /// Fired when a package sends a files in use installation message. /// </summary> event EventHandler<ExecuteFilesInUseEventArgs> ExecuteFilesInUse; /// <summary> /// Fired when Windows Installer sends an installation message. /// </summary> event EventHandler<ExecuteMsiMessageEventArgs> ExecuteMsiMessage; /// <summary> /// Fired when the engine has begun installing a specific package. /// </summary> event EventHandler<ExecutePackageBeginEventArgs> ExecutePackageBegin; /// <summary> /// Fired when the engine has completed installing a specific package. /// </summary> event EventHandler<ExecutePackageCompleteEventArgs> ExecutePackageComplete; /// <summary> /// Fired when a package that spawned a process is cancelled. /// </summary> event EventHandler<ExecuteProcessCancelEventArgs> ExecuteProcessCancel; /// <summary> /// Fired when the engine executes one or more patches targeting a product. /// </summary> event EventHandler<ExecutePatchTargetEventArgs> ExecutePatchTarget; /// <summary> /// Fired by the engine while executing a package. /// </summary> event EventHandler<ExecuteProgressEventArgs> ExecuteProgress; /// <summary> /// Fired when the engine is about to launch the preapproved executable. /// </summary> event EventHandler<LaunchApprovedExeBeginEventArgs> LaunchApprovedExeBegin; /// <summary> /// Fired when the engine has completed launching the preapproved executable. /// </summary> event EventHandler<LaunchApprovedExeCompleteEventArgs> LaunchApprovedExeComplete; /// <summary> /// Fired when the engine is about to pause Windows automatic updates. /// </summary> event EventHandler<PauseAutomaticUpdatesBeginEventArgs> PauseAutomaticUpdatesBegin; /// <summary> /// Fired when the engine has completed pausing Windows automatic updates. /// </summary> event EventHandler<PauseAutomaticUpdatesCompleteEventArgs> PauseAutomaticUpdatesComplete; /// <summary> /// Fired when the engine has begun planning the installation. /// </summary> event EventHandler<PlanBeginEventArgs> PlanBegin; /// <summary> /// Fired when the engine plans a new, compatible package using the same provider key. /// </summary> event EventHandler<PlanCompatibleMsiPackageBeginEventArgs> PlanCompatibleMsiPackageBegin; /// <summary> /// Fired when the engine has completed planning the installation of a specific package. /// </summary> event EventHandler<PlanCompatibleMsiPackageCompleteEventArgs> PlanCompatibleMsiPackageComplete; /// <summary> /// Fired when the engine has completed planning the installation. /// </summary> event EventHandler<PlanCompleteEventArgs> PlanComplete; /// <summary> /// Fired when the engine is about to plan a forward compatible bundle. /// </summary> event EventHandler<PlanForwardCompatibleBundleEventArgs> PlanForwardCompatibleBundle; /// <summary> /// Fired when the engine has completed planning a compatible package. /// </summary> event EventHandler<PlannedCompatiblePackageEventArgs> PlannedCompatiblePackage; /// <summary> /// Fired when the engine has completed planning a package. /// </summary> event EventHandler<PlannedPackageEventArgs> PlannedPackage; /// <summary> /// Fired when the engine is about to plan a feature in an MSI package. /// </summary> event EventHandler<PlanMsiFeatureEventArgs> PlanMsiFeature; /// <summary> /// Fired when the engine is planning an MSI or MSP package. /// </summary> event EventHandler<PlanMsiPackageEventArgs> PlanMsiPackage; /// <summary> /// Fired when the engine has begun getting the BA's input for planning a package. /// </summary> event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin; /// <summary> /// Fired when the engine has completed getting the BA's input for planning a package. /// </summary> event EventHandler<PlanPackageCompleteEventArgs> PlanPackageComplete; /// <summary> /// Fired when the engine is about to plan a target of an MSP package. /// </summary> event EventHandler<PlanPatchTargetEventArgs> PlanPatchTarget; /// <summary> /// Fired when the engine has begun planning for a related bundle. /// </summary> event EventHandler<PlanRelatedBundleEventArgs> PlanRelatedBundle; /// <summary> /// Fired when the engine has begun planning the related bundle relation type. /// </summary> event EventHandler<PlanRelatedBundleTypeEventArgs> PlanRelatedBundleType; /// <summary> /// Fired when the engine has begun planning an upgrade related bundle for restoring in case of failure. /// </summary> event EventHandler<PlanRestoreRelatedBundleEventArgs> PlanRestoreRelatedBundle; /// <summary> /// Fired when the engine is planning a rollback boundary. /// </summary> event EventHandler<PlanRollbackBoundaryEventArgs> PlanRollbackBoundary; /// <summary> /// Fired when the engine has changed progress for the bundle installation. /// </summary> event EventHandler<ProgressEventArgs> Progress; /// <summary> /// Fired when the engine has begun registering the location and visibility of the bundle. /// </summary> event EventHandler<RegisterBeginEventArgs> RegisterBegin; /// <summary> /// Fired when the engine has completed registering the location and visibility of the bundle. /// </summary> event EventHandler<RegisterCompleteEventArgs> RegisterComplete; /// <summary> /// Fired when the engine is about to rollback an MSI transaction. /// </summary> event EventHandler<RollbackMsiTransactionBeginEventArgs> RollbackMsiTransactionBegin; /// <summary> /// Fired when the engine has completed rolling back an MSI transaction. /// </summary> event EventHandler<RollbackMsiTransactionCompleteEventArgs> RollbackMsiTransactionComplete; /// <summary> /// Fired when the engine has begun to setup the update package. /// </summary> event EventHandler<SetUpdateBeginEventArgs> SetUpdateBegin; /// <summary> /// Fired when the engine has completed setting up the update package. /// </summary> event EventHandler<SetUpdateCompleteEventArgs> SetUpdateComplete; /// <summary> /// Fired when the engine is shutting down the bootstrapper application. /// </summary> event EventHandler<ShutdownEventArgs> Shutdown; /// <summary> /// Fired when the engine is starting up the bootstrapper application. /// </summary> event EventHandler<StartupEventArgs> Startup; /// <summary> /// Fired when the engine is about to take a system restore point. /// </summary> event EventHandler<SystemRestorePointBeginEventArgs> SystemRestorePointBegin; /// <summary> /// Fired when the engine has completed taking a system restore point. /// </summary> event EventHandler<SystemRestorePointCompleteEventArgs> SystemRestorePointComplete; /// <summary> /// Fired when the engine unregisters the bundle. /// </summary> event EventHandler<UnregisterBeginEventArgs> UnregisterBegin; /// <summary> /// Fired when the engine unregistration is complete. /// </summary> event EventHandler<UnregisterCompleteEventArgs> UnregisterComplete; } }