main
cs 95 lines 3.74 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.ComPlus
4 {
5 using WixToolset.Data;
6 using WixToolset.ComPlus.Symbols;
7
8 public static partial class ComPlusSymbolDefinitions
9 {
10 public static readonly IntermediateSymbolDefinition ComPlusAssembly = new IntermediateSymbolDefinition(
11 ComPlusSymbolDefinitionType.ComPlusAssembly.ToString(),
12 new[]
13 {
14 new IntermediateFieldDefinition(nameof(ComPlusAssemblySymbolFields.ApplicationRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(ComPlusAssemblySymbolFields.ComponentRef), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(ComPlusAssemblySymbolFields.AssemblyName), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(ComPlusAssemblySymbolFields.DllPath), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(ComPlusAssemblySymbolFields.TlbPath), IntermediateFieldType.String),
19 new IntermediateFieldDefinition(nameof(ComPlusAssemblySymbolFields.PSDllPath), IntermediateFieldType.String),
20 new IntermediateFieldDefinition(nameof(ComPlusAssemblySymbolFields.Attributes), IntermediateFieldType.Number),
21 },
22 typeof(ComPlusAssemblySymbol));
23 }
24 }
25
26 namespace WixToolset.ComPlus.Symbols
27 {
28 using WixToolset.Data;
29
30 public enum ComPlusAssemblySymbolFields
31 {
32 ApplicationRef,
33 ComponentRef,
34 AssemblyName,
35 DllPath,
36 TlbPath,
37 PSDllPath,
38 Attributes,
39 }
40
41 public class ComPlusAssemblySymbol : IntermediateSymbol
42 {
43 public ComPlusAssemblySymbol() : base(ComPlusSymbolDefinitions.ComPlusAssembly, null, null)
44 {
45 }
46
47 public ComPlusAssemblySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusSymbolDefinitions.ComPlusAssembly, sourceLineNumber, id)
48 {
49 }
50
51 public IntermediateField this[ComPlusAssemblySymbolFields index] => this.Fields[(int)index];
52
53 public string ApplicationRef
54 {
55 get => this.Fields[(int)ComPlusAssemblySymbolFields.ApplicationRef].AsString();
56 set => this.Set((int)ComPlusAssemblySymbolFields.ApplicationRef, value);
57 }
58
59 public string ComponentRef
60 {
61 get => this.Fields[(int)ComPlusAssemblySymbolFields.ComponentRef].AsString();
62 set => this.Set((int)ComPlusAssemblySymbolFields.ComponentRef, value);
63 }
64
65 public string AssemblyName
66 {
67 get => this.Fields[(int)ComPlusAssemblySymbolFields.AssemblyName].AsString();
68 set => this.Set((int)ComPlusAssemblySymbolFields.AssemblyName, value);
69 }
70
71 public string DllPath
72 {
73 get => this.Fields[(int)ComPlusAssemblySymbolFields.DllPath].AsString();
74 set => this.Set((int)ComPlusAssemblySymbolFields.DllPath, value);
75 }
76
77 public string TlbPath
78 {
79 get => this.Fields[(int)ComPlusAssemblySymbolFields.TlbPath].AsString();
80 set => this.Set((int)ComPlusAssemblySymbolFields.TlbPath, value);
81 }
82
83 public string PSDllPath
84 {
85 get => this.Fields[(int)ComPlusAssemblySymbolFields.PSDllPath].AsString();
86 set => this.Set((int)ComPlusAssemblySymbolFields.PSDllPath, value);
87 }
88
89 public int Attributes
90 {
91 get => this.Fields[(int)ComPlusAssemblySymbolFields.Attributes].AsNumber();
92 set => this.Set((int)ComPlusAssemblySymbolFields.Attributes, value);
93 }
94 }
95 }