// 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;
using System.Runtime.InteropServices;
using System.Threading;
///
/// The default bootstrapper application.
///
[ClassInterface(ClassInterfaceType.None)]
public abstract class BootstrapperApplication : MarshalByRefObject, IDefaultBootstrapperApplication
{
///
/// Specifies whether this bootstrapper should run asynchronously. The default is true.
///
protected readonly bool asyncExecution;
///
/// Gets the for interaction with the engine.
///
protected readonly IEngine engine;
///
/// Creates a new instance of the class.
///
protected BootstrapperApplication(IEngine engine)
{
this.engine = engine;
this.asyncExecution = true;
}
///
public event EventHandler Startup;
///
public event EventHandler Shutdown;
///
public event EventHandler DetectBegin;
///
public event EventHandler DetectForwardCompatibleBundle;
///
public event EventHandler DetectUpdateBegin;
///
public event EventHandler DetectUpdate;
///
public event EventHandler DetectUpdateComplete;
///
public event EventHandler DetectRelatedBundle;
///
public event EventHandler DetectPackageBegin;
///
public event EventHandler DetectCompatibleMsiPackage;
///
public event EventHandler DetectRelatedMsiPackage;
///
public event EventHandler DetectPatchTarget;
///
public event EventHandler DetectMsiFeature;
///
public event EventHandler DetectPackageComplete;
///
public event EventHandler DetectComplete;
///
public event EventHandler PlanBegin;
///
public event EventHandler PlanRelatedBundle;
///
public event EventHandler PlanRelatedBundleType;
///
public event EventHandler PlanRollbackBoundary;
///
public event EventHandler PlanPackageBegin;
///
public event EventHandler PlanCompatibleMsiPackageBegin;
///
public event EventHandler PlanCompatibleMsiPackageComplete;
///
public event EventHandler PlanPatchTarget;
///
public event EventHandler PlanMsiFeature;
///
public event EventHandler PlanMsiPackage;
///
public event EventHandler PlanPackageComplete;
///
public event EventHandler PlannedCompatiblePackage;
///
public event EventHandler PlannedPackage;
///
public event EventHandler PlanComplete;
///
public event EventHandler ApplyBegin;
///
public event EventHandler ElevateBegin;
///
public event EventHandler ElevateComplete;
///
public event EventHandler Progress;
///
public event EventHandler Error;
///
public event EventHandler RegisterBegin;
///
public event EventHandler RegisterComplete;
///
public event EventHandler UnregisterBegin;
///
public event EventHandler UnregisterComplete;
///
public event EventHandler CacheBegin;
///
public event EventHandler CachePackageBegin;
///
public event EventHandler CacheAcquireBegin;
///
public event EventHandler CacheAcquireProgress;
///
public event EventHandler CacheAcquireResolving;
///
public event EventHandler CacheAcquireComplete;
///
public event EventHandler CacheVerifyBegin;
///
public event EventHandler CacheVerifyProgress;
///
public event EventHandler CacheVerifyComplete;
///
public event EventHandler CachePackageComplete;
///
public event EventHandler CacheComplete;
///
public event EventHandler ExecuteBegin;
///
public event EventHandler ExecutePackageBegin;
///
public event EventHandler ExecutePatchTarget;
///
public event EventHandler ExecuteMsiMessage;
///
public event EventHandler ExecuteFilesInUse;
///
public event EventHandler ExecutePackageComplete;
///
public event EventHandler ExecuteComplete;
///
public event EventHandler ApplyComplete;
///
public event EventHandler ApplyDowngrade;
///
public event EventHandler ExecuteProgress;
///
public event EventHandler LaunchApprovedExeBegin;
///
public event EventHandler LaunchApprovedExeComplete;
///
public event EventHandler BeginMsiTransactionBegin;
///
public event EventHandler BeginMsiTransactionComplete;
///
public event EventHandler CommitMsiTransactionBegin;
///
public event EventHandler CommitMsiTransactionComplete;
///
public event EventHandler RollbackMsiTransactionBegin;
///
public event EventHandler RollbackMsiTransactionComplete;
///
public event EventHandler PauseAutomaticUpdatesBegin;
///
public event EventHandler PauseAutomaticUpdatesComplete;
///
public event EventHandler SystemRestorePointBegin;
///
public event EventHandler SystemRestorePointComplete;
///
public event EventHandler PlanForwardCompatibleBundle;
///
public event EventHandler CacheContainerOrPayloadVerifyBegin;
///
public event EventHandler CacheContainerOrPayloadVerifyProgress;
///
public event EventHandler CacheContainerOrPayloadVerifyComplete;
///
public event EventHandler CachePayloadExtractBegin;
///
public event EventHandler CachePayloadExtractProgress;
///
public event EventHandler CachePayloadExtractComplete;
///
public event EventHandler SetUpdateBegin;
///
public event EventHandler SetUpdateComplete;
///
public event EventHandler PlanRestoreRelatedBundle;
///
public event EventHandler ExecuteProcessCancel;
///
public event EventHandler DetectRelatedBundlePackage;
///
public event EventHandler CachePackageNonVitalValidationFailure;
///
/// Entry point that is called when the bootstrapper application is ready to run.
///
protected abstract void Run();
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnStartup(StartupEventArgs args)
{
EventHandler handler = this.Startup;
if (null != handler)
{
handler(this, args);
}
if (this.asyncExecution)
{
this.engine.Log(LogLevel.Verbose, "Creating BA thread to run asynchronously.");
Thread uiThread = new Thread(this.Run);
uiThread.Name = "UIThread";
uiThread.SetApartmentState(ApartmentState.STA);
uiThread.Start();
}
else
{
this.engine.Log(LogLevel.Verbose, "Creating BA thread to run synchronously.");
this.Run();
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnShutdown(ShutdownEventArgs args)
{
EventHandler handler = this.Shutdown;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnDetectBegin(DetectBeginEventArgs args)
{
EventHandler handler = this.DetectBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnDetectForwardCompatibleBundle(DetectForwardCompatibleBundleEventArgs args)
{
EventHandler handler = this.DetectForwardCompatibleBundle;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnDetectUpdateBegin(DetectUpdateBeginEventArgs args)
{
EventHandler handler = this.DetectUpdateBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnDetectUpdate(DetectUpdateEventArgs args)
{
EventHandler handler = this.DetectUpdate;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnDetectUpdateComplete(DetectUpdateCompleteEventArgs args)
{
EventHandler handler = this.DetectUpdateComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnDetectRelatedBundle(DetectRelatedBundleEventArgs args)
{
EventHandler handler = this.DetectRelatedBundle;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnDetectPackageBegin(DetectPackageBeginEventArgs args)
{
EventHandler handler = this.DetectPackageBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnDetectCompatibleMsiPackage(DetectCompatibleMsiPackageEventArgs args)
{
EventHandler handler = this.DetectCompatibleMsiPackage;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnDetectRelatedMsiPackage(DetectRelatedMsiPackageEventArgs args)
{
EventHandler handler = this.DetectRelatedMsiPackage;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnDetectPatchTarget(DetectPatchTargetEventArgs args)
{
EventHandler handler = this.DetectPatchTarget;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnDetectMsiFeature(DetectMsiFeatureEventArgs args)
{
EventHandler handler = this.DetectMsiFeature;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnDetectPackageComplete(DetectPackageCompleteEventArgs args)
{
EventHandler handler = this.DetectPackageComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnDetectComplete(DetectCompleteEventArgs args)
{
EventHandler handler = this.DetectComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPlanBegin(PlanBeginEventArgs args)
{
EventHandler handler = this.PlanBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPlanRelatedBundle(PlanRelatedBundleEventArgs args)
{
EventHandler handler = this.PlanRelatedBundle;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPlanRelatedBundleType(PlanRelatedBundleTypeEventArgs args)
{
EventHandler handler = this.PlanRelatedBundleType;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
protected virtual void OnPlanRollbackBoundary(PlanRollbackBoundaryEventArgs args)
{
EventHandler handler = this.PlanRollbackBoundary;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPlanPackageBegin(PlanPackageBeginEventArgs args)
{
EventHandler handler = this.PlanPackageBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPlanCompatibleMsiPackageBegin(PlanCompatibleMsiPackageBeginEventArgs args)
{
EventHandler handler = this.PlanCompatibleMsiPackageBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPlanCompatibleMsiPackageComplete(PlanCompatibleMsiPackageCompleteEventArgs args)
{
EventHandler handler = this.PlanCompatibleMsiPackageComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPlanPatchTarget(PlanPatchTargetEventArgs args)
{
EventHandler handler = this.PlanPatchTarget;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPlanMsiFeature(PlanMsiFeatureEventArgs args)
{
EventHandler handler = this.PlanMsiFeature;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPlanMsiPackage(PlanMsiPackageEventArgs args)
{
EventHandler handler = this.PlanMsiPackage;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPlanPackageComplete(PlanPackageCompleteEventArgs args)
{
EventHandler handler = this.PlanPackageComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPlannedCompatiblePackage(PlannedCompatiblePackageEventArgs args)
{
EventHandler handler = this.PlannedCompatiblePackage;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPlannedPackage(PlannedPackageEventArgs args)
{
EventHandler handler = this.PlannedPackage;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPlanComplete(PlanCompleteEventArgs args)
{
EventHandler handler = this.PlanComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnApplyBegin(ApplyBeginEventArgs args)
{
EventHandler handler = this.ApplyBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnElevateBegin(ElevateBeginEventArgs args)
{
EventHandler handler = this.ElevateBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnElevateComplete(ElevateCompleteEventArgs args)
{
EventHandler handler = this.ElevateComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnProgress(ProgressEventArgs args)
{
EventHandler handler = this.Progress;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnError(ErrorEventArgs args)
{
EventHandler handler = this.Error;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnRegisterBegin(RegisterBeginEventArgs args)
{
EventHandler handler = this.RegisterBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnRegisterComplete(RegisterCompleteEventArgs args)
{
EventHandler handler = this.RegisterComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnUnregisterBegin(UnregisterBeginEventArgs args)
{
EventHandler handler = this.UnregisterBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnUnregisterComplete(UnregisterCompleteEventArgs args)
{
EventHandler handler = this.UnregisterComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCacheBegin(CacheBeginEventArgs args)
{
EventHandler handler = this.CacheBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCachePackageBegin(CachePackageBeginEventArgs args)
{
EventHandler handler = this.CachePackageBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCacheAcquireBegin(CacheAcquireBeginEventArgs args)
{
EventHandler handler = this.CacheAcquireBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCacheAcquireProgress(CacheAcquireProgressEventArgs args)
{
EventHandler handler = this.CacheAcquireProgress;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnCacheAcquireResolving(CacheAcquireResolvingEventArgs args)
{
EventHandler handler = this.CacheAcquireResolving;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCacheAcquireComplete(CacheAcquireCompleteEventArgs args)
{
EventHandler handler = this.CacheAcquireComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCacheVerifyBegin(CacheVerifyBeginEventArgs args)
{
EventHandler handler = this.CacheVerifyBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCacheVerifyProgress(CacheVerifyProgressEventArgs args)
{
EventHandler handler = this.CacheVerifyProgress;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCacheVerifyComplete(CacheVerifyCompleteEventArgs args)
{
EventHandler handler = this.CacheVerifyComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCachePackageComplete(CachePackageCompleteEventArgs args)
{
EventHandler handler = this.CachePackageComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnCacheComplete(CacheCompleteEventArgs args)
{
EventHandler handler = this.CacheComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnExecuteBegin(ExecuteBeginEventArgs args)
{
EventHandler handler = this.ExecuteBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnExecutePackageBegin(ExecutePackageBeginEventArgs args)
{
EventHandler handler = this.ExecutePackageBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnExecutePatchTarget(ExecutePatchTargetEventArgs args)
{
EventHandler handler = this.ExecutePatchTarget;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnExecuteMsiMessage(ExecuteMsiMessageEventArgs args)
{
EventHandler handler = this.ExecuteMsiMessage;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnExecuteFilesInUse(ExecuteFilesInUseEventArgs args)
{
EventHandler handler = this.ExecuteFilesInUse;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnExecutePackageComplete(ExecutePackageCompleteEventArgs args)
{
EventHandler handler = this.ExecutePackageComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnExecuteComplete(ExecuteCompleteEventArgs args)
{
EventHandler handler = this.ExecuteComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnApplyComplete(ApplyCompleteEventArgs args)
{
EventHandler handler = this.ApplyComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnApplyDowngrade(ApplyDowngradeEventArgs args)
{
EventHandler handler = this.ApplyDowngrade;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnExecuteProgress(ExecuteProgressEventArgs args)
{
EventHandler handler = this.ExecuteProgress;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnLaunchApprovedExeBegin(LaunchApprovedExeBeginEventArgs args)
{
EventHandler handler = this.LaunchApprovedExeBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnLaunchApprovedExeComplete(LaunchApprovedExeCompleteEventArgs args)
{
EventHandler handler = this.LaunchApprovedExeComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnBeginMsiTransactionBegin(BeginMsiTransactionBeginEventArgs args)
{
EventHandler handler = this.BeginMsiTransactionBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnBeginMsiTransactionComplete(BeginMsiTransactionCompleteEventArgs args)
{
EventHandler handler = this.BeginMsiTransactionComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnCommitMsiTransactionBegin(CommitMsiTransactionBeginEventArgs args)
{
EventHandler handler = this.CommitMsiTransactionBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnCommitMsiTransactionComplete(CommitMsiTransactionCompleteEventArgs args)
{
EventHandler handler = this.CommitMsiTransactionComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnRollbackMsiTransactionBegin(RollbackMsiTransactionBeginEventArgs args)
{
EventHandler handler = this.RollbackMsiTransactionBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnRollbackMsiTransactionComplete(RollbackMsiTransactionCompleteEventArgs args)
{
EventHandler handler = this.RollbackMsiTransactionComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPauseAutomaticUpdatesBegin(PauseAutomaticUpdatesBeginEventArgs args)
{
EventHandler handler = this.PauseAutomaticUpdatesBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPauseAutomaticUpdatesComplete(PauseAutomaticUpdatesCompleteEventArgs args)
{
EventHandler handler = this.PauseAutomaticUpdatesComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnSystemRestorePointBegin(SystemRestorePointBeginEventArgs args)
{
EventHandler handler = this.SystemRestorePointBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnSystemRestorePointComplete(SystemRestorePointCompleteEventArgs args)
{
EventHandler handler = this.SystemRestorePointComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
protected virtual void OnPlanForwardCompatibleBundle(PlanForwardCompatibleBundleEventArgs args)
{
EventHandler handler = this.PlanForwardCompatibleBundle;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCacheContainerOrPayloadVerifyBegin(CacheContainerOrPayloadVerifyBeginEventArgs args)
{
EventHandler handler = this.CacheContainerOrPayloadVerifyBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCacheContainerOrPayloadVerifyProgress(CacheContainerOrPayloadVerifyProgressEventArgs args)
{
EventHandler handler = this.CacheContainerOrPayloadVerifyProgress;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCacheContainerOrPayloadVerifyComplete(CacheContainerOrPayloadVerifyCompleteEventArgs args)
{
EventHandler handler = this.CacheContainerOrPayloadVerifyComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCachePayloadExtractBegin(CachePayloadExtractBeginEventArgs args)
{
EventHandler handler = this.CachePayloadExtractBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCachePayloadExtractProgress(CachePayloadExtractProgressEventArgs args)
{
EventHandler handler = this.CachePayloadExtractProgress;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnCachePayloadExtractComplete(CachePayloadExtractCompleteEventArgs args)
{
EventHandler handler = this.CachePayloadExtractComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnSetUpdateBegin(SetUpdateBeginEventArgs args)
{
EventHandler handler = this.SetUpdateBegin;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
///
protected virtual void OnSetUpdateComplete(SetUpdateCompleteEventArgs args)
{
EventHandler handler = this.SetUpdateComplete;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnPlanRestoreRelatedBundle(PlanRestoreRelatedBundleEventArgs args)
{
EventHandler handler = this.PlanRestoreRelatedBundle;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnExecuteProcessCancel(ExecuteProcessCancelEventArgs args)
{
EventHandler handler = this.ExecuteProcessCancel;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
/// Additional arguments for this event.
protected virtual void OnDetectRelatedBundlePackage(DetectRelatedBundlePackageEventArgs args)
{
EventHandler handler = this.DetectRelatedBundlePackage;
if (null != handler)
{
handler(this, args);
}
}
///
/// Called by the engine, raises the event.
///
protected virtual void OnCachePackageNonVitalValidationFailure(CachePackageNonVitalValidationFailureEventArgs args)
{
EventHandler handler = this.CachePackageNonVitalValidationFailure;
if (null != handler)
{
handler(this, args);
}
}
#region IBootstrapperApplication Members
int IBootstrapperApplication.BAProc(int message, IntPtr pvArgs, IntPtr pvResults, IntPtr pvContext)
{
switch (message)
{
default:
return NativeMethods.E_NOTIMPL;
}
}
void IBootstrapperApplication.BAProcFallback(int message, IntPtr pvArgs, IntPtr pvResults, ref int phr, IntPtr pvContext)
{
}
int IBootstrapperApplication.OnStartup()
{
StartupEventArgs args = new StartupEventArgs();
this.OnStartup(args);
return args.HResult;
}
int IBootstrapperApplication.OnShutdown(ref BOOTSTRAPPER_SHUTDOWN_ACTION action)
{
ShutdownEventArgs args = new ShutdownEventArgs(action);
this.OnShutdown(args);
action = args.Action;
return args.HResult;
}
int IBootstrapperApplication.OnDetectBegin(bool fCached, RegistrationType registrationType, int cPackages, ref bool fCancel)
{
DetectBeginEventArgs args = new DetectBeginEventArgs(fCached, registrationType, cPackages, fCancel);
this.OnDetectBegin(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnDetectForwardCompatibleBundle(string wzBundleId, RelationType relationType, string wzBundleTag, bool fPerMachine, string wzVersion, bool fMissingFromCache, ref bool fCancel)
{
DetectForwardCompatibleBundleEventArgs args = new DetectForwardCompatibleBundleEventArgs(wzBundleId, relationType, wzBundleTag, fPerMachine, wzVersion, fMissingFromCache, fCancel);
this.OnDetectForwardCompatibleBundle(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnDetectUpdateBegin(string wzUpdateLocation, ref bool fCancel, ref bool fSkip)
{
DetectUpdateBeginEventArgs args = new DetectUpdateBeginEventArgs(wzUpdateLocation, fCancel, fSkip);
this.OnDetectUpdateBegin(args);
fCancel = args.Cancel;
fSkip = args.Skip;
return args.HResult;
}
int IBootstrapperApplication.OnDetectUpdate(string wzUpdateLocation, long dw64Size, string wzHash, UpdateHashType hashAlgorithm, string wzVersion, string wzTitle, string wzSummary, string wzContentType, string wzContent, ref bool fCancel, ref bool fStopProcessingUpdates)
{
DetectUpdateEventArgs args = new DetectUpdateEventArgs(wzUpdateLocation, dw64Size, wzHash, hashAlgorithm, wzVersion, wzTitle, wzSummary, wzContentType, wzContent, fCancel, fStopProcessingUpdates);
this.OnDetectUpdate(args);
fCancel = args.Cancel;
fStopProcessingUpdates = args.StopProcessingUpdates;
return args.HResult;
}
int IBootstrapperApplication.OnDetectUpdateComplete(int hrStatus, ref bool fIgnoreError)
{
DetectUpdateCompleteEventArgs args = new DetectUpdateCompleteEventArgs(hrStatus, fIgnoreError);
this.OnDetectUpdateComplete(args);
fIgnoreError = args.IgnoreError;
return args.HResult;
}
int IBootstrapperApplication.OnDetectRelatedBundle(string wzProductCode, RelationType relationType, string wzBundleTag, bool fPerMachine, string wzVersion, bool fMissingFromCache, ref bool fCancel)
{
DetectRelatedBundleEventArgs args = new DetectRelatedBundleEventArgs(wzProductCode, relationType, wzBundleTag, fPerMachine, wzVersion, fMissingFromCache, fCancel);
this.OnDetectRelatedBundle(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnDetectPackageBegin(string wzPackageId, ref bool fCancel)
{
DetectPackageBeginEventArgs args = new DetectPackageBeginEventArgs(wzPackageId, fCancel);
this.OnDetectPackageBegin(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnDetectCompatibleMsiPackage(string wzPackageId, string wzCompatiblePackageId, string wzCompatiblePackageVersion, ref bool fCancel)
{
DetectCompatibleMsiPackageEventArgs args = new DetectCompatibleMsiPackageEventArgs(wzPackageId, wzCompatiblePackageId, wzCompatiblePackageVersion, fCancel);
this.OnDetectCompatibleMsiPackage(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnDetectRelatedMsiPackage(string wzPackageId, string wzUpgradeCode, string wzProductCode, bool fPerMachine, string wzVersion, RelatedOperation operation, ref bool fCancel)
{
DetectRelatedMsiPackageEventArgs args = new DetectRelatedMsiPackageEventArgs(wzPackageId, wzUpgradeCode, wzProductCode, fPerMachine, wzVersion, operation, fCancel);
this.OnDetectRelatedMsiPackage(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnDetectPatchTarget(string wzPackageId, string wzProductCode, PackageState patchState, ref bool fCancel)
{
DetectPatchTargetEventArgs args = new DetectPatchTargetEventArgs(wzPackageId, wzProductCode, patchState, fCancel);
this.OnDetectPatchTarget(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnDetectMsiFeature(string wzPackageId, string wzFeatureId, FeatureState state, ref bool fCancel)
{
DetectMsiFeatureEventArgs args = new DetectMsiFeatureEventArgs(wzPackageId, wzFeatureId, state, fCancel);
this.OnDetectMsiFeature(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnDetectPackageComplete(string wzPackageId, int hrStatus, PackageState state, bool fCached)
{
DetectPackageCompleteEventArgs args = new DetectPackageCompleteEventArgs(wzPackageId, hrStatus, state, fCached);
this.OnDetectPackageComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnDetectComplete(int hrStatus, bool fEligibleForCleanup)
{
DetectCompleteEventArgs args = new DetectCompleteEventArgs(hrStatus, fEligibleForCleanup);
this.OnDetectComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnPlanBegin(int cPackages, ref bool fCancel)
{
PlanBeginEventArgs args = new PlanBeginEventArgs(cPackages, fCancel);
this.OnPlanBegin(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnPlanRelatedBundle(string wzBundleId, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel)
{
PlanRelatedBundleEventArgs args = new PlanRelatedBundleEventArgs(wzBundleId, recommendedState, pRequestedState, fCancel);
this.OnPlanRelatedBundle(args);
pRequestedState = args.State;
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnPlanRelatedBundleType(string wzBundleId, RelatedBundlePlanType recommendedType, ref RelatedBundlePlanType pRequestedType, ref bool fCancel)
{
PlanRelatedBundleTypeEventArgs args = new PlanRelatedBundleTypeEventArgs(wzBundleId, recommendedType, pRequestedType, fCancel);
this.OnPlanRelatedBundleType(args);
pRequestedType = args.Type;
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnPlanRollbackBoundary(string wzRollbackBoundaryId, bool fRecommendedTransaction, ref bool fTransaction, ref bool fCancel)
{
PlanRollbackBoundaryEventArgs args = new PlanRollbackBoundaryEventArgs(wzRollbackBoundaryId, fRecommendedTransaction, fTransaction, fCancel);
this.OnPlanRollbackBoundary(args);
fTransaction = args.Transaction;
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnPlanPackageBegin(string wzPackageId, PackageState state, bool fCached, BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition, BOOTSTRAPPER_PACKAGE_CONDITION_RESULT repairCondition, RequestState recommendedState, BOOTSTRAPPER_CACHE_TYPE recommendedCacheType, ref RequestState pRequestedState, ref BOOTSTRAPPER_CACHE_TYPE pRequestedCacheType, ref bool fCancel)
{
PlanPackageBeginEventArgs args = new PlanPackageBeginEventArgs(wzPackageId, state, fCached, installCondition, repairCondition, recommendedState, recommendedCacheType, pRequestedState, pRequestedCacheType, fCancel);
this.OnPlanPackageBegin(args);
pRequestedState = args.State;
pRequestedCacheType = args.CacheType;
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnPlanCompatibleMsiPackageBegin(string wzPackageId, string wzCompatiblePackageId, string wzCompatiblePackageVersion, bool recommendedRemove, ref bool pRequestedRemove, ref bool fCancel)
{
PlanCompatibleMsiPackageBeginEventArgs args = new PlanCompatibleMsiPackageBeginEventArgs(wzPackageId, wzCompatiblePackageId, wzCompatiblePackageVersion, recommendedRemove, pRequestedRemove, fCancel);
this.OnPlanCompatibleMsiPackageBegin(args);
pRequestedRemove = args.RequestRemove;
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnPlanCompatibleMsiPackageComplete(string wzPackageId, string wzCompatiblePackageId, int hrStatus, bool requestedRemove)
{
PlanCompatibleMsiPackageCompleteEventArgs args = new PlanCompatibleMsiPackageCompleteEventArgs(wzPackageId, wzCompatiblePackageId, hrStatus, requestedRemove);
this.OnPlanCompatibleMsiPackageComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnPlanPatchTarget(string wzPackageId, string wzProductCode, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel)
{
PlanPatchTargetEventArgs args = new PlanPatchTargetEventArgs(wzPackageId, wzProductCode, recommendedState, pRequestedState, fCancel);
this.OnPlanPatchTarget(args);
pRequestedState = args.State;
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnPlanMsiFeature(string wzPackageId, string wzFeatureId, FeatureState recommendedState, ref FeatureState pRequestedState, ref bool fCancel)
{
PlanMsiFeatureEventArgs args = new PlanMsiFeatureEventArgs(wzPackageId, wzFeatureId, recommendedState, pRequestedState, fCancel);
this.OnPlanMsiFeature(args);
pRequestedState = args.State;
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnPlanMsiPackage(string wzPackageId, bool fExecute, ActionState action, BOOTSTRAPPER_MSI_FILE_VERSIONING recommendedFileVersioning, ref bool fCancel, ref BURN_MSI_PROPERTY actionMsiProperty, ref INSTALLUILEVEL uiLevel, ref bool fDisableExternalUiHandler, ref BOOTSTRAPPER_MSI_FILE_VERSIONING fileVersioning)
{
PlanMsiPackageEventArgs args = new PlanMsiPackageEventArgs(wzPackageId, fExecute, action, recommendedFileVersioning, fCancel, actionMsiProperty, uiLevel, fDisableExternalUiHandler, fileVersioning);
this.OnPlanMsiPackage(args);
fCancel = args.Cancel;
actionMsiProperty = args.ActionMsiProperty;
uiLevel = args.UiLevel;
fDisableExternalUiHandler = args.DisableExternalUiHandler;
fileVersioning = args.FileVersioning;
return args.HResult;
}
int IBootstrapperApplication.OnPlanPackageComplete(string wzPackageId, int hrStatus, RequestState requested)
{
var args = new PlanPackageCompleteEventArgs(wzPackageId, hrStatus, requested);
this.OnPlanPackageComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnPlannedCompatiblePackage(string wzPackageId, string wzCompatiblePackageId, bool remove)
{
var args = new PlannedCompatiblePackageEventArgs(wzPackageId, wzCompatiblePackageId, remove);
this.OnPlannedCompatiblePackage(args);
return args.HResult;
}
int IBootstrapperApplication.OnPlannedPackage(string wzPackageId, ActionState execute, ActionState rollback, bool fPlannedCache, bool fPlannedUncache)
{
var args = new PlannedPackageEventArgs(wzPackageId, execute, rollback, fPlannedCache, fPlannedUncache);
this.OnPlannedPackage(args);
return args.HResult;
}
int IBootstrapperApplication.OnPlanComplete(int hrStatus)
{
PlanCompleteEventArgs args = new PlanCompleteEventArgs(hrStatus);
this.OnPlanComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnApplyBegin(int dwPhaseCount, ref bool fCancel)
{
ApplyBeginEventArgs args = new ApplyBeginEventArgs(dwPhaseCount, fCancel);
this.OnApplyBegin(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnElevateBegin(ref bool fCancel)
{
ElevateBeginEventArgs args = new ElevateBeginEventArgs(fCancel);
this.OnElevateBegin(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnElevateComplete(int hrStatus)
{
ElevateCompleteEventArgs args = new ElevateCompleteEventArgs(hrStatus);
this.OnElevateComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnProgress(int dwProgressPercentage, int dwOverallPercentage, ref bool fCancel)
{
ProgressEventArgs args = new ProgressEventArgs(dwProgressPercentage, dwOverallPercentage, fCancel);
this.OnProgress(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnError(ErrorType errorType, string wzPackageId, int dwCode, string wzError, int dwUIHint, int cData, string[] rgwzData, Result nRecommendation, ref Result pResult)
{
ErrorEventArgs args = new ErrorEventArgs(errorType, wzPackageId, dwCode, wzError, dwUIHint, rgwzData, nRecommendation, pResult);
this.OnError(args);
pResult = args.Result;
return args.HResult;
}
int IBootstrapperApplication.OnRegisterBegin(RegistrationType recommendedRegistrationType, ref bool fCancel, ref RegistrationType registrationType)
{
RegisterBeginEventArgs args = new RegisterBeginEventArgs(recommendedRegistrationType, fCancel, registrationType);
this.OnRegisterBegin(args);
fCancel = args.Cancel;
registrationType = args.RegistrationType;
return args.HResult;
}
int IBootstrapperApplication.OnRegisterComplete(int hrStatus)
{
RegisterCompleteEventArgs args = new RegisterCompleteEventArgs(hrStatus);
this.OnRegisterComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnCacheBegin(ref bool fCancel)
{
CacheBeginEventArgs args = new CacheBeginEventArgs(fCancel);
this.OnCacheBegin(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnCachePackageBegin(string wzPackageId, int cCachePayloads, long dw64PackageCacheSize, bool fVital, ref bool fCancel)
{
CachePackageBeginEventArgs args = new CachePackageBeginEventArgs(wzPackageId, cCachePayloads, dw64PackageCacheSize, fVital, fCancel);
this.OnCachePackageBegin(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnCacheAcquireBegin(string wzPackageOrContainerId, string wzPayloadId, string wzSource, string wzDownloadUrl, string wzPayloadContainerId, CacheOperation recommendation, ref CacheOperation action, ref bool fCancel)
{
CacheAcquireBeginEventArgs args = new CacheAcquireBeginEventArgs(wzPackageOrContainerId, wzPayloadId, wzSource, wzDownloadUrl, wzPayloadContainerId, recommendation, action, fCancel);
this.OnCacheAcquireBegin(args);
action = args.Action;
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnCacheAcquireProgress(string wzPackageOrContainerId, string wzPayloadId, long dw64Progress, long dw64Total, int dwOverallPercentage, ref bool fCancel)
{
CacheAcquireProgressEventArgs args = new CacheAcquireProgressEventArgs(wzPackageOrContainerId, wzPayloadId, dw64Progress, dw64Total, dwOverallPercentage, fCancel);
this.OnCacheAcquireProgress(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnCacheAcquireResolving(string wzPackageOrContainerId, string wzPayloadId, string[] searchPaths, int cSearchPaths, bool fFoundLocal, int dwRecommendedSearchPath, string wzDownloadUrl, string wzPayloadContainerId, CacheResolveOperation recommendation, ref int dwChosenSearchPath, ref CacheResolveOperation action, ref bool fCancel)
{
CacheAcquireResolvingEventArgs args = new CacheAcquireResolvingEventArgs(wzPackageOrContainerId, wzPayloadId, searchPaths, fFoundLocal, dwRecommendedSearchPath, wzDownloadUrl, wzPayloadContainerId, recommendation, dwChosenSearchPath, action, fCancel);
this.OnCacheAcquireResolving(args);
dwChosenSearchPath = args.ChosenSearchPath;
action = args.Action;
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnCacheAcquireComplete(string wzPackageOrContainerId, string wzPayloadId, int hrStatus, BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION recommendation, ref BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION action)
{
CacheAcquireCompleteEventArgs args = new CacheAcquireCompleteEventArgs(wzPackageOrContainerId, wzPayloadId, hrStatus, recommendation, action);
this.OnCacheAcquireComplete(args);
action = args.Action;
return args.HResult;
}
int IBootstrapperApplication.OnCacheVerifyBegin(string wzPackageOrContainerId, string wzPayloadId, ref bool fCancel)
{
CacheVerifyBeginEventArgs args = new CacheVerifyBeginEventArgs(wzPackageOrContainerId, wzPayloadId, fCancel);
this.OnCacheVerifyBegin(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnCacheVerifyProgress(string wzPackageOrContainerId, string wzPayloadId, long dw64Progress, long dw64Total, int dwOverallPercentage, CacheVerifyStep verifyStep, ref bool fCancel)
{
CacheVerifyProgressEventArgs args = new CacheVerifyProgressEventArgs(wzPackageOrContainerId, wzPayloadId, dw64Progress, dw64Total, dwOverallPercentage, verifyStep, fCancel);
this.OnCacheVerifyProgress(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnCacheVerifyComplete(string wzPackageOrContainerId, string wzPayloadId, int hrStatus, BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION recommendation, ref BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION action)
{
CacheVerifyCompleteEventArgs args = new CacheVerifyCompleteEventArgs(wzPackageOrContainerId, wzPayloadId, hrStatus, recommendation, action);
this.OnCacheVerifyComplete(args);
action = args.Action;
return args.HResult;
}
int IBootstrapperApplication.OnCachePackageComplete(string wzPackageId, int hrStatus, BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION recommendation, ref BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION action)
{
CachePackageCompleteEventArgs args = new CachePackageCompleteEventArgs(wzPackageId, hrStatus, recommendation, action);
this.OnCachePackageComplete(args);
action = args.Action;
return args.HResult;
}
int IBootstrapperApplication.OnCacheComplete(int hrStatus)
{
CacheCompleteEventArgs args = new CacheCompleteEventArgs(hrStatus);
this.OnCacheComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnExecuteBegin(int cExecutingPackages, ref bool fCancel)
{
ExecuteBeginEventArgs args = new ExecuteBeginEventArgs(cExecutingPackages, fCancel);
this.OnExecuteBegin(args);
args.Cancel = fCancel;
return args.HResult;
}
int IBootstrapperApplication.OnExecutePackageBegin(string wzPackageId, bool fExecute, ActionState action, INSTALLUILEVEL uiLevel, bool fDisableExternalUiHandler, ref bool fCancel)
{
ExecutePackageBeginEventArgs args = new ExecutePackageBeginEventArgs(wzPackageId, fExecute, action, uiLevel, fDisableExternalUiHandler, fCancel);
this.OnExecutePackageBegin(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnExecutePatchTarget(string wzPackageId, string wzTargetProductCode, ref bool fCancel)
{
ExecutePatchTargetEventArgs args = new ExecutePatchTargetEventArgs(wzPackageId, wzTargetProductCode, fCancel);
this.OnExecutePatchTarget(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnExecuteProgress(string wzPackageId, int dwProgressPercentage, int dwOverallPercentage, ref bool fCancel)
{
ExecuteProgressEventArgs args = new ExecuteProgressEventArgs(wzPackageId, dwProgressPercentage, dwOverallPercentage, fCancel);
this.OnExecuteProgress(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnExecuteMsiMessage(string wzPackageId, InstallMessage messageType, int dwUIHint, string wzMessage, int cData, string[] rgwzData, Result nRecommendation, ref Result pResult)
{
ExecuteMsiMessageEventArgs args = new ExecuteMsiMessageEventArgs(wzPackageId, messageType, dwUIHint, wzMessage, rgwzData, nRecommendation, pResult);
this.OnExecuteMsiMessage(args);
pResult = args.Result;
return args.HResult;
}
int IBootstrapperApplication.OnExecuteFilesInUse(string wzPackageId, int cFiles, string[] rgwzFiles, Result nRecommendation, FilesInUseType source, ref Result pResult)
{
ExecuteFilesInUseEventArgs args = new ExecuteFilesInUseEventArgs(wzPackageId, rgwzFiles, nRecommendation, source, pResult);
this.OnExecuteFilesInUse(args);
pResult = args.Result;
return args.HResult;
}
int IBootstrapperApplication.OnExecutePackageComplete(string wzPackageId, int hrStatus, ApplyRestart restart, BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION recommendation, ref BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION pAction)
{
ExecutePackageCompleteEventArgs args = new ExecutePackageCompleteEventArgs(wzPackageId, hrStatus, restart, recommendation, pAction);
this.OnExecutePackageComplete(args);
pAction = args.Action;
return args.HResult;
}
int IBootstrapperApplication.OnExecuteComplete(int hrStatus)
{
ExecuteCompleteEventArgs args = new ExecuteCompleteEventArgs(hrStatus);
this.OnExecuteComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnUnregisterBegin(RegistrationType recommendedRegistrationType, ref RegistrationType registrationType)
{
UnregisterBeginEventArgs args = new UnregisterBeginEventArgs(recommendedRegistrationType, registrationType);
this.OnUnregisterBegin(args);
registrationType = args.RegistrationType;
return args.HResult;
}
int IBootstrapperApplication.OnUnregisterComplete(int hrStatus)
{
UnregisterCompleteEventArgs args = new UnregisterCompleteEventArgs(hrStatus);
this.OnUnregisterComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnApplyComplete(int hrStatus, ApplyRestart restart, BOOTSTRAPPER_APPLYCOMPLETE_ACTION recommendation, ref BOOTSTRAPPER_APPLYCOMPLETE_ACTION pAction)
{
ApplyCompleteEventArgs args = new ApplyCompleteEventArgs(hrStatus, restart, recommendation, pAction);
this.OnApplyComplete(args);
pAction = args.Action;
return args.HResult;
}
int IBootstrapperApplication.OnApplyDowngrade(int hrRecommendation, ref int hrStatus)
{
ApplyDowngradeEventArgs args = new ApplyDowngradeEventArgs(hrRecommendation, hrStatus);
this.OnApplyDowngrade(args);
hrStatus = args.Status;
return args.HResult;
}
int IBootstrapperApplication.OnLaunchApprovedExeBegin(ref bool fCancel)
{
LaunchApprovedExeBeginEventArgs args = new LaunchApprovedExeBeginEventArgs(fCancel);
this.OnLaunchApprovedExeBegin(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnLaunchApprovedExeComplete(int hrStatus, int processId)
{
LaunchApprovedExeCompleteEventArgs args = new LaunchApprovedExeCompleteEventArgs(hrStatus, processId);
this.OnLaunchApprovedExeComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnBeginMsiTransactionBegin(string transactionId, ref bool fCancel)
{
BeginMsiTransactionBeginEventArgs args = new BeginMsiTransactionBeginEventArgs(transactionId, fCancel);
this.OnBeginMsiTransactionBegin(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnBeginMsiTransactionComplete(string transactionId, int hrStatus)
{
BeginMsiTransactionCompleteEventArgs args = new BeginMsiTransactionCompleteEventArgs(transactionId, hrStatus);
this.OnBeginMsiTransactionComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnCommitMsiTransactionBegin(string transactionId, ref bool fCancel)
{
CommitMsiTransactionBeginEventArgs args = new CommitMsiTransactionBeginEventArgs(transactionId, fCancel);
this.OnCommitMsiTransactionBegin(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnCommitMsiTransactionComplete(string transactionId, int hrStatus)
{
CommitMsiTransactionCompleteEventArgs args = new CommitMsiTransactionCompleteEventArgs(transactionId, hrStatus);
this.OnCommitMsiTransactionComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnRollbackMsiTransactionBegin(string transactionId)
{
RollbackMsiTransactionBeginEventArgs args = new RollbackMsiTransactionBeginEventArgs(transactionId);
this.OnRollbackMsiTransactionBegin(args);
return args.HResult;
}
int IBootstrapperApplication.OnRollbackMsiTransactionComplete(string transactionId, int hrStatus)
{
RollbackMsiTransactionCompleteEventArgs args = new RollbackMsiTransactionCompleteEventArgs(transactionId, hrStatus);
this.OnRollbackMsiTransactionComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnPauseAutomaticUpdatesBegin()
{
PauseAutomaticUpdatesBeginEventArgs args = new PauseAutomaticUpdatesBeginEventArgs();
this.OnPauseAutomaticUpdatesBegin(args);
return args.HResult;
}
int IBootstrapperApplication.OnPauseAutomaticUpdatesComplete(int hrStatus)
{
PauseAutomaticUpdatesCompleteEventArgs args = new PauseAutomaticUpdatesCompleteEventArgs(hrStatus);
this.OnPauseAutomaticUpdatesComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnSystemRestorePointBegin()
{
SystemRestorePointBeginEventArgs args = new SystemRestorePointBeginEventArgs();
this.OnSystemRestorePointBegin(args);
return args.HResult;
}
int IBootstrapperApplication.OnSystemRestorePointComplete(int hrStatus)
{
SystemRestorePointCompleteEventArgs args = new SystemRestorePointCompleteEventArgs(hrStatus);
this.OnSystemRestorePointComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnPlanForwardCompatibleBundle(string wzBundleId, RelationType relationType, string wzBundleTag, bool fPerMachine, string wzVersion, bool fRecommendedIgnoreBundle, ref bool fCancel, ref bool fIgnoreBundle)
{
PlanForwardCompatibleBundleEventArgs args = new PlanForwardCompatibleBundleEventArgs(wzBundleId, relationType, wzBundleTag, fPerMachine, wzVersion, fRecommendedIgnoreBundle, fCancel, fIgnoreBundle);
this.OnPlanForwardCompatibleBundle(args);
fCancel = args.Cancel;
fIgnoreBundle = args.IgnoreBundle;
return args.HResult;
}
int IBootstrapperApplication.OnCacheContainerOrPayloadVerifyBegin(string wzPackageOrContainerId, string wzPayloadId, ref bool fCancel)
{
CacheContainerOrPayloadVerifyBeginEventArgs args = new CacheContainerOrPayloadVerifyBeginEventArgs(wzPackageOrContainerId, wzPayloadId, fCancel);
this.OnCacheContainerOrPayloadVerifyBegin(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnCacheContainerOrPayloadVerifyProgress(string wzPackageOrContainerId, string wzPayloadId, long dw64Progress, long dw64Total, int dwOverallPercentage, ref bool fCancel)
{
CacheContainerOrPayloadVerifyProgressEventArgs args = new CacheContainerOrPayloadVerifyProgressEventArgs(wzPackageOrContainerId, wzPayloadId, dw64Progress, dw64Total, dwOverallPercentage, fCancel);
this.OnCacheContainerOrPayloadVerifyProgress(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnCacheContainerOrPayloadVerifyComplete(string wzPackageOrContainerId, string wzPayloadId, int hrStatus)
{
CacheContainerOrPayloadVerifyCompleteEventArgs args = new CacheContainerOrPayloadVerifyCompleteEventArgs(wzPackageOrContainerId, wzPayloadId, hrStatus);
this.OnCacheContainerOrPayloadVerifyComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnCachePayloadExtractBegin(string wzContainerId, string wzPayloadId, ref bool fCancel)
{
CachePayloadExtractBeginEventArgs args = new CachePayloadExtractBeginEventArgs(wzContainerId, wzPayloadId, fCancel);
this.OnCachePayloadExtractBegin(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnCachePayloadExtractProgress(string wzContainerId, string wzPayloadId, long dw64Progress, long dw64Total, int dwOverallPercentage, ref bool fCancel)
{
CachePayloadExtractProgressEventArgs args = new CachePayloadExtractProgressEventArgs(wzContainerId, wzPayloadId, dw64Progress, dw64Total, dwOverallPercentage, fCancel);
this.OnCachePayloadExtractProgress(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnCachePayloadExtractComplete(string wzContainerId, string wzPayloadId, int hrStatus)
{
CachePayloadExtractCompleteEventArgs args = new CachePayloadExtractCompleteEventArgs(wzContainerId, wzPayloadId, hrStatus);
this.OnCachePayloadExtractComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnSetUpdateBegin()
{
SetUpdateBeginEventArgs args = new SetUpdateBeginEventArgs();
this.OnSetUpdateBegin(args);
return args.HResult;
}
int IBootstrapperApplication.OnSetUpdateComplete(int hrStatus, string wzPreviousPackageId, string wzNewPackageId)
{
SetUpdateCompleteEventArgs args = new SetUpdateCompleteEventArgs(hrStatus, wzPreviousPackageId, wzNewPackageId);
this.OnSetUpdateComplete(args);
return args.HResult;
}
int IBootstrapperApplication.OnPlanRestoreRelatedBundle(string wzBundleId, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel)
{
PlanRestoreRelatedBundleEventArgs args = new PlanRestoreRelatedBundleEventArgs(wzBundleId, recommendedState, pRequestedState, fCancel);
this.OnPlanRestoreRelatedBundle(args);
pRequestedState = args.State;
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnExecuteProcessCancel(string wzPackageId, int processId, BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION recommendation, ref BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION pAction)
{
ExecuteProcessCancelEventArgs args = new ExecuteProcessCancelEventArgs(wzPackageId, processId, recommendation, pAction);
this.OnExecuteProcessCancel(args);
pAction = args.Action;
return args.HResult;
}
int IBootstrapperApplication.OnDetectRelatedBundlePackage(string wzPackageId, string wzProductCode, RelationType relationType, bool fPerMachine, string wzVersion, ref bool fCancel)
{
DetectRelatedBundlePackageEventArgs args = new DetectRelatedBundlePackageEventArgs(wzPackageId, wzProductCode, relationType, fPerMachine, wzVersion, fCancel);
this.OnDetectRelatedBundlePackage(args);
fCancel = args.Cancel;
return args.HResult;
}
int IBootstrapperApplication.OnCachePackageNonVitalValidationFailure(string wzPackageId, int hrStatus, BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION recommendation, ref BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION action)
{
CachePackageNonVitalValidationFailureEventArgs args = new CachePackageNonVitalValidationFailureEventArgs(wzPackageId, hrStatus, recommendation, action);
this.OnCachePackageNonVitalValidationFailure(args);
action = args.Action;
return args.HResult;
}
#endregion
}
}