// 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 System; using WixToolset.Data; using Wix = WixToolset.Data.Serialize; public interface IDecompilerCore : IMessageHandler { /// /// Gets whether the decompiler core encountered an error while processing. /// /// Flag if core encountered an error during processing. bool EncounteredError { get; } /// /// Gets the root element of the decompiled output. /// /// The root element of the decompiled output. Wix.IParentElement RootElement { get; } /// /// Gets the UI element. /// /// The UI element. Wix.UI UIElement { get; } /// /// Verifies if a filename is a valid short filename. /// /// Filename to verify. /// true if wildcards are allowed in the filename. /// True if the filename is a valid short filename bool IsValidShortFilename(string filename, bool allowWildcards); /// /// Convert an Int32 into a DateTime. /// /// The Int32 value. /// The DateTime. DateTime ConvertIntegerToDateTime(int value); /// /// Gets the element corresponding to the row it came from. /// /// The row corresponding to the element. /// The indexed element. Wix.ISchemaElement GetIndexedElement(Row row); /// /// Gets the element corresponding to the primary key of the given table. /// /// The table corresponding to the element. /// The primary key corresponding to the element. /// The indexed element. Wix.ISchemaElement GetIndexedElement(string table, params string[] primaryKey); /// /// Index an element by its corresponding row. /// /// The row corresponding to the element. /// The element to index. void IndexElement(Row row, Wix.ISchemaElement element); /// /// Indicates the decompiler encountered and unexpected table to decompile. /// /// Unknown decompiled table. void UnexpectedTable(Table table); } }