// 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.Extensibility
{
using WixToolset.Data;
using WixToolset.Data.WindowsInstaller;
using WixToolset.Extensibility.Data;
///
/// Interface all binder extensions implement.
///
public interface IWindowsInstallerBackendDecompilerExtension
{
///
/// Called before decompiling occurs.
///
void PreBackendDecompile(IDecompileContext context);
///
/// Gets the table definitions this extension decompiles.
///
/// Table definitions this extension decompiles.
TableDefinitionCollection TableDefinitions { get; }
///
/// Gets the library that this decompiler wants removed from the decomipiled output.
///
/// The table definitions to use while loading the library.
/// The library for this extension or null if there is no library to be removed.
Library GetLibraryToRemove(TableDefinitionCollection tableDefinitions);
///
/// Decompiles an extension table.
///
/// The table to decompile.
void DecompileTable(Table table);
///
/// Called after all output changes occur and right before the output is bound into its final format.
///
void PostBackendDecompile(IDecompileResult result);
}
}