main
cs 101 lines 3.3 KB
Raw
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
3 namespace WixToolset.Extensibility.Data
4 {
5 using System;
6 using System.Collections.Generic;
7 using WixToolset.Data;
8
9 /// <summary>
10 /// The context used to decompile a Windows Installer database.
11 /// </summary>
12 public interface IWindowsInstallerDecompileContext
13 {
14 /// <summary>
15 /// Gets or sets the service provider.
16 /// </summary>
17 IServiceProvider ServiceProvider { get; }
18
19 /// <summary>
20 /// Gets or sets the path to the file to decompile.
21 /// </summary>
22 string DecompilePath { get; set; }
23
24 /// <summary>
25 /// Gets or sets the type to decompile.
26 /// </summary>
27 OutputType DecompileType { get; set; }
28
29 /// <summary>
30 /// Gets or sets the decompiler extensions.
31 /// </summary>
32 IReadOnlyCollection<IWindowsInstallerDecompilerExtension> Extensions { get; set; }
33
34 /// <summary>
35 /// Collection of extension data to use during decompiling.
36 /// </summary>
37 IReadOnlyCollection<IExtensionData> ExtensionData { get; set; }
38
39 /// <summary>
40 /// Symbol definition creator used to load extension data.
41 /// </summary>
42 ISymbolDefinitionCreator SymbolDefinitionCreator { get; set; }
43
44 /// <summary>
45 /// Gets or sets the folder where content is extracted.
46 /// </summary>
47 string ExtractFolder { get; set; }
48
49 /// <summary>
50 /// Gets or sets the folder where files are extracted.
51 /// </summary>
52 string CabinetExtractFolder { get; set; }
53
54 /// <summary>
55 /// Optional gets or sets the base path for the File/@Source.
56 /// </summary>
57 /// <remarks>Default value is "SourceDir" to enable use of BindPaths.</remarks>
58 string BaseSourcePath { get; set; }
59
60 /// <summary>
61 /// Gets or sets the intermediate folder.
62 /// </summary>
63 string IntermediateFolder { get; set; }
64
65 /// <summary>
66 /// Gets or sets where to output the result.
67 /// </summary>
68 string OutputPath { get; set; }
69
70 /// <summary>
71 /// Gets or sets the option to suppress custom tables.
72 /// </summary>
73 bool SuppressCustomTables { get; set; }
74
75 /// <summary>
76 /// Gets or sets the option to suppress dropping empty tables.
77 /// </summary>
78 bool SuppressDroppingEmptyTables { get; set; }
79
80 /// <summary>
81 /// Gets or sets whether to prevent extract cabinets.
82 /// </summary>
83 bool SuppressExtractCabinets { get; set; }
84
85 /// <summary>
86 /// Gets or sets whether to suppress relative action sequencing.
87 /// </summary>
88 bool SuppressRelativeActionSequencing { get; set; }
89
90 /// <summary>
91 /// Gets or sets the option to suppress decompiling UI-related tables.
92 /// </summary>
93 bool SuppressUI { get; set; }
94
95 /// <summary>
96 /// Gets or sets whether the decompiler should keep modularization
97 /// GUIDs (true) or remove them (default/false).
98 /// </summary>
99 bool KeepModularizationIds { get; set; }
100 }
101 }