main
cs 52 lines 2.07 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
4 {
5 using System.Collections.Generic;
6 using WixToolset.Data.WindowsInstaller;
7 using WixToolset.Extensibility.Data;
8 using WixToolset.Extensibility.Services;
9
10 /// <summary>
11 /// Interface all windows installer decompiler extensions implement.
12 /// </summary>
13 public interface IWindowsInstallerDecompilerExtension
14 {
15 /// <summary>
16 /// Gets the table definitions this extension decompiles.
17 /// </summary>
18 /// <value>Table definitions this extension decompiles.</value>
19 IReadOnlyCollection<TableDefinition> TableDefinitions { get; }
20
21 /// <summary>
22 /// Called before decompiling occurs.
23 /// </summary>
24 /// <param name="context">Decompile context.</param>
25 /// <param name="helper">Decompile helper.</param>
26 void PreDecompile(IWindowsInstallerDecompileContext context, IWindowsInstallerDecompilerHelper helper);
27
28 /// <summary>
29 /// Called before decompiling occurs.
30 /// </summary>
31 /// <param name="tables">The collection of all tables.</param>
32 void PreDecompileTables(TableIndexedCollection tables);
33
34 /// <summary>
35 /// Try to decompile an extension table.
36 /// </summary>
37 /// <param name="table">The table to decompile.</param>
38 /// <returns>True if the table was decompiled, false otherwise.</returns>
39 bool TryDecompileTable(Table table);
40
41 /// <summary>
42 /// After decompilation tables.
43 /// </summary>
44 /// <param name="tables">The collection of all tables.</param>
45 void PostDecompileTables(TableIndexedCollection tables);
46
47 /// <summary>
48 /// Called after all output changes occur and right before the output is bound into its final format.
49 /// </summary>
50 void PostDecompile(IWindowsInstallerDecompileResult result);
51 }
52 }