aboutsummaryrefslogtreecommitdiff
path: root/src/api/burn/WixToolset.Mba.Core/IBootstrapperCommand.cs
blob: e861813faede4157fbb1f7983acf8d2a87e72d3b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// 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>
    /// Command information passed from the engine for the BA to perform.
    /// </summary>
    public interface IBootstrapperCommand
    {
        /// <summary>
        /// Gets the action for the BA to perform.
        /// </summary>
        LaunchAction Action { get; }

        /// <summary>
        /// Gets the display level for the BA.
        /// </summary>
        Display Display { get; }

        /// <summary>
        /// Gets the action to perform if a reboot is required.
        /// </summary>
        Restart Restart { get; }

        /// <summary>
        /// Gets the command line arguments as a string array.
        /// </summary>
        /// <returns>
        /// Array of command line arguments not handled by the engine.
        /// </returns>
        /// <exception type="Win32Exception">The command line could not be parsed into an array.</exception>
        string[] CommandLineArgs { get; }

        /// <summary>
        /// Hint for the initial visibility of the window.
        /// </summary>
        int CmdShow { get; }

        /// <summary>
        /// Gets the method of how the engine was resumed from a previous installation step.
        /// </summary>
        ResumeType Resume { get; }

        /// <summary>
        /// Gets the handle to the splash screen window. If no splash screen was displayed this value will be IntPtr.Zero.
        /// </summary>
        IntPtr SplashScreen { get; }

        /// <summary>
        /// If this was run from a related bundle, specifies the relation type.
        /// </summary>
        RelationType Relation { get; }

        /// <summary>
        /// If this was run from a backward compatible bundle.
        /// </summary>
        bool Passthrough { get; }

        /// <summary>
        /// Gets layout directory.
        /// </summary>
        string LayoutDirectory { get; }

        /// <summary>
        /// Gets bootstrapper working folder.
        /// </summary>
        string BootstrapperWorkingFolder { get; }

        /// <summary>
        /// Gets path to BootstrapperApplicationData.xml.
        /// </summary>
        string BootstrapperApplicationDataPath { get; }
    }
}