diff options
Diffstat (limited to 'src/api/wix/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs')
-rw-r--r-- | src/api/wix/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/api/wix/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs b/src/api/wix/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs new file mode 100644 index 00000000..067745c2 --- /dev/null +++ b/src/api/wix/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs | |||
@@ -0,0 +1,65 @@ | |||
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; | ||
7 | using WixToolset.Data.Symbols; | ||
8 | using WixToolset.Data.WindowsInstaller; | ||
9 | using WixToolset.Extensibility.Data; | ||
10 | |||
11 | /// <summary> | ||
12 | /// Interface all binder extensions implement. | ||
13 | /// </summary> | ||
14 | public interface IWindowsInstallerBackendBinderExtension | ||
15 | { | ||
16 | /// <summary> | ||
17 | /// Table definitions provided by the extension. | ||
18 | /// </summary> | ||
19 | IReadOnlyCollection<TableDefinition> TableDefinitions { get; } | ||
20 | |||
21 | /// <summary> | ||
22 | /// Called before binding occurs. | ||
23 | /// </summary> | ||
24 | void PreBackendBind(IBindContext context); | ||
25 | |||
26 | /// <summary> | ||
27 | /// Extension can process the intermediate before the Windows Installer data is created. | ||
28 | /// </summary> | ||
29 | /// <param name="section">The finalized intermediate section.</param> | ||
30 | void SymbolsFinalized(IntermediateSection section); | ||
31 | |||
32 | /// <summary> | ||
33 | /// Finds an existing cabinet that contains the provided files. | ||
34 | /// </summary> | ||
35 | /// <param name="cabinetPath">Path to the cabinet.</param> | ||
36 | /// <param name="files">Files contained in the cabinet.</param> | ||
37 | /// <returns>Resolved cabinet options or null if the cabinet could not be found.</returns> | ||
38 | IResolvedCabinet ResolveCabinet(string cabinetPath, IEnumerable<IBindFileWithPath> files); | ||
39 | |||
40 | /// <summary> | ||
41 | /// Override layout location for a media. | ||
42 | /// </summary> | ||
43 | /// <param name="mediaSymbol">Media symbol.</param> | ||
44 | /// <param name="mediaLayoutDirectory">Default media specific layout directory.</param> | ||
45 | /// <param name="layoutDirectory">Default overall layout directory.</param> | ||
46 | /// <returns>Layout location or null to use the default processing.</returns> | ||
47 | string ResolveMedia(MediaSymbol mediaSymbol, string mediaLayoutDirectory, string layoutDirectory); | ||
48 | |||
49 | /// <summary> | ||
50 | /// Called for each extension symbol that hasn't been handled yet. | ||
51 | /// </summary> | ||
52 | /// <param name="section">The linked section.</param> | ||
53 | /// <param name="symbol">The current symbol.</param> | ||
54 | /// <param name="data">Windows Installer data </param> | ||
55 | /// <param name="tableDefinitions">Collection of table definitions available for the output.</param> | ||
56 | /// <returns>True if the symbol was handled, or false if not.</returns> | ||
57 | bool TryProcessSymbol(IntermediateSection section, IntermediateSymbol symbol, WindowsInstallerData data, TableDefinitionCollection tableDefinitions); | ||
58 | |||
59 | /// <summary> | ||
60 | /// Called after all output changes occur and right before the output is bound into its final format. | ||
61 | /// </summary> | ||
62 | /// <param name="result">Bind result to process.</param> | ||
63 | void PostBackendBind(IBindResult result); | ||
64 | } | ||
65 | } | ||