aboutsummaryrefslogtreecommitdiff
path: root/src/api/burn/WixToolset.Mba.Core/BootstrapperCommand.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/burn/WixToolset.Mba.Core/BootstrapperCommand.cs')
-rw-r--r--src/api/burn/WixToolset.Mba.Core/BootstrapperCommand.cs44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/api/burn/WixToolset.Mba.Core/BootstrapperCommand.cs b/src/api/burn/WixToolset.Mba.Core/BootstrapperCommand.cs
index ed1dc191..b96a8f95 100644
--- a/src/api/burn/WixToolset.Mba.Core/BootstrapperCommand.cs
+++ b/src/api/burn/WixToolset.Mba.Core/BootstrapperCommand.cs
@@ -3,11 +3,55 @@
3namespace WixToolset.Mba.Core 3namespace WixToolset.Mba.Core
4{ 4{
5 using System; 5 using System;
6 using System.CodeDom.Compiler;
6 using System.Collections.Generic; 7 using System.Collections.Generic;
7 using System.ComponentModel; 8 using System.ComponentModel;
8 using System.Runtime.InteropServices; 9 using System.Runtime.InteropServices;
9 10
10 /// <summary> 11 /// <summary>
12 /// Command-line provided to the bootstrapper application.
13 /// </summary>
14 [Serializable]
15 [StructLayout(LayoutKind.Sequential)]
16 [GeneratedCodeAttribute("WixToolset.Bootstrapper.InteropCodeGenerator", "1.0.0.0")]
17 public struct Command
18 {
19 // Strings must be declared as pointers so that Marshaling doesn't free them.
20 [MarshalAs(UnmanagedType.I4)] internal int cbSize;
21 [MarshalAs(UnmanagedType.U4)] private readonly LaunchAction action;
22 [MarshalAs(UnmanagedType.U4)] private readonly Display display;
23 private readonly IntPtr wzCommandLine;
24 [MarshalAs(UnmanagedType.I4)] private readonly int nCmdShow;
25 [MarshalAs(UnmanagedType.U4)] private readonly ResumeType resume;
26 private readonly IntPtr hwndSplashScreen;
27 [MarshalAs(UnmanagedType.I4)] private readonly RelationType relation;
28 [MarshalAs(UnmanagedType.Bool)] private readonly bool passthrough;
29 private readonly IntPtr wzLayoutDirectory;
30 private readonly IntPtr wzBootstrapperWorkingFolder;
31 private readonly IntPtr wzBootstrapperApplicationDataPath;
32
33 /// <summary>
34 /// Gets the IBootstrapperCommand for this Command.
35 /// </summary>
36 /// <returns>IBootstrapperCommand</returns>
37 public IBootstrapperCommand GetBootstrapperCommand()
38 {
39 return new BootstrapperCommand(
40 this.action,
41 this.display,
42 Marshal.PtrToStringUni(this.wzCommandLine),
43 this.nCmdShow,
44 this.resume,
45 this.hwndSplashScreen,
46 this.relation,
47 this.passthrough,
48 Marshal.PtrToStringUni(this.wzLayoutDirectory),
49 Marshal.PtrToStringUni(this.wzBootstrapperWorkingFolder),
50 Marshal.PtrToStringUni(this.wzBootstrapperApplicationDataPath));
51 }
52 }
53
54 /// <summary>
11 /// Default implementation of <see cref="IBootstrapperCommand"/>. 55 /// Default implementation of <see cref="IBootstrapperCommand"/>.
12 /// </summary> 56 /// </summary>
13 public sealed class BootstrapperCommand : IBootstrapperCommand 57 public sealed class BootstrapperCommand : IBootstrapperCommand