Integrate into latest v4.
Sean Hall committed
Feb 4, 2019 at 20:06 UTC
c239e0cc3a28a50c42c63b086ee62e17cf699104
80 files changed
+3717
-1047
.editorconfig
new
+37
@@ -0,0 +1,37 @@
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
+# Do NOT modify this file. Update the canonical version in Home\repo-template\src\.editorconfig
4
+# then update all of the repos.
5
+
6
+root = true
7
+
8
+[*]
9
+charset = utf-8
10
+indent_style = space
11
+indent_size = 4
12
+trim_trailing_whitespace = true
13
+
14
+[*.{cs,vb}]
15
+dotnet_sort_system_directives_first = true
16
+
17
+[*.cs]
18
+csharp_indent_case_contents = true : error
19
+csharp_indent_switch_labels = true : error
20
+csharp_new_line_before_open_brace = all
21
+csharp_prefer_braces = true : error
22
+csharp_style_expression_bodied_methods = when_on_single_line : suggestion
23
+csharp_style_expression_bodied_constructors = when_on_single_line : suggestion
24
+csharp_style_expression_bodied_operators = when_on_single_line : suggestion
25
+csharp_style_expression_bodied_properties = when_on_single_line : suggestion
26
+csharp_style_expression_bodied_indexers = when_on_single_line : suggestion
27
+csharp_style_expression_bodied_accessors = when_on_single_line : suggestion
28
+csharp_style_var_elsewhere = true : suggestion
29
+csharp_style_var_for_built_in_types = true : suggestion
30
+csharp_style_var_when_type_is_apparent = true : suggestion
31
+dotnet_style_qualification_for_event = true : error
32
+dotnet_style_qualification_for_field = true : error
33
+dotnet_style_qualification_for_method = true : error
34
+dotnet_style_qualification_for_property = true : error
35
+
36
+[*.targets]
37
+indent_size = 2
ComPlus.wixext.sln
new
+64
@@ -0,0 +1,64 @@
1
+
2
+Microsoft Visual Studio Solution File, Format Version 12.00
3
+# Visual Studio 15
4
+VisualStudioVersion = 15.0.28010.2016
5
+MinimumVisualStudioVersion = 10.0.40219.1
6
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "complusca", "src\ca\complusca.vcxproj", "{BDEF51ED-E242-4FA2-801A-01B127DF851A}"
7
+EndProject
8
+Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "complus", "src\wixlib\complus.wixproj", "{E191E61E-E098-4F71-888F-51A79F952022}"
9
+ ProjectSection(ProjectDependencies) = postProject
10
+ {BDEF51ED-E242-4FA2-801A-01B127DF851A} = {BDEF51ED-E242-4FA2-801A-01B127DF851A}
11
+ EndProjectSection
12
+EndProject
13
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.ComPlus.wixext", "src\wixext\WixToolset.ComPlus.wixext.csproj", "{1497B777-330B-4CFE-927A-22850CD24D64}"
14
+EndProject
15
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.ComPlus", "src\test\WixToolsetTest.ComPlus\WixToolsetTest.ComPlus.csproj", "{2FC5F039-EACF-428B-BA87-8CDE1D25E121}"
16
+EndProject
17
+Global
18
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
19
+ Debug|Any CPU = Debug|Any CPU
20
+ Debug|x86 = Debug|x86
21
+ Release|Any CPU = Release|Any CPU
22
+ Release|x86 = Release|x86
23
+ EndGlobalSection
24
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
25
+ {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Debug|Any CPU.ActiveCfg = Debug|Win32
26
+ {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Debug|Any CPU.Build.0 = Debug|Win32
27
+ {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Debug|x86.ActiveCfg = Debug|Win32
28
+ {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Debug|x86.Build.0 = Debug|Win32
29
+ {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Release|Any CPU.ActiveCfg = Release|Win32
30
+ {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Release|Any CPU.Build.0 = Release|Win32
31
+ {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Release|x86.ActiveCfg = Release|Win32
32
+ {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Release|x86.Build.0 = Release|Win32
33
+ {E191E61E-E098-4F71-888F-51A79F952022}.Debug|Any CPU.ActiveCfg = Debug|x86
34
+ {E191E61E-E098-4F71-888F-51A79F952022}.Debug|Any CPU.Build.0 = Debug|x86
35
+ {E191E61E-E098-4F71-888F-51A79F952022}.Debug|x86.ActiveCfg = Debug|x86
36
+ {E191E61E-E098-4F71-888F-51A79F952022}.Debug|x86.Build.0 = Debug|x86
37
+ {E191E61E-E098-4F71-888F-51A79F952022}.Release|Any CPU.ActiveCfg = Release|x86
38
+ {E191E61E-E098-4F71-888F-51A79F952022}.Release|Any CPU.Build.0 = Release|x86
39
+ {E191E61E-E098-4F71-888F-51A79F952022}.Release|x86.ActiveCfg = Release|x86
40
+ {E191E61E-E098-4F71-888F-51A79F952022}.Release|x86.Build.0 = Release|x86
41
+ {1497B777-330B-4CFE-927A-22850CD24D64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
42
+ {1497B777-330B-4CFE-927A-22850CD24D64}.Debug|Any CPU.Build.0 = Debug|Any CPU
43
+ {1497B777-330B-4CFE-927A-22850CD24D64}.Debug|x86.ActiveCfg = Debug|Any CPU
44
+ {1497B777-330B-4CFE-927A-22850CD24D64}.Debug|x86.Build.0 = Debug|Any CPU
45
+ {1497B777-330B-4CFE-927A-22850CD24D64}.Release|Any CPU.ActiveCfg = Release|Any CPU
46
+ {1497B777-330B-4CFE-927A-22850CD24D64}.Release|Any CPU.Build.0 = Release|Any CPU
47
+ {1497B777-330B-4CFE-927A-22850CD24D64}.Release|x86.ActiveCfg = Release|Any CPU
48
+ {1497B777-330B-4CFE-927A-22850CD24D64}.Release|x86.Build.0 = Release|Any CPU
49
+ {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
50
+ {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Debug|Any CPU.Build.0 = Debug|Any CPU
51
+ {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Debug|x86.ActiveCfg = Debug|Any CPU
52
+ {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Debug|x86.Build.0 = Debug|Any CPU
53
+ {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Release|Any CPU.ActiveCfg = Release|Any CPU
54
+ {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Release|Any CPU.Build.0 = Release|Any CPU
55
+ {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Release|x86.ActiveCfg = Release|Any CPU
56
+ {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Release|x86.Build.0 = Release|Any CPU
57
+ EndGlobalSection
58
+ GlobalSection(SolutionProperties) = preSolution
59
+ HideSolutionNode = FALSE
60
+ EndGlobalSection
61
+ GlobalSection(ExtensibilityGlobals) = postSolution
62
+ SolutionGuid = {3E1857C4-5EE1-4C9E-9390-9954E041546D}
63
+ EndGlobalSection
64
+EndGlobal
appveyor.cmd
new
+16
@@ -0,0 +1,16 @@
1
+@setlocal
2
+@pushd %~dp0
3
+
4
+nuget restore
5
+
6
+msbuild -p:Configuration=Release -t:Restore
7
+
8
+msbuild -p:Configuration=Release -p:Platform=Win32 src\ca\complusca.vcxproj
9
+msbuild -p:Configuration=Release -p:Platform=x64 src\ca\complusca.vcxproj
10
+
11
+msbuild -p:Configuration=Release src\test\WixToolsetTest.ComPlus\WixToolsetTest.ComPlus.csproj
12
+
13
+msbuild -p:Configuration=Release -t:Pack src\wixext\WixToolset.ComPlus.wixext.csproj
14
+
15
+@popd
16
+@endlocal
\ No newline at end of file
appveyor.yml
new
+42
@@ -0,0 +1,42 @@
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
+# Do NOT modify this file. Update the canonical version in Home\repo-template\src\appveyor.yml
4
+# then update all of the repos.
5
+
6
+branches:
7
+ only:
8
+ - master
9
+ - develop
10
+
11
+image: Visual Studio 2017
12
+
13
+version: 0.0.0.{build}
14
+configuration: Release
15
+
16
+environment:
17
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
18
+ DOTNET_CLI_TELEMETRY_OPTOUT: 1
19
+ NUGET_XMLDOC_MODE: skip
20
+
21
+build_script:
22
+ - appveyor.cmd
23
+
24
+pull_requests:
25
+ do_not_increment_build_number: true
26
+
27
+nuget:
28
+ disable_publish_on_pr: true
29
+
30
+skip_branch_with_pr: true
31
+skip_tags: true
32
+
33
+artifacts:
34
+- path: build\Release\**\*.nupkg
35
+ name: nuget
36
+- path: build\Release\**\*.msi
37
+ name: msi
38
+
39
+notifications:
40
+- provider: Slack
41
+ incoming_webhook:
42
+ secure: p5xuu+4x2JHfwGDMDe5KcG1k7gZxqYc4jWVwvyNZv5cvkubPD2waJs5yXMAXZNN7Z63/3PWHb7q4KoY/99AjauYa1nZ4c5qYqRPFRBKTHfA=
nuget.config
new
+16
@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<configuration>
3
+ <packageSources>
4
+ <clear />
5
+ <add key="wixtoolset-data" value="https://ci.appveyor.com/nuget/wixtoolset-data" />
6
+ <add key="wixtoolset-extensibility" value="https://ci.appveyor.com/nuget/wixtoolset-extensibility" />
7
+ <add key="wixtoolset-core" value="https://ci.appveyor.com/nuget/wixtoolset-core" />
8
+ <add key="wixtoolset-core-native" value="https://ci.appveyor.com/nuget/wixtoolset-core-native" />
9
+ <add key="wixtoolset-dtf" value="https://ci.appveyor.com/nuget/wixtoolset-dtf" />
10
+ <add key="wixtoolset-dutil" value="https://ci.appveyor.com/nuget/wixtoolset-dutil" />
11
+ <add key="wixtoolset-wcautil" value="https://ci.appveyor.com/nuget/wixtoolset-wcautil" />
12
+ <add key="wixtoolset-tools" value="https://ci.appveyor.com/nuget/wixtoolset-tools" />
13
+ <add key="wixbuildtools" value="https://ci.appveyor.com/nuget/wixbuildtools" />
14
+ <add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
15
+ </packageSources>
16
+</configuration>
\ No newline at end of file
src/Cpp.Build.props
new
+106
@@ -0,0 +1,106 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- 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. -->
3
+
4
+<Project>
5
+ <PropertyGroup>
6
+ <Platform Condition=" '$(Platform)' == '' OR '$(Platform)' == 'AnyCPU' OR '$(Platform)' == 'x86' ">Win32</Platform>
7
+ <NormalizedPlatform Condition=" '$(Platform)'=='Win32' ">x86</NormalizedPlatform>
8
+ <NormalizedPlatform Condition=" '$(NormalizedPlatform)'=='' ">$(Platform)</NormalizedPlatform>
9
+ <IntDir>$(BaseIntermediateOutputPath)$(Configuration)\$(NormalizedPlatform)\</IntDir>
10
+ <OutDir>$(OutputPath)$(NormalizedPlatform)\</OutDir>
11
+ </PropertyGroup>
12
+
13
+ <PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'=='' AND '$(VisualStudioVersion)'=='15.0'">
14
+ <WindowsTargetPlatformVersion>$([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))</WindowsTargetPlatformVersion>
15
+ </PropertyGroup>
16
+
17
+ <ItemDefinitionGroup>
18
+ <ClCompile>
19
+ <DisableSpecificWarnings>$(DisableSpecificCompilerWarnings)</DisableSpecificWarnings>
20
+ <WarningLevel>Level4</WarningLevel>
21
+ <AdditionalIncludeDirectories>$(ProjectDir)inc;$(MSBuildProjectDirectory);$(IntDir);$(SqlCESdkIncludePath);$(ProjectAdditionalIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
22
+ <PreprocessorDefinitions>WIN32;_WINDOWS;_WIN32_MSI=500;_WIN32_WINNT=0x0501;$(ArmPreprocessorDefinitions);$(UnicodePreprocessorDefinitions);_CRT_STDIO_LEGACY_WIDE_SPECIFIERS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
23
+ <PrecompiledHeader>Use</PrecompiledHeader>
24
+ <PrecompiledHeaderFile>precomp.h</PrecompiledHeaderFile>
25
+ <CallingConvention Condition="'$(Platform)'=='Win32'">StdCall</CallingConvention>
26
+ <TreatWarningAsError>true</TreatWarningAsError>
27
+ <ExceptionHandling>false</ExceptionHandling>
28
+ <AdditionalOptions>-YlprecompDefine</AdditionalOptions>
29
+ <AdditionalOptions Condition=" $(PlatformToolset.StartsWith('v14')) ">/Zc:threadSafeInit- %(AdditionalOptions)</AdditionalOptions>
30
+ <MultiProcessorCompilation Condition=" $(NUMBER_OF_PROCESSORS) > 4 ">true</MultiProcessorCompilation>
31
+ </ClCompile>
32
+ <ResourceCompile>
33
+ <PreprocessorDefinitions>$(ArmPreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
34
+ <AdditionalIncludeDirectories>$(ProjectAdditionalResourceIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
35
+ </ResourceCompile>
36
+ <Lib>
37
+ <AdditionalLibraryDirectories>$(OutDir);$(AdditionalMultiTargetLibraryPath);$(ProjectAdditionalLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
38
+ </Lib>
39
+ <Link>
40
+ <SubSystem>$(ProjectSubSystem)</SubSystem>
41
+ <ModuleDefinitionFile>$(ProjectModuleDefinitionFile)</ModuleDefinitionFile>
42
+ <NoEntryPoint>$(ResourceOnlyDll)</NoEntryPoint>
43
+ <GenerateDebugInformation>true</GenerateDebugInformation>
44
+ <AdditionalDependencies>$(ProjectAdditionalLinkLibraries);advapi32.lib;comdlg32.lib;user32.lib;oleaut32.lib;gdi32.lib;shell32.lib;ole32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
45
+ <AdditionalLibraryDirectories>$(OutDir);$(AdditionalMultiTargetLibraryPath);$(ArmLibraryDirectories);$(ProjectAdditionalLinkLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
46
+ <AdditionalOptions Condition=" $(PlatformToolset.StartsWith('v14')) ">/IGNORE:4099 %(AdditionalOptions)</AdditionalOptions>
47
+ </Link>
48
+ </ItemDefinitionGroup>
49
+
50
+ <ItemDefinitionGroup Condition=" '$(Platform)'=='Win32' and '$(PlatformToolset)'!='v100'">
51
+ <ClCompile>
52
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
53
+ </ClCompile>
54
+ </ItemDefinitionGroup>
55
+ <ItemDefinitionGroup Condition=" '$(Platform)'=='arm' ">
56
+ <ClCompile>
57
+ <CallingConvention>CDecl</CallingConvention>
58
+ </ClCompile>
59
+ </ItemDefinitionGroup>
60
+ <ItemDefinitionGroup Condition=" '$(ConfigurationType)'=='StaticLibrary' ">
61
+ <ClCompile>
62
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
63
+ <OmitDefaultLibName>true</OmitDefaultLibName>
64
+ <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
65
+ </ClCompile>
66
+ </ItemDefinitionGroup>
67
+ <ItemDefinitionGroup Condition=" '$(Configuration)'=='Debug' ">
68
+ <ClCompile>
69
+ <Optimization>Disabled</Optimization>
70
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
71
+ <PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
72
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
73
+ </ClCompile>
74
+ </ItemDefinitionGroup>
75
+ <ItemDefinitionGroup Condition=" '$(Configuration)'=='Debug' and '$(CLRSupport)'=='true' ">
76
+ <ClCompile>
77
+ <BasicRuntimeChecks></BasicRuntimeChecks>
78
+ <RuntimeLibrary>MultiThreadedDebugDll</RuntimeLibrary>
79
+ </ClCompile>
80
+ </ItemDefinitionGroup>
81
+ <ItemDefinitionGroup Condition=" '$(Configuration)'=='Release' ">
82
+ <ClCompile>
83
+ <Optimization>MinSpace</Optimization>
84
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
85
+ <FunctionLevelLinking>true</FunctionLevelLinking>
86
+ <IntrinsicFunctions>true</IntrinsicFunctions>
87
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
88
+ </ClCompile>
89
+ <Link>
90
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
91
+ <OptimizeReferences>true</OptimizeReferences>
92
+ </Link>
93
+ </ItemDefinitionGroup>
94
+ <ItemDefinitionGroup Condition=" '$(Configuration)'=='Release' and '$(CLRSupport)'=='true' ">
95
+ <ClCompile>
96
+ <BasicRuntimeChecks></BasicRuntimeChecks>
97
+ <RuntimeLibrary>MultiThreadedDll</RuntimeLibrary>
98
+ </ClCompile>
99
+ </ItemDefinitionGroup>
100
+ <ItemDefinitionGroup Condition=" '$(CLRSupport)'=='true' ">
101
+ <Link>
102
+ <KeyFile>$(LinkKeyFile)</KeyFile>
103
+ <DelaySign>$(LinkDelaySign)</DelaySign>
104
+ </Link>
105
+ </ItemDefinitionGroup>
106
+</Project>
src/Directory.Build.props
new
+28
@@ -0,0 +1,28 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- 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. -->
3
+<!--
4
+ Do NOT modify this file. Update the canonical version in Home\repo-template\src\Directory.Build.props
5
+ then update all of the repos.
6
+-->
7
+<Project>
8
+ <PropertyGroup>
9
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
10
+ <EnableSourceLink Condition=" '$(NCrunch)' == '1' ">false</EnableSourceLink>
11
+ <MSBuildWarningsAsMessages>MSB3246</MSBuildWarningsAsMessages>
12
+
13
+ <ProjectName Condition=" '$(ProjectName)' == '' ">$(MSBuildProjectName)</ProjectName>
14
+ <BaseOutputPath>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\build\))</BaseOutputPath>
15
+ <BaseIntermediateOutputPath>$(BaseOutputPath)obj\$(ProjectName)\</BaseIntermediateOutputPath>
16
+ <OutputPath>$(BaseOutputPath)$(Configuration)\</OutputPath>
17
+
18
+ <Authors>WiX Toolset Team</Authors>
19
+ <Company>WiX Toolset</Company>
20
+ <Copyright>Copyright (c) .NET Foundation and contributors. All rights reserved.</Copyright>
21
+ <PackageLicenseExpression>MS-RL</PackageLicenseExpression>
22
+ <Product>WiX Toolset</Product>
23
+ </PropertyGroup>
24
+
25
+ <Import Project="Cpp.Build.props" Condition=" Exists('Cpp.Build.props') And '$(MSBuildProjectExtension)'=='.vcxproj' " />
26
+ <Import Project="Wix.Build.props" Condition=" Exists('Wix.Build.props') And '$(MSBuildProjectExtension)'=='.wixproj' " />
27
+ <Import Project="Custom.Build.props" Condition=" Exists('Custom.Build.props') " />
28
+</Project>
src/Directory.Build.targets
new
+48
@@ -0,0 +1,48 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- 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. -->
3
+<!--
4
+ Do NOT modify this file. Update the canonical version in Home\repo-template\src\Directory.Build.targets
5
+ then update all of the repos.
6
+-->
7
+<!--
8
+ Replace PackageReferences with ProjectReferences when the projects can be found in .sln.
9
+ See the original here: https://github.com/dotnet/sdk/issues/1151#issuecomment-385133284
10
+-->
11
+<Project>
12
+ <PropertyGroup>
13
+ <ReplacePackageReferences>true</ReplacePackageReferences>
14
+ <TheSolutionPath Condition=" '$(NCrunch)'=='' ">$(SolutionPath)</TheSolutionPath>
15
+ <TheSolutionPath Condition=" '$(NCrunch)'=='1' ">$(NCrunchOriginalSolutionPath)</TheSolutionPath>
16
+ </PropertyGroup>
17
+
18
+ <Choose>
19
+ <When Condition="$(ReplacePackageReferences) AND '$(TheSolutionPath)' != '' AND '$(TheSolutionPath)' != '*undefined*' AND Exists('$(TheSolutionPath)')">
20
+
21
+ <PropertyGroup>
22
+ <SolutionFileContent>$([System.IO.File]::ReadAllText($(TheSolutionPath)))</SolutionFileContent>
23
+ <SmartSolutionDir>$([System.IO.Path]::GetDirectoryName( $(TheSolutionPath) ))</SmartSolutionDir>
24
+ <RegexPattern>(?<="[PackageName]", ")(.*)(?=", ")</RegexPattern>
25
+ </PropertyGroup>
26
+
27
+ <ItemGroup>
28
+ <!-- Keep the identity of the PackageReference -->
29
+ <SmartPackageReference Include="@(PackageReference)">
30
+ <PackageName>%(Identity)</PackageName>
31
+ <InSolution>$(SolutionFileContent.Contains('\%(Identity).csproj'))</InSolution>
32
+ </SmartPackageReference>
33
+
34
+ <!-- Filter them by mapping them to another ItemGroup using the WithMetadataValue item function -->
35
+ <PackageInSolution Include="@(SmartPackageReference->WithMetadataValue('InSolution', True))">
36
+ <Pattern>$(RegexPattern.Replace('[PackageName]','%(PackageName)') )</Pattern>
37
+ <SmartPath>$([System.Text.RegularExpressions.Regex]::Match('$(SolutionFileContent)', '%(Pattern)'))</SmartPath>
38
+ </PackageInSolution>
39
+
40
+ <ProjectReference Include="@(PackageInSolution->'$(SmartSolutionDir)\%(SmartPath)' )"/>
41
+
42
+ <!-- Remove the package references that are now referenced as projects -->
43
+ <PackageReference Remove="@(PackageInSolution->'%(PackageName)' )"/>
44
+ </ItemGroup>
45
+
46
+ </When>
47
+ </Choose>
48
+</Project>
src/FindLocalWix.props
new
+8
@@ -0,0 +1,8 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- 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. -->
3
+
4
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5
+ <PropertyGroup>
6
+ <WixTargetsPath Condition=" '$(Configuration)' == 'Debug' And Exists('$(MSBuildThisFileDirectory)..\..\Tools\README.md') ">$(MSBuildThisFileDirectory)..\..\Tools\build\Debug\net461\wix.targets</WixTargetsPath>
7
+ </PropertyGroup>
8
+</Project>
src/Wix.Build.props
new
+31
@@ -0,0 +1,31 @@
1
+<?xml version="1.0" encoding="utf-8" ?>
2
+<!-- 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. -->
3
+
4
+<Project>
5
+ <PropertyGroup>
6
+ <DefineConstants>$(DefineConstants);CompanyName=$(Company)</DefineConstants>
7
+ <OutputPath_x86>$(OutputPath)x86\</OutputPath_x86>
8
+ <OutputPath_x64>$(OutputPath)x64\</OutputPath_x64>
9
+ <OutputPath_arm>$(OutputPath)ARM\</OutputPath_arm>
10
+ <OutputPath_arm64>$(OutputPath)ARM64\</OutputPath_arm64>
11
+ <OutputPath_win32>$(OutputPath)Win32\</OutputPath_win32>
12
+ </PropertyGroup>
13
+
14
+ <ItemGroup>
15
+ <BindInputPaths Include="$(OutputPath_x86)">
16
+ <BindName>x86</BindName>
17
+ </BindInputPaths>
18
+ <BindInputPaths Include="$(OutputPath_x64)">
19
+ <BindName>x64</BindName>
20
+ </BindInputPaths>
21
+ <BindInputPaths Include="$(OutputPath_arm)">
22
+ <BindName>arm</BindName>
23
+ </BindInputPaths>
24
+ <BindInputPaths Include="$(OutputPath_arm64)">
25
+ <BindName>arm64</BindName>
26
+ </BindInputPaths>
27
+ <BindInputPaths Include="$(OutputPath_win32)">
28
+ <BindName>win32</BindName>
29
+ </BindInputPaths>
30
+ </ItemGroup>
31
+</Project>
src/ca/complusca.def
renamed
+4
@@ -1,6 +1,8 @@
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
4
+LIBRARY "complusca"
5
+
6
EXPORTS
7
ComPlusPrepare
8
ComPlusCleanup
@@ -9,3 +11,5 @@ EXPORTS
11
ComPlusRollbackInstallExecute
12
ComPlusUninstallExecute
13
ComPlusRollbackUninstallExecute
14
+ ConfigureComPlusInstall
15
+ ConfigureComPlusUninstall
src/ca/complusca.vcxproj
new
+99
@@ -0,0 +1,99 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- 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. -->
3
+
4
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5
+ <Import Project="..\..\packages\WixToolset.DUtil.4.0.16\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.16\build\WixToolset.DUtil.props')" />
6
+ <Import Project="..\..\packages\WixToolset.WcaUtil.4.0.2\build\WixToolset.WcaUtil.props" Condition="Exists('..\..\packages\WixToolset.WcaUtil.4.0.2\build\WixToolset.WcaUtil.props')" />
7
+
8
+ <ItemGroup Label="ProjectConfigurations">
9
+ <ProjectConfiguration Include="Debug|Win32">
10
+ <Configuration>Debug</Configuration>
11
+ <Platform>Win32</Platform>
12
+ </ProjectConfiguration>
13
+ <ProjectConfiguration Include="Release|Win32">
14
+ <Configuration>Release</Configuration>
15
+ <Platform>Win32</Platform>
16
+ </ProjectConfiguration>
17
+ <ProjectConfiguration Include="Debug|x64">
18
+ <Configuration>Debug</Configuration>
19
+ <Platform>x64</Platform>
20
+ </ProjectConfiguration>
21
+ <ProjectConfiguration Include="Release|x64">
22
+ <Configuration>Release</Configuration>
23
+ <Platform>x64</Platform>
24
+ </ProjectConfiguration>
25
+ </ItemGroup>
26
+
27
+ <PropertyGroup Label="Globals">
28
+ <ProjectGuid>{BDEF51ED-E242-4FA2-801A-01B127DF851A}</ProjectGuid>
29
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
30
+ <PlatformToolset>v141</PlatformToolset>
31
+ <CharacterSet>Unicode</CharacterSet>
32
+ <TargetName>complusca</TargetName>
33
+ <ProjectModuleDefinitionFile>complusca.def</ProjectModuleDefinitionFile>
34
+ <Description>WiX Toolset ComPlus CustomAction</Description>
35
+ </PropertyGroup>
36
+
37
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
38
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
39
+
40
+ <PropertyGroup>
41
+ <ProjectAdditionalLinkLibraries>msi.lib</ProjectAdditionalLinkLibraries>
42
+ </PropertyGroup>
43
+
44
+ <ItemGroup>
45
+ <ClCompile Include="cpappexec.cpp" />
46
+ <ClCompile Include="cpapproleexec.cpp" />
47
+ <ClCompile Include="cpapprolesched.cpp" />
48
+ <ClCompile Include="cpappsched.cpp" />
49
+ <ClCompile Include="cpasmexec.cpp" />
50
+ <ClCompile Include="cpasmsched.cpp" />
51
+ <ClCompile Include="cpexec.cpp" />
52
+ <ClCompile Include="cppartexec.cpp" />
53
+ <ClCompile Include="cppartroleexec.cpp" />
54
+ <ClCompile Include="cppartrolesched.cpp" />
55
+ <ClCompile Include="cppartsched.cpp" />
56
+ <ClCompile Include="cpsched.cpp" />
57
+ <ClCompile Include="cpsubsexec.cpp" />
58
+ <ClCompile Include="cpsubssched.cpp" />
59
+ <ClCompile Include="cputilexec.cpp" />
60
+ <ClCompile Include="cputilsched.cpp" />
61
+ <ClCompile Include="dllmain.cpp">
62
+ <PrecompiledHeader>Create</PrecompiledHeader>
63
+ </ClCompile>
64
+ </ItemGroup>
65
+
66
+ <ItemGroup>
67
+ <ClInclude Include="cpappexec.h" />
68
+ <ClInclude Include="cpapproleexec.h" />
69
+ <ClInclude Include="cpapprolesched.h" />
70
+ <ClInclude Include="cpappsched.h" />
71
+ <ClInclude Include="cpasmexec.h" />
72
+ <ClInclude Include="cpasmsched.h" />
73
+ <ClInclude Include="cpcost.h" />
74
+ <ClInclude Include="cppartexec.h" />
75
+ <ClInclude Include="cppartroleexec.h" />
76
+ <ClInclude Include="cppartrolesched.h" />
77
+ <ClInclude Include="cppartsched.h" />
78
+ <ClInclude Include="cpsubsexec.h" />
79
+ <ClInclude Include="cpsubssched.h" />
80
+ <ClInclude Include="cputilexec.h" />
81
+ <ClInclude Include="cputilsched.h" />
82
+ <ClInclude Include="precomp.h" />
83
+ </ItemGroup>
84
+
85
+ <ItemGroup>
86
+ <None Include="packages.config" />
87
+ <None Include="complusca.def" />
88
+ </ItemGroup>
89
+
90
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
91
+
92
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
93
+ <PropertyGroup>
94
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
95
+ </PropertyGroup>
96
+ <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.16\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.16\build\WixToolset.DUtil.props'))" />
97
+ <Error Condition="!Exists('..\..\packages\WixToolset.WcaUtil.4.0.2\build\WixToolset.WcaUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.WcaUtil.4.0.2\build\WixToolset.WcaUtil.props'))" />
98
+ </Target>
99
+</Project>
src/ca/cpappexec.cpp
+2
-2
@@ -239,7 +239,7 @@ static HRESULT CreateApplication(
239
WcaLog(LOGMSG_VERBOSE, "Creating application, key: %S", pAttrs->pwzKey);
240
241
// get applications collection
242
- hr = CpiGetApplicationsCollection(pAttrs->pwzPartID, &piAppColl);
242
+ hr = CpiExecGetApplicationsCollection(pAttrs->pwzPartID, &piAppColl);
243
if (S_FALSE == hr)
244
hr = HRESULT_FROM_WIN32(ERROR_NOT_FOUND);
245
ExitOnFailure(hr, "Failed to get applications collection");
@@ -304,7 +304,7 @@ static HRESULT RemoveApplication(
304
WcaLog(LOGMSG_VERBOSE, "Removing application, key: %S", pAttrs->pwzKey);
305
306
// get applications collection
307
- hr = CpiGetApplicationsCollection(pAttrs->pwzPartID, &piAppColl);
307
+ hr = CpiExecGetApplicationsCollection(pAttrs->pwzPartID, &piAppColl);
308
ExitOnFailure(hr, "Failed to get applications collection");
309
310
if (S_FALSE == hr)
src/ca/cpappsched.cpp
+5
-5
@@ -579,7 +579,7 @@ HRESULT CpiGetRolesCollForApplication(
579
if (pApp->pPartition)
580
hr = CpiGetApplicationsCollForPartition(pApp->pPartition, &piAppColl);
581
else
582
- hr = CpiGetApplicationsCollection(&piAppColl);
582
+ hr = CpiSchedGetApplicationsCollection(&piAppColl);
583
ExitOnFailure(hr, "Failed to get applications collection");
584
585
if (S_FALSE == hr)
@@ -593,7 +593,7 @@ HRESULT CpiGetRolesCollForApplication(
593
ExitFunction(); // exit with hr = S_FALSE
594
595
// get roles collection
596
- hr = CpiGetCatalogCollection(piAppColl, piAppObj, L"Roles", &pApp->piRolesColl);
596
+ hr = CpiSchedGetCatalogCollection(piAppColl, piAppObj, L"Roles", &pApp->piRolesColl);
597
ExitOnFailure(hr, "Failed to get roles collection");
598
}
599
@@ -632,7 +632,7 @@ HRESULT CpiGetComponentsCollForApplication(
632
if (pApp->pPartition)
633
hr = CpiGetApplicationsCollForPartition(pApp->pPartition, &piAppColl);
634
else
635
- hr = CpiGetApplicationsCollection(&piAppColl);
635
+ hr = CpiSchedGetApplicationsCollection(&piAppColl);
636
ExitOnFailure(hr, "Failed to get applications collection");
637
638
if (S_FALSE == hr)
@@ -646,7 +646,7 @@ HRESULT CpiGetComponentsCollForApplication(
646
ExitFunction(); // exit with hr = S_FALSE
647
648
// get roles collection
649
- hr = CpiGetCatalogCollection(piAppColl, piAppObj, L"Components", &pApp->piCompsColl);
649
+ hr = CpiSchedGetCatalogCollection(piAppColl, piAppObj, L"Components", &pApp->piCompsColl);
650
ExitOnFailure(hr, "Failed to get components collection");
651
}
652
@@ -695,7 +695,7 @@ static HRESULT FindObjectForApplication(
695
if (pItm->pPartition)
696
hr = CpiGetApplicationsCollForPartition(pItm->pPartition, &piAppColl);
697
else
698
- hr = CpiGetApplicationsCollection(&piAppColl);
698
+ hr = CpiSchedGetApplicationsCollection(&piAppColl);
699
ExitOnFailure(hr, "Failed to get applications collection");
700
701
if (S_FALSE == hr)
src/ca/cpasmexec.cpp
+61
-72
@@ -75,58 +75,47 @@ enum eInstallationFlags {
75
};
76
77
78
-// private constants
79
-
80
-enum eAssemblyAttributes
81
-{
82
- aaEventClass = (1 << 0),
83
- aaDotNetAssembly = (1 << 1),
84
- aaPathFromGAC = (1 << 2),
85
- aaRunInCommit = (1 << 3)
86
-};
87
-
88
-
78
// private structs
79
91
-struct CPI_ROLE_ASSIGNMENT
80
+struct CPIEXEC_ROLE_ASSIGNMENT
81
{
82
WCHAR wzKey[MAX_DARWIN_KEY + 1];
83
WCHAR wzRoleName[MAX_DARWIN_COLUMN + 1];
84
96
- CPI_ROLE_ASSIGNMENT* pNext;
85
+ CPIEXEC_ROLE_ASSIGNMENT* pNext;
86
};
87
99
-struct CPI_METHOD
88
+struct CPIEXEC_METHOD
89
{
90
WCHAR wzIndex[11 + 1];
91
WCHAR wzName[MAX_DARWIN_COLUMN + 1];
92
93
CPI_PROPERTY* pPropertyList;
105
- CPI_ROLE_ASSIGNMENT* pRoleAssignmentList;
94
+ CPIEXEC_ROLE_ASSIGNMENT* pRoleAssignmentList;
95
107
- CPI_METHOD* pNext;
96
+ CPIEXEC_METHOD* pNext;
97
};
98
110
-struct CPI_INTERFACE
99
+struct CPIEXEC_INTERFACE
100
{
101
WCHAR wzIID[CPI_MAX_GUID + 1];
102
103
CPI_PROPERTY* pPropertyList;
115
- CPI_ROLE_ASSIGNMENT* pRoleAssignmentList;
116
- CPI_METHOD* pMethodList;
104
+ CPIEXEC_ROLE_ASSIGNMENT* pRoleAssignmentList;
105
+ CPIEXEC_METHOD* pMethodList;
106
118
- CPI_INTERFACE* pNext;
107
+ CPIEXEC_INTERFACE* pNext;
108
};
109
121
-struct CPI_COMPONENT
110
+struct CPIEXEC_COMPONENT
111
{
112
WCHAR wzCLSID[CPI_MAX_GUID + 1];
113
114
CPI_PROPERTY* pPropertyList;
126
- CPI_ROLE_ASSIGNMENT* pRoleAssignmentList;
127
- CPI_INTERFACE* pInterfaceList;
115
+ CPIEXEC_ROLE_ASSIGNMENT* pRoleAssignmentList;
116
+ CPIEXEC_INTERFACE* pInterfaceList;
117
129
- CPI_COMPONENT* pNext;
118
+ CPIEXEC_COMPONENT* pNext;
119
};
120
121
struct CPI_ASSEMBLY_ATTRIBUTES
@@ -141,7 +130,7 @@ struct CPI_ASSEMBLY_ATTRIBUTES
130
LPWSTR pwzAppID;
131
LPWSTR pwzPartID;
132
int iAttributes;
144
- CPI_COMPONENT* pCompList;
133
+ CPIEXEC_COMPONENT* pCompList;
134
};
135
136
struct CPI_ROLE_ASSIGNMENTS_ATTRIBUTES
@@ -152,7 +141,7 @@ struct CPI_ROLE_ASSIGNMENTS_ATTRIBUTES
141
LPWSTR pwzAppID;
142
LPWSTR pwzPartID;
143
int iRoleCount;
155
- CPI_COMPONENT* pCompList;
144
+ CPIEXEC_COMPONENT* pCompList;
145
};
146
147
@@ -187,7 +176,7 @@ static HRESULT UnregisterDotNetAssembly(
176
);
177
static HRESULT RemoveComponents(
178
ICatalogCollection* piCompColl,
190
- CPI_COMPONENT* pCompList
179
+ CPIEXEC_COMPONENT* pCompList
180
);
181
static HRESULT ReadAssemblyAttributes(
182
LPWSTR* ppwzData,
@@ -206,56 +195,56 @@ static void FreeRoleAssignmentsAttributes(
195
static HRESULT ConfigureComponents(
196
LPCWSTR pwzPartID,
197
LPCWSTR pwzAppID,
209
- CPI_COMPONENT* pCompList,
198
+ CPIEXEC_COMPONENT* pCompList,
199
BOOL fCreate,
200
BOOL fProgress
201
);
202
static HRESULT ConfigureInterfaces(
203
ICatalogCollection* piCompColl,
204
ICatalogObject* piCompObj,
216
- CPI_INTERFACE* pIntfList,
205
+ CPIEXEC_INTERFACE* pIntfList,
206
BOOL fCreate
207
);
208
static HRESULT ConfigureMethods(
209
ICatalogCollection* piIntfColl,
210
ICatalogObject* piIntfObj,
222
- CPI_METHOD* pMethList,
211
+ CPIEXEC_METHOD* pMethList,
212
BOOL fCreate
213
);
214
static HRESULT ConfigureRoleAssignments(
215
LPCWSTR pwzCollName,
216
ICatalogCollection* piCompColl,
217
ICatalogObject* piCompObj,
229
- CPI_ROLE_ASSIGNMENT* pRoleList,
218
+ CPIEXEC_ROLE_ASSIGNMENT* pRoleList,
219
BOOL fCreate
220
);
221
static HRESULT ReadComponentList(
222
LPWSTR* ppwzData,
234
- CPI_COMPONENT** ppCompList
223
+ CPIEXEC_COMPONENT** ppCompList
224
);
225
static HRESULT ReadInterfaceList(
226
LPWSTR* ppwzData,
238
- CPI_INTERFACE** ppIntfList
227
+ CPIEXEC_INTERFACE** ppIntfList
228
);
229
static HRESULT ReadMethodList(
230
LPWSTR* ppwzData,
242
- CPI_METHOD** ppMethList
231
+ CPIEXEC_METHOD** ppMethList
232
);
233
static HRESULT ReadRoleAssignmentList(
234
LPWSTR* ppwzData,
246
- CPI_ROLE_ASSIGNMENT** ppRoleList
235
+ CPIEXEC_ROLE_ASSIGNMENT** ppRoleList
236
);
237
static void FreeComponentList(
249
- CPI_COMPONENT* pList
238
+ CPIEXEC_COMPONENT* pList
239
);
240
static void FreeInterfaceList(
252
- CPI_INTERFACE* pList
241
+ CPIEXEC_INTERFACE* pList
242
);
243
static void FreeMethodList(
255
- CPI_METHOD* pList
244
+ CPIEXEC_METHOD* pList
245
);
246
static void FreeRoleAssignmentList(
258
- CPI_ROLE_ASSIGNMENT* pList
247
+ CPIEXEC_ROLE_ASSIGNMENT* pList
248
);
249
250
@@ -648,7 +637,7 @@ static HRESULT UnregisterAssembly(
637
// TODO: handle rollbacks
638
639
// get applications collection
651
- hr = CpiGetApplicationsCollection(pAttrs->pwzPartID, &piColl);
640
+ hr = CpiExecGetApplicationsCollection(pAttrs->pwzPartID, &piColl);
641
ExitOnFailure(hr, "Failed to get applications collection");
642
643
if (S_FALSE == hr)
@@ -993,7 +982,7 @@ static HRESULT RegisterNativeAssembly(
982
ExitOnNull(bstrPSDllPath, hr, E_OUTOFMEMORY, "Failed to allocate BSTR for tlb path");
983
984
// get catalog
996
- hr = CpiGetAdminCatalog(&piCatalog);
985
+ hr = CpiExecGetAdminCatalog(&piCatalog);
986
ExitOnFailure(hr, "Failed to get COM+ admin catalog");
987
988
// get ICOMAdminCatalog2 interface
@@ -1154,12 +1143,12 @@ LExit:
1143
1144
static HRESULT RemoveComponents(
1145
ICatalogCollection* piCompColl,
1157
- CPI_COMPONENT* pCompList
1146
+ CPIEXEC_COMPONENT* pCompList
1147
)
1148
{
1149
HRESULT hr = S_OK;
1150
1162
- for (CPI_COMPONENT* pItm = pCompList; pItm; pItm = pItm->pNext)
1151
+ for (CPIEXEC_COMPONENT* pItm = pCompList; pItm; pItm = pItm->pNext)
1152
{
1153
// remove
1154
hr = CpiRemoveCollectionObject(piCompColl, pItm->wzCLSID, NULL, FALSE);
@@ -1291,7 +1280,7 @@ static void FreeRoleAssignmentsAttributes(
1280
static HRESULT ConfigureComponents(
1281
LPCWSTR pwzPartID,
1282
LPCWSTR pwzAppID,
1294
- CPI_COMPONENT* pCompList,
1283
+ CPIEXEC_COMPONENT* pCompList,
1284
BOOL fCreate,
1285
BOOL fProgress
1286
)
@@ -1313,7 +1302,7 @@ static HRESULT ConfigureComponents(
1302
ExitOnFailure(hr, "Failed to get components collection");
1303
1304
// read components
1316
- for (CPI_COMPONENT* pItm = pCompList; pItm; pItm = pItm->pNext)
1305
+ for (CPIEXEC_COMPONENT* pItm = pCompList; pItm; pItm = pItm->pNext)
1306
{
1307
// progress message
1308
if (fProgress)
@@ -1375,7 +1364,7 @@ LExit:
1364
static HRESULT ConfigureInterfaces(
1365
ICatalogCollection* piCompColl,
1366
ICatalogObject* piCompObj,
1378
- CPI_INTERFACE* pIntfList,
1367
+ CPIEXEC_INTERFACE* pIntfList,
1368
BOOL fCreate
1369
)
1370
{
@@ -1396,7 +1385,7 @@ static HRESULT ConfigureInterfaces(
1385
ExitOnFailure(hr, "Failed to get interfaces collection");
1386
1387
// read interfaces
1399
- for (CPI_INTERFACE* pItm = pIntfList; pItm; pItm = pItm->pNext)
1388
+ for (CPIEXEC_INTERFACE* pItm = pIntfList; pItm; pItm = pItm->pNext)
1389
{
1390
// find interface
1391
hr = CpiFindCollectionObjectByStringKey(piIntfColl, pItm->wzIID, &piIntfObj);
@@ -1448,7 +1437,7 @@ LExit:
1437
static HRESULT ConfigureMethods(
1438
ICatalogCollection* piIntfColl,
1439
ICatalogObject* piIntfObj,
1451
- CPI_METHOD* pMethList,
1440
+ CPIEXEC_METHOD* pMethList,
1441
BOOL fCreate
1442
)
1443
{
@@ -1469,7 +1458,7 @@ static HRESULT ConfigureMethods(
1458
ExitOnFailure(hr, "Failed to get methods collection");
1459
1460
// read methods
1472
- for (CPI_METHOD* pItm = pMethList; pItm; pItm = pItm->pNext)
1461
+ for (CPIEXEC_METHOD* pItm = pMethList; pItm; pItm = pItm->pNext)
1462
{
1463
// find method
1464
if (*pItm->wzIndex)
@@ -1519,7 +1508,7 @@ static HRESULT ConfigureRoleAssignments(
1508
LPCWSTR pwzCollName,
1509
ICatalogCollection* piCompColl,
1510
ICatalogObject* piCompObj,
1522
- CPI_ROLE_ASSIGNMENT* pRoleList,
1511
+ CPIEXEC_ROLE_ASSIGNMENT* pRoleList,
1512
BOOL fCreate
1513
)
1514
{
@@ -1531,7 +1520,7 @@ static HRESULT ConfigureRoleAssignments(
1520
long lChanges = 0;
1521
1522
// get roles collection
1534
- hr = CpiGetCatalogCollection(piCompColl, piCompObj, pwzCollName, &piRoleColl);
1523
+ hr = CpiExecGetCatalogCollection(piCompColl, piCompObj, pwzCollName, &piRoleColl);
1524
if (S_FALSE == hr)
1525
if (fCreate)
1526
hr = HRESULT_FROM_WIN32(ERROR_NOT_FOUND);
@@ -1540,7 +1529,7 @@ static HRESULT ConfigureRoleAssignments(
1529
ExitOnFailure(hr, "Failed to get role assignments collection");
1530
1531
// read roles
1543
- for (CPI_ROLE_ASSIGNMENT* pItm = pRoleList; pItm; pItm = pItm->pNext)
1532
+ for (CPIEXEC_ROLE_ASSIGNMENT* pItm = pRoleList; pItm; pItm = pItm->pNext)
1533
{
1534
if (fCreate)
1535
{
@@ -1588,14 +1577,14 @@ LExit:
1577
1578
static HRESULT ReadComponentList(
1579
LPWSTR* ppwzData,
1591
- CPI_COMPONENT** ppCompList
1580
+ CPIEXEC_COMPONENT** ppCompList
1581
)
1582
{
1583
HRESULT hr = S_OK;
1584
1585
LPWSTR pwzData = NULL;
1586
1598
- CPI_COMPONENT* pItm = NULL;
1587
+ CPIEXEC_COMPONENT* pItm = NULL;
1588
1589
int iCnt = 0;
1590
@@ -1606,7 +1595,7 @@ static HRESULT ReadComponentList(
1595
// read components
1596
for (int i = 0; i < iCnt; i++)
1597
{
1609
- pItm = (CPI_COMPONENT*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPI_COMPONENT));
1598
+ pItm = (CPIEXEC_COMPONENT*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPIEXEC_COMPONENT));
1599
if (!pItm)
1600
ExitFunction1(hr = E_OUTOFMEMORY);
1601
@@ -1648,14 +1637,14 @@ LExit:
1637
1638
static HRESULT ReadInterfaceList(
1639
LPWSTR* ppwzData,
1651
- CPI_INTERFACE** ppIntfList
1640
+ CPIEXEC_INTERFACE** ppIntfList
1641
)
1642
{
1643
HRESULT hr = S_OK;
1644
1645
LPWSTR pwzData = NULL;
1646
1658
- CPI_INTERFACE* pItm = NULL;
1647
+ CPIEXEC_INTERFACE* pItm = NULL;
1648
1649
int iCnt = 0;
1650
@@ -1666,7 +1655,7 @@ static HRESULT ReadInterfaceList(
1655
// read interfaces
1656
for (int i = 0; i < iCnt; i++)
1657
{
1669
- pItm = (CPI_INTERFACE*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPI_INTERFACE));
1658
+ pItm = (CPIEXEC_INTERFACE*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPIEXEC_INTERFACE));
1659
if (!pItm)
1660
ExitFunction1(hr = E_OUTOFMEMORY);
1661
@@ -1708,14 +1697,14 @@ LExit:
1697
1698
static HRESULT ReadMethodList(
1699
LPWSTR* ppwzData,
1711
- CPI_METHOD** ppMethList
1700
+ CPIEXEC_METHOD** ppMethList
1701
)
1702
{
1703
HRESULT hr = S_OK;
1704
1705
LPWSTR pwzData = NULL;
1706
1718
- CPI_METHOD* pItm = NULL;
1707
+ CPIEXEC_METHOD* pItm = NULL;
1708
1709
int iCnt = 0;
1710
@@ -1726,7 +1715,7 @@ static HRESULT ReadMethodList(
1715
// read methods
1716
for (int i = 0; i < iCnt; i++)
1717
{
1729
- pItm = (CPI_METHOD*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPI_METHOD));
1718
+ pItm = (CPIEXEC_METHOD*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPIEXEC_METHOD));
1719
if (!pItm)
1720
ExitFunction1(hr = E_OUTOFMEMORY);
1721
@@ -1769,14 +1758,14 @@ LExit:
1758
1759
static HRESULT ReadRoleAssignmentList(
1760
LPWSTR* ppwzData,
1772
- CPI_ROLE_ASSIGNMENT** ppRoleList
1761
+ CPIEXEC_ROLE_ASSIGNMENT** ppRoleList
1762
)
1763
{
1764
HRESULT hr = S_OK;
1765
1766
LPWSTR pwzData = NULL;
1767
1779
- CPI_ROLE_ASSIGNMENT* pItm = NULL;
1768
+ CPIEXEC_ROLE_ASSIGNMENT* pItm = NULL;
1769
1770
int iCnt = 0;
1771
@@ -1787,7 +1776,7 @@ static HRESULT ReadRoleAssignmentList(
1776
// read roles
1777
for (int i = 0; i < iCnt; i++)
1778
{
1790
- pItm = (CPI_ROLE_ASSIGNMENT*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPI_ROLE_ASSIGNMENT));
1779
+ pItm = (CPIEXEC_ROLE_ASSIGNMENT*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPIEXEC_ROLE_ASSIGNMENT));
1780
if (!pItm)
1781
ExitFunction1(hr = E_OUTOFMEMORY);
1782
@@ -1821,7 +1810,7 @@ LExit:
1810
}
1811
1812
static void FreeComponentList(
1824
- CPI_COMPONENT* pList
1813
+ CPIEXEC_COMPONENT* pList
1814
)
1815
{
1816
while (pList)
@@ -1833,14 +1822,14 @@ static void FreeComponentList(
1822
if (pList->pInterfaceList)
1823
FreeInterfaceList(pList->pInterfaceList);
1824
1836
- CPI_COMPONENT* pDelete = pList;
1825
+ CPIEXEC_COMPONENT* pDelete = pList;
1826
pList = pList->pNext;
1827
::HeapFree(::GetProcessHeap(), 0, pDelete);
1828
}
1829
}
1830
1831
static void FreeInterfaceList(
1843
- CPI_INTERFACE* pList
1832
+ CPIEXEC_INTERFACE* pList
1833
)
1834
{
1835
while (pList)
@@ -1852,14 +1841,14 @@ static void FreeInterfaceList(
1841
if (pList->pMethodList)
1842
FreeMethodList(pList->pMethodList);
1843
1855
- CPI_INTERFACE* pDelete = pList;
1844
+ CPIEXEC_INTERFACE* pDelete = pList;
1845
pList = pList->pNext;
1846
::HeapFree(::GetProcessHeap(), 0, pDelete);
1847
}
1848
}
1849
1850
static void FreeMethodList(
1862
- CPI_METHOD* pList
1851
+ CPIEXEC_METHOD* pList
1852
)
1853
{
1854
while (pList)
@@ -1869,19 +1858,19 @@ static void FreeMethodList(
1858
if (pList->pRoleAssignmentList)
1859
FreeRoleAssignmentList(pList->pRoleAssignmentList);
1860
1872
- CPI_METHOD* pDelete = pList;
1861
+ CPIEXEC_METHOD* pDelete = pList;
1862
pList = pList->pNext;
1863
::HeapFree(::GetProcessHeap(), 0, pDelete);
1864
}
1865
}
1866
1867
static void FreeRoleAssignmentList(
1879
- CPI_ROLE_ASSIGNMENT* pList
1868
+ CPIEXEC_ROLE_ASSIGNMENT* pList
1869
)
1870
{
1871
while (pList)
1872
{
1884
- CPI_ROLE_ASSIGNMENT* pDelete = pList;
1873
+ CPIEXEC_ROLE_ASSIGNMENT* pDelete = pList;
1874
pList = pList->pNext;
1875
::HeapFree(::GetProcessHeap(), 0, pDelete);
1876
}
src/ca/cpasmsched.cpp
+41
-41
@@ -169,19 +169,19 @@ static HRESULT InterfacesRead(
169
LPCWSTR pwzCompKey,
170
CPI_APPLICATION_ROLE_LIST* pAppRoleList,
171
CPI_ASSEMBLY* pAsm,
172
- CPI_COMPONENT* pComp
172
+ CPISCHED_COMPONENT* pComp
173
);
174
static HRESULT MethodsRead(
175
LPCWSTR pwzIntfKey,
176
CPI_APPLICATION_ROLE_LIST* pAppRoleList,
177
CPI_ASSEMBLY* pAsm,
178
- CPI_INTERFACE* pIntf
178
+ CPISCHED_INTERFACE* pIntf
179
);
180
static HRESULT RoleAssignmentsRead(
181
LPCWSTR pwzQuery,
182
LPCWSTR pwzKey,
183
CPI_APPLICATION_ROLE_LIST* pAppRoleList,
184
- CPI_ROLE_ASSIGNMENT** ppRoleList,
184
+ CPISCHED_ROLE_ASSIGNMENT** ppRoleList,
185
int* piInstallCount,
186
int* piUninstallCount
187
);
@@ -238,21 +238,21 @@ static HRESULT AddRoleAssignmentsToActionData(
238
LPWSTR* ppwzActionData
239
);
240
static HRESULT AddComponentToActionData(
241
- CPI_COMPONENT* pItm,
241
+ CPISCHED_COMPONENT* pItm,
242
BOOL fInstall,
243
BOOL fProps,
244
BOOL fRoles,
245
LPWSTR* ppwzActionData
246
);
247
static HRESULT AddInterfaceToActionData(
248
- CPI_INTERFACE* pItm,
248
+ CPISCHED_INTERFACE* pItm,
249
BOOL fInstall,
250
BOOL fProps,
251
BOOL fRoles,
252
LPWSTR* ppwzActionData
253
);
254
static HRESULT AddMethodToActionData(
255
- CPI_METHOD* pItm,
255
+ CPISCHED_METHOD* pItm,
256
BOOL fInstall,
257
BOOL fProps,
258
BOOL fRoles,
@@ -261,7 +261,7 @@ static HRESULT AddMethodToActionData(
261
static HRESULT AddRolesToActionData(
262
int iRoleInstallCount,
263
int iRoleUninstallCount,
264
- CPI_ROLE_ASSIGNMENT* pRoleList,
264
+ CPISCHED_ROLE_ASSIGNMENT* pRoleList,
265
BOOL fInstall,
266
BOOL fRoles,
267
LPWSTR* ppwzActionData
@@ -284,16 +284,16 @@ static void ModuleFree(
284
CPI_MODULE* pItm
285
);
286
static void ComponentsFreeList(
287
- CPI_COMPONENT* pList
287
+ CPISCHED_COMPONENT* pList
288
);
289
static void InterfacesFreeList(
290
- CPI_INTERFACE* pList
290
+ CPISCHED_INTERFACE* pList
291
);
292
static void MethodsFreeList(
293
- CPI_METHOD* pList
293
+ CPISCHED_METHOD* pList
294
);
295
static void RoleAssignmentsFreeList(
296
- CPI_ROLE_ASSIGNMENT* pList
296
+ CPISCHED_ROLE_ASSIGNMENT* pList
297
);
298
299
@@ -686,7 +686,7 @@ LExit:
686
687
HRESULT CpiGetSubscriptionsCollForComponent(
688
CPI_ASSEMBLY* pAsm,
689
- CPI_COMPONENT* pComp,
689
+ CPISCHED_COMPONENT* pComp,
690
ICatalogCollection** ppiSubsColl
691
)
692
{
@@ -713,7 +713,7 @@ HRESULT CpiGetSubscriptionsCollForComponent(
713
ExitFunction(); // exit with hr = S_FALSE
714
715
// get roles collection
716
- hr = CpiGetCatalogCollection(piCompColl, piCompObj, L"SubscriptionsForComponent", &pComp->piSubsColl);
716
+ hr = CpiSchedGetCatalogCollection(piCompColl, piCompObj, L"SubscriptionsForComponent", &pComp->piSubsColl);
717
ExitOnFailure(hr, "Failed to get subscriptions collection");
718
}
719
@@ -1372,7 +1372,7 @@ static HRESULT ComponentsRead(
1372
PMSIHANDLE hView;
1373
PMSIHANDLE hRec;
1374
PMSIHANDLE hRecKey;
1375
- CPI_COMPONENT* pItm = NULL;
1375
+ CPISCHED_COMPONENT* pItm = NULL;
1376
LPWSTR pwzData = NULL;
1377
1378
// create parameter record
@@ -1390,7 +1390,7 @@ static HRESULT ComponentsRead(
1390
while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
1391
{
1392
// create entry
1393
- pItm = (CPI_COMPONENT*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPI_COMPONENT));
1393
+ pItm = (CPISCHED_COMPONENT*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPISCHED_COMPONENT));
1394
if (!pItm)
1395
ExitFunction1(hr = E_OUTOFMEMORY);
1396
@@ -1455,14 +1455,14 @@ static HRESULT InterfacesRead(
1455
LPCWSTR pwzCompKey,
1456
CPI_APPLICATION_ROLE_LIST* pAppRoleList,
1457
CPI_ASSEMBLY* pAsm,
1458
- CPI_COMPONENT* pComp
1458
+ CPISCHED_COMPONENT* pComp
1459
)
1460
{
1461
HRESULT hr = S_OK;
1462
PMSIHANDLE hView;
1463
PMSIHANDLE hRec;
1464
PMSIHANDLE hRecKey;
1465
- CPI_INTERFACE* pItm = NULL;
1465
+ CPISCHED_INTERFACE* pItm = NULL;
1466
LPWSTR pwzData = NULL;
1467
1468
// create parameter record
@@ -1480,7 +1480,7 @@ static HRESULT InterfacesRead(
1480
while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
1481
{
1482
// create entry
1483
- pItm = (CPI_INTERFACE*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPI_INTERFACE));
1483
+ pItm = (CPISCHED_INTERFACE*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPISCHED_INTERFACE));
1484
if (!pItm)
1485
ExitFunction1(hr = E_OUTOFMEMORY);
1486
@@ -1545,12 +1545,12 @@ static HRESULT MethodsRead(
1545
LPCWSTR pwzIntfKey,
1546
CPI_APPLICATION_ROLE_LIST* pAppRoleList,
1547
CPI_ASSEMBLY* pAsm,
1548
- CPI_INTERFACE* pIntf
1548
+ CPISCHED_INTERFACE* pIntf
1549
)
1550
{
1551
HRESULT hr = S_OK;
1552
PMSIHANDLE hView, hRec, hRecKey;
1553
- CPI_METHOD* pItm = NULL;
1553
+ CPISCHED_METHOD* pItm = NULL;
1554
LPWSTR pwzData = NULL;
1555
1556
// create parameter record
@@ -1568,7 +1568,7 @@ static HRESULT MethodsRead(
1568
while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
1569
{
1570
// create entry
1571
- pItm = (CPI_METHOD*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPI_METHOD));
1571
+ pItm = (CPISCHED_METHOD*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPISCHED_METHOD));
1572
if (!pItm)
1573
ExitFunction1(hr = E_OUTOFMEMORY);
1574
@@ -1635,7 +1635,7 @@ static HRESULT RoleAssignmentsRead(
1635
LPCWSTR pwzQuery,
1636
LPCWSTR pwzKey,
1637
CPI_APPLICATION_ROLE_LIST* pAppRoleList,
1638
- CPI_ROLE_ASSIGNMENT** ppRoleList,
1638
+ CPISCHED_ROLE_ASSIGNMENT** ppRoleList,
1639
int* piInstallCount,
1640
int* piUninstallCount
1641
)
@@ -1645,7 +1645,7 @@ static HRESULT RoleAssignmentsRead(
1645
1646
PMSIHANDLE hView, hRec, hRecKey;
1647
1648
- CPI_ROLE_ASSIGNMENT* pItm = NULL;
1648
+ CPISCHED_ROLE_ASSIGNMENT* pItm = NULL;
1649
LPWSTR pwzData = NULL;
1650
BOOL fMatchingArchitecture = FALSE;
1651
@@ -1677,7 +1677,7 @@ static HRESULT RoleAssignmentsRead(
1677
}
1678
1679
// create entry
1680
- pItm = (CPI_ROLE_ASSIGNMENT*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPI_ROLE_ASSIGNMENT));
1680
+ pItm = (CPISCHED_ROLE_ASSIGNMENT*)::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CPISCHED_ROLE_ASSIGNMENT));
1681
if (!pItm)
1682
ExitFunction1(hr = E_OUTOFMEMORY);
1683
@@ -1786,7 +1786,7 @@ static HRESULT AddAssemblyToActionData(
1786
1787
if (iCompCount)
1788
{
1789
- for (CPI_COMPONENT* pComp = pItm->pComponents; pComp; pComp = pComp->pNext)
1789
+ for (CPISCHED_COMPONENT* pComp = pItm->pComponents; pComp; pComp = pComp->pNext)
1790
{
1791
hr = AddComponentToActionData(pComp, fInstall, atCreate == iActionType, FALSE, ppwzActionData);
1792
ExitOnFailure(hr, "Failed to add component to custom action data, component: %S", pComp->wzKey);
@@ -1834,7 +1834,7 @@ static HRESULT AddRoleAssignmentsToActionData(
1834
hr = WcaWriteIntegerToCaData(pItm->iComponentCount, ppwzActionData);
1835
ExitOnFailure(hr, "Failed to add component count to custom action data");
1836
1837
- for (CPI_COMPONENT* pComp = pItm->pComponents; pComp; pComp = pComp->pNext)
1837
+ for (CPISCHED_COMPONENT* pComp = pItm->pComponents; pComp; pComp = pComp->pNext)
1838
{
1839
hr = AddComponentToActionData(pComp, fInstall, FALSE, TRUE, ppwzActionData);
1840
ExitOnFailure(hr, "Failed to add component to custom action data, component: %S", pComp->wzKey);
@@ -1847,7 +1847,7 @@ LExit:
1847
}
1848
1849
static HRESULT AddComponentToActionData(
1850
- CPI_COMPONENT* pItm,
1850
+ CPISCHED_COMPONENT* pItm,
1851
BOOL fInstall,
1852
BOOL fProps,
1853
BOOL fRoles,
@@ -1875,7 +1875,7 @@ static HRESULT AddComponentToActionData(
1875
1876
if (iIntfCount)
1877
{
1878
- for (CPI_INTERFACE* pIntf = pItm->pInterfaces; pIntf; pIntf = pIntf->pNext)
1878
+ for (CPISCHED_INTERFACE* pIntf = pItm->pInterfaces; pIntf; pIntf = pIntf->pNext)
1879
{
1880
hr = AddInterfaceToActionData(pIntf, fInstall, fProps, fRoles, ppwzActionData);
1881
ExitOnFailure(hr, "Failed to add interface custom action data, interface: %S", pIntf->wzKey);
@@ -1889,7 +1889,7 @@ LExit:
1889
}
1890
1891
static HRESULT AddInterfaceToActionData(
1892
- CPI_INTERFACE* pItm,
1892
+ CPISCHED_INTERFACE* pItm,
1893
BOOL fInstall,
1894
BOOL fProps,
1895
BOOL fRoles,
@@ -1914,7 +1914,7 @@ static HRESULT AddInterfaceToActionData(
1914
hr = WcaWriteIntegerToCaData(pItm->iMethodCount, ppwzActionData);
1915
ExitOnFailure(hr, "Failed to add method count to custom action data");
1916
1917
- for (CPI_METHOD* pMeth = pItm->pMethods; pMeth; pMeth = pMeth->pNext)
1917
+ for (CPISCHED_METHOD* pMeth = pItm->pMethods; pMeth; pMeth = pMeth->pNext)
1918
{
1919
hr = AddMethodToActionData(pMeth, fInstall, fProps, fRoles, ppwzActionData);
1920
ExitOnFailure(hr, "Failed to add method custom action data, method: %S", pMeth->wzKey);
@@ -1927,7 +1927,7 @@ LExit:
1927
}
1928
1929
static HRESULT AddMethodToActionData(
1930
- CPI_METHOD* pItm,
1930
+ CPISCHED_METHOD* pItm,
1931
BOOL fInstall,
1932
BOOL fProps,
1933
BOOL fRoles,
@@ -1960,7 +1960,7 @@ LExit:
1960
static HRESULT AddRolesToActionData(
1961
int iRoleInstallCount,
1962
int iRoleUninstallCount,
1963
- CPI_ROLE_ASSIGNMENT* pRoleList,
1963
+ CPISCHED_ROLE_ASSIGNMENT* pRoleList,
1964
BOOL fInstall,
1965
BOOL fRoles,
1966
LPWSTR* ppwzActionData
@@ -1974,7 +1974,7 @@ static HRESULT AddRolesToActionData(
1974
1975
if (iRoleCount)
1976
{
1977
- for (CPI_ROLE_ASSIGNMENT* pRole = pRoleList; pRole; pRole = pRole->pNext)
1977
+ for (CPISCHED_ROLE_ASSIGNMENT* pRole = pRoleList; pRole; pRole = pRole->pNext)
1978
{
1979
// make sure the install state matches the create flag
1980
if (fInstall ? !WcaIsInstalling(pRole->isInstalled, pRole->isAction) : !WcaIsUninstalling(pRole->isInstalled, pRole->isAction))
@@ -2061,7 +2061,7 @@ static void ModuleFree(
2061
}
2062
2063
static void ComponentsFreeList(
2064
- CPI_COMPONENT* pList
2064
+ CPISCHED_COMPONENT* pList
2065
)
2066
{
2067
while (pList)
@@ -2077,14 +2077,14 @@ static void ComponentsFreeList(
2077
2078
ReleaseObject(pList->piSubsColl);
2079
2080
- CPI_COMPONENT* pDelete = pList;
2080
+ CPISCHED_COMPONENT* pDelete = pList;
2081
pList = pList->pNext;
2082
::HeapFree(::GetProcessHeap(), 0, pDelete);
2083
}
2084
}
2085
2086
static void InterfacesFreeList(
2087
- CPI_INTERFACE* pList
2087
+ CPISCHED_INTERFACE* pList
2088
)
2089
{
2090
while (pList)
@@ -2098,14 +2098,14 @@ static void InterfacesFreeList(
2098
if (pList->pMethods)
2099
MethodsFreeList(pList->pMethods);
2100
2101
- CPI_INTERFACE* pDelete = pList;
2101
+ CPISCHED_INTERFACE* pDelete = pList;
2102
pList = pList->pNext;
2103
::HeapFree(::GetProcessHeap(), 0, pDelete);
2104
}
2105
}
2106
2107
static void MethodsFreeList(
2108
- CPI_METHOD* pList
2108
+ CPISCHED_METHOD* pList
2109
)
2110
{
2111
while (pList)
@@ -2116,19 +2116,19 @@ static void MethodsFreeList(
2116
if (pList->pRoles)
2117
RoleAssignmentsFreeList(pList->pRoles);
2118
2119
- CPI_METHOD* pDelete = pList;
2119
+ CPISCHED_METHOD* pDelete = pList;
2120
pList = pList->pNext;
2121
::HeapFree(::GetProcessHeap(), 0, pDelete);
2122
}
2123
}
2124
2125
static void RoleAssignmentsFreeList(
2126
- CPI_ROLE_ASSIGNMENT* pList
2126
+ CPISCHED_ROLE_ASSIGNMENT* pList
2127
)
2128
{
2129
while (pList)
2130
{
2131
- CPI_ROLE_ASSIGNMENT* pDelete = pList;
2131
+ CPISCHED_ROLE_ASSIGNMENT* pDelete = pList;
2132
pList = pList->pNext;
2133
::HeapFree(::GetProcessHeap(), 0, pDelete);
2134
}
src/ca/cpasmsched.h
+15
-15
@@ -13,7 +13,7 @@ enum eAssemblyAttributes
13
14
// structs
15
16
-struct CPI_ROLE_ASSIGNMENT
16
+struct CPISCHED_ROLE_ASSIGNMENT
17
{
18
WCHAR wzKey[MAX_DARWIN_KEY + 1];
19
@@ -21,10 +21,10 @@ struct CPI_ROLE_ASSIGNMENT
21
22
CPI_APPLICATION_ROLE* pApplicationRole;
23
24
- CPI_ROLE_ASSIGNMENT* pNext;
24
+ CPISCHED_ROLE_ASSIGNMENT* pNext;
25
};
26
27
-struct CPI_METHOD
27
+struct CPISCHED_METHOD
28
{
29
WCHAR wzKey[MAX_DARWIN_KEY + 1];
30
WCHAR wzIndex[11 + 1];
@@ -35,12 +35,12 @@ struct CPI_METHOD
35
36
int iRoleInstallCount;
37
int iRoleUninstallCount;
38
- CPI_ROLE_ASSIGNMENT* pRoles;
38
+ CPISCHED_ROLE_ASSIGNMENT* pRoles;
39
40
- CPI_METHOD* pNext;
40
+ CPISCHED_METHOD* pNext;
41
};
42
43
-struct CPI_INTERFACE
43
+struct CPISCHED_INTERFACE
44
{
45
WCHAR wzKey[MAX_DARWIN_KEY + 1];
46
WCHAR wzIID[CPI_MAX_GUID + 1];
@@ -50,15 +50,15 @@ struct CPI_INTERFACE
50
51
int iRoleInstallCount;
52
int iRoleUninstallCount;
53
- CPI_ROLE_ASSIGNMENT* pRoles;
53
+ CPISCHED_ROLE_ASSIGNMENT* pRoles;
54
55
int iMethodCount;
56
- CPI_METHOD* pMethods;
56
+ CPISCHED_METHOD* pMethods;
57
58
- CPI_INTERFACE* pNext;
58
+ CPISCHED_INTERFACE* pNext;
59
};
60
61
-struct CPI_COMPONENT
61
+struct CPISCHED_COMPONENT
62
{
63
WCHAR wzKey[MAX_DARWIN_KEY + 1];
64
WCHAR wzCLSID[CPI_MAX_GUID + 1];
@@ -68,14 +68,14 @@ struct CPI_COMPONENT
68
69
int iRoleInstallCount;
70
int iRoleUninstallCount;
71
- CPI_ROLE_ASSIGNMENT* pRoles;
71
+ CPISCHED_ROLE_ASSIGNMENT* pRoles;
72
73
int iInterfaceCount;
74
- CPI_INTERFACE* pInterfaces;
74
+ CPISCHED_INTERFACE* pInterfaces;
75
76
ICatalogCollection* piSubsColl;
77
78
- CPI_COMPONENT* pNext;
78
+ CPISCHED_COMPONENT* pNext;
79
};
80
81
struct CPI_ASSEMBLY
@@ -89,7 +89,7 @@ struct CPI_ASSEMBLY
89
int iAttributes;
90
91
int iComponentCount;
92
- CPI_COMPONENT* pComponents;
92
+ CPISCHED_COMPONENT* pComponents;
93
94
BOOL fReferencedForInstall;
95
BOOL fReferencedForUninstall;
@@ -163,6 +163,6 @@ HRESULT CpiRoleAssignmentsUninstall(
163
);
164
HRESULT CpiGetSubscriptionsCollForComponent(
165
CPI_ASSEMBLY* pAsm,
166
- CPI_COMPONENT* pComp,
166
+ CPISCHED_COMPONENT* pComp,
167
ICatalogCollection** ppiSubsColl
168
);
src/ca/cpexec.cpp
+10
-33
@@ -2,29 +2,6 @@
2
3
#include "precomp.h"
4
5
-/********************************************************************
6
- DllMain - standard entry point for all WiX CustomActions
7
-
8
-********************************************************************/
9
-extern "C" BOOL WINAPI DllMain(
10
- IN HINSTANCE hInst,
11
- IN ULONG ulReason,
12
- IN LPVOID)
13
-{
14
- switch(ulReason)
15
- {
16
- case DLL_PROCESS_ATTACH:
17
- WcaGlobalInitialize(hInst);
18
- break;
19
-
20
- case DLL_PROCESS_DETACH:
21
- WcaGlobalFinalize();
22
- break;
23
- }
24
-
25
- return TRUE;
26
-}
27
-
5
/********************************************************************
6
ComPlusPrepare - CUSTOM ACTION ENTRY POINT
7
@@ -133,7 +110,7 @@ extern "C" UINT __stdcall ComPlusInstallExecute(MSIHANDLE hInstall)
110
ExitOnFailure(hr, "Failed to initialize COM");
111
fInitializedCom = TRUE;
112
136
- CpiInitialize();
113
+ CpiExecInitialize();
114
115
// get custom action data
116
hr = WcaGetProperty(L"CustomActionData", &pwzCustomActionData);
@@ -204,7 +181,7 @@ LExit:
181
::CloseHandle(hRollbackFile);
182
183
// unitialize
207
- CpiFinalize();
184
+ CpiExecFinalize();
185
186
if (fInitializedCom)
187
::CoUninitialize();
@@ -239,7 +216,7 @@ extern "C" UINT __stdcall ComPlusInstallExecuteCommit(MSIHANDLE hInstall)
216
ExitOnFailure(hr, "Failed to initialize COM");
217
fInitializedCom = TRUE;
218
242
- CpiInitialize();
219
+ CpiExecInitialize();
220
221
// get custom action data
222
hr = WcaGetProperty(L"CustomActionData", &pwzCustomActionData);
@@ -282,7 +259,7 @@ LExit:
259
::CloseHandle(hRollbackFile);
260
261
// unitialize
285
- CpiFinalize();
262
+ CpiExecFinalize();
263
264
if (fInitializedCom)
265
::CoUninitialize();
@@ -327,7 +304,7 @@ extern "C" UINT __stdcall ComPlusRollbackInstallExecute(MSIHANDLE hInstall)
304
ExitOnFailure(hr, "Failed to initialize COM");
305
fInitializedCom = TRUE;
306
330
- CpiInitialize();
307
+ CpiExecInitialize();
308
309
// get custom action data
310
hr = WcaGetProperty(L"CustomActionData", &pwzCustomActionData);
@@ -439,7 +416,7 @@ LExit:
416
CpiFreeRollbackDataList(prdSubscriptions);
417
418
// unitialize
442
- CpiFinalize();
419
+ CpiExecFinalize();
420
421
if (fInitializedCom)
422
::CoUninitialize();
@@ -474,7 +451,7 @@ extern "C" UINT __stdcall ComPlusUninstallExecute(MSIHANDLE hInstall)
451
ExitOnFailure(hr, "Failed to initialize COM");
452
fInitializedCom = TRUE;
453
477
- CpiInitialize();
454
+ CpiExecInitialize();
455
456
// get custom action data
457
hr = WcaGetProperty(L"CustomActionData", &pwzCustomActionData);
@@ -545,7 +522,7 @@ LExit:
522
::CloseHandle(hRollbackFile);
523
524
// unitialize
548
- CpiFinalize();
525
+ CpiExecFinalize();
526
527
if (fInitializedCom)
528
::CoUninitialize();
@@ -590,7 +567,7 @@ extern "C" UINT __stdcall ComPlusRollbackUninstallExecute(MSIHANDLE hInstall)
567
ExitOnFailure(hr, "Failed to initialize COM");
568
fInitializedCom = TRUE;
569
593
- CpiInitialize();
570
+ CpiExecInitialize();
571
572
// get custom action data
573
hr = WcaGetProperty(L"CustomActionData", &pwzCustomActionData);
@@ -694,7 +671,7 @@ LExit:
671
CpiFreeRollbackDataList(prdSubscriptions);
672
673
// unitialize
697
- CpiFinalize();
674
+ CpiExecFinalize();
675
676
if (fInitializedCom)
677
::CoUninitialize();
src/ca/cppartexec.cpp
+2
-2
@@ -399,7 +399,7 @@ static HRESULT CreatePartition(
399
WcaLog(LOGMSG_VERBOSE, "Creating partition, key: %S", pAttrs->pwzKey);
400
401
// get partitions collection
402
- hr = CpiGetPartitionsCollection(&piPartColl);
402
+ hr = CpiExecGetPartitionsCollection(&piPartColl);
403
ExitOnFailure(hr, "Failed to get partitions collection");
404
405
// check if partition exists
@@ -456,7 +456,7 @@ static HRESULT RemovePartition(
456
WcaLog(LOGMSG_VERBOSE, "Removing partition, key: %S", pAttrs->pwzKey);
457
458
// get partitions collection
459
- hr = CpiGetPartitionsCollection(&piPartColl);
459
+ hr = CpiExecGetPartitionsCollection(&piPartColl);
460
ExitOnFailure(hr, "Failed to get partitions collection");
461
462
// remove
src/ca/cppartsched.cpp
+6
-6
@@ -199,7 +199,7 @@ HRESULT CpiPartitionsVerifyInstall(
199
// get partitions collection
200
if (!piPartColl)
201
{
202
- hr = CpiGetPartitionsCollection(&piPartColl);
202
+ hr = CpiSchedGetPartitionsCollection(&piPartColl);
203
ExitOnFailure(hr, "Failed to get partitions collection");
204
}
205
@@ -336,7 +336,7 @@ HRESULT CpiPartitionsVerifyUninstall(
336
// get partitions collection
337
if (!piPartColl)
338
{
339
- hr = CpiGetPartitionsCollection(&piPartColl);
339
+ hr = CpiSchedGetPartitionsCollection(&piPartColl);
340
ExitOnFailure(hr, "Failed to get partitions collection");
341
}
342
@@ -526,7 +526,7 @@ HRESULT CpiGetApplicationsCollForPartition(
526
if (!pPart->piApplicationsColl)
527
{
528
// get partitions collection from catalog
529
- hr = CpiGetPartitionsCollection(&piPartColl);
529
+ hr = CpiSchedGetPartitionsCollection(&piPartColl);
530
ExitOnFailure(hr, "Failed to get partitions collection");
531
532
// find application object
@@ -540,7 +540,7 @@ HRESULT CpiGetApplicationsCollForPartition(
540
}
541
542
// get roles collection
543
- hr = CpiGetCatalogCollection(piPartColl, piPartObj, L"Applications", &pPart->piApplicationsColl);
543
+ hr = CpiSchedGetCatalogCollection(piPartColl, piPartObj, L"Applications", &pPart->piApplicationsColl);
544
ExitOnFailure(hr, "Failed to get applications collection");
545
}
546
@@ -576,7 +576,7 @@ HRESULT CpiGetRolesCollForPartition(
576
if (!pPart->piRolesColl)
577
{
578
// get partitions collection from catalog
579
- hr = CpiGetPartitionsCollection(&piPartColl);
579
+ hr = CpiSchedGetPartitionsCollection(&piPartColl);
580
ExitOnFailure(hr, "Failed to get partitions collection");
581
582
// find partition object
@@ -587,7 +587,7 @@ HRESULT CpiGetRolesCollForPartition(
587
ExitFunction(); // exit with hr = S_FALSE
588
589
// get roles collection
590
- hr = CpiGetCatalogCollection(piPartColl, piPartObj, L"RolesForPartition", &pPart->piRolesColl);
590
+ hr = CpiSchedGetCatalogCollection(piPartColl, piPartObj, L"RolesForPartition", &pPart->piRolesColl);
591
ExitOnFailure(hr, "Failed to get roles collection");
592
}
593
src/ca/cpsched.cpp
+6
-30
@@ -29,30 +29,6 @@
29
#define CP_COMPLUSINSTALLCOMMIT L"ComPlusInstallCommit"
30
#endif
31
32
-
33
-/********************************************************************
34
- DllMain - standard entry point for all WiX CustomActions
35
-
36
-********************************************************************/
37
-extern "C" BOOL WINAPI DllMain(
38
- IN HINSTANCE hInst,
39
- IN ULONG ulReason,
40
- IN LPVOID)
41
-{
42
- switch(ulReason)
43
- {
44
- case DLL_PROCESS_ATTACH:
45
- WcaGlobalInitialize(hInst);
46
- break;
47
-
48
- case DLL_PROCESS_DETACH:
49
- WcaGlobalFinalize();
50
- break;
51
- }
52
-
53
- return TRUE;
54
-}
55
-
32
/********************************************************************
33
ConfigureComPlusInstall - CUSTOM ACTION ENTRY POINT for installing COM+ components
34
@@ -103,7 +79,7 @@ extern "C" UINT __stdcall ConfigureComPlusInstall(MSIHANDLE hInstall)
79
ExitOnFailure(hr, "Failed to initialize COM");
80
fInitializedCom = TRUE;
81
106
- CpiInitialize();
82
+ CpiSchedInitialize();
83
84
// check for the prerequsite tables
85
if (!CpiTableExists(cptComPlusPartition) && !CpiTableExists(cptComPlusApplication) && !CpiTableExists(cptComPlusAssembly))
@@ -114,7 +90,7 @@ extern "C" UINT __stdcall ConfigureComPlusInstall(MSIHANDLE hInstall)
90
91
// make sure we can access the COM+ admin catalog
92
do {
117
- hr = CpiGetAdminCatalog(&piCatalog);
93
+ hr = CpiSchedGetAdminCatalog(&piCatalog);
94
if (FAILED(hr))
95
{
96
WcaLog(LOGMSG_STANDARD, "Failed to get COM+ admin catalog");
@@ -320,7 +296,7 @@ LExit:
296
CpiSubscriptionListFree(&subList);
297
298
// unitialize
323
- CpiFinalize();
299
+ CpiSchedFinalize();
300
301
if (fInitializedCom)
302
::CoUninitialize();
@@ -378,7 +354,7 @@ extern "C" UINT __stdcall ConfigureComPlusUninstall(MSIHANDLE hInstall)
354
ExitOnFailure(hr, "Failed to initialize COM");
355
fInitializedCom = TRUE;
356
381
- CpiInitialize();
357
+ CpiSchedInitialize();
358
359
// check for the prerequsite tables
360
if (!CpiTableExists(cptComPlusPartition) && !CpiTableExists(cptComPlusApplication) && !CpiTableExists(cptComPlusAssembly))
@@ -389,7 +365,7 @@ extern "C" UINT __stdcall ConfigureComPlusUninstall(MSIHANDLE hInstall)
365
366
// make sure we can access the COM+ admin catalog
367
do {
392
- hr = CpiGetAdminCatalog(&piCatalog);
368
+ hr = CpiSchedGetAdminCatalog(&piCatalog);
369
if (FAILED(hr))
370
{
371
WcaLog(LOGMSG_STANDARD, "Failed to get COM+ admin catalog");
@@ -580,7 +556,7 @@ LExit:
556
CpiSubscriptionListFree(&subList);
557
558
// unitialize
583
- CpiFinalize();
559
+ CpiSchedFinalize();
560
561
if (fInitializedCom)
562
::CoUninitialize();
src/ca/cpsubssched.cpp
+3
-3
@@ -53,7 +53,7 @@ static HRESULT ComponentFindByKey(
53
CPI_ASSEMBLY_LIST* pAsmList,
54
LPCWSTR pwzKey,
55
CPI_ASSEMBLY** ppAsmItm,
56
- CPI_COMPONENT** ppCompItm
56
+ CPISCHED_COMPONENT** ppCompItm
57
);
58
59
@@ -586,12 +586,12 @@ static HRESULT ComponentFindByKey(
586
CPI_ASSEMBLY_LIST* pAsmList,
587
LPCWSTR pwzKey,
588
CPI_ASSEMBLY** ppAsmItm,
589
- CPI_COMPONENT** ppCompItm
589
+ CPISCHED_COMPONENT** ppCompItm
590
)
591
{
592
for (CPI_ASSEMBLY* pAsmItm = pAsmList->pFirst; pAsmItm; pAsmItm = pAsmItm->pNext)
593
{
594
- for (CPI_COMPONENT* pCompItm = pAsmItm->pComponents; pCompItm; pCompItm = pCompItm->pNext)
594
+ for (CPISCHED_COMPONENT* pCompItm = pAsmItm->pComponents; pCompItm; pCompItm = pCompItm->pNext)
595
{
596
if (0 == lstrcmpW(pCompItm->wzKey, pwzKey))
597
{
src/ca/cpsubssched.h
+1
-1
@@ -18,7 +18,7 @@ struct CPI_SUBSCRIPTION
18
INSTALLSTATE isInstalled, isAction;
19
20
CPI_ASSEMBLY* pAssembly;
21
- CPI_COMPONENT* pComponent;
21
+ CPISCHED_COMPONENT* pComponent;
22
23
CPI_SUBSCRIPTION* pNext;
24
};
src/ca/cputilexec.cpp
+28
-28
@@ -69,13 +69,13 @@ static ICOMAdminCatalog* gpiCatalog;
69
70
// function definitions
71
72
-void CpiInitialize()
72
+void CpiExecInitialize()
73
{
74
// collections
75
gpiCatalog = NULL;
76
}
77
78
-void CpiFinalize()
78
+void CpiExecFinalize()
79
{
80
// collections
81
ReleaseObject(gpiCatalog);
@@ -187,7 +187,7 @@ LExit:
187
return hr;
188
}
189
190
-HRESULT CpiGetAdminCatalog(
190
+HRESULT CpiExecGetAdminCatalog(
191
ICOMAdminCatalog** ppiCatalog
192
)
193
{
@@ -225,11 +225,11 @@ HRESULT CpiLogCatalogErrorInfo()
225
LPWSTR pwzMinorRef = NULL;
226
227
// get catalog
228
- hr = CpiGetAdminCatalog(&piCatalog);
228
+ hr = CpiExecGetAdminCatalog(&piCatalog);
229
ExitOnFailure(hr, "Failed to get COM+ admin catalog");
230
231
// get error info collection
232
- hr = CpiGetCatalogCollection(L"ErrorInfo", &piErrColl);
232
+ hr = CpiExecGetCatalogCollection(L"ErrorInfo", &piErrColl);
233
ExitOnFailure(hr, "Failed to get error info collection");
234
235
// loop objects
@@ -282,7 +282,7 @@ LExit:
282
return hr;
283
}
284
285
-HRESULT CpiGetCatalogCollection(
285
+HRESULT CpiExecGetCatalogCollection(
286
LPCWSTR pwzName,
287
ICatalogCollection** ppiColl
288
)
@@ -299,7 +299,7 @@ HRESULT CpiGetCatalogCollection(
299
ExitOnNull(bstrName, hr, E_OUTOFMEMORY, "Failed to allocate BSTR for collection name");
300
301
// get catalog
302
- hr = CpiGetAdminCatalog(&piCatalog);
302
+ hr = CpiExecGetAdminCatalog(&piCatalog);
303
ExitOnFailure(hr, "Failed to get COM+ admin catalog");
304
305
// get collecton from catalog
@@ -326,7 +326,7 @@ LExit:
326
return hr;
327
}
328
329
-HRESULT CpiGetCatalogCollection(
329
+HRESULT CpiExecGetCatalogCollection(
330
ICatalogCollection* piColl,
331
ICatalogObject* piObj,
332
LPCWSTR pwzName,
@@ -348,7 +348,7 @@ HRESULT CpiGetCatalogCollection(
348
ExitOnNull(bstrName, hr, E_OUTOFMEMORY, "Failed to allocate BSTR for collection name");
349
350
// get catalog
351
- hr = CpiGetAdminCatalog(&piCatalog);
351
+ hr = CpiExecGetAdminCatalog(&piCatalog);
352
ExitOnFailure(hr, "Failed to get COM+ admin catalog");
353
354
// get key
@@ -894,14 +894,14 @@ LExit:
894
return hr;
895
}
896
897
-HRESULT CpiGetPartitionsCollection(
897
+HRESULT CpiExecGetPartitionsCollection(
898
ICatalogCollection** ppiPartColl
899
)
900
{
901
HRESULT hr = S_OK;
902
903
// get collection
904
- hr = CpiGetCatalogCollection(L"Partitions", ppiPartColl);
904
+ hr = CpiExecGetCatalogCollection(L"Partitions", ppiPartColl);
905
ExitOnFailure(hr, "Failed to get catalog collection");
906
907
hr = S_OK;
@@ -921,7 +921,7 @@ HRESULT CpiGetPartitionRolesCollection(
921
ICatalogObject* piPartObj = NULL;
922
923
// get partitions collection
924
- hr = CpiGetPartitionsCollection(&piPartColl);
924
+ hr = CpiExecGetPartitionsCollection(&piPartColl);
925
ExitOnFailure(hr, "Failed to get partitions collection");
926
927
if (S_FALSE == hr)
@@ -935,7 +935,7 @@ HRESULT CpiGetPartitionRolesCollection(
935
ExitFunction(); // partition not found, exit with hr = S_FALSE
936
937
// get roles collection
938
- hr = CpiGetCatalogCollection(piPartColl, piPartObj, L"RolesForPartition", ppiRolesColl);
938
+ hr = CpiExecGetCatalogCollection(piPartColl, piPartObj, L"RolesForPartition", ppiRolesColl);
939
ExitOnFailure(hr, "Failed to get catalog collection");
940
941
hr = S_OK;
@@ -974,7 +974,7 @@ HRESULT CpiGetUsersInPartitionRoleCollection(
974
ExitFunction(); // user not found, exit with hr = S_FALSE
975
976
// get roles collection
977
- hr = CpiGetCatalogCollection(piRoleColl, piRoleObj, L"UsersInPartitionRole", ppiUsrInRoleColl);
977
+ hr = CpiExecGetCatalogCollection(piRoleColl, piRoleObj, L"UsersInPartitionRole", ppiUsrInRoleColl);
978
ExitOnFailure(hr, "Failed to get catalog collection");
979
980
hr = S_OK;
@@ -994,7 +994,7 @@ HRESULT CpiGetPartitionUsersCollection(
994
HRESULT hr = S_OK;
995
996
// get roles collection
997
- hr = CpiGetCatalogCollection(L"PartitionUsers", ppiUserColl);
997
+ hr = CpiExecGetCatalogCollection(L"PartitionUsers", ppiUserColl);
998
ExitOnFailure(hr, "Failed to get catalog collection");
999
1000
hr = S_OK;
@@ -1003,7 +1003,7 @@ LExit:
1003
return hr;
1004
}
1005
1006
-HRESULT CpiGetApplicationsCollection(
1006
+HRESULT CpiExecGetApplicationsCollection(
1007
LPCWSTR pwzPartID,
1008
ICatalogCollection** ppiAppColl
1009
)
@@ -1018,7 +1018,7 @@ HRESULT CpiGetApplicationsCollection(
1018
ICatalogObject* piPartObj = NULL;
1019
1020
// get catalog
1021
- hr = CpiGetAdminCatalog(&piCatalog);
1021
+ hr = CpiExecGetAdminCatalog(&piCatalog);
1022
ExitOnFailure(hr, "Failed to get COM+ admin catalog");
1023
1024
// get ICOMAdminCatalog2 interface
@@ -1038,7 +1038,7 @@ HRESULT CpiGetApplicationsCollection(
1038
}
1039
1040
// get partitions collection
1041
- hr = CpiGetPartitionsCollection(&piPartColl);
1041
+ hr = CpiExecGetPartitionsCollection(&piPartColl);
1042
ExitOnFailure(hr, "Failed to get partitions collection");
1043
1044
// find object
@@ -1049,7 +1049,7 @@ HRESULT CpiGetApplicationsCollection(
1049
ExitFunction(); // partition not found, exit with hr = S_FALSE
1050
1051
// get applications collection
1052
- hr = CpiGetCatalogCollection(piPartColl, piPartObj, L"Applications", ppiAppColl);
1052
+ hr = CpiExecGetCatalogCollection(piPartColl, piPartObj, L"Applications", ppiAppColl);
1053
ExitOnFailure(hr, "Failed to get catalog collection for partition");
1054
}
1055
@@ -1061,7 +1061,7 @@ HRESULT CpiGetApplicationsCollection(
1061
ExitOnFailure(hr = E_FAIL, "Partitions are not supported by this version of COM+");
1062
1063
// get applications collection
1064
- hr = CpiGetCatalogCollection(L"Applications", ppiAppColl);
1064
+ hr = CpiExecGetCatalogCollection(L"Applications", ppiAppColl);
1065
ExitOnFailure(hr, "Failed to get catalog collection");
1066
}
1067
@@ -1091,7 +1091,7 @@ HRESULT CpiGetRolesCollection(
1091
ICatalogObject* piAppObj = NULL;
1092
1093
// get applications collection
1094
- hr = CpiGetApplicationsCollection(pwzPartID, &piAppColl);
1094
+ hr = CpiExecGetApplicationsCollection(pwzPartID, &piAppColl);
1095
ExitOnFailure(hr, "Failed to get applications collection");
1096
1097
if (S_FALSE == hr)
@@ -1105,7 +1105,7 @@ HRESULT CpiGetRolesCollection(
1105
ExitFunction(); // application not found, exit with hr = S_FALSE
1106
1107
// get roles collection
1108
- hr = CpiGetCatalogCollection(piAppColl, piAppObj, L"Roles", ppiRolesColl);
1108
+ hr = CpiExecGetCatalogCollection(piAppColl, piAppObj, L"Roles", ppiRolesColl);
1109
ExitOnFailure(hr, "Failed to catalog collection");
1110
1111
hr = S_OK;
@@ -1145,7 +1145,7 @@ HRESULT CpiGetUsersInRoleCollection(
1145
ExitFunction(); // role not found, exit with hr = S_FALSE
1146
1147
// get roles collection
1148
- hr = CpiGetCatalogCollection(piRoleColl, piRoleObj, L"UsersInRole", ppiUsrInRoleColl);
1148
+ hr = CpiExecGetCatalogCollection(piRoleColl, piRoleObj, L"UsersInRole", ppiUsrInRoleColl);
1149
ExitOnFailure(hr, "Failed to get catalog collection");
1150
1151
hr = S_OK;
@@ -1170,7 +1170,7 @@ HRESULT CpiGetComponentsCollection(
1170
ICatalogObject* piAppObj = NULL;
1171
1172
// get applications collection
1173
- hr = CpiGetApplicationsCollection(pwzPartID, &piAppColl);
1173
+ hr = CpiExecGetApplicationsCollection(pwzPartID, &piAppColl);
1174
ExitOnFailure(hr, "Failed to get applications collection");
1175
1176
if (S_FALSE == hr)
@@ -1184,7 +1184,7 @@ HRESULT CpiGetComponentsCollection(
1184
ExitFunction(); // application not found, exit with hr = S_FALSE
1185
1186
// get components collection
1187
- hr = CpiGetCatalogCollection(piAppColl, piAppObj, L"Components", ppiCompsColl);
1187
+ hr = CpiExecGetCatalogCollection(piAppColl, piAppObj, L"Components", ppiCompsColl);
1188
ExitOnFailure(hr, "Failed to get catalog collection");
1189
1190
hr = S_OK;
@@ -1206,7 +1206,7 @@ HRESULT CpiGetInterfacesCollection(
1206
HRESULT hr = S_OK;
1207
1208
// get interfaces collection
1209
- hr = CpiGetCatalogCollection(piCompColl, piCompObj, L"InterfacesForComponent", ppiIntfColl);
1209
+ hr = CpiExecGetCatalogCollection(piCompColl, piCompObj, L"InterfacesForComponent", ppiIntfColl);
1210
ExitOnFailure(hr, "Failed to get catalog collection");
1211
1212
hr = S_OK;
@@ -1224,7 +1224,7 @@ HRESULT CpiGetMethodsCollection(
1224
HRESULT hr = S_OK;
1225
1226
// get interfaces collection
1227
- hr = CpiGetCatalogCollection(piIntfColl, piIntfObj, L"MethodsForInterface", ppiMethColl);
1227
+ hr = CpiExecGetCatalogCollection(piIntfColl, piIntfObj, L"MethodsForInterface", ppiMethColl);
1228
ExitOnFailure(hr, "Failed to get catalog collection");
1229
1230
hr = S_OK;
@@ -1260,7 +1260,7 @@ HRESULT CpiGetSubscriptionsCollection(
1260
ExitFunction(); // component not found, exit with hr = S_FALSE
1261
1262
// get subscriptions collection
1263
- hr = CpiGetCatalogCollection(piCompColl, piCompObj, L"SubscriptionsForComponent", ppiSubsColl);
1263
+ hr = CpiExecGetCatalogCollection(piCompColl, piCompObj, L"SubscriptionsForComponent", ppiSubsColl);
1264
ExitOnFailure(hr, "Failed to get catalog collection");
1265
1266
hr = S_OK;
src/ca/cputilexec.h
+7
-7
@@ -28,8 +28,8 @@ struct CPI_ROLLBACK_DATA
28
29
// function prototypes
30
31
-void CpiInitialize();
32
-void CpiFinalize();
31
+void CpiExecInitialize();
32
+void CpiExecFinalize();
33
HRESULT CpiActionStartMessage(
34
LPWSTR* ppwzActionData,
35
BOOL fSuppress
@@ -38,15 +38,15 @@ HRESULT CpiActionDataMessage(
38
DWORD cArgs,
39
...
40
);
41
-HRESULT CpiGetAdminCatalog(
41
+HRESULT CpiExecGetAdminCatalog(
42
ICOMAdminCatalog** ppiCatalog
43
);
44
HRESULT CpiLogCatalogErrorInfo();
45
-HRESULT CpiGetCatalogCollection(
45
+HRESULT CpiExecGetCatalogCollection(
46
LPCWSTR pwzName,
47
ICatalogCollection** ppiColl
48
);
49
-HRESULT CpiGetCatalogCollection(
49
+HRESULT CpiExecGetCatalogCollection(
50
ICatalogCollection* piColl,
51
ICatalogObject* piObj,
52
LPCWSTR pwzName,
@@ -105,7 +105,7 @@ HRESULT CpiFindUserCollectionObject(
105
PSID pSid,
106
ICatalogObject** ppiObj
107
);
108
-HRESULT CpiGetPartitionsCollection(
108
+HRESULT CpiExecGetPartitionsCollection(
109
ICatalogCollection** ppiPartColl
110
);
111
HRESULT CpiGetPartitionRolesCollection(
@@ -120,7 +120,7 @@ HRESULT CpiGetUsersInPartitionRoleCollection(
120
HRESULT CpiGetPartitionUsersCollection(
121
ICatalogCollection** ppiUserColl
122
);
123
-HRESULT CpiGetApplicationsCollection(
123
+HRESULT CpiExecGetApplicationsCollection(
124
LPCWSTR pwzPartID,
125
ICatalogCollection** ppiAppColl
126
);
src/ca/cputilsched.cpp
+14
-14
@@ -43,7 +43,7 @@ static int giTables;
43
44
// function definitions
45
46
-void CpiInitialize()
46
+void CpiSchedInitialize()
47
{
48
// collections
49
gpiCatalog = NULL;
@@ -80,7 +80,7 @@ void CpiInitialize()
80
if (S_OK == WcaTableExists(L"ComPlusSubscriptionProperty")) giTables |= cptComPlusSubscriptionProperty;
81
}
82
83
-void CpiFinalize()
83
+void CpiSchedFinalize()
84
{
85
// collections
86
ReleaseObject(gpiCatalog);
@@ -95,7 +95,7 @@ BOOL CpiTableExists(
95
return (giTables & iTable) == iTable;
96
}
97
98
-HRESULT CpiGetAdminCatalog(
98
+HRESULT CpiSchedGetAdminCatalog(
99
ICOMAdminCatalog** ppiCatalog
100
)
101
{
@@ -118,7 +118,7 @@ LExit:
118
return hr;
119
}
120
121
-HRESULT CpiGetCatalogCollection(
121
+HRESULT CpiSchedGetCatalogCollection(
122
LPCWSTR pwzName,
123
ICatalogCollection** ppiColl
124
)
@@ -134,7 +134,7 @@ HRESULT CpiGetCatalogCollection(
134
ExitOnNull(bstrName, hr, E_OUTOFMEMORY, "Failed to allocate BSTR for collection name");
135
136
// get catalog
137
- hr = CpiGetAdminCatalog(&piCatalog);
137
+ hr = CpiSchedGetAdminCatalog(&piCatalog);
138
ExitOnFailure(hr, "Failed to get COM+ admin catalog");
139
140
// get collecton from catalog
@@ -159,7 +159,7 @@ LExit:
159
return hr;
160
}
161
162
-HRESULT CpiGetCatalogCollection(
162
+HRESULT CpiSchedGetCatalogCollection(
163
ICatalogCollection* piColl,
164
ICatalogObject* piObj,
165
LPCWSTR pwzName,
@@ -180,7 +180,7 @@ HRESULT CpiGetCatalogCollection(
180
ExitOnNull(bstrName, hr, E_OUTOFMEMORY, "Failed to allocate BSTR for collection name");
181
182
// get catalog
183
- hr = CpiGetAdminCatalog(&piCatalog);
183
+ hr = CpiSchedGetAdminCatalog(&piCatalog);
184
ExitOnFailure(hr, "Failed to get COM+ admin catalog");
185
186
// get key
@@ -331,7 +331,7 @@ LExit:
331
return hr;
332
}
333
334
-HRESULT CpiGetPartitionsCollection(
334
+HRESULT CpiSchedGetPartitionsCollection(
335
ICatalogCollection** ppiPartColl
336
)
337
{
@@ -340,7 +340,7 @@ HRESULT CpiGetPartitionsCollection(
340
if (!gpiPartColl)
341
{
342
// get collection
343
- hr = CpiGetCatalogCollection(L"Partitions", &gpiPartColl);
343
+ hr = CpiSchedGetCatalogCollection(L"Partitions", &gpiPartColl);
344
ExitOnFailure(hr, "Failed to get partitions collection");
345
}
346
@@ -354,7 +354,7 @@ LExit:
354
return hr;
355
}
356
357
-HRESULT CpiGetApplicationsCollection(
357
+HRESULT CpiSchedGetApplicationsCollection(
358
ICatalogCollection** ppiAppColl
359
)
360
{
@@ -369,7 +369,7 @@ HRESULT CpiGetApplicationsCollection(
369
if (!gpiAppColl)
370
{
371
// get catalog
372
- hr = CpiGetAdminCatalog(&piCatalog);
372
+ hr = CpiSchedGetAdminCatalog(&piCatalog);
373
ExitOnFailure(hr, "Failed to get COM+ admin catalog");
374
375
// get ICOMAdminCatalog2 interface
@@ -385,7 +385,7 @@ HRESULT CpiGetApplicationsCollection(
385
ExitOnFailure(hr, "Failed to get global partition id");
386
387
// get partitions collection
388
- hr = CpiGetPartitionsCollection(&piPartColl);
388
+ hr = CpiSchedGetPartitionsCollection(&piPartColl);
389
ExitOnFailure(hr, "Failed to get partitions collection");
390
391
// find object
@@ -396,7 +396,7 @@ HRESULT CpiGetApplicationsCollection(
396
ExitFunction(); // partition not found, exit with hr = S_FALSE
397
398
// get applications collection
399
- hr = CpiGetCatalogCollection(piPartColl, piPartObj, L"Applications", &gpiAppColl);
399
+ hr = CpiSchedGetCatalogCollection(piPartColl, piPartObj, L"Applications", &gpiAppColl);
400
ExitOnFailure(hr, "Failed to get applications collection");
401
}
402
@@ -404,7 +404,7 @@ HRESULT CpiGetApplicationsCollection(
404
else
405
{
406
// get applications collection
407
- hr = CpiGetCatalogCollection(L"Applications", &gpiAppColl);
407
+ hr = CpiSchedGetCatalogCollection(L"Applications", &gpiAppColl);
408
ExitOnFailure(hr, "Failed to get applications collection");
409
}
410
}
src/ca/cputilsched.h
+7
-19
@@ -2,12 +2,8 @@
2
// 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.
3
4
5
-#define CPI_MAX_GUID 38
6
-
5
enum eRunMode { rmDeferred = 1, rmCommit, rmRollback };
6
9
-enum eActionType { atNoOp = 0, atCreate, atRemove };
10
-
7
enum eComPlusPropertyType { cpptNone = 0, cpptBoolean, cpptInteger, cpptString, cpptUser };
8
9
enum eComPlusTables
@@ -42,14 +38,6 @@ enum eComPlusTables
38
39
// structs
40
45
-struct CPI_PROPERTY
46
-{
47
- WCHAR wzName[MAX_DARWIN_KEY + 1];
48
- LPWSTR pwzValue;
49
-
50
- CPI_PROPERTY* pNext;
51
-};
52
-
41
struct CPI_PROPERTY_DEFINITION
42
{
43
LPCWSTR pwzName;
@@ -60,19 +48,19 @@ struct CPI_PROPERTY_DEFINITION
48
49
// function prototypes
50
63
-void CpiInitialize();
64
-void CpiFinalize();
51
+void CpiSchedInitialize();
52
+void CpiSchedFinalize();
53
BOOL CpiTableExists(
54
int iTable
55
);
68
-HRESULT CpiGetAdminCatalog(
56
+HRESULT CpiSchedGetAdminCatalog(
57
ICOMAdminCatalog** ppiCatalog
58
);
71
-HRESULT CpiGetCatalogCollection(
59
+HRESULT CpiSchedGetCatalogCollection(
60
LPCWSTR pwzName,
61
ICatalogCollection** ppiColl
62
);
75
-HRESULT CpiGetCatalogCollection(
63
+HRESULT CpiSchedGetCatalogCollection(
64
ICatalogCollection* piColl,
65
ICatalogObject* piObj,
66
LPCWSTR pwzName,
@@ -89,10 +77,10 @@ HRESULT CpiFindCollectionObject(
77
LPCWSTR pwzName,
78
ICatalogObject** ppiObj
79
);
92
-HRESULT CpiGetPartitionsCollection(
80
+HRESULT CpiSchedGetPartitionsCollection(
81
ICatalogCollection** ppiPartColl
82
);
95
-HRESULT CpiGetApplicationsCollection(
83
+HRESULT CpiSchedGetApplicationsCollection(
84
ICatalogCollection** ppiAppColl
85
);
86
HRESULT CpiAddActionTextToActionData(
src/ca/custommsierrors.h
new
+29
@@ -0,0 +1,29 @@
1
+#pragma once
2
+// 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.
3
+
4
+
5
+#define msierrComPlusCannotConnect 28001
6
+#define msierrComPlusPartitionReadFailed 28002
7
+#define msierrComPlusPartitionRoleReadFailed 28003
8
+#define msierrComPlusUserInPartitionRoleReadFailed 28004
9
+#define msierrComPlusPartitionUserReadFailed 28005
10
+#define msierrComPlusApplicationReadFailed 28006
11
+#define msierrComPlusApplicationRoleReadFailed 28007
12
+#define msierrComPlusUserInApplicationRoleReadFailed 28008
13
+#define msierrComPlusAssembliesReadFailed 28009
14
+#define msierrComPlusSubscriptionReadFailed 28010
15
+#define msierrComPlusPartitionDependency 28011
16
+#define msierrComPlusPartitionNotFound 28012
17
+#define msierrComPlusPartitionIdConflict 28013
18
+#define msierrComPlusPartitionNameConflict 28014
19
+#define msierrComPlusApplicationDependency 28015
20
+#define msierrComPlusApplicationNotFound 28016
21
+#define msierrComPlusApplicationIdConflict 28017
22
+#define msierrComPlusApplicationNameConflict 28018
23
+#define msierrComPlusApplicationRoleDependency 28019
24
+#define msierrComPlusApplicationRoleNotFound 28020
25
+#define msierrComPlusApplicationRoleConflict 28021
26
+#define msierrComPlusAssemblyDependency 28022
27
+#define msierrComPlusSubscriptionIdConflict 28023
28
+#define msierrComPlusSubscriptionNameConflict 28024
29
+#define msierrComPlusFailedLookupNames 28025
src/ca/dllmain.cpp
new
+27
@@ -0,0 +1,27 @@
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
+#include "precomp.h"
4
+
5
+/********************************************************************
6
+DllMain - standard entry point for all WiX custom actions.
7
+
8
+********************************************************************/
9
+extern "C" BOOL WINAPI DllMain(
10
+ IN HINSTANCE hInstance,
11
+ IN ULONG ulReason,
12
+ IN LPVOID)
13
+{
14
+ switch(ulReason)
15
+ {
16
+ case DLL_PROCESS_ATTACH:
17
+ WcaGlobalInitialize(hInstance);
18
+ ::DisableThreadLibraryCalls(hInstance);
19
+ break;
20
+
21
+ case DLL_PROCESS_DETACH:
22
+ WcaGlobalFinalize();
23
+ break;
24
+ }
25
+
26
+ return TRUE;
27
+}
src/ca/packages.config
new
+5
@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<packages>
3
+ <package id="WixToolset.DUtil" version="4.0.16" targetFramework="native" />
4
+ <package id="WixToolset.WcaUtil" version="4.0.2" targetFramework="native" />
5
+</packages>
\ No newline at end of file
src/ca/precomp.h
new
+33
@@ -0,0 +1,33 @@
1
+#pragma once
2
+// 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.
3
+
4
+
5
+#include <windows.h>
6
+#include <msiquery.h>
7
+#include <strsafe.h>
8
+#include <comadmin.h>
9
+#include <ntsecapi.h>
10
+#include <aclapi.h>
11
+
12
+#include "wcautil.h"
13
+#include "memutil.h"
14
+#include "strutil.h"
15
+#include "wiutil.h"
16
+
17
+#include "CustomMsiErrors.h"
18
+
19
+#include "cpcost.h"
20
+#include "cputilexec.h"
21
+#include "cppartexec.h"
22
+#include "cppartroleexec.h"
23
+#include "cpappexec.h"
24
+#include "cpapproleexec.h"
25
+#include "cpasmexec.h"
26
+#include "cpsubsexec.h"
27
+#include "cputilsched.h"
28
+#include "cppartsched.h"
29
+#include "cppartrolesched.h"
30
+#include "cpappsched.h"
31
+#include "cpapprolesched.h"
32
+#include "cpasmsched.h"
33
+#include "cpsubssched.h"
src/test/WixToolsetTest.ComPlus/ComPlusExtensionFixture.cs
new
+32
@@ -0,0 +1,32 @@
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 WixToolsetTest.ComPlus
4
+{
5
+ using System.Linq;
6
+ using WixBuildTools.TestSupport;
7
+ using WixToolset.Core.TestPackage;
8
+ using WixToolset.ComPlus;
9
+ using Xunit;
10
+
11
+ public class ComPlusExtensionFixture
12
+ {
13
+ [Fact]
14
+ public void CanBuildUsingComPlusPartition()
15
+ {
16
+ var folder = TestData.Get(@"TestData\UsingComPlusPartition");
17
+ var build = new Builder(folder, typeof(ComPlusExtensionFactory), new[] { folder });
18
+
19
+ var results = build.BuildAndQuery(Build, "ComPlusPartition");
20
+ Assert.Equal(new[]
21
+ {
22
+ "ComPlusPartition:",
23
+ }, results.OrderBy(s => s).ToArray());
24
+ }
25
+
26
+ private static void Build(string[] args)
27
+ {
28
+ var result = WixRunner.Execute(args)
29
+ .AssertSuccess();
30
+ }
31
+ }
32
+}
src/test/WixToolsetTest.ComPlus/TestData/UsingComPlusPartition/Package.en-us.wxl
new
+11
@@ -0,0 +1,11 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+
3
+<!--
4
+This file contains the declaration of all the localizable strings.
5
+-->
6
+<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
7
+
8
+ <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String>
9
+ <String Id="FeatureTitle">MsiPackage</String>
10
+
11
+</WixLocalization>
src/test/WixToolsetTest.ComPlus/TestData/UsingComPlusPartition/Package.wxs
new
+22
@@ -0,0 +1,22 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3
+ <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
4
+ <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
+
6
+ <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
+ <MediaTemplate />
8
+
9
+ <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
10
+ <ComponentGroupRef Id="ProductComponents" />
11
+ </Feature>
12
+
13
+ </Product>
14
+
15
+ <Fragment>
16
+ <Directory Id="TARGETDIR" Name="SourceDir">
17
+ <Directory Id="ProgramFilesFolder">
18
+ <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
19
+ </Directory>
20
+ </Directory>
21
+ </Fragment>
22
+</Wix>
src/test/WixToolsetTest.ComPlus/TestData/UsingComPlusPartition/PackageComponents.wxs
new
+12
@@ -0,0 +1,12 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3
+ xmlns:complus="http://wixtoolset.org/schemas/v4/wxs/complus">
4
+ <Fragment>
5
+ <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
6
+ <Component>
7
+ <File Source="example.txt" />
8
+ <complus:ComPlusPartition Id="MyPartition" Name="MyPartition" PartitionId="MyPartitionId" />
9
+ </Component>
10
+ </ComponentGroup>
11
+ </Fragment>
12
+</Wix>
src/test/WixToolsetTest.ComPlus/TestData/UsingComPlusPartition/example.txt
new
+1
@@ -0,0 +1 @@
1
+This is example.txt.
\ No newline at end of file
src/test/WixToolsetTest.ComPlus/WixToolsetTest.ComPlus.csproj
new
+38
@@ -0,0 +1,38 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- 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. -->
3
+
4
+<Project Sdk="Microsoft.NET.Sdk">
5
+ <PropertyGroup>
6
+ <TargetFramework>netcoreapp2.1</TargetFramework>
7
+ <IsPackable>false</IsPackable>
8
+ </PropertyGroup>
9
+
10
+ <PropertyGroup>
11
+ <NoWarn>NU1701</NoWarn>
12
+ </PropertyGroup>
13
+
14
+ <ItemGroup>
15
+ <Content Include="TestData\UsingComPlusPartition\example.txt" CopyToOutputDirectory="PreserveNewest" />
16
+ <Content Include="TestData\UsingComPlusPartition\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
17
+ <Content Include="TestData\UsingComPlusPartition\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
18
+ <Content Include="TestData\UsingComPlusPartition\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
19
+ </ItemGroup>
20
+
21
+ <ItemGroup>
22
+ <ProjectReference Include="..\..\wixext\WixToolset.ComPlus.wixext.csproj" />
23
+ </ItemGroup>
24
+
25
+ <ItemGroup>
26
+ <PackageReference Include="WixToolset.Core.TestPackage" Version="4.0.*" PrivateAssets="all" />
27
+ </ItemGroup>
28
+
29
+ <ItemGroup>
30
+ <PackageReference Include="WixBuildTools.TestSupport" Version="4.0.*" />
31
+ </ItemGroup>
32
+
33
+ <ItemGroup>
34
+ <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
35
+ <PackageReference Include="xunit" Version="2.4.0" />
36
+ <PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
37
+ </ItemGroup>
38
+</Project>
src/wixext/ComPlusCompiler.cs
+536
-543
@@ -1,31 +1,22 @@
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.Extensions
3
+namespace WixToolset.ComPlus
4
{
5
using System;
6
using System.Collections;
7
using System.Collections.Generic;
8
using System.Globalization;
9
- using System.Reflection;
10
- using System.Xml;
9
+ using System.Text;
10
using System.Xml.Linq;
12
- using System.Xml.Schema;
11
using WixToolset.Data;
12
using WixToolset.Extensibility;
13
+ using WixToolset.Extensibility.Data;
14
15
/// <summary>
17
- /// The compiler for the WiX Toolset Internet Information Services Extension.
16
+ /// The compiler for the WiX Toolset COM+ Extension.
17
/// </summary>
19
- public sealed class ComPlusCompiler : CompilerExtension
18
+ public sealed class ComPlusCompiler : BaseCompilerExtension
19
{
21
- /// <summary>
22
- /// Instantiate a new ComPlusCompiler.
23
- /// </summary>
24
- public ComPlusCompiler()
25
- {
26
- this.Namespace = "http://wixtoolset.org/schemas/v4/wxs/complus";
27
- }
28
-
20
/// <summary>
21
/// </summary>
22
/// <remarks></remarks>
@@ -37,6 +28,8 @@ namespace WixToolset.Extensions
28
RegisterInCommit = (1 << 3)
29
}
30
31
+ public override XNamespace Namespace => "http://wixtoolset.org/schemas/v4/wxs/complus";
32
+
33
/// <summary>
34
/// Processes an element for the Compiler.
35
/// </summary>
@@ -44,7 +37,7 @@ namespace WixToolset.Extensions
37
/// <param name="parentElement">Parent element of element to process.</param>
38
/// <param name="element">Element to process.</param>
39
/// <param name="contextValues">Extra information about the context in which this element is being parsed.</param>
47
- public override void ParseElement(XElement parentElement, XElement element, IDictionary<string, string> context)
40
+ public override void ParseElement(Intermediate intermediate, IntermediateSection section, XElement parentElement, XElement element, IDictionary<string, string> context)
41
{
42
switch (parentElement.Name.LocalName)
43
{
@@ -56,49 +49,49 @@ namespace WixToolset.Extensions
49
switch (element.Name.LocalName)
50
{
51
case "ComPlusPartition":
59
- this.ParseComPlusPartitionElement(element, componentId, win64);
52
+ this.ParseComPlusPartitionElement(intermediate, section, element, componentId, win64);
53
break;
54
case "ComPlusPartitionRole":
62
- this.ParseComPlusPartitionRoleElement(element, componentId, null);
55
+ this.ParseComPlusPartitionRoleElement(intermediate, section, element, componentId, null);
56
break;
57
case "ComPlusUserInPartitionRole":
65
- this.ParseComPlusUserInPartitionRoleElement(element, componentId, null);
58
+ this.ParseComPlusUserInPartitionRoleElement(intermediate, section, element, componentId, null);
59
break;
60
case "ComPlusGroupInPartitionRole":
68
- this.ParseComPlusGroupInPartitionRoleElement(element, componentId, null);
61
+ this.ParseComPlusGroupInPartitionRoleElement(intermediate, section, element, componentId, null);
62
break;
63
case "ComPlusPartitionUser":
71
- this.ParseComPlusPartitionUserElement(element, componentId, null);
64
+ this.ParseComPlusPartitionUserElement(intermediate, section, element, componentId, null);
65
break;
66
case "ComPlusApplication":
74
- this.ParseComPlusApplicationElement(element, componentId, win64, null);
67
+ this.ParseComPlusApplicationElement(intermediate, section, element, componentId, win64, null);
68
break;
69
case "ComPlusApplicationRole":
77
- this.ParseComPlusApplicationRoleElement(element, componentId, null);
70
+ this.ParseComPlusApplicationRoleElement(intermediate, section, element, componentId, null);
71
break;
72
case "ComPlusUserInApplicationRole":
80
- this.ParseComPlusUserInApplicationRoleElement(element, componentId, null);
73
+ this.ParseComPlusUserInApplicationRoleElement(intermediate, section, element, componentId, null);
74
break;
75
case "ComPlusGroupInApplicationRole":
83
- this.ParseComPlusGroupInApplicationRoleElement(element, componentId, null);
76
+ this.ParseComPlusGroupInApplicationRoleElement(intermediate, section, element, componentId, null);
77
break;
78
case "ComPlusAssembly":
86
- this.ParseComPlusAssemblyElement(element, componentId, win64, null);
79
+ this.ParseComPlusAssemblyElement(intermediate, section, element, componentId, win64, null);
80
break;
81
case "ComPlusRoleForComponent":
89
- this.ParseComPlusRoleForComponentElement(element, componentId, null);
82
+ this.ParseComPlusRoleForComponentElement(intermediate, section, element, componentId, null);
83
break;
84
case "ComPlusRoleForInterface":
92
- this.ParseComPlusRoleForInterfaceElement(element, componentId, null);
85
+ this.ParseComPlusRoleForInterfaceElement(intermediate, section, element, componentId, null);
86
break;
87
case "ComPlusRoleForMethod":
95
- this.ParseComPlusRoleForMethodElement(element, componentId, null);
88
+ this.ParseComPlusRoleForMethodElement(intermediate, section, element, componentId, null);
89
break;
90
case "ComPlusSubscription":
98
- this.ParseComPlusSubscriptionElement(element, componentId, null);
91
+ this.ParseComPlusSubscriptionElement(intermediate, section, element, componentId, null);
92
break;
93
default:
101
- this.Core.UnexpectedElement(parentElement, element);
94
+ this.ParseHelper.UnexpectedElement(parentElement, element);
95
break;
96
}
97
break;
@@ -108,24 +101,24 @@ namespace WixToolset.Extensions
101
switch (element.Name.LocalName)
102
{
103
case "ComPlusPartition":
111
- this.ParseComPlusPartitionElement(element, null, false);
104
+ this.ParseComPlusPartitionElement(intermediate, section, element, null, false);
105
break;
106
case "ComPlusPartitionRole":
114
- this.ParseComPlusPartitionRoleElement(element, null, null);
107
+ this.ParseComPlusPartitionRoleElement(intermediate, section, element, null, null);
108
break;
109
case "ComPlusApplication":
117
- this.ParseComPlusApplicationElement(element, null, false, null);
110
+ this.ParseComPlusApplicationElement(intermediate, section, element, null, false, null);
111
break;
112
case "ComPlusApplicationRole":
120
- this.ParseComPlusApplicationRoleElement(element, null, null);
113
+ this.ParseComPlusApplicationRoleElement(intermediate, section, element, null, null);
114
break;
115
default:
123
- this.Core.UnexpectedElement(parentElement, element);
116
+ this.ParseHelper.UnexpectedElement(parentElement, element);
117
break;
118
}
119
break;
120
default:
128
- this.Core.UnexpectedElement(parentElement, element);
121
+ this.ParseHelper.UnexpectedElement(parentElement, element);
122
break;
123
}
124
}
@@ -135,9 +128,9 @@ namespace WixToolset.Extensions
128
/// </summary>
129
/// <param name="node">Element to parse.</param>
130
/// <param name="componentKey">Identifier of parent component.</param>
138
- private void ParseComPlusPartitionElement(XElement node, string componentKey, bool win64)
131
+ private void ParseComPlusPartitionElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, bool win64)
132
{
140
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
133
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
134
135
string key = null;
136
string id = null;
@@ -152,49 +145,49 @@ namespace WixToolset.Extensions
145
switch (attrib.Name.LocalName)
146
{
147
case "Id":
155
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
148
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
149
break;
150
case "PartitionId":
158
- id = TryFormatGuidValue(this.Core.GetAttributeValue(sourceLineNumbers, attrib));
151
+ id = this.TryFormatGuidValue(this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib));
152
break;
153
case "Name":
161
- name = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
154
+ name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
155
break;
156
case "Changeable":
164
- this.Core.OnMessage(WixWarnings.DeprecatedAttribute(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
157
+ this.Messaging.Write(WarningMessages.DeprecatedAttribute(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
158
break;
159
case "Deleteable":
160
if (null == componentKey)
161
{
169
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
162
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
163
}
171
- properties["Deleteable"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
164
+ properties["Deleteable"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
165
break;
166
case "Description":
167
if (null == componentKey)
168
{
176
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
169
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
170
}
178
- properties["Description"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
171
+ properties["Description"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
172
break;
173
default:
181
- this.Core.UnexpectedAttribute(node, attrib);
174
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
175
break;
176
}
177
}
178
else
179
{
187
- this.Core.ParseExtensionAttribute(node, attrib);
180
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
181
}
182
}
183
184
if (null != componentKey && null == name)
185
{
193
- this.Core.OnMessage(ComPlusErrors.RequiredAttributeUnderComponent(sourceLineNumbers, node.Name.LocalName, "Name"));
186
+ this.Messaging.Write(ComPlusErrors.RequiredAttributeUnderComponent(sourceLineNumbers, node.Name.LocalName, "Name"));
187
}
188
if (null == componentKey && null == id && null == name)
189
{
197
- this.Core.OnMessage(ComPlusErrors.RequiredAttributeNotUnderComponent(sourceLineNumbers, node.Name.LocalName, "Id", "Name"));
190
+ this.Messaging.Write(ComPlusErrors.RequiredAttributeNotUnderComponent(sourceLineNumbers, node.Name.LocalName, "Id", "Name"));
191
}
192
193
foreach (XElement child in node.Elements())
@@ -204,58 +197,58 @@ namespace WixToolset.Extensions
197
switch (child.Name.LocalName)
198
{
199
case "ComPlusPartitionRole":
207
- this.ParseComPlusPartitionRoleElement(child, componentKey, key);
200
+ this.ParseComPlusPartitionRoleElement(intermediate, section, child, componentKey, key);
201
break;
202
case "ComPlusPartitionUser":
210
- this.ParseComPlusPartitionUserElement(child, componentKey, key);
203
+ this.ParseComPlusPartitionUserElement(intermediate, section, child, componentKey, key);
204
break;
205
case "ComPlusApplication":
213
- this.ParseComPlusApplicationElement(child, componentKey, win64, key);
206
+ this.ParseComPlusApplicationElement(intermediate, section, child, componentKey, win64, key);
207
break;
208
default:
216
- this.Core.UnexpectedElement(node, child);
209
+ this.ParseHelper.UnexpectedElement(node, child);
210
break;
211
}
212
}
213
else
214
{
222
- this.Core.ParseExtensionElement(node, child);
215
+ this.ParseHelper.ParseExtensionElement(this.Context.Extensions, intermediate, section, node, child);
216
}
217
}
218
226
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusPartition");
227
- row[0] = key;
228
- row[1] = componentKey;
229
- row[2] = id;
230
- row[3] = name;
219
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusPartition");
220
+ row.Set(0, key);
221
+ row.Set(1, componentKey);
222
+ row.Set(2, id);
223
+ row.Set(3, name);
224
225
IDictionaryEnumerator propertiesEnumerator = properties.GetEnumerator();
226
while (propertiesEnumerator.MoveNext())
227
{
235
- Row propertyRow = this.Core.CreateRow(sourceLineNumbers, "ComPlusPartitionProperty");
236
- propertyRow[0] = key;
237
- propertyRow[1] = (string)propertiesEnumerator.Key;
238
- propertyRow[2] = (string)propertiesEnumerator.Value;
228
+ var propertyRow = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusPartitionProperty");
229
+ propertyRow.Set(0, key);
230
+ propertyRow.Set(1, (string)propertiesEnumerator.Key);
231
+ propertyRow.Set(2, (string)propertiesEnumerator.Value);
232
}
233
234
if (componentKey != null)
235
{
236
if (win64)
237
{
245
- if (this.Core.CurrentPlatform == Platform.IA64)
238
+ if (this.Context.Platform == Platform.IA64)
239
{
247
- this.Core.OnMessage(WixErrors.UnsupportedPlatformForElement(sourceLineNumbers, "ia64", node.Name.LocalName));
240
+ this.Messaging.Write(ErrorMessages.UnsupportedPlatformForElement(sourceLineNumbers, "ia64", node.Name.LocalName));
241
}
242
else
243
{
251
- this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", "ConfigureComPlusInstall_x64");
252
- this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", "ConfigureComPlusUninstall_x64");
244
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusInstall_x64");
245
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusUninstall_x64");
246
}
247
}
248
else
249
{
257
- this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", "ConfigureComPlusInstall");
258
- this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", "ConfigureComPlusUninstall");
250
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusInstall");
251
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusUninstall");
252
}
253
}
254
}
@@ -266,9 +259,9 @@ namespace WixToolset.Extensions
259
/// <param name="node">Element to parse.</param>
260
/// <param name="componentKey">Identifier of parent component.</param>
261
/// <param name="applicationKey">Optional identifier of parent application.</param>
269
- private void ParseComPlusPartitionRoleElement(XElement node, string componentKey, string partitionKey)
262
+ private void ParseComPlusPartitionRoleElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, string partitionKey)
263
{
271
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
264
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
265
266
string key = null;
267
string name = null;
@@ -280,33 +273,33 @@ namespace WixToolset.Extensions
273
switch (attrib.Name.LocalName)
274
{
275
case "Id":
283
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
276
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
277
break;
278
case "Partition":
279
if (null != partitionKey)
280
{
288
- this.Core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
281
+ this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
282
}
290
- partitionKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
291
- this.Core.CreateSimpleReference(sourceLineNumbers, "ComPlusPartition", partitionKey);
283
+ partitionKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
284
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "ComPlusPartition", partitionKey);
285
break;
286
case "Name":
294
- name = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
287
+ name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
288
break;
289
default:
297
- this.Core.UnexpectedAttribute(node, attrib);
290
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
291
break;
292
}
293
}
294
else
295
{
303
- this.Core.ParseExtensionAttribute(node, attrib);
296
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
297
}
298
}
299
300
if (null == partitionKey)
301
{
309
- this.Core.OnMessage(WixErrors.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Partition"));
302
+ this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Partition"));
303
}
304
305
foreach (XElement child in node.Elements())
@@ -316,27 +309,27 @@ namespace WixToolset.Extensions
309
switch (child.Name.LocalName)
310
{
311
case "ComPlusUserInPartitionRole":
319
- this.ParseComPlusUserInPartitionRoleElement(child, componentKey, key);
312
+ this.ParseComPlusUserInPartitionRoleElement(intermediate, section, child, componentKey, key);
313
break;
314
case "ComPlusGroupInPartitionRole":
322
- this.ParseComPlusGroupInPartitionRoleElement(child, componentKey, key);
315
+ this.ParseComPlusGroupInPartitionRoleElement(intermediate, section, child, componentKey, key);
316
break;
317
default:
325
- this.Core.UnexpectedElement(node, child);
318
+ this.ParseHelper.UnexpectedElement(node, child);
319
break;
320
}
321
}
322
else
323
{
331
- this.Core.ParseExtensionElement(node, child);
324
+ this.ParseHelper.ParseExtensionElement(this.Context.Extensions, intermediate, section, node, child);
325
}
326
}
327
328
// add table row
336
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusPartitionRole");
337
- row[0] = key;
338
- row[1] = partitionKey;
339
- row[3] = name;
329
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusPartitionRole");
330
+ row.Set(0, key);
331
+ row.Set(1, partitionKey);
332
+ row.Set(3, name);
333
}
334
335
/// <summary>
@@ -345,9 +338,9 @@ namespace WixToolset.Extensions
338
/// <param name="node">Element to parse.</param>
339
/// <param name="componentKey">Identifier of parent component.</param>
340
/// <param name="applicationKey">Optional identifier of parent application role.</param>
348
- private void ParseComPlusUserInPartitionRoleElement(XElement node, string componentKey, string partitionRoleKey)
341
+ private void ParseComPlusUserInPartitionRoleElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, string partitionRoleKey)
342
{
350
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
343
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
344
345
string key = null;
346
string user = null;
@@ -359,41 +352,41 @@ namespace WixToolset.Extensions
352
switch (attrib.Name.LocalName)
353
{
354
case "Id":
362
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
355
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
356
break;
357
case "PartitionRole":
358
if (null != partitionRoleKey)
359
{
367
- this.Core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
360
+ this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
361
}
369
- partitionRoleKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
370
- this.Core.CreateSimpleReference(sourceLineNumbers, "ComPlusPartitionRole", partitionRoleKey);
362
+ partitionRoleKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
363
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "ComPlusPartitionRole", partitionRoleKey);
364
break;
365
case "User":
373
- user = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
374
- this.Core.CreateSimpleReference(sourceLineNumbers, "User", user);
366
+ user = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
367
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "User", user);
368
break;
369
default:
377
- this.Core.UnexpectedAttribute(node, attrib);
370
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
371
break;
372
}
373
}
374
else
375
{
383
- this.Core.ParseExtensionAttribute(node, attrib);
376
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
377
}
378
}
379
380
if (null == partitionRoleKey)
381
{
389
- this.Core.OnMessage(WixErrors.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "PartitionRole"));
382
+ this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "PartitionRole"));
383
}
384
392
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusUserInPartitionRole");
393
- row[0] = key;
394
- row[1] = partitionRoleKey;
395
- row[2] = componentKey;
396
- row[3] = user;
385
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusUserInPartitionRole");
386
+ row.Set(0, key);
387
+ row.Set(1, partitionRoleKey);
388
+ row.Set(2, componentKey);
389
+ row.Set(3, user);
390
}
391
392
/// <summary>
@@ -402,9 +395,9 @@ namespace WixToolset.Extensions
395
/// <param name="node">Element to parse.</param>
396
/// <param name="componentKey">Identifier of parent component.</param>
397
/// <param name="applicationKey">Optional identifier of parent application role.</param>
405
- private void ParseComPlusGroupInPartitionRoleElement(XElement node, string componentKey, string partitionRoleKey)
398
+ private void ParseComPlusGroupInPartitionRoleElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, string partitionRoleKey)
399
{
407
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
400
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
401
402
string key = null;
403
string group = null;
@@ -416,41 +409,41 @@ namespace WixToolset.Extensions
409
switch (attrib.Name.LocalName)
410
{
411
case "Id":
419
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
412
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
413
break;
414
case "PartitionRole":
415
if (null != partitionRoleKey)
416
{
424
- this.Core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
417
+ this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
418
}
426
- partitionRoleKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
427
- this.Core.CreateSimpleReference(sourceLineNumbers, "ComPlusPartitionRole", partitionRoleKey);
419
+ partitionRoleKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
420
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "ComPlusPartitionRole", partitionRoleKey);
421
break;
422
case "Group":
430
- group = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
431
- this.Core.CreateSimpleReference(sourceLineNumbers, "Group", group);
423
+ group = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
424
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "Group", group);
425
break;
426
default:
434
- this.Core.UnexpectedAttribute(node, attrib);
427
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
428
break;
429
}
430
}
431
else
432
{
440
- this.Core.ParseExtensionAttribute(node, attrib);
433
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
434
}
435
}
436
437
if (null == partitionRoleKey)
438
{
446
- this.Core.OnMessage(WixErrors.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "PartitionRole"));
439
+ this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "PartitionRole"));
440
}
441
449
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusGroupInPartitionRole");
450
- row[0] = key;
451
- row[1] = partitionRoleKey;
452
- row[2] = componentKey;
453
- row[3] = group;
442
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusGroupInPartitionRole");
443
+ row.Set(0, key);
444
+ row.Set(1, partitionRoleKey);
445
+ row.Set(2, componentKey);
446
+ row.Set(3, group);
447
}
448
449
/// <summary>
@@ -458,9 +451,9 @@ namespace WixToolset.Extensions
451
/// </summary>
452
/// <param name="node">Element to parse.</param>
453
/// <param name="componentKey">Identifier of parent component.</param>
461
- private void ParseComPlusPartitionUserElement(XElement node, string componentKey, string partitionKey)
454
+ private void ParseComPlusPartitionUserElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, string partitionKey)
455
{
463
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
456
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
457
458
string key = null;
459
string user = null;
@@ -472,41 +465,41 @@ namespace WixToolset.Extensions
465
switch (attrib.Name.LocalName)
466
{
467
case "Id":
475
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
468
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
469
break;
470
case "Partition":
471
if (null != partitionKey)
472
{
480
- this.Core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
473
+ this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
474
}
482
- partitionKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
483
- this.Core.CreateSimpleReference(sourceLineNumbers, "ComPlusPartition", partitionKey);
475
+ partitionKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
476
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "ComPlusPartition", partitionKey);
477
break;
478
case "User":
486
- user = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
487
- this.Core.CreateSimpleReference(sourceLineNumbers, "User", user);
479
+ user = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
480
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "User", user);
481
break;
482
default:
490
- this.Core.UnexpectedAttribute(node, attrib);
483
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
484
break;
485
}
486
}
487
else
488
{
496
- this.Core.ParseExtensionAttribute(node, attrib);
489
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
490
}
491
}
492
493
if (null == partitionKey)
494
{
502
- this.Core.OnMessage(WixErrors.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Partition"));
495
+ this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Partition"));
496
}
497
505
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusPartitionUser");
506
- row[0] = key;
507
- row[1] = partitionKey;
508
- row[2] = componentKey;
509
- row[3] = user;
498
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusPartitionUser");
499
+ row.Set(0, key);
500
+ row.Set(1, partitionKey);
501
+ row.Set(2, componentKey);
502
+ row.Set(3, user);
503
}
504
505
/// <summary>
@@ -515,9 +508,9 @@ namespace WixToolset.Extensions
508
/// <param name="node">Element to parse.</param>
509
/// <param name="componentKey">Identifier of parent component.</param>
510
/// <param name="partitionKey">Optional identifier of parent partition.</param>
518
- private void ParseComPlusApplicationElement(XElement node, string componentKey, bool win64, string partitionKey)
511
+ private void ParseComPlusApplicationElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, bool win64, string partitionKey)
512
{
520
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
513
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
514
515
string key = null;
516
string id = null;
@@ -532,35 +525,35 @@ namespace WixToolset.Extensions
525
switch (attrib.Name.LocalName)
526
{
527
case "Id":
535
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
528
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
529
break;
530
case "Partition":
531
if (null != partitionKey)
532
{
540
- this.Core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
533
+ this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
534
}
542
- partitionKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
543
- this.Core.CreateSimpleReference(sourceLineNumbers, "ComPlusPartition", partitionKey);
535
+ partitionKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
536
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "ComPlusPartition", partitionKey);
537
break;
538
case "ApplicationId":
546
- id = TryFormatGuidValue(this.Core.GetAttributeValue(sourceLineNumbers, attrib));
539
+ id = this.TryFormatGuidValue(this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib));
540
break;
541
case "Name":
549
- name = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
542
+ name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
543
break;
544
case "ThreeGigSupportEnabled":
545
if (null == componentKey)
546
{
554
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
547
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
548
}
556
- properties["3GigSupportEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
549
+ properties["3GigSupportEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
550
break;
551
case "AccessChecksLevel":
552
if (null == componentKey)
553
{
561
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
554
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
555
}
563
- string accessChecksLevelValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
556
+ string accessChecksLevelValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
557
switch (accessChecksLevelValue)
558
{
559
case "applicationLevel":
@@ -570,16 +563,16 @@ namespace WixToolset.Extensions
563
properties["AccessChecksLevel"] = "1";
564
break;
565
default:
573
- this.Core.OnMessage(WixErrors.IllegalAttributeValue(sourceLineNumbers, "ComPlusApplication", "AccessChecksLevel", accessChecksLevelValue, "applicationLevel", "applicationComponentLevel"));
566
+ this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, "ComPlusApplication", "AccessChecksLevel", accessChecksLevelValue, "applicationLevel", "applicationComponentLevel"));
567
break;
568
}
569
break;
570
case "Activation":
571
if (null == componentKey)
572
{
580
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
573
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
574
}
582
- string activationValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
575
+ string activationValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
576
switch (activationValue)
577
{
578
case "inproc":
@@ -589,30 +582,30 @@ namespace WixToolset.Extensions
582
properties["Activation"] = "Local";
583
break;
584
default:
592
- this.Core.OnMessage(WixErrors.IllegalAttributeValue(sourceLineNumbers, "ComPlusApplication", "Activation", activationValue, "inproc", "local"));
585
+ this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, "ComPlusApplication", "Activation", activationValue, "inproc", "local"));
586
break;
587
}
588
break;
589
case "ApplicationAccessChecksEnabled":
590
if (null == componentKey)
591
{
599
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
592
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
593
}
601
- properties["ApplicationAccessChecksEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
594
+ properties["ApplicationAccessChecksEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
595
break;
596
case "ApplicationDirectory":
597
if (null == componentKey)
598
{
606
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
599
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
600
}
608
- properties["ApplicationDirectory"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
601
+ properties["ApplicationDirectory"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
602
break;
603
case "Authentication":
604
if (null == componentKey)
605
{
613
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
606
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
607
}
615
- string authenticationValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
608
+ string authenticationValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
609
switch (authenticationValue)
610
{
611
case "default":
@@ -637,16 +630,16 @@ namespace WixToolset.Extensions
630
properties["Authentication"] = "6";
631
break;
632
default:
640
- this.Core.OnMessage(WixErrors.IllegalAttributeValue(sourceLineNumbers, "ComPlusApplication", "Authentication", authenticationValue, "default", "none", "connect", "call", "packet", "integrity", "privacy"));
633
+ this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, "ComPlusApplication", "Authentication", authenticationValue, "default", "none", "connect", "call", "packet", "integrity", "privacy"));
634
break;
635
}
636
break;
637
case "AuthenticationCapability":
638
if (null == componentKey)
639
{
647
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
640
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
641
}
649
- string authenticationCapabilityValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
642
+ string authenticationCapabilityValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
643
switch (authenticationCapabilityValue)
644
{
645
case "none":
@@ -662,110 +655,110 @@ namespace WixToolset.Extensions
655
properties["AuthenticationCapability"] = "64";
656
break;
657
default:
665
- this.Core.OnMessage(WixErrors.IllegalAttributeValue(sourceLineNumbers, "ComPlusApplication", "AuthenticationCapability", authenticationCapabilityValue, "none", "secureReference", "staticCloaking", "dynamicCloaking"));
658
+ this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, "ComPlusApplication", "AuthenticationCapability", authenticationCapabilityValue, "none", "secureReference", "staticCloaking", "dynamicCloaking"));
659
break;
660
}
661
break;
662
case "Changeable":
670
- this.Core.OnMessage(WixWarnings.DeprecatedAttribute(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
663
+ this.Messaging.Write(WarningMessages.DeprecatedAttribute(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
664
break;
665
case "CommandLine":
666
if (null == componentKey)
667
{
675
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
668
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
669
}
677
- properties["CommandLine"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
670
+ properties["CommandLine"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
671
break;
672
case "ConcurrentApps":
673
if (null == componentKey)
674
{
682
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
675
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
676
}
684
- properties["ConcurrentApps"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
677
+ properties["ConcurrentApps"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
678
break;
679
case "CreatedBy":
680
if (null == componentKey)
681
{
689
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
682
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
683
}
691
- properties["CreatedBy"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
684
+ properties["CreatedBy"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
685
break;
686
case "CRMEnabled":
687
if (null == componentKey)
688
{
696
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
689
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
690
}
698
- properties["CRMEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
691
+ properties["CRMEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
692
break;
693
case "CRMLogFile":
694
if (null == componentKey)
695
{
703
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
696
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
697
}
705
- properties["CRMLogFile"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
698
+ properties["CRMLogFile"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
699
break;
700
case "Deleteable":
701
if (null == componentKey)
702
{
710
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
703
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
704
}
712
- properties["Deleteable"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
705
+ properties["Deleteable"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
706
break;
707
case "Description":
708
if (null == componentKey)
709
{
717
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
710
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
711
}
719
- properties["Description"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
712
+ properties["Description"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
713
break;
714
case "DumpEnabled":
715
if (null == componentKey)
716
{
724
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
717
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
718
}
726
- properties["DumpEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
719
+ properties["DumpEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
720
break;
721
case "DumpOnException":
722
if (null == componentKey)
723
{
731
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
724
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
725
}
733
- properties["DumpOnException"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
726
+ properties["DumpOnException"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
727
break;
728
case "DumpOnFailfast":
729
if (null == componentKey)
730
{
738
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
731
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
732
}
740
- properties["DumpOnFailfast"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
733
+ properties["DumpOnFailfast"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
734
break;
735
case "DumpPath":
736
if (null == componentKey)
737
{
745
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
738
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
739
}
747
- properties["DumpPath"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
740
+ properties["DumpPath"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
741
break;
742
case "EventsEnabled":
743
if (null == componentKey)
744
{
752
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
745
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
746
}
754
- properties["EventsEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
747
+ properties["EventsEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
748
break;
749
case "Identity":
750
if (null == componentKey)
751
{
759
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
752
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
753
}
761
- properties["Identity"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
754
+ properties["Identity"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
755
break;
756
case "ImpersonationLevel":
757
if (null == componentKey)
758
{
766
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
759
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
760
}
768
- string impersonationLevelValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
761
+ string impersonationLevelValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
762
switch (impersonationLevelValue)
763
{
764
case "anonymous":
@@ -781,37 +774,37 @@ namespace WixToolset.Extensions
774
properties["ImpersonationLevel"] = "4";
775
break;
776
default:
784
- this.Core.OnMessage(WixErrors.IllegalAttributeValue(sourceLineNumbers, "ComPlusApplication", "ImpersonationLevel", impersonationLevelValue, "anonymous", "identify", "impersonate", "delegate"));
777
+ this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, "ComPlusApplication", "ImpersonationLevel", impersonationLevelValue, "anonymous", "identify", "impersonate", "delegate"));
778
break;
779
}
780
break;
781
case "IsEnabled":
782
if (null == componentKey)
783
{
791
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
784
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
785
}
793
- properties["IsEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
786
+ properties["IsEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
787
break;
788
case "MaxDumpCount":
789
if (null == componentKey)
790
{
798
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
791
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
792
}
800
- properties["MaxDumpCount"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
793
+ properties["MaxDumpCount"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
794
break;
795
case "Password":
796
if (null == componentKey)
797
{
805
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
798
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
799
}
807
- properties["Password"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
800
+ properties["Password"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
801
break;
802
case "QCAuthenticateMsgs":
803
if (null == componentKey)
804
{
812
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
805
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
806
}
814
- string qcAuthenticateMsgsValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
807
+ string qcAuthenticateMsgsValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
808
switch (qcAuthenticateMsgsValue)
809
{
810
case "secureApps":
@@ -824,128 +817,128 @@ namespace WixToolset.Extensions
817
properties["QCAuthenticateMsgs"] = "2";
818
break;
819
default:
827
- this.Core.OnMessage(WixErrors.IllegalAttributeValue(sourceLineNumbers, "ComPlusApplication", "QCAuthenticateMsgs", qcAuthenticateMsgsValue, "secureApps", "off", "on"));
820
+ this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, "ComPlusApplication", "QCAuthenticateMsgs", qcAuthenticateMsgsValue, "secureApps", "off", "on"));
821
break;
822
}
823
break;
824
case "QCListenerMaxThreads":
825
if (null == componentKey)
826
{
834
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
827
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
828
}
836
- properties["QCListenerMaxThreads"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
829
+ properties["QCListenerMaxThreads"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
830
break;
831
case "QueueListenerEnabled":
832
if (null == componentKey)
833
{
841
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
834
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
835
}
843
- properties["QueueListenerEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
836
+ properties["QueueListenerEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
837
break;
838
case "QueuingEnabled":
839
if (null == componentKey)
840
{
848
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
841
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
842
}
850
- properties["QueuingEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
843
+ properties["QueuingEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
844
break;
845
case "RecycleActivationLimit":
846
if (null == componentKey)
847
{
855
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
848
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
849
}
857
- properties["RecycleActivationLimit"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
850
+ properties["RecycleActivationLimit"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
851
break;
852
case "RecycleCallLimit":
853
if (null == componentKey)
854
{
862
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
855
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
856
}
864
- properties["RecycleCallLimit"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
857
+ properties["RecycleCallLimit"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
858
break;
859
case "RecycleExpirationTimeout":
860
if (null == componentKey)
861
{
869
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
862
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
863
}
871
- properties["RecycleExpirationTimeout"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
864
+ properties["RecycleExpirationTimeout"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
865
break;
866
case "RecycleLifetimeLimit":
867
if (null == componentKey)
868
{
876
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
869
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
870
}
878
- properties["RecycleLifetimeLimit"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
871
+ properties["RecycleLifetimeLimit"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
872
break;
873
case "RecycleMemoryLimit":
874
if (null == componentKey)
875
{
883
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
876
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
877
}
885
- properties["RecycleMemoryLimit"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
878
+ properties["RecycleMemoryLimit"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
879
break;
880
case "Replicable":
881
if (null == componentKey)
882
{
890
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
883
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
884
}
892
- properties["Replicable"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
885
+ properties["Replicable"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
886
break;
887
case "RunForever":
888
if (null == componentKey)
889
{
897
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
890
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
891
}
899
- properties["RunForever"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
892
+ properties["RunForever"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
893
break;
894
case "ShutdownAfter":
895
if (null == componentKey)
896
{
904
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
897
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
898
}
906
- properties["ShutdownAfter"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
899
+ properties["ShutdownAfter"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
900
break;
901
case "SoapActivated":
902
if (null == componentKey)
903
{
911
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
904
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
905
}
913
- properties["SoapActivated"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
906
+ properties["SoapActivated"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
907
break;
908
case "SoapBaseUrl":
909
if (null == componentKey)
910
{
918
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
911
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
912
}
920
- properties["SoapBaseUrl"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
913
+ properties["SoapBaseUrl"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
914
break;
915
case "SoapMailTo":
916
if (null == componentKey)
917
{
925
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
918
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
919
}
927
- properties["SoapMailTo"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
920
+ properties["SoapMailTo"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
921
break;
922
case "SoapVRoot":
923
if (null == componentKey)
924
{
932
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
925
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
926
}
934
- properties["SoapVRoot"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
927
+ properties["SoapVRoot"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
928
break;
929
case "SRPEnabled":
930
if (null == componentKey)
931
{
939
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
932
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
933
}
941
- properties["SRPEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
934
+ properties["SRPEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
935
break;
936
case "SRPTrustLevel":
937
if (null == componentKey)
938
{
946
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
939
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
940
}
948
- string srpTrustLevelValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
941
+ string srpTrustLevelValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
942
switch (srpTrustLevelValue)
943
{
944
case "disallowed":
@@ -955,28 +948,28 @@ namespace WixToolset.Extensions
948
properties["SRPTrustLevel"] = "262144";
949
break;
950
default:
958
- this.Core.OnMessage(WixErrors.IllegalAttributeValue(sourceLineNumbers, "ComPlusApplication", "SRPTrustLevel", srpTrustLevelValue, "disallowed", "fullyTrusted"));
951
+ this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, "ComPlusApplication", "SRPTrustLevel", srpTrustLevelValue, "disallowed", "fullyTrusted"));
952
break;
953
}
954
break;
955
default:
963
- this.Core.UnexpectedAttribute(node, attrib);
956
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
957
break;
958
}
959
}
960
else
961
{
969
- this.Core.ParseExtensionAttribute(node, attrib);
962
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
963
}
964
}
965
966
if (null != componentKey && null == name)
967
{
975
- this.Core.OnMessage(ComPlusErrors.RequiredAttributeUnderComponent(sourceLineNumbers, node.Name.LocalName, "Name"));
968
+ this.Messaging.Write(ComPlusErrors.RequiredAttributeUnderComponent(sourceLineNumbers, node.Name.LocalName, "Name"));
969
}
970
if (null == componentKey && null == id && null == name)
971
{
979
- this.Core.OnMessage(ComPlusErrors.RequiredAttributeNotUnderComponent(sourceLineNumbers, node.Name.LocalName, "Id", "Name"));
972
+ this.Messaging.Write(ComPlusErrors.RequiredAttributeNotUnderComponent(sourceLineNumbers, node.Name.LocalName, "Id", "Name"));
973
}
974
975
foreach (XElement child in node.Elements())
@@ -986,56 +979,56 @@ namespace WixToolset.Extensions
979
switch (child.Name.LocalName)
980
{
981
case "ComPlusApplicationRole":
989
- this.ParseComPlusApplicationRoleElement(child, componentKey, key);
982
+ this.ParseComPlusApplicationRoleElement(intermediate, section, child, componentKey, key);
983
break;
984
case "ComPlusAssembly":
992
- this.ParseComPlusAssemblyElement(child, componentKey, win64, key);
985
+ this.ParseComPlusAssemblyElement(intermediate, section, child, componentKey, win64, key);
986
break;
987
default:
995
- this.Core.UnexpectedElement(node, child);
988
+ this.ParseHelper.UnexpectedElement(node, child);
989
break;
990
}
991
}
992
else
993
{
1001
- this.Core.ParseExtensionElement(node, child);
994
+ this.ParseHelper.ParseExtensionElement(this.Context.Extensions, intermediate, section, node, child);
995
}
996
}
997
1005
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusApplication");
1006
- row[0] = key;
1007
- row[1] = partitionKey;
1008
- row[2] = componentKey;
1009
- row[3] = id;
1010
- row[4] = name;
998
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusApplication");
999
+ row.Set(0, key);
1000
+ row.Set(1, partitionKey);
1001
+ row.Set(2, componentKey);
1002
+ row.Set(3, id);
1003
+ row.Set(4, name);
1004
1005
IDictionaryEnumerator propertiesEnumerator = properties.GetEnumerator();
1006
while (propertiesEnumerator.MoveNext())
1007
{
1015
- Row propertyRow = this.Core.CreateRow(sourceLineNumbers, "ComPlusApplicationProperty");
1016
- propertyRow[0] = key;
1017
- propertyRow[1] = (string)propertiesEnumerator.Key;
1018
- propertyRow[2] = (string)propertiesEnumerator.Value;
1008
+ var propertyRow = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusApplicationProperty");
1009
+ propertyRow.Set(0, key);
1010
+ propertyRow.Set(1, (string)propertiesEnumerator.Key);
1011
+ propertyRow.Set(2, (string)propertiesEnumerator.Value);
1012
}
1013
1014
if (componentKey != null)
1015
{
1016
if (win64)
1017
{
1025
- if (this.Core.CurrentPlatform == Platform.IA64)
1018
+ if (this.Context.Platform == Platform.IA64)
1019
{
1027
- this.Core.OnMessage(WixErrors.UnsupportedPlatformForElement(sourceLineNumbers, "ia64", node.Name.LocalName));
1020
+ this.Messaging.Write(ErrorMessages.UnsupportedPlatformForElement(sourceLineNumbers, "ia64", node.Name.LocalName));
1021
}
1022
else
1023
{
1031
- this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", "ConfigureComPlusInstall_x64");
1032
- this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", "ConfigureComPlusUninstall_x64");
1024
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusInstall_x64");
1025
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusUninstall_x64");
1026
}
1027
}
1028
else
1029
{
1037
- this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", "ConfigureComPlusInstall");
1038
- this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", "ConfigureComPlusUninstall");
1030
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusInstall");
1031
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusUninstall");
1032
}
1033
}
1034
}
@@ -1046,9 +1039,9 @@ namespace WixToolset.Extensions
1039
/// <param name="node">Element to parse.</param>
1040
/// <param name="componentKey">Identifier of parent component.</param>
1041
/// <param name="applicationKey">Optional identifier of parent application.</param>
1049
- private void ParseComPlusApplicationRoleElement(XElement node, string componentKey, string applicationKey)
1042
+ private void ParseComPlusApplicationRoleElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, string applicationKey)
1043
{
1051
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
1044
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
1045
1046
string key = null;
1047
string name = null;
@@ -1062,40 +1055,40 @@ namespace WixToolset.Extensions
1055
switch (attrib.Name.LocalName)
1056
{
1057
case "Id":
1065
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1058
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1059
break;
1060
case "Application":
1061
if (null != applicationKey)
1062
{
1070
- this.Core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
1063
+ this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
1064
}
1072
- applicationKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1073
- this.Core.CreateSimpleReference(sourceLineNumbers, "ComPlusApplication", applicationKey);
1065
+ applicationKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1066
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "ComPlusApplication", applicationKey);
1067
break;
1068
case "Name":
1076
- name = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1069
+ name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1070
break;
1071
case "Description":
1072
if (null == componentKey)
1073
{
1081
- this.Core.OnMessage(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
1074
+ this.Messaging.Write(ComPlusErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName));
1075
}
1083
- properties["Description"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1076
+ properties["Description"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1077
break;
1078
default:
1086
- this.Core.UnexpectedAttribute(node, attrib);
1079
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
1080
break;
1081
}
1082
}
1083
else
1084
{
1092
- this.Core.ParseExtensionAttribute(node, attrib);
1085
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
1086
}
1087
}
1088
1089
if (null == applicationKey)
1090
{
1098
- this.Core.OnMessage(WixErrors.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Application"));
1091
+ this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Application"));
1092
}
1093
1094
foreach (XElement child in node.Elements())
@@ -1105,35 +1098,35 @@ namespace WixToolset.Extensions
1098
switch (child.Name.LocalName)
1099
{
1100
case "ComPlusUserInApplicationRole":
1108
- this.ParseComPlusUserInApplicationRoleElement(child, componentKey, key);
1101
+ this.ParseComPlusUserInApplicationRoleElement(intermediate, section, child, componentKey, key);
1102
break;
1103
case "ComPlusGroupInApplicationRole":
1111
- this.ParseComPlusGroupInApplicationRoleElement(child, componentKey, key);
1104
+ this.ParseComPlusGroupInApplicationRoleElement(intermediate, section, child, componentKey, key);
1105
break;
1106
default:
1114
- this.Core.UnexpectedElement(node, child);
1107
+ this.ParseHelper.UnexpectedElement(node, child);
1108
break;
1109
}
1110
}
1111
else
1112
{
1120
- this.Core.ParseExtensionElement(node, child);
1113
+ this.ParseHelper.ParseExtensionElement(this.Context.Extensions, intermediate, section, node, child);
1114
}
1115
}
1116
1124
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusApplicationRole");
1125
- row[0] = key;
1126
- row[1] = applicationKey;
1127
- row[2] = componentKey;
1128
- row[3] = name;
1117
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusApplicationRole");
1118
+ row.Set(0, key);
1119
+ row.Set(1, applicationKey);
1120
+ row.Set(2, componentKey);
1121
+ row.Set(3, name);
1122
1123
IDictionaryEnumerator propertiesEnumerator = properties.GetEnumerator();
1124
while (propertiesEnumerator.MoveNext())
1125
{
1133
- Row propertyRow = this.Core.CreateRow(sourceLineNumbers, "ComPlusApplicationRoleProperty");
1134
- propertyRow[0] = key;
1135
- propertyRow[1] = (string)propertiesEnumerator.Key;
1136
- propertyRow[2] = (string)propertiesEnumerator.Value;
1126
+ var propertyRow = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusApplicationRoleProperty");
1127
+ propertyRow.Set(0, key);
1128
+ propertyRow.Set(1, (string)propertiesEnumerator.Key);
1129
+ propertyRow.Set(2, (string)propertiesEnumerator.Value);
1130
}
1131
}
1132
@@ -1143,9 +1136,9 @@ namespace WixToolset.Extensions
1136
/// <param name="node">Element to parse.</param>
1137
/// <param name="componentKey">Identifier of parent component.</param>
1138
/// <param name="applicationKey">Optional identifier of parent application role.</param>
1146
- private void ParseComPlusUserInApplicationRoleElement(XElement node, string componentKey, string applicationRoleKey)
1139
+ private void ParseComPlusUserInApplicationRoleElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, string applicationRoleKey)
1140
{
1148
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
1141
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
1142
1143
string key = null;
1144
string user = null;
@@ -1157,41 +1150,41 @@ namespace WixToolset.Extensions
1150
switch (attrib.Name.LocalName)
1151
{
1152
case "Id":
1160
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1153
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1154
break;
1155
case "ApplicationRole":
1156
if (null != applicationRoleKey)
1157
{
1165
- this.Core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
1158
+ this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
1159
}
1167
- applicationRoleKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1168
- this.Core.CreateSimpleReference(sourceLineNumbers, "ComPlusApplicationRole", applicationRoleKey);
1160
+ applicationRoleKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1161
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "ComPlusApplicationRole", applicationRoleKey);
1162
break;
1163
case "User":
1171
- user = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1172
- this.Core.CreateSimpleReference(sourceLineNumbers, "User", user);
1164
+ user = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1165
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "User", user);
1166
break;
1167
default:
1175
- this.Core.UnexpectedAttribute(node, attrib);
1168
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
1169
break;
1170
}
1171
}
1172
else
1173
{
1181
- this.Core.ParseExtensionAttribute(node, attrib);
1174
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
1175
}
1176
}
1177
1178
if (null == applicationRoleKey)
1179
{
1187
- this.Core.OnMessage(WixErrors.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "ApplicationRole"));
1180
+ this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "ApplicationRole"));
1181
}
1182
1190
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusUserInApplicationRole");
1191
- row[0] = key;
1192
- row[1] = applicationRoleKey;
1193
- row[2] = componentKey;
1194
- row[3] = user;
1183
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusUserInApplicationRole");
1184
+ row.Set(0, key);
1185
+ row.Set(1, applicationRoleKey);
1186
+ row.Set(2, componentKey);
1187
+ row.Set(3, user);
1188
}
1189
1190
/// <summary>
@@ -1200,9 +1193,9 @@ namespace WixToolset.Extensions
1193
/// <param name="node">Element to parse.</param>
1194
/// <param name="componentKey">Identifier of parent component.</param>
1195
/// <param name="applicationKey">Optional identifier of parent application role.</param>
1203
- private void ParseComPlusGroupInApplicationRoleElement(XElement node, string componentKey, string applicationRoleKey)
1196
+ private void ParseComPlusGroupInApplicationRoleElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, string applicationRoleKey)
1197
{
1205
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
1198
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
1199
1200
string key = null;
1201
string group = null;
@@ -1214,41 +1207,41 @@ namespace WixToolset.Extensions
1207
switch (attrib.Name.LocalName)
1208
{
1209
case "Id":
1217
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1210
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1211
break;
1212
case "ApplicationRole":
1213
if (null != applicationRoleKey)
1214
{
1222
- this.Core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
1215
+ this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
1216
}
1224
- applicationRoleKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1225
- this.Core.CreateSimpleReference(sourceLineNumbers, "ComPlusApplicationRole", applicationRoleKey);
1217
+ applicationRoleKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1218
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "ComPlusApplicationRole", applicationRoleKey);
1219
break;
1220
case "Group":
1228
- group = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1229
- this.Core.CreateSimpleReference(sourceLineNumbers, "Group", group);
1221
+ group = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1222
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "Group", group);
1223
break;
1224
default:
1232
- this.Core.UnexpectedAttribute(node, attrib);
1225
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
1226
break;
1227
}
1228
}
1229
else
1230
{
1238
- this.Core.ParseExtensionAttribute(node, attrib);
1231
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
1232
}
1233
}
1234
1235
if (null == applicationRoleKey)
1236
{
1244
- this.Core.OnMessage(WixErrors.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "ApplicationRole"));
1237
+ this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "ApplicationRole"));
1238
}
1239
1247
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusGroupInApplicationRole");
1248
- row[0] = key;
1249
- row[1] = applicationRoleKey;
1250
- row[2] = componentKey;
1251
- row[3] = group;
1240
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusGroupInApplicationRole");
1241
+ row.Set(0, key);
1242
+ row.Set(1, applicationRoleKey);
1243
+ row.Set(2, componentKey);
1244
+ row.Set(3, group);
1245
}
1246
1247
/// <summary>
@@ -1257,9 +1250,9 @@ namespace WixToolset.Extensions
1250
/// <param name="node">Element to parse.</param>
1251
/// <param name="componentKey">Identifier of parent component.</param>
1252
/// <param name="applicationKey">Optional identifier of parent application.</param>
1260
- private void ParseComPlusAssemblyElement(XElement node, string componentKey, bool win64, string applicationKey)
1253
+ private void ParseComPlusAssemblyElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, bool win64, string applicationKey)
1254
{
1262
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
1255
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
1256
1257
string key = null;
1258
string assemblyName = null;
@@ -1277,30 +1270,30 @@ namespace WixToolset.Extensions
1270
switch (attrib.Name.LocalName)
1271
{
1272
case "Id":
1280
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1273
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1274
break;
1275
case "Application":
1276
if (null != applicationKey)
1277
{
1285
- this.Core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
1278
+ this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
1279
}
1287
- applicationKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1288
- this.Core.CreateSimpleReference(sourceLineNumbers, "ComPlusApplication", applicationKey);
1280
+ applicationKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1281
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "ComPlusApplication", applicationKey);
1282
break;
1283
case "AssemblyName":
1291
- assemblyName = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1284
+ assemblyName = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1285
break;
1286
case "DllPath":
1294
- dllPath = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1287
+ dllPath = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1288
break;
1289
case "TlbPath":
1297
- tlbPath = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1290
+ tlbPath = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1291
break;
1292
case "PSDllPath":
1300
- psDllPath = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1293
+ psDllPath = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1294
break;
1295
case "Type":
1303
- string typeValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1296
+ string typeValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1297
switch (typeValue)
1298
{
1299
case ".net":
@@ -1310,12 +1303,12 @@ namespace WixToolset.Extensions
1303
attributes &= ~(int)CpiAssemblyAttributes.DotNetAssembly;
1304
break;
1305
default:
1313
- this.Core.OnMessage(WixErrors.IllegalAttributeValue(sourceLineNumbers, "ComPlusAssembly", "Type", typeValue, ".net", "native"));
1306
+ this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, "ComPlusAssembly", "Type", typeValue, ".net", "native"));
1307
break;
1308
}
1309
break;
1310
case "EventClass":
1318
- if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib))
1311
+ if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib))
1312
{
1313
attributes |= (int)CpiAssemblyAttributes.EventClass;
1314
}
@@ -1325,7 +1318,7 @@ namespace WixToolset.Extensions
1318
}
1319
break;
1320
case "DllPathFromGAC":
1328
- if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib))
1321
+ if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib))
1322
{
1323
attributes |= (int)CpiAssemblyAttributes.DllPathFromGAC;
1324
}
@@ -1335,7 +1328,7 @@ namespace WixToolset.Extensions
1328
}
1329
break;
1330
case "RegisterInCommit":
1338
- if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib))
1331
+ if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib))
1332
{
1333
attributes |= (int)CpiAssemblyAttributes.RegisterInCommit;
1334
}
@@ -1345,35 +1338,35 @@ namespace WixToolset.Extensions
1338
}
1339
break;
1340
default:
1348
- this.Core.UnexpectedAttribute(node, attrib);
1341
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
1342
break;
1343
}
1344
}
1345
else
1346
{
1354
- this.Core.ParseExtensionAttribute(node, attrib);
1347
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
1348
}
1349
}
1350
1351
if (null == applicationKey && 0 == (attributes & (int)CpiAssemblyAttributes.DotNetAssembly))
1352
{
1360
- this.Core.OnMessage(WixErrors.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Application", "Type", "native"));
1353
+ this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Application", "Type", "native"));
1354
}
1355
if (null != assemblyName && 0 == (attributes & (int)CpiAssemblyAttributes.DllPathFromGAC))
1356
{
1364
- this.Core.OnMessage(ComPlusErrors.UnexpectedAttributeWithoutOtherValue(sourceLineNumbers, node.Name.LocalName, "AssemblyName", "DllPathFromGAC", "no"));
1357
+ this.Messaging.Write(ComPlusErrors.UnexpectedAttributeWithoutOtherValue(sourceLineNumbers, node.Name.LocalName, "AssemblyName", "DllPathFromGAC", "no"));
1358
}
1359
if (null == tlbPath && 0 != (attributes & (int)CpiAssemblyAttributes.DotNetAssembly))
1360
{
1368
- this.Core.OnMessage(WixErrors.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "TlbPath", "Type", ".net"));
1361
+ this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "TlbPath", "Type", ".net"));
1362
}
1363
if (null != psDllPath && 0 != (attributes & (int)CpiAssemblyAttributes.DotNetAssembly))
1364
{
1372
- this.Core.OnMessage(ComPlusErrors.UnexpectedAttributeWithOtherValue(sourceLineNumbers, node.Name.LocalName, "PSDllPath", "Type", ".net"));
1365
+ this.Messaging.Write(ComPlusErrors.UnexpectedAttributeWithOtherValue(sourceLineNumbers, node.Name.LocalName, "PSDllPath", "Type", ".net"));
1366
}
1367
if (0 != (attributes & (int)CpiAssemblyAttributes.EventClass) && 0 != (attributes & (int)CpiAssemblyAttributes.DotNetAssembly))
1368
{
1376
- this.Core.OnMessage(ComPlusErrors.UnexpectedAttributeWithOtherValue(sourceLineNumbers, node.Name.LocalName, "EventClass", "yes", "Type", ".net"));
1369
+ this.Messaging.Write(ComPlusErrors.UnexpectedAttributeWithOtherValue(sourceLineNumbers, node.Name.LocalName, "EventClass", "yes", "Type", ".net"));
1370
}
1371
1372
foreach (XElement child in node.Elements())
@@ -1383,54 +1376,54 @@ namespace WixToolset.Extensions
1376
switch (child.Name.LocalName)
1377
{
1378
case "ComPlusAssemblyDependency":
1386
- this.ParseComPlusAssemblyDependencyElement(child, key);
1379
+ this.ParseComPlusAssemblyDependencyElement(intermediate, section, child, key);
1380
break;
1381
case "ComPlusComponent":
1389
- this.ParseComPlusComponentElement(child, componentKey, key);
1382
+ this.ParseComPlusComponentElement(intermediate, section, child, componentKey, key);
1383
hasComponents = true;
1384
break;
1385
default:
1393
- this.Core.UnexpectedElement(node, child);
1386
+ this.ParseHelper.UnexpectedElement(node, child);
1387
break;
1388
}
1389
}
1390
else
1391
{
1399
- this.Core.ParseExtensionElement(node, child);
1392
+ this.ParseHelper.ParseExtensionElement(this.Context.Extensions, intermediate, section, node, child);
1393
}
1394
}
1395
1396
if (0 == (attributes & (int)CpiAssemblyAttributes.DotNetAssembly) && !hasComponents)
1397
{
1405
- this.Core.OnMessage(ComPlusWarnings.MissingComponents(sourceLineNumbers));
1398
+ this.Messaging.Write(ComPlusWarnings.MissingComponents(sourceLineNumbers));
1399
}
1400
1408
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusAssembly");
1409
- row[0] = key;
1410
- row[1] = applicationKey;
1411
- row[2] = componentKey;
1412
- row[3] = assemblyName;
1413
- row[4] = dllPath;
1414
- row[5] = tlbPath;
1415
- row[6] = psDllPath;
1416
- row[7] = attributes;
1401
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusAssembly");
1402
+ row.Set(0, key);
1403
+ row.Set(1, applicationKey);
1404
+ row.Set(2, componentKey);
1405
+ row.Set(3, assemblyName);
1406
+ row.Set(4, dllPath);
1407
+ row.Set(5, tlbPath);
1408
+ row.Set(6, psDllPath);
1409
+ row.Set(7, attributes);
1410
1411
if (win64)
1412
{
1420
- if (this.Core.CurrentPlatform == Platform.IA64)
1413
+ if (this.Context.Platform == Platform.IA64)
1414
{
1422
- this.Core.OnMessage(WixErrors.UnsupportedPlatformForElement(sourceLineNumbers, "ia64", node.Name.LocalName));
1415
+ this.Messaging.Write(ErrorMessages.UnsupportedPlatformForElement(sourceLineNumbers, "ia64", node.Name.LocalName));
1416
}
1417
else
1418
{
1426
- this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", "ConfigureComPlusInstall_x64");
1427
- this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", "ConfigureComPlusUninstall_x64");
1419
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusInstall_x64");
1420
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusUninstall_x64");
1421
}
1422
}
1423
else
1424
{
1432
- this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", "ConfigureComPlusInstall");
1433
- this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", "ConfigureComPlusUninstall");
1425
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusInstall");
1426
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusUninstall");
1427
}
1428
}
1429
@@ -1439,9 +1432,9 @@ namespace WixToolset.Extensions
1432
/// </summary>
1433
/// <param name="node">Element to parse.</param>
1434
/// <param name="assemblyKey">Identifier of parent assembly.</param>
1442
- private void ParseComPlusAssemblyDependencyElement(XElement node, string assemblyKey)
1435
+ private void ParseComPlusAssemblyDependencyElement(Intermediate intermediate, IntermediateSection section, XElement node, string assemblyKey)
1436
{
1444
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
1437
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
1438
1439
string requiredAssemblyKey = null;
1440
@@ -1452,22 +1445,22 @@ namespace WixToolset.Extensions
1445
switch (attrib.Name.LocalName)
1446
{
1447
case "RequiredAssembly":
1455
- requiredAssemblyKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1448
+ requiredAssemblyKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1449
break;
1450
default:
1458
- this.Core.UnexpectedAttribute(node, attrib);
1451
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
1452
break;
1453
}
1454
}
1455
else
1456
{
1464
- this.Core.ParseExtensionAttribute(node, attrib);
1457
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
1458
}
1459
}
1460
1468
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusAssemblyDependency");
1469
- row[0] = assemblyKey;
1470
- row[1] = requiredAssemblyKey;
1461
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusAssemblyDependency");
1462
+ row.Set(0, assemblyKey);
1463
+ row.Set(1, requiredAssemblyKey);
1464
}
1465
1466
/// <summary>
@@ -1476,9 +1469,9 @@ namespace WixToolset.Extensions
1469
/// <param name="node">Element to parse.</param>
1470
/// <param name="componentKey">Identifier of parent component.</param>
1471
/// <param name="assemblyKey">Identifier of parent assembly.</param>
1479
- private void ParseComPlusComponentElement(XElement node, string componentKey, string assemblyKey)
1472
+ private void ParseComPlusComponentElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, string assemblyKey)
1473
{
1481
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
1474
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
1475
1476
string key = null;
1477
string clsid = null;
@@ -1492,94 +1485,94 @@ namespace WixToolset.Extensions
1485
switch (attrib.Name.LocalName)
1486
{
1487
case "Id":
1495
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1488
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1489
break;
1490
case "CLSID":
1498
- clsid = "{" + this.Core.GetAttributeValue(sourceLineNumbers, attrib) + "}";
1491
+ clsid = "{" + this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib) + "}";
1492
break;
1493
case "AllowInprocSubscribers":
1501
- properties["AllowInprocSubscribers"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1494
+ properties["AllowInprocSubscribers"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1495
break;
1496
case "ComponentAccessChecksEnabled":
1504
- properties["ComponentAccessChecksEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1497
+ properties["ComponentAccessChecksEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1498
break;
1499
case "ComponentTransactionTimeout":
1507
- properties["ComponentTransactionTimeout"] = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, 3600).ToString();
1500
+ properties["ComponentTransactionTimeout"] = this.ParseHelper.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, 3600).ToString();
1501
break;
1502
case "ComponentTransactionTimeoutEnabled":
1510
- properties["ComponentTransactionTimeoutEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1503
+ properties["ComponentTransactionTimeoutEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1504
break;
1505
case "COMTIIntrinsics":
1513
- properties["COMTIIntrinsics"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1506
+ properties["COMTIIntrinsics"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1507
break;
1508
case "ConstructionEnabled":
1516
- properties["ConstructionEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1509
+ properties["ConstructionEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1510
break;
1511
case "ConstructorString":
1519
- properties["ConstructorString"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1512
+ properties["ConstructorString"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1513
break;
1514
case "CreationTimeout":
1522
- properties["CreationTimeout"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1515
+ properties["CreationTimeout"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1516
break;
1517
case "Description":
1525
- properties["Description"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1518
+ properties["Description"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1519
break;
1520
case "EventTrackingEnabled":
1528
- properties["EventTrackingEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1521
+ properties["EventTrackingEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1522
break;
1523
case "ExceptionClass":
1531
- properties["ExceptionClass"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1524
+ properties["ExceptionClass"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1525
break;
1526
case "FireInParallel":
1534
- properties["FireInParallel"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1527
+ properties["FireInParallel"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1528
break;
1529
case "IISIntrinsics":
1537
- properties["IISIntrinsics"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1530
+ properties["IISIntrinsics"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1531
break;
1532
case "InitializesServerApplication":
1540
- properties["InitializesServerApplication"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1533
+ properties["InitializesServerApplication"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1534
break;
1535
case "IsEnabled":
1543
- properties["IsEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1536
+ properties["IsEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1537
break;
1538
case "IsPrivateComponent":
1546
- properties["IsPrivateComponent"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1539
+ properties["IsPrivateComponent"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1540
break;
1541
case "JustInTimeActivation":
1549
- properties["JustInTimeActivation"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1542
+ properties["JustInTimeActivation"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1543
break;
1544
case "LoadBalancingSupported":
1552
- properties["LoadBalancingSupported"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1545
+ properties["LoadBalancingSupported"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1546
break;
1547
case "MaxPoolSize":
1555
- properties["MaxPoolSize"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1548
+ properties["MaxPoolSize"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1549
break;
1550
case "MinPoolSize":
1558
- properties["MinPoolSize"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1551
+ properties["MinPoolSize"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1552
break;
1553
case "MultiInterfacePublisherFilterCLSID":
1561
- properties["MultiInterfacePublisherFilterCLSID"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1554
+ properties["MultiInterfacePublisherFilterCLSID"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1555
break;
1556
case "MustRunInClientContext":
1564
- properties["MustRunInClientContext"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1557
+ properties["MustRunInClientContext"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1558
break;
1559
case "MustRunInDefaultContext":
1567
- properties["MustRunInDefaultContext"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1560
+ properties["MustRunInDefaultContext"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1561
break;
1562
case "ObjectPoolingEnabled":
1570
- properties["ObjectPoolingEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1563
+ properties["ObjectPoolingEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1564
break;
1565
case "PublisherID":
1573
- properties["PublisherID"] = TryFormatGuidValue(this.Core.GetAttributeValue(sourceLineNumbers, attrib));
1566
+ properties["PublisherID"] = this.TryFormatGuidValue(this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib));
1567
break;
1568
case "SoapAssemblyName":
1576
- properties["SoapAssemblyName"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1569
+ properties["SoapAssemblyName"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1570
break;
1571
case "SoapTypeName":
1579
- properties["SoapTypeName"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1572
+ properties["SoapTypeName"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1573
break;
1574
case "Synchronization":
1582
- string synchronizationValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1575
+ string synchronizationValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1576
switch (synchronizationValue)
1577
{
1578
case "ignored":
@@ -1598,12 +1591,12 @@ namespace WixToolset.Extensions
1591
properties["Synchronization"] = "4";
1592
break;
1593
default:
1601
- this.Core.OnMessage(WixErrors.IllegalAttributeValue(sourceLineNumbers, "ComPlusComponent", "Synchronization", synchronizationValue, "ignored", "none", "supported", "required", "requiresNew"));
1594
+ this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, "ComPlusComponent", "Synchronization", synchronizationValue, "ignored", "none", "supported", "required", "requiresNew"));
1595
break;
1596
}
1597
break;
1598
case "Transaction":
1606
- string transactionValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1599
+ string transactionValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1600
switch (transactionValue)
1601
{
1602
case "ignored":
@@ -1622,12 +1615,12 @@ namespace WixToolset.Extensions
1615
properties["Transaction"] = "4";
1616
break;
1617
default:
1625
- this.Core.OnMessage(WixErrors.IllegalAttributeValue(sourceLineNumbers, "ComPlusComponent", "Transaction", transactionValue, "ignored", "none", "supported", "required", "requiresNew"));
1618
+ this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, "ComPlusComponent", "Transaction", transactionValue, "ignored", "none", "supported", "required", "requiresNew"));
1619
break;
1620
}
1621
break;
1622
case "TxIsolationLevel":
1630
- string txIsolationLevelValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1623
+ string txIsolationLevelValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1624
switch (txIsolationLevelValue)
1625
{
1626
case "any":
@@ -1646,18 +1639,18 @@ namespace WixToolset.Extensions
1639
properties["TxIsolationLevel"] = "4";
1640
break;
1641
default:
1649
- this.Core.OnMessage(WixErrors.IllegalAttributeValue(sourceLineNumbers, "ComPlusComponent", "TxIsolationLevel", txIsolationLevelValue, "any", "readUnCommitted", "readCommitted", "repeatableRead", "serializable"));
1642
+ this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, "ComPlusComponent", "TxIsolationLevel", txIsolationLevelValue, "any", "readUnCommitted", "readCommitted", "repeatableRead", "serializable"));
1643
break;
1644
}
1645
break;
1646
default:
1654
- this.Core.UnexpectedAttribute(node, attrib);
1647
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
1648
break;
1649
}
1650
}
1651
else
1652
{
1660
- this.Core.ParseExtensionAttribute(node, attrib);
1653
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
1654
}
1655
}
1656
@@ -1668,37 +1661,37 @@ namespace WixToolset.Extensions
1661
switch (child.Name.LocalName)
1662
{
1663
case "ComPlusRoleForComponent":
1671
- this.ParseComPlusRoleForComponentElement(child, componentKey, key);
1664
+ this.ParseComPlusRoleForComponentElement(intermediate, section, child, componentKey, key);
1665
break;
1666
case "ComPlusInterface":
1674
- this.ParseComPlusInterfaceElement(child, componentKey, key);
1667
+ this.ParseComPlusInterfaceElement(intermediate, section, child, componentKey, key);
1668
break;
1669
case "ComPlusSubscription":
1677
- this.ParseComPlusSubscriptionElement(child, componentKey, key);
1670
+ this.ParseComPlusSubscriptionElement(intermediate, section, child, componentKey, key);
1671
break;
1672
default:
1680
- this.Core.UnexpectedElement(node, child);
1673
+ this.ParseHelper.UnexpectedElement(node, child);
1674
break;
1675
}
1676
}
1677
else
1678
{
1686
- this.Core.ParseExtensionElement(node, child);
1679
+ this.ParseHelper.ParseExtensionElement(this.Context.Extensions, intermediate, section, node, child);
1680
}
1681
}
1682
1690
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusComponent");
1691
- row[0] = key;
1692
- row[1] = assemblyKey;
1693
- row[2] = clsid;
1683
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusComponent");
1684
+ row.Set(0, key);
1685
+ row.Set(1, assemblyKey);
1686
+ row.Set(2, clsid);
1687
1688
IDictionaryEnumerator propertiesEnumerator = properties.GetEnumerator();
1689
while (propertiesEnumerator.MoveNext())
1690
{
1698
- Row propertyRow = this.Core.CreateRow(sourceLineNumbers, "ComPlusComponentProperty");
1699
- propertyRow[0] = key;
1700
- propertyRow[1] = (string)propertiesEnumerator.Key;
1701
- propertyRow[2] = (string)propertiesEnumerator.Value;
1691
+ var propertyRow = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusComponentProperty");
1692
+ propertyRow.Set(0, key);
1693
+ propertyRow.Set(1, (string)propertiesEnumerator.Key);
1694
+ propertyRow.Set(2, (string)propertiesEnumerator.Value);
1695
}
1696
}
1697
@@ -1708,9 +1701,9 @@ namespace WixToolset.Extensions
1701
/// <param name="node">Element to parse.</param>
1702
/// <param name="componentKey">Identifier of parent component.</param>
1703
/// <param name="cpcomponentKey">Identifier of parent COM+ component.</param>
1711
- private void ParseComPlusRoleForComponentElement(XElement node, string componentKey, string cpcomponentKey)
1704
+ private void ParseComPlusRoleForComponentElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, string cpcomponentKey)
1705
{
1713
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
1706
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
1707
1708
string key = null;
1709
string applicationRoleKey = null;
@@ -1722,40 +1715,40 @@ namespace WixToolset.Extensions
1715
switch (attrib.Name.LocalName)
1716
{
1717
case "Id":
1725
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1718
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1719
break;
1720
case "Component":
1721
if (null != cpcomponentKey)
1722
{
1730
- this.Core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
1723
+ this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
1724
}
1732
- cpcomponentKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1733
- this.Core.CreateSimpleReference(sourceLineNumbers, "ComPlusComponent", cpcomponentKey);
1725
+ cpcomponentKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1726
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "ComPlusComponent", cpcomponentKey);
1727
break;
1728
case "ApplicationRole":
1736
- applicationRoleKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1729
+ applicationRoleKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1730
break;
1731
default:
1739
- this.Core.UnexpectedAttribute(node, attrib);
1732
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
1733
break;
1734
}
1735
}
1736
else
1737
{
1745
- this.Core.ParseExtensionAttribute(node, attrib);
1738
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
1739
}
1740
}
1741
1742
if (null == cpcomponentKey)
1743
{
1751
- this.Core.OnMessage(WixErrors.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Component"));
1744
+ this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Component"));
1745
}
1746
1754
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusRoleForComponent");
1755
- row[0] = key;
1756
- row[1] = cpcomponentKey;
1757
- row[2] = applicationRoleKey;
1758
- row[3] = componentKey;
1747
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusRoleForComponent");
1748
+ row.Set(0, key);
1749
+ row.Set(1, cpcomponentKey);
1750
+ row.Set(2, applicationRoleKey);
1751
+ row.Set(3, componentKey);
1752
}
1753
1754
/// <summary>
@@ -1764,9 +1757,9 @@ namespace WixToolset.Extensions
1757
/// <param name="node">Element to parse.</param>
1758
/// <param name="componentKey">Identifier of parent component.</param>
1759
/// <param name="cpcomponentKey">Identifier of parent COM+ component.</param>
1767
- private void ParseComPlusInterfaceElement(XElement node, string componentKey, string cpcomponentKey)
1760
+ private void ParseComPlusInterfaceElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, string cpcomponentKey)
1761
{
1769
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
1762
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
1763
1764
// parse attributes
1765
string key = null;
@@ -1781,25 +1774,25 @@ namespace WixToolset.Extensions
1774
switch (attrib.Name.LocalName)
1775
{
1776
case "Id":
1784
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1777
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1778
break;
1779
case "IID":
1787
- iid = "{" + this.Core.GetAttributeValue(sourceLineNumbers, attrib) + "}";
1780
+ iid = "{" + this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib) + "}";
1781
break;
1782
case "Description":
1790
- properties["Description"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1783
+ properties["Description"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1784
break;
1785
case "QueuingEnabled":
1793
- properties["QueuingEnabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1786
+ properties["QueuingEnabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1787
break;
1788
default:
1796
- this.Core.UnexpectedAttribute(node, attrib);
1789
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
1790
break;
1791
}
1792
}
1793
else
1794
{
1802
- this.Core.ParseExtensionAttribute(node, attrib);
1795
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
1796
}
1797
}
1798
@@ -1810,34 +1803,34 @@ namespace WixToolset.Extensions
1803
switch (child.Name.LocalName)
1804
{
1805
case "ComPlusRoleForInterface":
1813
- this.ParseComPlusRoleForInterfaceElement(child, componentKey, key);
1806
+ this.ParseComPlusRoleForInterfaceElement(intermediate, section, child, componentKey, key);
1807
break;
1808
case "ComPlusMethod":
1816
- this.ParseComPlusMethodElement(child, componentKey, key);
1809
+ this.ParseComPlusMethodElement(intermediate, section, child, componentKey, key);
1810
break;
1811
default:
1819
- this.Core.UnexpectedElement(node, child);
1812
+ this.ParseHelper.UnexpectedElement(node, child);
1813
break;
1814
}
1815
}
1816
else
1817
{
1825
- this.Core.ParseExtensionElement(node, child);
1818
+ this.ParseHelper.ParseExtensionElement(this.Context.Extensions, intermediate, section, node, child);
1819
}
1820
}
1821
1829
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusInterface");
1830
- row[0] = key;
1831
- row[1] = cpcomponentKey;
1832
- row[2] = iid;
1822
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusInterface");
1823
+ row.Set(0, key);
1824
+ row.Set(1, cpcomponentKey);
1825
+ row.Set(2, iid);
1826
1827
IDictionaryEnumerator propertiesEnumerator = properties.GetEnumerator();
1828
while (propertiesEnumerator.MoveNext())
1829
{
1837
- Row propertyRow = this.Core.CreateRow(sourceLineNumbers, "ComPlusInterfaceProperty");
1838
- propertyRow[0] = key;
1839
- propertyRow[1] = (string)propertiesEnumerator.Key;
1840
- propertyRow[2] = (string)propertiesEnumerator.Value;
1830
+ var propertyRow = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusInterfaceProperty");
1831
+ propertyRow.Set(0, key);
1832
+ propertyRow.Set(1, (string)propertiesEnumerator.Key);
1833
+ propertyRow.Set(2, (string)propertiesEnumerator.Value);
1834
}
1835
}
1836
@@ -1847,9 +1840,9 @@ namespace WixToolset.Extensions
1840
/// <param name="node">Element to parse.</param>
1841
/// <param name="componentKey">Identifier of parent component.</param>
1842
/// <param name="interfaceKey">Identifier of parent interface.</param>
1850
- private void ParseComPlusRoleForInterfaceElement(XElement node, string componentKey, string interfaceKey)
1843
+ private void ParseComPlusRoleForInterfaceElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, string interfaceKey)
1844
{
1852
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
1845
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
1846
1847
string key = null;
1848
string applicationRoleKey = null;
@@ -1861,40 +1854,40 @@ namespace WixToolset.Extensions
1854
switch (attrib.Name.LocalName)
1855
{
1856
case "Id":
1864
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1857
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1858
break;
1859
case "Interface":
1860
if (null != interfaceKey)
1861
{
1869
- this.Core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
1862
+ this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
1863
}
1871
- interfaceKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1872
- this.Core.CreateSimpleReference(sourceLineNumbers, "ComPlusInterface", interfaceKey);
1864
+ interfaceKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1865
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "ComPlusInterface", interfaceKey);
1866
break;
1867
case "ApplicationRole":
1875
- applicationRoleKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1868
+ applicationRoleKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1869
break;
1870
default:
1878
- this.Core.UnexpectedAttribute(node, attrib);
1871
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
1872
break;
1873
}
1874
}
1875
else
1876
{
1884
- this.Core.ParseExtensionAttribute(node, attrib);
1877
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
1878
}
1879
}
1880
1881
if (null == interfaceKey)
1882
{
1890
- this.Core.OnMessage(WixErrors.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Interface"));
1883
+ this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Interface"));
1884
}
1885
1893
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusRoleForInterface");
1894
- row[0] = key;
1895
- row[1] = interfaceKey;
1896
- row[2] = applicationRoleKey;
1897
- row[3] = componentKey;
1886
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusRoleForInterface");
1887
+ row.Set(0, key);
1888
+ row.Set(1, interfaceKey);
1889
+ row.Set(2, applicationRoleKey);
1890
+ row.Set(3, componentKey);
1891
}
1892
1893
/// <summary>
@@ -1903,9 +1896,9 @@ namespace WixToolset.Extensions
1896
/// <param name="node">Element to parse.</param>
1897
/// <param name="componentKey">Identifier of parent component.</param>
1898
/// <param name="interfaceKey">Identifier of parent interface.</param>
1906
- private void ParseComPlusMethodElement(XElement node, string componentKey, string interfaceKey)
1899
+ private void ParseComPlusMethodElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, string interfaceKey)
1900
{
1908
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
1901
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
1902
1903
string key = null;
1904
int index = CompilerConstants.IntegerNotSet;
@@ -1920,28 +1913,28 @@ namespace WixToolset.Extensions
1913
switch (attrib.Name.LocalName)
1914
{
1915
case "Id":
1923
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1916
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1917
break;
1918
case "Index":
1926
- index = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, int.MaxValue);
1919
+ index = this.ParseHelper.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, int.MaxValue);
1920
break;
1921
case "Name":
1929
- name = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1922
+ name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1923
break;
1924
case "AutoComplete":
1932
- properties["AutoComplete"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1925
+ properties["AutoComplete"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
1926
break;
1927
case "Description":
1935
- properties["Description"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1928
+ properties["Description"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1929
break;
1930
default:
1938
- this.Core.UnexpectedAttribute(node, attrib);
1931
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
1932
break;
1933
}
1934
}
1935
else
1936
{
1944
- this.Core.ParseExtensionAttribute(node, attrib);
1937
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
1938
}
1939
}
1940
@@ -1952,40 +1945,40 @@ namespace WixToolset.Extensions
1945
switch (child.Name.LocalName)
1946
{
1947
case "ComPlusRoleForMethod":
1955
- this.ParseComPlusRoleForMethodElement(child, componentKey, key);
1948
+ this.ParseComPlusRoleForMethodElement(intermediate, section, child, componentKey, key);
1949
break;
1950
default:
1958
- this.Core.UnexpectedElement(node, child);
1951
+ this.ParseHelper.UnexpectedElement(node, child);
1952
break;
1953
}
1954
}
1955
else
1956
{
1964
- this.Core.ParseExtensionElement(node, child);
1957
+ this.ParseHelper.ParseExtensionElement(this.Context.Extensions, intermediate, section, node, child);
1958
}
1959
}
1960
1961
if (CompilerConstants.IntegerNotSet == index && null == name)
1962
{
1970
- this.Core.OnMessage(ComPlusErrors.RequiredAttribute(sourceLineNumbers, node.Name.LocalName, "Index", "Name"));
1963
+ this.Messaging.Write(ComPlusErrors.RequiredAttribute(sourceLineNumbers, node.Name.LocalName, "Index", "Name"));
1964
}
1965
1973
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusMethod");
1974
- row[0] = key;
1975
- row[1] = interfaceKey;
1966
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusMethod");
1967
+ row.Set(0, key);
1968
+ row.Set(1, interfaceKey);
1969
if (CompilerConstants.IntegerNotSet != index)
1970
{
1978
- row[2] = index;
1971
+ row.Set(2, index);
1972
}
1980
- row[3] = name;
1973
+ row.Set(3, name);
1974
1975
IDictionaryEnumerator propertiesEnumerator = properties.GetEnumerator();
1976
while (propertiesEnumerator.MoveNext())
1977
{
1985
- Row propertyRow = this.Core.CreateRow(sourceLineNumbers, "ComPlusMethodProperty");
1986
- propertyRow[0] = key;
1987
- propertyRow[1] = (string)propertiesEnumerator.Key;
1988
- propertyRow[2] = (string)propertiesEnumerator.Value;
1978
+ var propertyRow = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusMethodProperty");
1979
+ propertyRow.Set(0, key);
1980
+ propertyRow.Set(1, (string)propertiesEnumerator.Key);
1981
+ propertyRow.Set(2, (string)propertiesEnumerator.Value);
1982
}
1983
}
1984
@@ -1995,9 +1988,9 @@ namespace WixToolset.Extensions
1988
/// <param name="node">Element to parse.</param>
1989
/// <param name="componentKey">Identifier of parent component.</param>
1990
/// <param name="methodKey">Identifier of parent method.</param>
1998
- private void ParseComPlusRoleForMethodElement(XElement node, string componentKey, string methodKey)
1991
+ private void ParseComPlusRoleForMethodElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, string methodKey)
1992
{
2000
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
1993
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
1994
1995
string key = null;
1996
string applicationRoleKey = null;
@@ -2009,40 +2002,40 @@ namespace WixToolset.Extensions
2002
switch (attrib.Name.LocalName)
2003
{
2004
case "Id":
2012
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
2005
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
2006
break;
2007
case "Method":
2008
if (null != methodKey)
2009
{
2017
- this.Core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
2010
+ this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
2011
}
2019
- methodKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2020
- this.Core.CreateSimpleReference(sourceLineNumbers, "ComPlusMethod", methodKey);
2012
+ methodKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2013
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "ComPlusMethod", methodKey);
2014
break;
2015
case "ApplicationRole":
2023
- applicationRoleKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2016
+ applicationRoleKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2017
break;
2018
default:
2026
- this.Core.UnexpectedAttribute(node, attrib);
2019
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
2020
break;
2021
}
2022
}
2023
else
2024
{
2032
- this.Core.ParseExtensionAttribute(node, attrib);
2025
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
2026
}
2027
}
2028
2029
if (null == methodKey)
2030
{
2038
- this.Core.OnMessage(WixErrors.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Method"));
2031
+ this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Method"));
2032
}
2033
2041
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusRoleForMethod");
2042
- row[0] = key;
2043
- row[1] = methodKey;
2044
- row[2] = applicationRoleKey;
2045
- row[3] = componentKey;
2034
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusRoleForMethod");
2035
+ row.Set(0, key);
2036
+ row.Set(1, methodKey);
2037
+ row.Set(2, applicationRoleKey);
2038
+ row.Set(3, componentKey);
2039
}
2040
2041
/// <summary>
@@ -2051,9 +2044,9 @@ namespace WixToolset.Extensions
2044
/// <param name="node">Element to parse.</param>
2045
/// <param name="componentKey">Identifier of parent component.</param>
2046
/// <param name="cpcomponentKey">Identifier of parent COM+ component.</param>
2054
- private void ParseComPlusSubscriptionElement(XElement node, string componentKey, string cpcomponentKey)
2047
+ private void ParseComPlusSubscriptionElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentKey, string cpcomponentKey)
2048
{
2056
- SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
2049
+ SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
2050
2051
string key = null;
2052
string id = null;
@@ -2070,95 +2063,95 @@ namespace WixToolset.Extensions
2063
switch (attrib.Name.LocalName)
2064
{
2065
case "Id":
2073
- key = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
2066
+ key = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
2067
break;
2068
case "Component":
2069
if (null != cpcomponentKey)
2070
{
2078
- this.Core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
2071
+ this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName));
2072
}
2080
- cpcomponentKey = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2081
- this.Core.CreateSimpleReference(sourceLineNumbers, "ComPlusComponent", cpcomponentKey);
2073
+ cpcomponentKey = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2074
+ this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "ComPlusComponent", cpcomponentKey);
2075
break;
2076
case "SubscriptionId":
2084
- id = TryFormatGuidValue(this.Core.GetAttributeValue(sourceLineNumbers, attrib));
2077
+ id = this.TryFormatGuidValue(this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib));
2078
break;
2079
case "Name":
2087
- name = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2080
+ name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2081
break;
2082
case "EventCLSID":
2090
- eventCLSID = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2083
+ eventCLSID = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2084
break;
2085
case "PublisherID":
2093
- publisherID = TryFormatGuidValue(this.Core.GetAttributeValue(sourceLineNumbers, attrib));
2086
+ publisherID = this.TryFormatGuidValue(this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib));
2087
break;
2088
case "Description":
2096
- properties["Description"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2089
+ properties["Description"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2090
break;
2091
case "Enabled":
2099
- properties["Enabled"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
2092
+ properties["Enabled"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
2093
break;
2094
case "EventClassPartitionID":
2102
- properties["EventClassPartitionID"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2095
+ properties["EventClassPartitionID"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2096
break;
2097
case "FilterCriteria":
2105
- properties["FilterCriteria"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2098
+ properties["FilterCriteria"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2099
break;
2100
case "InterfaceID":
2108
- properties["InterfaceID"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2101
+ properties["InterfaceID"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2102
break;
2103
case "MachineName":
2111
- properties["MachineName"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2104
+ properties["MachineName"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2105
break;
2106
case "MethodName":
2114
- properties["MethodName"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2107
+ properties["MethodName"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2108
break;
2109
case "PerUser":
2117
- properties["PerUser"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
2110
+ properties["PerUser"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
2111
break;
2112
case "Queued":
2120
- properties["Queued"] = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
2113
+ properties["Queued"] = YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) ? "1" : "0";
2114
break;
2115
case "SubscriberMoniker":
2123
- properties["SubscriberMoniker"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2116
+ properties["SubscriberMoniker"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2117
break;
2118
case "UserName":
2126
- properties["UserName"] = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2119
+ properties["UserName"] = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2120
break;
2121
default:
2129
- this.Core.UnexpectedAttribute(node, attrib);
2122
+ this.ParseHelper.UnexpectedAttribute(node, attrib);
2123
break;
2124
}
2125
}
2126
else
2127
{
2135
- this.Core.ParseExtensionAttribute(node, attrib);
2128
+ this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
2129
}
2130
}
2131
2132
if (null == cpcomponentKey)
2133
{
2141
- this.Core.OnMessage(WixErrors.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Component"));
2134
+ this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Component"));
2135
}
2136
2144
- this.Core.ParseForExtensionElements(node);
2137
+ this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, node);
2138
2146
- Row row = this.Core.CreateRow(sourceLineNumbers, "ComPlusSubscription");
2147
- row[0] = key;
2148
- row[1] = cpcomponentKey;
2149
- row[2] = componentKey;
2150
- row[3] = id;
2151
- row[4] = name;
2152
- row[5] = eventCLSID;
2153
- row[6] = publisherID;
2139
+ var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusSubscription");
2140
+ row.Set(0, key);
2141
+ row.Set(1, cpcomponentKey);
2142
+ row.Set(2, componentKey);
2143
+ row.Set(3, id);
2144
+ row.Set(4, name);
2145
+ row.Set(5, eventCLSID);
2146
+ row.Set(6, publisherID);
2147
2148
IDictionaryEnumerator propertiesEnumerator = properties.GetEnumerator();
2149
while (propertiesEnumerator.MoveNext())
2150
{
2158
- Row propertyRow = this.Core.CreateRow(sourceLineNumbers, "ComPlusSubscriptionProperty");
2159
- propertyRow[0] = key;
2160
- propertyRow[1] = (string)propertiesEnumerator.Key;
2161
- propertyRow[2] = (string)propertiesEnumerator.Value;
2151
+ var propertyRow = this.ParseHelper.CreateRow(section, sourceLineNumbers, "ComPlusSubscriptionProperty");
2152
+ propertyRow.Set(0, key);
2153
+ propertyRow.Set(1, (string)propertiesEnumerator.Key);
2154
+ propertyRow.Set(2, (string)propertiesEnumerator.Value);
2155
}
2156
}
2157
src/wixext/ComPlusDecompiler.cs
+3
-1
@@ -1,7 +1,8 @@
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.Extensions
3
+namespace WixToolset.ComPlus
4
{
5
+#if TODO_CONSIDER_DECOMPILER
6
using System;
7
using System.Collections;
8
using System.Globalization;
@@ -1840,4 +1841,5 @@ namespace WixToolset.Extensions
1841
}
1842
}
1843
}
1844
+#endif
1845
}
src/wixext/ComPlusErrors.cs
new
+72
@@ -0,0 +1,72 @@
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 System;
6
+ using System.Resources;
7
+ using WixToolset.Data;
8
+
9
+ public static class ComPlusErrors
10
+ {
11
+ public static Message IllegalAttributeWithoutComponent(SourceLineNumber sourceLineNumbers, string elementName, string attributeName)
12
+ {
13
+ return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutComponent, "The {0}/@{1} attribute cannot be specified unless the element has a component as an ancestor. A {0} that does not have a component ancestor is not installed.", elementName, attributeName);
14
+ }
15
+
16
+ public static Message IllegalElementWithoutComponent(SourceLineNumber sourceLineNumbers, string elementName)
17
+ {
18
+ return Message(sourceLineNumbers, Ids.IllegalElementWithoutComponent, "The {0} element cannot be specified unless the element has a component as an ancestor. A {0} that does not have a component ancestor is not installed.", elementName);
19
+ }
20
+
21
+ public static Message RequiredAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2)
22
+ {
23
+ return Message(sourceLineNumbers, Ids.RequiredAttribute, "A {0} element must have either a {1} attribute or a {2} attribute, or both set.", elementName, attributeName1, attributeName2);
24
+ }
25
+
26
+ public static Message RequiredAttributeNotUnderComponent(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2)
27
+ {
28
+ return Message(sourceLineNumbers, Ids.RequiredAttributeNotUnderComponent, "A {0} element not nested under a component must have either a {1} attribute or a {2} attribute, or both set.", elementName, attributeName1, attributeName2);
29
+ }
30
+
31
+ public static Message RequiredAttributeUnderComponent(SourceLineNumber sourceLineNumbers, string elementName, string attributeName)
32
+ {
33
+ return Message(sourceLineNumbers, Ids.RequiredAttributeUnderComponent, "The {0}/@{1} attribute must be provided when {0} element is nested under a component.", elementName, attributeName);
34
+ }
35
+
36
+ public static Message UnexpectedAttributeWithOtherValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName, string otherValue)
37
+ {
38
+ return Message(sourceLineNumbers, Ids.UnexpectedAttributeWithOtherValue, "The {0}/@{1} attribute cannot coexist with the {2} attribute's value of '{3}'.", elementName, attributeName, otherAttributeName, otherValue);
39
+ }
40
+
41
+ public static Message UnexpectedAttributeWithOtherValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string otherAttributeName, string otherValue)
42
+ {
43
+ return Message(sourceLineNumbers, Ids.UnexpectedAttributeWithOtherValue, "The {0}/@{1} attribute's value, '{2}', cannot coexist with the {3} attribute's value of '{4}'.", elementName, attributeName, value, otherAttributeName, otherValue);
44
+ }
45
+
46
+ public static Message UnexpectedAttributeWithoutOtherValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName, string otherValue)
47
+ {
48
+ return Message(sourceLineNumbers, Ids.UnexpectedAttributeWithoutOtherValue, "The {0}/@{1} cannot be provided unless the {2} attribute is provided with a value of '{3}'.", elementName, attributeName, otherAttributeName, otherValue);
49
+ }
50
+
51
+ private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args)
52
+ {
53
+ return new Message(sourceLineNumber, MessageLevel.Error, (int)id, format, args);
54
+ }
55
+
56
+ private static Message Message(SourceLineNumber sourceLineNumber, Ids id, ResourceManager resourceManager, string resourceName, params object[] args)
57
+ {
58
+ return new Message(sourceLineNumber, MessageLevel.Error, (int)id, resourceManager, resourceName, args);
59
+ }
60
+
61
+ public enum Ids
62
+ {
63
+ IllegalAttributeWithoutComponent = 6000,
64
+ IllegalElementWithoutComponent = 6001,
65
+ UnexpectedAttributeWithOtherValue = 6002,
66
+ UnexpectedAttributeWithoutOtherValue = 6003,
67
+ RequiredAttributeUnderComponent = 6004,
68
+ RequiredAttribute = 6005,
69
+ RequiredAttributeNotUnderComponent = 6006,
70
+ }
71
+ }
72
+}
src/wixext/ComPlusExtensionData.cs
+8
-42
@@ -1,64 +1,30 @@
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.Extensions
3
+namespace WixToolset.ComPlus
4
{
5
- using System;
6
- using System.Reflection;
5
using WixToolset.Data;
6
using WixToolset.Extensibility;
7
8
/// <summary>
9
/// The WiX Toolset COM+ Extension.
10
/// </summary>
13
- public sealed class ComPlusExtensionData : ExtensionData
11
+ public sealed class ComPlusExtensionData : BaseExtensionData
12
{
13
/// <summary>
14
/// Gets the default culture.
15
/// </summary>
16
/// <value>The default culture.</value>
19
- public override string DefaultCulture
20
- {
21
- get { return "en-us"; }
22
- }
23
-
24
- /// <summary>
25
- /// Gets the optional table definitions for this extension.
26
- /// </summary>
27
- /// <value>The optional table definitions for this extension.</value>
28
- public override TableDefinitionCollection TableDefinitions
29
- {
30
- get
31
- {
32
- return ComPlusExtensionData.GetExtensionTableDefinitions();
33
- }
34
- }
35
-
36
- /// <summary>
37
- /// Gets the library associated with this extension.
38
- /// </summary>
39
- /// <param name="tableDefinitions">The table definitions to use while loading the library.</param>
40
- /// <returns>The loaded library.</returns>
41
- public override Library GetLibrary(TableDefinitionCollection tableDefinitions)
42
- {
43
- return ComPlusExtensionData.GetExtensionLibrary(tableDefinitions);
44
- }
17
+ public override string DefaultCulture => "en-US";
18
46
- /// <summary>
47
- /// Internal mechanism to access the extension's table definitions.
48
- /// </summary>
49
- /// <returns>Extension's table definitions.</returns>
50
- internal static TableDefinitionCollection GetExtensionTableDefinitions()
19
+ public override bool TryGetTupleDefinitionByName(string name, out IntermediateTupleDefinition tupleDefinition)
20
{
52
- return ExtensionData.LoadTableDefinitionHelper(Assembly.GetExecutingAssembly(), "WixToolset.Extensions.Data.tables.xml");
21
+ tupleDefinition = ComPlusTupleDefinitions.ByName(name);
22
+ return tupleDefinition != null;
23
}
24
55
- /// <summary>
56
- /// Internal mechanism to access the extension's library.
57
- /// </summary>
58
- /// <returns>Extension's library.</returns>
59
- internal static Library GetExtensionLibrary(TableDefinitionCollection tableDefinitions)
25
+ public override Intermediate GetLibrary(ITupleDefinitionCreator tupleDefinitions)
26
{
61
- return ExtensionData.LoadLibraryHelper(Assembly.GetExecutingAssembly(), "WixToolset.Extensions.Data.complus.wixlib", tableDefinitions);
27
+ return Intermediate.Load(typeof(ComPlusExtensionData).Assembly, "WixToolset.ComPlus.complus.wixlib", tupleDefinitions);
28
}
29
}
30
}
src/wixext/ComPlusExtensionFactory.cs
new
+18
@@ -0,0 +1,18 @@
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 System;
6
+ using System.Collections.Generic;
7
+ using WixToolset.Extensibility;
8
+
9
+ public class ComPlusExtensionFactory : BaseExtensionFactory
10
+ {
11
+ protected override IEnumerable<Type> ExtensionTypes => new[]
12
+ {
13
+ typeof(ComPlusCompiler),
14
+ typeof(ComPlusExtensionData),
15
+ typeof(ComPlusWindowsInstallerBackendBinderExtension),
16
+ };
17
+ }
18
+}
src/wixext/ComPlusWarnings.cs
new
+31
@@ -0,0 +1,31 @@
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 System;
6
+ using System.Resources;
7
+ using WixToolset.Data;
8
+
9
+ public static class ComPlusWarnings
10
+ {
11
+ public static Message MissingComponents(SourceLineNumber sourceLineNumbers)
12
+ {
13
+ return Message(sourceLineNumbers, Ids.MissingComponents, "The ComPlusAssembly element has a Type attribute with a value of 'native', but the element does not contain any ComPlusComponent elements. All components contained in a native assembly must be listed, or they will not be correctly removed during uninstall.");
14
+ }
15
+
16
+ private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args)
17
+ {
18
+ return new Message(sourceLineNumber, MessageLevel.Warning, (int)id, format, args);
19
+ }
20
+
21
+ private static Message Message(SourceLineNumber sourceLineNumber, Ids id, ResourceManager resourceManager, string resourceName, params object[] args)
22
+ {
23
+ return new Message(sourceLineNumber, MessageLevel.Warning, (int)id, resourceManager, resourceName, args);
24
+ }
25
+
26
+ public enum Ids
27
+ {
28
+ MissingComponents = 6007,
29
+ }
30
+ }
31
+}
src/wixext/ComPlusWindowsInstallerBackendBinderExtension.cs
new
+26
@@ -0,0 +1,26 @@
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 System.Linq;
6
+ using System.Xml;
7
+ using WixToolset.Data.WindowsInstaller;
8
+ using WixToolset.Extensibility;
9
+
10
+ public class ComPlusWindowsInstallerBackendBinderExtension : BaseWindowsInstallerBackendBinderExtension
11
+ {
12
+ private static readonly TableDefinition[] Tables = LoadTables();
13
+
14
+ protected override TableDefinition[] TableDefinitionsForTuples => Tables;
15
+
16
+ private static TableDefinition[] LoadTables()
17
+ {
18
+ using (var resourceStream = typeof(ComPlusWindowsInstallerBackendBinderExtension).Assembly.GetManifestResourceStream("WixToolset.ComPlus.tables.xml"))
19
+ using (var reader = XmlReader.Create(resourceStream))
20
+ {
21
+ var tables = TableDefinitionCollection.Load(reader);
22
+ return tables.ToArray();
23
+ }
24
+ }
25
+ }
26
+}
src/wixext/Tuples/ComPlusApplicationPropertyTuple.cs
new
+63
@@ -0,0 +1,63 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusApplicationProperty = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusApplicationProperty.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationPropertyTupleFields.Application_), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationPropertyTupleFields.Name), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationPropertyTupleFields.Value), IntermediateFieldType.String),
17
+ },
18
+ typeof(ComPlusApplicationPropertyTuple));
19
+ }
20
+}
21
+
22
+namespace WixToolset.ComPlus.Tuples
23
+{
24
+ using WixToolset.Data;
25
+
26
+ public enum ComPlusApplicationPropertyTupleFields
27
+ {
28
+ Application_,
29
+ Name,
30
+ Value,
31
+ }
32
+
33
+ public class ComPlusApplicationPropertyTuple : IntermediateTuple
34
+ {
35
+ public ComPlusApplicationPropertyTuple() : base(ComPlusTupleDefinitions.ComPlusApplicationProperty, null, null)
36
+ {
37
+ }
38
+
39
+ public ComPlusApplicationPropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusApplicationProperty, sourceLineNumber, id)
40
+ {
41
+ }
42
+
43
+ public IntermediateField this[ComPlusApplicationPropertyTupleFields index] => this.Fields[(int)index];
44
+
45
+ public string Application_
46
+ {
47
+ get => this.Fields[(int)ComPlusApplicationPropertyTupleFields.Application_].AsString();
48
+ set => this.Set((int)ComPlusApplicationPropertyTupleFields.Application_, value);
49
+ }
50
+
51
+ public string Name
52
+ {
53
+ get => this.Fields[(int)ComPlusApplicationPropertyTupleFields.Name].AsString();
54
+ set => this.Set((int)ComPlusApplicationPropertyTupleFields.Name, value);
55
+ }
56
+
57
+ public string Value
58
+ {
59
+ get => this.Fields[(int)ComPlusApplicationPropertyTupleFields.Value].AsString();
60
+ set => this.Set((int)ComPlusApplicationPropertyTupleFields.Value, value);
61
+ }
62
+ }
63
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusApplicationRolePropertyTuple.cs
new
+63
@@ -0,0 +1,63 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusApplicationRoleProperty = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusApplicationRoleProperty.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationRolePropertyTupleFields.ApplicationRole_), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationRolePropertyTupleFields.Name), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationRolePropertyTupleFields.Value), IntermediateFieldType.String),
17
+ },
18
+ typeof(ComPlusApplicationRolePropertyTuple));
19
+ }
20
+}
21
+
22
+namespace WixToolset.ComPlus.Tuples
23
+{
24
+ using WixToolset.Data;
25
+
26
+ public enum ComPlusApplicationRolePropertyTupleFields
27
+ {
28
+ ApplicationRole_,
29
+ Name,
30
+ Value,
31
+ }
32
+
33
+ public class ComPlusApplicationRolePropertyTuple : IntermediateTuple
34
+ {
35
+ public ComPlusApplicationRolePropertyTuple() : base(ComPlusTupleDefinitions.ComPlusApplicationRoleProperty, null, null)
36
+ {
37
+ }
38
+
39
+ public ComPlusApplicationRolePropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusApplicationRoleProperty, sourceLineNumber, id)
40
+ {
41
+ }
42
+
43
+ public IntermediateField this[ComPlusApplicationRolePropertyTupleFields index] => this.Fields[(int)index];
44
+
45
+ public string ApplicationRole_
46
+ {
47
+ get => this.Fields[(int)ComPlusApplicationRolePropertyTupleFields.ApplicationRole_].AsString();
48
+ set => this.Set((int)ComPlusApplicationRolePropertyTupleFields.ApplicationRole_, value);
49
+ }
50
+
51
+ public string Name
52
+ {
53
+ get => this.Fields[(int)ComPlusApplicationRolePropertyTupleFields.Name].AsString();
54
+ set => this.Set((int)ComPlusApplicationRolePropertyTupleFields.Name, value);
55
+ }
56
+
57
+ public string Value
58
+ {
59
+ get => this.Fields[(int)ComPlusApplicationRolePropertyTupleFields.Value].AsString();
60
+ set => this.Set((int)ComPlusApplicationRolePropertyTupleFields.Value, value);
61
+ }
62
+ }
63
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusApplicationRoleTuple.cs
new
+71
@@ -0,0 +1,71 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusApplicationRole = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusApplicationRole.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationRoleTupleFields.ApplicationRole), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationRoleTupleFields.Application_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationRoleTupleFields.Component_), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationRoleTupleFields.Name), IntermediateFieldType.String),
18
+ },
19
+ typeof(ComPlusApplicationRoleTuple));
20
+ }
21
+}
22
+
23
+namespace WixToolset.ComPlus.Tuples
24
+{
25
+ using WixToolset.Data;
26
+
27
+ public enum ComPlusApplicationRoleTupleFields
28
+ {
29
+ ApplicationRole,
30
+ Application_,
31
+ Component_,
32
+ Name,
33
+ }
34
+
35
+ public class ComPlusApplicationRoleTuple : IntermediateTuple
36
+ {
37
+ public ComPlusApplicationRoleTuple() : base(ComPlusTupleDefinitions.ComPlusApplicationRole, null, null)
38
+ {
39
+ }
40
+
41
+ public ComPlusApplicationRoleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusApplicationRole, sourceLineNumber, id)
42
+ {
43
+ }
44
+
45
+ public IntermediateField this[ComPlusApplicationRoleTupleFields index] => this.Fields[(int)index];
46
+
47
+ public string ApplicationRole
48
+ {
49
+ get => this.Fields[(int)ComPlusApplicationRoleTupleFields.ApplicationRole].AsString();
50
+ set => this.Set((int)ComPlusApplicationRoleTupleFields.ApplicationRole, value);
51
+ }
52
+
53
+ public string Application_
54
+ {
55
+ get => this.Fields[(int)ComPlusApplicationRoleTupleFields.Application_].AsString();
56
+ set => this.Set((int)ComPlusApplicationRoleTupleFields.Application_, value);
57
+ }
58
+
59
+ public string Component_
60
+ {
61
+ get => this.Fields[(int)ComPlusApplicationRoleTupleFields.Component_].AsString();
62
+ set => this.Set((int)ComPlusApplicationRoleTupleFields.Component_, value);
63
+ }
64
+
65
+ public string Name
66
+ {
67
+ get => this.Fields[(int)ComPlusApplicationRoleTupleFields.Name].AsString();
68
+ set => this.Set((int)ComPlusApplicationRoleTupleFields.Name, value);
69
+ }
70
+ }
71
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusApplicationTuple.cs
new
+79
@@ -0,0 +1,79 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusApplication = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusApplication.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationTupleFields.Application), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationTupleFields.Partition_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationTupleFields.Component_), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationTupleFields.CustomId), IntermediateFieldType.String),
18
+ new IntermediateFieldDefinition(nameof(ComPlusApplicationTupleFields.Name), IntermediateFieldType.String),
19
+ },
20
+ typeof(ComPlusApplicationTuple));
21
+ }
22
+}
23
+
24
+namespace WixToolset.ComPlus.Tuples
25
+{
26
+ using WixToolset.Data;
27
+
28
+ public enum ComPlusApplicationTupleFields
29
+ {
30
+ Application,
31
+ Partition_,
32
+ Component_,
33
+ CustomId,
34
+ Name,
35
+ }
36
+
37
+ public class ComPlusApplicationTuple : IntermediateTuple
38
+ {
39
+ public ComPlusApplicationTuple() : base(ComPlusTupleDefinitions.ComPlusApplication, null, null)
40
+ {
41
+ }
42
+
43
+ public ComPlusApplicationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusApplication, sourceLineNumber, id)
44
+ {
45
+ }
46
+
47
+ public IntermediateField this[ComPlusApplicationTupleFields index] => this.Fields[(int)index];
48
+
49
+ public string Application
50
+ {
51
+ get => this.Fields[(int)ComPlusApplicationTupleFields.Application].AsString();
52
+ set => this.Set((int)ComPlusApplicationTupleFields.Application, value);
53
+ }
54
+
55
+ public string Partition_
56
+ {
57
+ get => this.Fields[(int)ComPlusApplicationTupleFields.Partition_].AsString();
58
+ set => this.Set((int)ComPlusApplicationTupleFields.Partition_, value);
59
+ }
60
+
61
+ public string Component_
62
+ {
63
+ get => this.Fields[(int)ComPlusApplicationTupleFields.Component_].AsString();
64
+ set => this.Set((int)ComPlusApplicationTupleFields.Component_, value);
65
+ }
66
+
67
+ public string CustomId
68
+ {
69
+ get => this.Fields[(int)ComPlusApplicationTupleFields.CustomId].AsString();
70
+ set => this.Set((int)ComPlusApplicationTupleFields.CustomId, value);
71
+ }
72
+
73
+ public string Name
74
+ {
75
+ get => this.Fields[(int)ComPlusApplicationTupleFields.Name].AsString();
76
+ set => this.Set((int)ComPlusApplicationTupleFields.Name, value);
77
+ }
78
+ }
79
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusAssemblyDependencyTuple.cs
new
+55
@@ -0,0 +1,55 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusAssemblyDependency = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusAssemblyDependency.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusAssemblyDependencyTupleFields.Assembly_), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusAssemblyDependencyTupleFields.RequiredAssembly_), IntermediateFieldType.String),
16
+ },
17
+ typeof(ComPlusAssemblyDependencyTuple));
18
+ }
19
+}
20
+
21
+namespace WixToolset.ComPlus.Tuples
22
+{
23
+ using WixToolset.Data;
24
+
25
+ public enum ComPlusAssemblyDependencyTupleFields
26
+ {
27
+ Assembly_,
28
+ RequiredAssembly_,
29
+ }
30
+
31
+ public class ComPlusAssemblyDependencyTuple : IntermediateTuple
32
+ {
33
+ public ComPlusAssemblyDependencyTuple() : base(ComPlusTupleDefinitions.ComPlusAssemblyDependency, null, null)
34
+ {
35
+ }
36
+
37
+ public ComPlusAssemblyDependencyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusAssemblyDependency, sourceLineNumber, id)
38
+ {
39
+ }
40
+
41
+ public IntermediateField this[ComPlusAssemblyDependencyTupleFields index] => this.Fields[(int)index];
42
+
43
+ public string Assembly_
44
+ {
45
+ get => this.Fields[(int)ComPlusAssemblyDependencyTupleFields.Assembly_].AsString();
46
+ set => this.Set((int)ComPlusAssemblyDependencyTupleFields.Assembly_, value);
47
+ }
48
+
49
+ public string RequiredAssembly_
50
+ {
51
+ get => this.Fields[(int)ComPlusAssemblyDependencyTupleFields.RequiredAssembly_].AsString();
52
+ set => this.Set((int)ComPlusAssemblyDependencyTupleFields.RequiredAssembly_, value);
53
+ }
54
+ }
55
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusAssemblyTuple.cs
new
+103
@@ -0,0 +1,103 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusAssembly = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusAssembly.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusAssemblyTupleFields.Assembly), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusAssemblyTupleFields.Application_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusAssemblyTupleFields.Component_), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ComPlusAssemblyTupleFields.AssemblyName), IntermediateFieldType.String),
18
+ new IntermediateFieldDefinition(nameof(ComPlusAssemblyTupleFields.DllPath), IntermediateFieldType.String),
19
+ new IntermediateFieldDefinition(nameof(ComPlusAssemblyTupleFields.TlbPath), IntermediateFieldType.String),
20
+ new IntermediateFieldDefinition(nameof(ComPlusAssemblyTupleFields.PSDllPath), IntermediateFieldType.String),
21
+ new IntermediateFieldDefinition(nameof(ComPlusAssemblyTupleFields.Attributes), IntermediateFieldType.Number),
22
+ },
23
+ typeof(ComPlusAssemblyTuple));
24
+ }
25
+}
26
+
27
+namespace WixToolset.ComPlus.Tuples
28
+{
29
+ using WixToolset.Data;
30
+
31
+ public enum ComPlusAssemblyTupleFields
32
+ {
33
+ Assembly,
34
+ Application_,
35
+ Component_,
36
+ AssemblyName,
37
+ DllPath,
38
+ TlbPath,
39
+ PSDllPath,
40
+ Attributes,
41
+ }
42
+
43
+ public class ComPlusAssemblyTuple : IntermediateTuple
44
+ {
45
+ public ComPlusAssemblyTuple() : base(ComPlusTupleDefinitions.ComPlusAssembly, null, null)
46
+ {
47
+ }
48
+
49
+ public ComPlusAssemblyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusAssembly, sourceLineNumber, id)
50
+ {
51
+ }
52
+
53
+ public IntermediateField this[ComPlusAssemblyTupleFields index] => this.Fields[(int)index];
54
+
55
+ public string Assembly
56
+ {
57
+ get => this.Fields[(int)ComPlusAssemblyTupleFields.Assembly].AsString();
58
+ set => this.Set((int)ComPlusAssemblyTupleFields.Assembly, value);
59
+ }
60
+
61
+ public string Application_
62
+ {
63
+ get => this.Fields[(int)ComPlusAssemblyTupleFields.Application_].AsString();
64
+ set => this.Set((int)ComPlusAssemblyTupleFields.Application_, value);
65
+ }
66
+
67
+ public string Component_
68
+ {
69
+ get => this.Fields[(int)ComPlusAssemblyTupleFields.Component_].AsString();
70
+ set => this.Set((int)ComPlusAssemblyTupleFields.Component_, value);
71
+ }
72
+
73
+ public string AssemblyName
74
+ {
75
+ get => this.Fields[(int)ComPlusAssemblyTupleFields.AssemblyName].AsString();
76
+ set => this.Set((int)ComPlusAssemblyTupleFields.AssemblyName, value);
77
+ }
78
+
79
+ public string DllPath
80
+ {
81
+ get => this.Fields[(int)ComPlusAssemblyTupleFields.DllPath].AsString();
82
+ set => this.Set((int)ComPlusAssemblyTupleFields.DllPath, value);
83
+ }
84
+
85
+ public string TlbPath
86
+ {
87
+ get => this.Fields[(int)ComPlusAssemblyTupleFields.TlbPath].AsString();
88
+ set => this.Set((int)ComPlusAssemblyTupleFields.TlbPath, value);
89
+ }
90
+
91
+ public string PSDllPath
92
+ {
93
+ get => this.Fields[(int)ComPlusAssemblyTupleFields.PSDllPath].AsString();
94
+ set => this.Set((int)ComPlusAssemblyTupleFields.PSDllPath, value);
95
+ }
96
+
97
+ public int Attributes
98
+ {
99
+ get => this.Fields[(int)ComPlusAssemblyTupleFields.Attributes].AsNumber();
100
+ set => this.Set((int)ComPlusAssemblyTupleFields.Attributes, value);
101
+ }
102
+ }
103
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusComponentPropertyTuple.cs
new
+63
@@ -0,0 +1,63 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusComponentProperty = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusComponentProperty.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusComponentPropertyTupleFields.ComPlusComponent_), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusComponentPropertyTupleFields.Name), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusComponentPropertyTupleFields.Value), IntermediateFieldType.String),
17
+ },
18
+ typeof(ComPlusComponentPropertyTuple));
19
+ }
20
+}
21
+
22
+namespace WixToolset.ComPlus.Tuples
23
+{
24
+ using WixToolset.Data;
25
+
26
+ public enum ComPlusComponentPropertyTupleFields
27
+ {
28
+ ComPlusComponent_,
29
+ Name,
30
+ Value,
31
+ }
32
+
33
+ public class ComPlusComponentPropertyTuple : IntermediateTuple
34
+ {
35
+ public ComPlusComponentPropertyTuple() : base(ComPlusTupleDefinitions.ComPlusComponentProperty, null, null)
36
+ {
37
+ }
38
+
39
+ public ComPlusComponentPropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusComponentProperty, sourceLineNumber, id)
40
+ {
41
+ }
42
+
43
+ public IntermediateField this[ComPlusComponentPropertyTupleFields index] => this.Fields[(int)index];
44
+
45
+ public string ComPlusComponent_
46
+ {
47
+ get => this.Fields[(int)ComPlusComponentPropertyTupleFields.ComPlusComponent_].AsString();
48
+ set => this.Set((int)ComPlusComponentPropertyTupleFields.ComPlusComponent_, value);
49
+ }
50
+
51
+ public string Name
52
+ {
53
+ get => this.Fields[(int)ComPlusComponentPropertyTupleFields.Name].AsString();
54
+ set => this.Set((int)ComPlusComponentPropertyTupleFields.Name, value);
55
+ }
56
+
57
+ public string Value
58
+ {
59
+ get => this.Fields[(int)ComPlusComponentPropertyTupleFields.Value].AsString();
60
+ set => this.Set((int)ComPlusComponentPropertyTupleFields.Value, value);
61
+ }
62
+ }
63
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusComponentTuple.cs
new
+63
@@ -0,0 +1,63 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusComponent = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusComponent.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusComponentTupleFields.ComPlusComponent), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusComponentTupleFields.Assembly_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusComponentTupleFields.CLSID), IntermediateFieldType.String),
17
+ },
18
+ typeof(ComPlusComponentTuple));
19
+ }
20
+}
21
+
22
+namespace WixToolset.ComPlus.Tuples
23
+{
24
+ using WixToolset.Data;
25
+
26
+ public enum ComPlusComponentTupleFields
27
+ {
28
+ ComPlusComponent,
29
+ Assembly_,
30
+ CLSID,
31
+ }
32
+
33
+ public class ComPlusComponentTuple : IntermediateTuple
34
+ {
35
+ public ComPlusComponentTuple() : base(ComPlusTupleDefinitions.ComPlusComponent, null, null)
36
+ {
37
+ }
38
+
39
+ public ComPlusComponentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusComponent, sourceLineNumber, id)
40
+ {
41
+ }
42
+
43
+ public IntermediateField this[ComPlusComponentTupleFields index] => this.Fields[(int)index];
44
+
45
+ public string ComPlusComponent
46
+ {
47
+ get => this.Fields[(int)ComPlusComponentTupleFields.ComPlusComponent].AsString();
48
+ set => this.Set((int)ComPlusComponentTupleFields.ComPlusComponent, value);
49
+ }
50
+
51
+ public string Assembly_
52
+ {
53
+ get => this.Fields[(int)ComPlusComponentTupleFields.Assembly_].AsString();
54
+ set => this.Set((int)ComPlusComponentTupleFields.Assembly_, value);
55
+ }
56
+
57
+ public string CLSID
58
+ {
59
+ get => this.Fields[(int)ComPlusComponentTupleFields.CLSID].AsString();
60
+ set => this.Set((int)ComPlusComponentTupleFields.CLSID, value);
61
+ }
62
+ }
63
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusGroupInApplicationRoleTuple.cs
new
+71
@@ -0,0 +1,71 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusGroupInApplicationRole = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusGroupInApplicationRole.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusGroupInApplicationRoleTupleFields.GroupInApplicationRole), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusGroupInApplicationRoleTupleFields.ApplicationRole_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusGroupInApplicationRoleTupleFields.Component_), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ComPlusGroupInApplicationRoleTupleFields.Group_), IntermediateFieldType.String),
18
+ },
19
+ typeof(ComPlusGroupInApplicationRoleTuple));
20
+ }
21
+}
22
+
23
+namespace WixToolset.ComPlus.Tuples
24
+{
25
+ using WixToolset.Data;
26
+
27
+ public enum ComPlusGroupInApplicationRoleTupleFields
28
+ {
29
+ GroupInApplicationRole,
30
+ ApplicationRole_,
31
+ Component_,
32
+ Group_,
33
+ }
34
+
35
+ public class ComPlusGroupInApplicationRoleTuple : IntermediateTuple
36
+ {
37
+ public ComPlusGroupInApplicationRoleTuple() : base(ComPlusTupleDefinitions.ComPlusGroupInApplicationRole, null, null)
38
+ {
39
+ }
40
+
41
+ public ComPlusGroupInApplicationRoleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusGroupInApplicationRole, sourceLineNumber, id)
42
+ {
43
+ }
44
+
45
+ public IntermediateField this[ComPlusGroupInApplicationRoleTupleFields index] => this.Fields[(int)index];
46
+
47
+ public string GroupInApplicationRole
48
+ {
49
+ get => this.Fields[(int)ComPlusGroupInApplicationRoleTupleFields.GroupInApplicationRole].AsString();
50
+ set => this.Set((int)ComPlusGroupInApplicationRoleTupleFields.GroupInApplicationRole, value);
51
+ }
52
+
53
+ public string ApplicationRole_
54
+ {
55
+ get => this.Fields[(int)ComPlusGroupInApplicationRoleTupleFields.ApplicationRole_].AsString();
56
+ set => this.Set((int)ComPlusGroupInApplicationRoleTupleFields.ApplicationRole_, value);
57
+ }
58
+
59
+ public string Component_
60
+ {
61
+ get => this.Fields[(int)ComPlusGroupInApplicationRoleTupleFields.Component_].AsString();
62
+ set => this.Set((int)ComPlusGroupInApplicationRoleTupleFields.Component_, value);
63
+ }
64
+
65
+ public string Group_
66
+ {
67
+ get => this.Fields[(int)ComPlusGroupInApplicationRoleTupleFields.Group_].AsString();
68
+ set => this.Set((int)ComPlusGroupInApplicationRoleTupleFields.Group_, value);
69
+ }
70
+ }
71
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusGroupInPartitionRoleTuple.cs
new
+71
@@ -0,0 +1,71 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusGroupInPartitionRole = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusGroupInPartitionRole.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusGroupInPartitionRoleTupleFields.GroupInPartitionRole), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusGroupInPartitionRoleTupleFields.PartitionRole_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusGroupInPartitionRoleTupleFields.Component_), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ComPlusGroupInPartitionRoleTupleFields.Group_), IntermediateFieldType.String),
18
+ },
19
+ typeof(ComPlusGroupInPartitionRoleTuple));
20
+ }
21
+}
22
+
23
+namespace WixToolset.ComPlus.Tuples
24
+{
25
+ using WixToolset.Data;
26
+
27
+ public enum ComPlusGroupInPartitionRoleTupleFields
28
+ {
29
+ GroupInPartitionRole,
30
+ PartitionRole_,
31
+ Component_,
32
+ Group_,
33
+ }
34
+
35
+ public class ComPlusGroupInPartitionRoleTuple : IntermediateTuple
36
+ {
37
+ public ComPlusGroupInPartitionRoleTuple() : base(ComPlusTupleDefinitions.ComPlusGroupInPartitionRole, null, null)
38
+ {
39
+ }
40
+
41
+ public ComPlusGroupInPartitionRoleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusGroupInPartitionRole, sourceLineNumber, id)
42
+ {
43
+ }
44
+
45
+ public IntermediateField this[ComPlusGroupInPartitionRoleTupleFields index] => this.Fields[(int)index];
46
+
47
+ public string GroupInPartitionRole
48
+ {
49
+ get => this.Fields[(int)ComPlusGroupInPartitionRoleTupleFields.GroupInPartitionRole].AsString();
50
+ set => this.Set((int)ComPlusGroupInPartitionRoleTupleFields.GroupInPartitionRole, value);
51
+ }
52
+
53
+ public string PartitionRole_
54
+ {
55
+ get => this.Fields[(int)ComPlusGroupInPartitionRoleTupleFields.PartitionRole_].AsString();
56
+ set => this.Set((int)ComPlusGroupInPartitionRoleTupleFields.PartitionRole_, value);
57
+ }
58
+
59
+ public string Component_
60
+ {
61
+ get => this.Fields[(int)ComPlusGroupInPartitionRoleTupleFields.Component_].AsString();
62
+ set => this.Set((int)ComPlusGroupInPartitionRoleTupleFields.Component_, value);
63
+ }
64
+
65
+ public string Group_
66
+ {
67
+ get => this.Fields[(int)ComPlusGroupInPartitionRoleTupleFields.Group_].AsString();
68
+ set => this.Set((int)ComPlusGroupInPartitionRoleTupleFields.Group_, value);
69
+ }
70
+ }
71
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusInterfacePropertyTuple.cs
new
+63
@@ -0,0 +1,63 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusInterfaceProperty = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusInterfaceProperty.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusInterfacePropertyTupleFields.Interface_), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusInterfacePropertyTupleFields.Name), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusInterfacePropertyTupleFields.Value), IntermediateFieldType.String),
17
+ },
18
+ typeof(ComPlusInterfacePropertyTuple));
19
+ }
20
+}
21
+
22
+namespace WixToolset.ComPlus.Tuples
23
+{
24
+ using WixToolset.Data;
25
+
26
+ public enum ComPlusInterfacePropertyTupleFields
27
+ {
28
+ Interface_,
29
+ Name,
30
+ Value,
31
+ }
32
+
33
+ public class ComPlusInterfacePropertyTuple : IntermediateTuple
34
+ {
35
+ public ComPlusInterfacePropertyTuple() : base(ComPlusTupleDefinitions.ComPlusInterfaceProperty, null, null)
36
+ {
37
+ }
38
+
39
+ public ComPlusInterfacePropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusInterfaceProperty, sourceLineNumber, id)
40
+ {
41
+ }
42
+
43
+ public IntermediateField this[ComPlusInterfacePropertyTupleFields index] => this.Fields[(int)index];
44
+
45
+ public string Interface_
46
+ {
47
+ get => this.Fields[(int)ComPlusInterfacePropertyTupleFields.Interface_].AsString();
48
+ set => this.Set((int)ComPlusInterfacePropertyTupleFields.Interface_, value);
49
+ }
50
+
51
+ public string Name
52
+ {
53
+ get => this.Fields[(int)ComPlusInterfacePropertyTupleFields.Name].AsString();
54
+ set => this.Set((int)ComPlusInterfacePropertyTupleFields.Name, value);
55
+ }
56
+
57
+ public string Value
58
+ {
59
+ get => this.Fields[(int)ComPlusInterfacePropertyTupleFields.Value].AsString();
60
+ set => this.Set((int)ComPlusInterfacePropertyTupleFields.Value, value);
61
+ }
62
+ }
63
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusInterfaceTuple.cs
new
+63
@@ -0,0 +1,63 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusInterface = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusInterface.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusInterfaceTupleFields.Interface), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusInterfaceTupleFields.ComPlusComponent_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusInterfaceTupleFields.IID), IntermediateFieldType.String),
17
+ },
18
+ typeof(ComPlusInterfaceTuple));
19
+ }
20
+}
21
+
22
+namespace WixToolset.ComPlus.Tuples
23
+{
24
+ using WixToolset.Data;
25
+
26
+ public enum ComPlusInterfaceTupleFields
27
+ {
28
+ Interface,
29
+ ComPlusComponent_,
30
+ IID,
31
+ }
32
+
33
+ public class ComPlusInterfaceTuple : IntermediateTuple
34
+ {
35
+ public ComPlusInterfaceTuple() : base(ComPlusTupleDefinitions.ComPlusInterface, null, null)
36
+ {
37
+ }
38
+
39
+ public ComPlusInterfaceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusInterface, sourceLineNumber, id)
40
+ {
41
+ }
42
+
43
+ public IntermediateField this[ComPlusInterfaceTupleFields index] => this.Fields[(int)index];
44
+
45
+ public string Interface
46
+ {
47
+ get => this.Fields[(int)ComPlusInterfaceTupleFields.Interface].AsString();
48
+ set => this.Set((int)ComPlusInterfaceTupleFields.Interface, value);
49
+ }
50
+
51
+ public string ComPlusComponent_
52
+ {
53
+ get => this.Fields[(int)ComPlusInterfaceTupleFields.ComPlusComponent_].AsString();
54
+ set => this.Set((int)ComPlusInterfaceTupleFields.ComPlusComponent_, value);
55
+ }
56
+
57
+ public string IID
58
+ {
59
+ get => this.Fields[(int)ComPlusInterfaceTupleFields.IID].AsString();
60
+ set => this.Set((int)ComPlusInterfaceTupleFields.IID, value);
61
+ }
62
+ }
63
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusMethodPropertyTuple.cs
new
+63
@@ -0,0 +1,63 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusMethodProperty = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusMethodProperty.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusMethodPropertyTupleFields.Method_), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusMethodPropertyTupleFields.Name), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusMethodPropertyTupleFields.Value), IntermediateFieldType.String),
17
+ },
18
+ typeof(ComPlusMethodPropertyTuple));
19
+ }
20
+}
21
+
22
+namespace WixToolset.ComPlus.Tuples
23
+{
24
+ using WixToolset.Data;
25
+
26
+ public enum ComPlusMethodPropertyTupleFields
27
+ {
28
+ Method_,
29
+ Name,
30
+ Value,
31
+ }
32
+
33
+ public class ComPlusMethodPropertyTuple : IntermediateTuple
34
+ {
35
+ public ComPlusMethodPropertyTuple() : base(ComPlusTupleDefinitions.ComPlusMethodProperty, null, null)
36
+ {
37
+ }
38
+
39
+ public ComPlusMethodPropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusMethodProperty, sourceLineNumber, id)
40
+ {
41
+ }
42
+
43
+ public IntermediateField this[ComPlusMethodPropertyTupleFields index] => this.Fields[(int)index];
44
+
45
+ public string Method_
46
+ {
47
+ get => this.Fields[(int)ComPlusMethodPropertyTupleFields.Method_].AsString();
48
+ set => this.Set((int)ComPlusMethodPropertyTupleFields.Method_, value);
49
+ }
50
+
51
+ public string Name
52
+ {
53
+ get => this.Fields[(int)ComPlusMethodPropertyTupleFields.Name].AsString();
54
+ set => this.Set((int)ComPlusMethodPropertyTupleFields.Name, value);
55
+ }
56
+
57
+ public string Value
58
+ {
59
+ get => this.Fields[(int)ComPlusMethodPropertyTupleFields.Value].AsString();
60
+ set => this.Set((int)ComPlusMethodPropertyTupleFields.Value, value);
61
+ }
62
+ }
63
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusMethodTuple.cs
new
+71
@@ -0,0 +1,71 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusMethod = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusMethod.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusMethodTupleFields.Method), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusMethodTupleFields.Interface_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusMethodTupleFields.Index), IntermediateFieldType.Number),
17
+ new IntermediateFieldDefinition(nameof(ComPlusMethodTupleFields.Name), IntermediateFieldType.String),
18
+ },
19
+ typeof(ComPlusMethodTuple));
20
+ }
21
+}
22
+
23
+namespace WixToolset.ComPlus.Tuples
24
+{
25
+ using WixToolset.Data;
26
+
27
+ public enum ComPlusMethodTupleFields
28
+ {
29
+ Method,
30
+ Interface_,
31
+ Index,
32
+ Name,
33
+ }
34
+
35
+ public class ComPlusMethodTuple : IntermediateTuple
36
+ {
37
+ public ComPlusMethodTuple() : base(ComPlusTupleDefinitions.ComPlusMethod, null, null)
38
+ {
39
+ }
40
+
41
+ public ComPlusMethodTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusMethod, sourceLineNumber, id)
42
+ {
43
+ }
44
+
45
+ public IntermediateField this[ComPlusMethodTupleFields index] => this.Fields[(int)index];
46
+
47
+ public string Method
48
+ {
49
+ get => this.Fields[(int)ComPlusMethodTupleFields.Method].AsString();
50
+ set => this.Set((int)ComPlusMethodTupleFields.Method, value);
51
+ }
52
+
53
+ public string Interface_
54
+ {
55
+ get => this.Fields[(int)ComPlusMethodTupleFields.Interface_].AsString();
56
+ set => this.Set((int)ComPlusMethodTupleFields.Interface_, value);
57
+ }
58
+
59
+ public int Index
60
+ {
61
+ get => this.Fields[(int)ComPlusMethodTupleFields.Index].AsNumber();
62
+ set => this.Set((int)ComPlusMethodTupleFields.Index, value);
63
+ }
64
+
65
+ public string Name
66
+ {
67
+ get => this.Fields[(int)ComPlusMethodTupleFields.Name].AsString();
68
+ set => this.Set((int)ComPlusMethodTupleFields.Name, value);
69
+ }
70
+ }
71
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusPartitionPropertyTuple.cs
new
+63
@@ -0,0 +1,63 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusPartitionProperty = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusPartitionProperty.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionPropertyTupleFields.Partition_), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionPropertyTupleFields.Name), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionPropertyTupleFields.Value), IntermediateFieldType.String),
17
+ },
18
+ typeof(ComPlusPartitionPropertyTuple));
19
+ }
20
+}
21
+
22
+namespace WixToolset.ComPlus.Tuples
23
+{
24
+ using WixToolset.Data;
25
+
26
+ public enum ComPlusPartitionPropertyTupleFields
27
+ {
28
+ Partition_,
29
+ Name,
30
+ Value,
31
+ }
32
+
33
+ public class ComPlusPartitionPropertyTuple : IntermediateTuple
34
+ {
35
+ public ComPlusPartitionPropertyTuple() : base(ComPlusTupleDefinitions.ComPlusPartitionProperty, null, null)
36
+ {
37
+ }
38
+
39
+ public ComPlusPartitionPropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusPartitionProperty, sourceLineNumber, id)
40
+ {
41
+ }
42
+
43
+ public IntermediateField this[ComPlusPartitionPropertyTupleFields index] => this.Fields[(int)index];
44
+
45
+ public string Partition_
46
+ {
47
+ get => this.Fields[(int)ComPlusPartitionPropertyTupleFields.Partition_].AsString();
48
+ set => this.Set((int)ComPlusPartitionPropertyTupleFields.Partition_, value);
49
+ }
50
+
51
+ public string Name
52
+ {
53
+ get => this.Fields[(int)ComPlusPartitionPropertyTupleFields.Name].AsString();
54
+ set => this.Set((int)ComPlusPartitionPropertyTupleFields.Name, value);
55
+ }
56
+
57
+ public string Value
58
+ {
59
+ get => this.Fields[(int)ComPlusPartitionPropertyTupleFields.Value].AsString();
60
+ set => this.Set((int)ComPlusPartitionPropertyTupleFields.Value, value);
61
+ }
62
+ }
63
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusPartitionRoleTuple.cs
new
+71
@@ -0,0 +1,71 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusPartitionRole = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusPartitionRole.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionRoleTupleFields.PartitionRole), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionRoleTupleFields.Partition_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionRoleTupleFields.Component_), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionRoleTupleFields.Name), IntermediateFieldType.String),
18
+ },
19
+ typeof(ComPlusPartitionRoleTuple));
20
+ }
21
+}
22
+
23
+namespace WixToolset.ComPlus.Tuples
24
+{
25
+ using WixToolset.Data;
26
+
27
+ public enum ComPlusPartitionRoleTupleFields
28
+ {
29
+ PartitionRole,
30
+ Partition_,
31
+ Component_,
32
+ Name,
33
+ }
34
+
35
+ public class ComPlusPartitionRoleTuple : IntermediateTuple
36
+ {
37
+ public ComPlusPartitionRoleTuple() : base(ComPlusTupleDefinitions.ComPlusPartitionRole, null, null)
38
+ {
39
+ }
40
+
41
+ public ComPlusPartitionRoleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusPartitionRole, sourceLineNumber, id)
42
+ {
43
+ }
44
+
45
+ public IntermediateField this[ComPlusPartitionRoleTupleFields index] => this.Fields[(int)index];
46
+
47
+ public string PartitionRole
48
+ {
49
+ get => this.Fields[(int)ComPlusPartitionRoleTupleFields.PartitionRole].AsString();
50
+ set => this.Set((int)ComPlusPartitionRoleTupleFields.PartitionRole, value);
51
+ }
52
+
53
+ public string Partition_
54
+ {
55
+ get => this.Fields[(int)ComPlusPartitionRoleTupleFields.Partition_].AsString();
56
+ set => this.Set((int)ComPlusPartitionRoleTupleFields.Partition_, value);
57
+ }
58
+
59
+ public string Component_
60
+ {
61
+ get => this.Fields[(int)ComPlusPartitionRoleTupleFields.Component_].AsString();
62
+ set => this.Set((int)ComPlusPartitionRoleTupleFields.Component_, value);
63
+ }
64
+
65
+ public string Name
66
+ {
67
+ get => this.Fields[(int)ComPlusPartitionRoleTupleFields.Name].AsString();
68
+ set => this.Set((int)ComPlusPartitionRoleTupleFields.Name, value);
69
+ }
70
+ }
71
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusPartitionTuple.cs
new
+71
@@ -0,0 +1,71 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusPartition = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusPartition.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionTupleFields.Partition), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionTupleFields.Component_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionTupleFields.CustomId), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionTupleFields.Name), IntermediateFieldType.String),
18
+ },
19
+ typeof(ComPlusPartitionTuple));
20
+ }
21
+}
22
+
23
+namespace WixToolset.ComPlus.Tuples
24
+{
25
+ using WixToolset.Data;
26
+
27
+ public enum ComPlusPartitionTupleFields
28
+ {
29
+ Partition,
30
+ Component_,
31
+ CustomId,
32
+ Name,
33
+ }
34
+
35
+ public class ComPlusPartitionTuple : IntermediateTuple
36
+ {
37
+ public ComPlusPartitionTuple() : base(ComPlusTupleDefinitions.ComPlusPartition, null, null)
38
+ {
39
+ }
40
+
41
+ public ComPlusPartitionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusPartition, sourceLineNumber, id)
42
+ {
43
+ }
44
+
45
+ public IntermediateField this[ComPlusPartitionTupleFields index] => this.Fields[(int)index];
46
+
47
+ public string Partition
48
+ {
49
+ get => this.Fields[(int)ComPlusPartitionTupleFields.Partition].AsString();
50
+ set => this.Set((int)ComPlusPartitionTupleFields.Partition, value);
51
+ }
52
+
53
+ public string Component_
54
+ {
55
+ get => this.Fields[(int)ComPlusPartitionTupleFields.Component_].AsString();
56
+ set => this.Set((int)ComPlusPartitionTupleFields.Component_, value);
57
+ }
58
+
59
+ public string CustomId
60
+ {
61
+ get => this.Fields[(int)ComPlusPartitionTupleFields.CustomId].AsString();
62
+ set => this.Set((int)ComPlusPartitionTupleFields.CustomId, value);
63
+ }
64
+
65
+ public string Name
66
+ {
67
+ get => this.Fields[(int)ComPlusPartitionTupleFields.Name].AsString();
68
+ set => this.Set((int)ComPlusPartitionTupleFields.Name, value);
69
+ }
70
+ }
71
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusPartitionUserTuple.cs
new
+71
@@ -0,0 +1,71 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusPartitionUser = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusPartitionUser.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionUserTupleFields.PartitionUser), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionUserTupleFields.Partition_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionUserTupleFields.Component_), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ComPlusPartitionUserTupleFields.User_), IntermediateFieldType.String),
18
+ },
19
+ typeof(ComPlusPartitionUserTuple));
20
+ }
21
+}
22
+
23
+namespace WixToolset.ComPlus.Tuples
24
+{
25
+ using WixToolset.Data;
26
+
27
+ public enum ComPlusPartitionUserTupleFields
28
+ {
29
+ PartitionUser,
30
+ Partition_,
31
+ Component_,
32
+ User_,
33
+ }
34
+
35
+ public class ComPlusPartitionUserTuple : IntermediateTuple
36
+ {
37
+ public ComPlusPartitionUserTuple() : base(ComPlusTupleDefinitions.ComPlusPartitionUser, null, null)
38
+ {
39
+ }
40
+
41
+ public ComPlusPartitionUserTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusPartitionUser, sourceLineNumber, id)
42
+ {
43
+ }
44
+
45
+ public IntermediateField this[ComPlusPartitionUserTupleFields index] => this.Fields[(int)index];
46
+
47
+ public string PartitionUser
48
+ {
49
+ get => this.Fields[(int)ComPlusPartitionUserTupleFields.PartitionUser].AsString();
50
+ set => this.Set((int)ComPlusPartitionUserTupleFields.PartitionUser, value);
51
+ }
52
+
53
+ public string Partition_
54
+ {
55
+ get => this.Fields[(int)ComPlusPartitionUserTupleFields.Partition_].AsString();
56
+ set => this.Set((int)ComPlusPartitionUserTupleFields.Partition_, value);
57
+ }
58
+
59
+ public string Component_
60
+ {
61
+ get => this.Fields[(int)ComPlusPartitionUserTupleFields.Component_].AsString();
62
+ set => this.Set((int)ComPlusPartitionUserTupleFields.Component_, value);
63
+ }
64
+
65
+ public string User_
66
+ {
67
+ get => this.Fields[(int)ComPlusPartitionUserTupleFields.User_].AsString();
68
+ set => this.Set((int)ComPlusPartitionUserTupleFields.User_, value);
69
+ }
70
+ }
71
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusRoleForComponentTuple.cs
new
+71
@@ -0,0 +1,71 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusRoleForComponent = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusRoleForComponent.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusRoleForComponentTupleFields.RoleForComponent), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusRoleForComponentTupleFields.ComPlusComponent_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusRoleForComponentTupleFields.ApplicationRole_), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ComPlusRoleForComponentTupleFields.Component_), IntermediateFieldType.String),
18
+ },
19
+ typeof(ComPlusRoleForComponentTuple));
20
+ }
21
+}
22
+
23
+namespace WixToolset.ComPlus.Tuples
24
+{
25
+ using WixToolset.Data;
26
+
27
+ public enum ComPlusRoleForComponentTupleFields
28
+ {
29
+ RoleForComponent,
30
+ ComPlusComponent_,
31
+ ApplicationRole_,
32
+ Component_,
33
+ }
34
+
35
+ public class ComPlusRoleForComponentTuple : IntermediateTuple
36
+ {
37
+ public ComPlusRoleForComponentTuple() : base(ComPlusTupleDefinitions.ComPlusRoleForComponent, null, null)
38
+ {
39
+ }
40
+
41
+ public ComPlusRoleForComponentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusRoleForComponent, sourceLineNumber, id)
42
+ {
43
+ }
44
+
45
+ public IntermediateField this[ComPlusRoleForComponentTupleFields index] => this.Fields[(int)index];
46
+
47
+ public string RoleForComponent
48
+ {
49
+ get => this.Fields[(int)ComPlusRoleForComponentTupleFields.RoleForComponent].AsString();
50
+ set => this.Set((int)ComPlusRoleForComponentTupleFields.RoleForComponent, value);
51
+ }
52
+
53
+ public string ComPlusComponent_
54
+ {
55
+ get => this.Fields[(int)ComPlusRoleForComponentTupleFields.ComPlusComponent_].AsString();
56
+ set => this.Set((int)ComPlusRoleForComponentTupleFields.ComPlusComponent_, value);
57
+ }
58
+
59
+ public string ApplicationRole_
60
+ {
61
+ get => this.Fields[(int)ComPlusRoleForComponentTupleFields.ApplicationRole_].AsString();
62
+ set => this.Set((int)ComPlusRoleForComponentTupleFields.ApplicationRole_, value);
63
+ }
64
+
65
+ public string Component_
66
+ {
67
+ get => this.Fields[(int)ComPlusRoleForComponentTupleFields.Component_].AsString();
68
+ set => this.Set((int)ComPlusRoleForComponentTupleFields.Component_, value);
69
+ }
70
+ }
71
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusRoleForInterfaceTuple.cs
new
+71
@@ -0,0 +1,71 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusRoleForInterface = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusRoleForInterface.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusRoleForInterfaceTupleFields.RoleForInterface), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusRoleForInterfaceTupleFields.Interface_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusRoleForInterfaceTupleFields.ApplicationRole_), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ComPlusRoleForInterfaceTupleFields.Component_), IntermediateFieldType.String),
18
+ },
19
+ typeof(ComPlusRoleForInterfaceTuple));
20
+ }
21
+}
22
+
23
+namespace WixToolset.ComPlus.Tuples
24
+{
25
+ using WixToolset.Data;
26
+
27
+ public enum ComPlusRoleForInterfaceTupleFields
28
+ {
29
+ RoleForInterface,
30
+ Interface_,
31
+ ApplicationRole_,
32
+ Component_,
33
+ }
34
+
35
+ public class ComPlusRoleForInterfaceTuple : IntermediateTuple
36
+ {
37
+ public ComPlusRoleForInterfaceTuple() : base(ComPlusTupleDefinitions.ComPlusRoleForInterface, null, null)
38
+ {
39
+ }
40
+
41
+ public ComPlusRoleForInterfaceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusRoleForInterface, sourceLineNumber, id)
42
+ {
43
+ }
44
+
45
+ public IntermediateField this[ComPlusRoleForInterfaceTupleFields index] => this.Fields[(int)index];
46
+
47
+ public string RoleForInterface
48
+ {
49
+ get => this.Fields[(int)ComPlusRoleForInterfaceTupleFields.RoleForInterface].AsString();
50
+ set => this.Set((int)ComPlusRoleForInterfaceTupleFields.RoleForInterface, value);
51
+ }
52
+
53
+ public string Interface_
54
+ {
55
+ get => this.Fields[(int)ComPlusRoleForInterfaceTupleFields.Interface_].AsString();
56
+ set => this.Set((int)ComPlusRoleForInterfaceTupleFields.Interface_, value);
57
+ }
58
+
59
+ public string ApplicationRole_
60
+ {
61
+ get => this.Fields[(int)ComPlusRoleForInterfaceTupleFields.ApplicationRole_].AsString();
62
+ set => this.Set((int)ComPlusRoleForInterfaceTupleFields.ApplicationRole_, value);
63
+ }
64
+
65
+ public string Component_
66
+ {
67
+ get => this.Fields[(int)ComPlusRoleForInterfaceTupleFields.Component_].AsString();
68
+ set => this.Set((int)ComPlusRoleForInterfaceTupleFields.Component_, value);
69
+ }
70
+ }
71
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusRoleForMethodTuple.cs
new
+71
@@ -0,0 +1,71 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusRoleForMethod = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusRoleForMethod.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusRoleForMethodTupleFields.RoleForMethod), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusRoleForMethodTupleFields.Method_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusRoleForMethodTupleFields.ApplicationRole_), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ComPlusRoleForMethodTupleFields.Component_), IntermediateFieldType.String),
18
+ },
19
+ typeof(ComPlusRoleForMethodTuple));
20
+ }
21
+}
22
+
23
+namespace WixToolset.ComPlus.Tuples
24
+{
25
+ using WixToolset.Data;
26
+
27
+ public enum ComPlusRoleForMethodTupleFields
28
+ {
29
+ RoleForMethod,
30
+ Method_,
31
+ ApplicationRole_,
32
+ Component_,
33
+ }
34
+
35
+ public class ComPlusRoleForMethodTuple : IntermediateTuple
36
+ {
37
+ public ComPlusRoleForMethodTuple() : base(ComPlusTupleDefinitions.ComPlusRoleForMethod, null, null)
38
+ {
39
+ }
40
+
41
+ public ComPlusRoleForMethodTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusRoleForMethod, sourceLineNumber, id)
42
+ {
43
+ }
44
+
45
+ public IntermediateField this[ComPlusRoleForMethodTupleFields index] => this.Fields[(int)index];
46
+
47
+ public string RoleForMethod
48
+ {
49
+ get => this.Fields[(int)ComPlusRoleForMethodTupleFields.RoleForMethod].AsString();
50
+ set => this.Set((int)ComPlusRoleForMethodTupleFields.RoleForMethod, value);
51
+ }
52
+
53
+ public string Method_
54
+ {
55
+ get => this.Fields[(int)ComPlusRoleForMethodTupleFields.Method_].AsString();
56
+ set => this.Set((int)ComPlusRoleForMethodTupleFields.Method_, value);
57
+ }
58
+
59
+ public string ApplicationRole_
60
+ {
61
+ get => this.Fields[(int)ComPlusRoleForMethodTupleFields.ApplicationRole_].AsString();
62
+ set => this.Set((int)ComPlusRoleForMethodTupleFields.ApplicationRole_, value);
63
+ }
64
+
65
+ public string Component_
66
+ {
67
+ get => this.Fields[(int)ComPlusRoleForMethodTupleFields.Component_].AsString();
68
+ set => this.Set((int)ComPlusRoleForMethodTupleFields.Component_, value);
69
+ }
70
+ }
71
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusSubscriptionPropertyTuple.cs
new
+63
@@ -0,0 +1,63 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusSubscriptionProperty = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusSubscriptionProperty.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusSubscriptionPropertyTupleFields.Subscription_), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusSubscriptionPropertyTupleFields.Name), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusSubscriptionPropertyTupleFields.Value), IntermediateFieldType.String),
17
+ },
18
+ typeof(ComPlusSubscriptionPropertyTuple));
19
+ }
20
+}
21
+
22
+namespace WixToolset.ComPlus.Tuples
23
+{
24
+ using WixToolset.Data;
25
+
26
+ public enum ComPlusSubscriptionPropertyTupleFields
27
+ {
28
+ Subscription_,
29
+ Name,
30
+ Value,
31
+ }
32
+
33
+ public class ComPlusSubscriptionPropertyTuple : IntermediateTuple
34
+ {
35
+ public ComPlusSubscriptionPropertyTuple() : base(ComPlusTupleDefinitions.ComPlusSubscriptionProperty, null, null)
36
+ {
37
+ }
38
+
39
+ public ComPlusSubscriptionPropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusSubscriptionProperty, sourceLineNumber, id)
40
+ {
41
+ }
42
+
43
+ public IntermediateField this[ComPlusSubscriptionPropertyTupleFields index] => this.Fields[(int)index];
44
+
45
+ public string Subscription_
46
+ {
47
+ get => this.Fields[(int)ComPlusSubscriptionPropertyTupleFields.Subscription_].AsString();
48
+ set => this.Set((int)ComPlusSubscriptionPropertyTupleFields.Subscription_, value);
49
+ }
50
+
51
+ public string Name
52
+ {
53
+ get => this.Fields[(int)ComPlusSubscriptionPropertyTupleFields.Name].AsString();
54
+ set => this.Set((int)ComPlusSubscriptionPropertyTupleFields.Name, value);
55
+ }
56
+
57
+ public string Value
58
+ {
59
+ get => this.Fields[(int)ComPlusSubscriptionPropertyTupleFields.Value].AsString();
60
+ set => this.Set((int)ComPlusSubscriptionPropertyTupleFields.Value, value);
61
+ }
62
+ }
63
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusSubscriptionTuple.cs
new
+95
@@ -0,0 +1,95 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusSubscription = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusSubscription.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusSubscriptionTupleFields.Subscription), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusSubscriptionTupleFields.ComPlusComponent_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusSubscriptionTupleFields.Component_), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ComPlusSubscriptionTupleFields.CustomId), IntermediateFieldType.String),
18
+ new IntermediateFieldDefinition(nameof(ComPlusSubscriptionTupleFields.Name), IntermediateFieldType.String),
19
+ new IntermediateFieldDefinition(nameof(ComPlusSubscriptionTupleFields.EventCLSID), IntermediateFieldType.String),
20
+ new IntermediateFieldDefinition(nameof(ComPlusSubscriptionTupleFields.PublisherID), IntermediateFieldType.String),
21
+ },
22
+ typeof(ComPlusSubscriptionTuple));
23
+ }
24
+}
25
+
26
+namespace WixToolset.ComPlus.Tuples
27
+{
28
+ using WixToolset.Data;
29
+
30
+ public enum ComPlusSubscriptionTupleFields
31
+ {
32
+ Subscription,
33
+ ComPlusComponent_,
34
+ Component_,
35
+ CustomId,
36
+ Name,
37
+ EventCLSID,
38
+ PublisherID,
39
+ }
40
+
41
+ public class ComPlusSubscriptionTuple : IntermediateTuple
42
+ {
43
+ public ComPlusSubscriptionTuple() : base(ComPlusTupleDefinitions.ComPlusSubscription, null, null)
44
+ {
45
+ }
46
+
47
+ public ComPlusSubscriptionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusSubscription, sourceLineNumber, id)
48
+ {
49
+ }
50
+
51
+ public IntermediateField this[ComPlusSubscriptionTupleFields index] => this.Fields[(int)index];
52
+
53
+ public string Subscription
54
+ {
55
+ get => this.Fields[(int)ComPlusSubscriptionTupleFields.Subscription].AsString();
56
+ set => this.Set((int)ComPlusSubscriptionTupleFields.Subscription, value);
57
+ }
58
+
59
+ public string ComPlusComponent_
60
+ {
61
+ get => this.Fields[(int)ComPlusSubscriptionTupleFields.ComPlusComponent_].AsString();
62
+ set => this.Set((int)ComPlusSubscriptionTupleFields.ComPlusComponent_, value);
63
+ }
64
+
65
+ public string Component_
66
+ {
67
+ get => this.Fields[(int)ComPlusSubscriptionTupleFields.Component_].AsString();
68
+ set => this.Set((int)ComPlusSubscriptionTupleFields.Component_, value);
69
+ }
70
+
71
+ public string CustomId
72
+ {
73
+ get => this.Fields[(int)ComPlusSubscriptionTupleFields.CustomId].AsString();
74
+ set => this.Set((int)ComPlusSubscriptionTupleFields.CustomId, value);
75
+ }
76
+
77
+ public string Name
78
+ {
79
+ get => this.Fields[(int)ComPlusSubscriptionTupleFields.Name].AsString();
80
+ set => this.Set((int)ComPlusSubscriptionTupleFields.Name, value);
81
+ }
82
+
83
+ public string EventCLSID
84
+ {
85
+ get => this.Fields[(int)ComPlusSubscriptionTupleFields.EventCLSID].AsString();
86
+ set => this.Set((int)ComPlusSubscriptionTupleFields.EventCLSID, value);
87
+ }
88
+
89
+ public string PublisherID
90
+ {
91
+ get => this.Fields[(int)ComPlusSubscriptionTupleFields.PublisherID].AsString();
92
+ set => this.Set((int)ComPlusSubscriptionTupleFields.PublisherID, value);
93
+ }
94
+ }
95
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusTupleDefinitions.cs
new
+135
@@ -0,0 +1,135 @@
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 System;
6
+ using WixToolset.Data;
7
+
8
+ public enum ComPlusTupleDefinitionType
9
+ {
10
+ ComPlusApplication,
11
+ ComPlusApplicationProperty,
12
+ ComPlusApplicationRole,
13
+ ComPlusApplicationRoleProperty,
14
+ ComPlusAssembly,
15
+ ComPlusAssemblyDependency,
16
+ ComPlusComponent,
17
+ ComPlusComponentProperty,
18
+ ComPlusGroupInApplicationRole,
19
+ ComPlusGroupInPartitionRole,
20
+ ComPlusInterface,
21
+ ComPlusInterfaceProperty,
22
+ ComPlusMethod,
23
+ ComPlusMethodProperty,
24
+ ComPlusPartition,
25
+ ComPlusPartitionProperty,
26
+ ComPlusPartitionRole,
27
+ ComPlusPartitionUser,
28
+ ComPlusRoleForComponent,
29
+ ComPlusRoleForInterface,
30
+ ComPlusRoleForMethod,
31
+ ComPlusSubscription,
32
+ ComPlusSubscriptionProperty,
33
+ ComPlusUserInApplicationRole,
34
+ ComPlusUserInPartitionRole,
35
+ }
36
+
37
+ public static partial class ComPlusTupleDefinitions
38
+ {
39
+ public static readonly Version Version = new Version("4.0.0");
40
+
41
+ public static IntermediateTupleDefinition ByName(string name)
42
+ {
43
+ if (!Enum.TryParse(name, out ComPlusTupleDefinitionType type))
44
+ {
45
+ return null;
46
+ }
47
+
48
+ return ByType(type);
49
+ }
50
+
51
+ public static IntermediateTupleDefinition ByType(ComPlusTupleDefinitionType type)
52
+ {
53
+ switch (type)
54
+ {
55
+ case ComPlusTupleDefinitionType.ComPlusApplication:
56
+ return ComPlusTupleDefinitions.ComPlusApplication;
57
+
58
+ case ComPlusTupleDefinitionType.ComPlusApplicationProperty:
59
+ return ComPlusTupleDefinitions.ComPlusApplicationProperty;
60
+
61
+ case ComPlusTupleDefinitionType.ComPlusApplicationRole:
62
+ return ComPlusTupleDefinitions.ComPlusApplicationRole;
63
+
64
+ case ComPlusTupleDefinitionType.ComPlusApplicationRoleProperty:
65
+ return ComPlusTupleDefinitions.ComPlusApplicationRoleProperty;
66
+
67
+ case ComPlusTupleDefinitionType.ComPlusAssembly:
68
+ return ComPlusTupleDefinitions.ComPlusAssembly;
69
+
70
+ case ComPlusTupleDefinitionType.ComPlusAssemblyDependency:
71
+ return ComPlusTupleDefinitions.ComPlusAssemblyDependency;
72
+
73
+ case ComPlusTupleDefinitionType.ComPlusComponent:
74
+ return ComPlusTupleDefinitions.ComPlusComponent;
75
+
76
+ case ComPlusTupleDefinitionType.ComPlusComponentProperty:
77
+ return ComPlusTupleDefinitions.ComPlusComponentProperty;
78
+
79
+ case ComPlusTupleDefinitionType.ComPlusGroupInApplicationRole:
80
+ return ComPlusTupleDefinitions.ComPlusGroupInApplicationRole;
81
+
82
+ case ComPlusTupleDefinitionType.ComPlusGroupInPartitionRole:
83
+ return ComPlusTupleDefinitions.ComPlusGroupInPartitionRole;
84
+
85
+ case ComPlusTupleDefinitionType.ComPlusInterface:
86
+ return ComPlusTupleDefinitions.ComPlusInterface;
87
+
88
+ case ComPlusTupleDefinitionType.ComPlusInterfaceProperty:
89
+ return ComPlusTupleDefinitions.ComPlusInterfaceProperty;
90
+
91
+ case ComPlusTupleDefinitionType.ComPlusMethod:
92
+ return ComPlusTupleDefinitions.ComPlusMethod;
93
+
94
+ case ComPlusTupleDefinitionType.ComPlusMethodProperty:
95
+ return ComPlusTupleDefinitions.ComPlusMethodProperty;
96
+
97
+ case ComPlusTupleDefinitionType.ComPlusPartition:
98
+ return ComPlusTupleDefinitions.ComPlusPartition;
99
+
100
+ case ComPlusTupleDefinitionType.ComPlusPartitionProperty:
101
+ return ComPlusTupleDefinitions.ComPlusPartitionProperty;
102
+
103
+ case ComPlusTupleDefinitionType.ComPlusPartitionRole:
104
+ return ComPlusTupleDefinitions.ComPlusPartitionRole;
105
+
106
+ case ComPlusTupleDefinitionType.ComPlusPartitionUser:
107
+ return ComPlusTupleDefinitions.ComPlusPartitionUser;
108
+
109
+ case ComPlusTupleDefinitionType.ComPlusRoleForComponent:
110
+ return ComPlusTupleDefinitions.ComPlusRoleForComponent;
111
+
112
+ case ComPlusTupleDefinitionType.ComPlusRoleForInterface:
113
+ return ComPlusTupleDefinitions.ComPlusRoleForInterface;
114
+
115
+ case ComPlusTupleDefinitionType.ComPlusRoleForMethod:
116
+ return ComPlusTupleDefinitions.ComPlusRoleForMethod;
117
+
118
+ case ComPlusTupleDefinitionType.ComPlusSubscription:
119
+ return ComPlusTupleDefinitions.ComPlusSubscription;
120
+
121
+ case ComPlusTupleDefinitionType.ComPlusSubscriptionProperty:
122
+ return ComPlusTupleDefinitions.ComPlusSubscriptionProperty;
123
+
124
+ case ComPlusTupleDefinitionType.ComPlusUserInApplicationRole:
125
+ return ComPlusTupleDefinitions.ComPlusUserInApplicationRole;
126
+
127
+ case ComPlusTupleDefinitionType.ComPlusUserInPartitionRole:
128
+ return ComPlusTupleDefinitions.ComPlusUserInPartitionRole;
129
+
130
+ default:
131
+ throw new ArgumentOutOfRangeException(nameof(type));
132
+ }
133
+ }
134
+ }
135
+}
src/wixext/Tuples/ComPlusUserInApplicationRoleTuple.cs
new
+71
@@ -0,0 +1,71 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusUserInApplicationRole = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusUserInApplicationRole.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusUserInApplicationRoleTupleFields.UserInApplicationRole), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusUserInApplicationRoleTupleFields.ApplicationRole_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusUserInApplicationRoleTupleFields.Component_), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ComPlusUserInApplicationRoleTupleFields.User_), IntermediateFieldType.String),
18
+ },
19
+ typeof(ComPlusUserInApplicationRoleTuple));
20
+ }
21
+}
22
+
23
+namespace WixToolset.ComPlus.Tuples
24
+{
25
+ using WixToolset.Data;
26
+
27
+ public enum ComPlusUserInApplicationRoleTupleFields
28
+ {
29
+ UserInApplicationRole,
30
+ ApplicationRole_,
31
+ Component_,
32
+ User_,
33
+ }
34
+
35
+ public class ComPlusUserInApplicationRoleTuple : IntermediateTuple
36
+ {
37
+ public ComPlusUserInApplicationRoleTuple() : base(ComPlusTupleDefinitions.ComPlusUserInApplicationRole, null, null)
38
+ {
39
+ }
40
+
41
+ public ComPlusUserInApplicationRoleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusUserInApplicationRole, sourceLineNumber, id)
42
+ {
43
+ }
44
+
45
+ public IntermediateField this[ComPlusUserInApplicationRoleTupleFields index] => this.Fields[(int)index];
46
+
47
+ public string UserInApplicationRole
48
+ {
49
+ get => this.Fields[(int)ComPlusUserInApplicationRoleTupleFields.UserInApplicationRole].AsString();
50
+ set => this.Set((int)ComPlusUserInApplicationRoleTupleFields.UserInApplicationRole, value);
51
+ }
52
+
53
+ public string ApplicationRole_
54
+ {
55
+ get => this.Fields[(int)ComPlusUserInApplicationRoleTupleFields.ApplicationRole_].AsString();
56
+ set => this.Set((int)ComPlusUserInApplicationRoleTupleFields.ApplicationRole_, value);
57
+ }
58
+
59
+ public string Component_
60
+ {
61
+ get => this.Fields[(int)ComPlusUserInApplicationRoleTupleFields.Component_].AsString();
62
+ set => this.Set((int)ComPlusUserInApplicationRoleTupleFields.Component_, value);
63
+ }
64
+
65
+ public string User_
66
+ {
67
+ get => this.Fields[(int)ComPlusUserInApplicationRoleTupleFields.User_].AsString();
68
+ set => this.Set((int)ComPlusUserInApplicationRoleTupleFields.User_, value);
69
+ }
70
+ }
71
+}
\ No newline at end of file
src/wixext/Tuples/ComPlusUserInPartitionRoleTuple.cs
new
+71
@@ -0,0 +1,71 @@
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.Tuples;
7
+
8
+ public static partial class ComPlusTupleDefinitions
9
+ {
10
+ public static readonly IntermediateTupleDefinition ComPlusUserInPartitionRole = new IntermediateTupleDefinition(
11
+ ComPlusTupleDefinitionType.ComPlusUserInPartitionRole.ToString(),
12
+ new[]
13
+ {
14
+ new IntermediateFieldDefinition(nameof(ComPlusUserInPartitionRoleTupleFields.UserInPartitionRole), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ComPlusUserInPartitionRoleTupleFields.PartitionRole_), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ComPlusUserInPartitionRoleTupleFields.Component_), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ComPlusUserInPartitionRoleTupleFields.User_), IntermediateFieldType.String),
18
+ },
19
+ typeof(ComPlusUserInPartitionRoleTuple));
20
+ }
21
+}
22
+
23
+namespace WixToolset.ComPlus.Tuples
24
+{
25
+ using WixToolset.Data;
26
+
27
+ public enum ComPlusUserInPartitionRoleTupleFields
28
+ {
29
+ UserInPartitionRole,
30
+ PartitionRole_,
31
+ Component_,
32
+ User_,
33
+ }
34
+
35
+ public class ComPlusUserInPartitionRoleTuple : IntermediateTuple
36
+ {
37
+ public ComPlusUserInPartitionRoleTuple() : base(ComPlusTupleDefinitions.ComPlusUserInPartitionRole, null, null)
38
+ {
39
+ }
40
+
41
+ public ComPlusUserInPartitionRoleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ComPlusTupleDefinitions.ComPlusUserInPartitionRole, sourceLineNumber, id)
42
+ {
43
+ }
44
+
45
+ public IntermediateField this[ComPlusUserInPartitionRoleTupleFields index] => this.Fields[(int)index];
46
+
47
+ public string UserInPartitionRole
48
+ {
49
+ get => this.Fields[(int)ComPlusUserInPartitionRoleTupleFields.UserInPartitionRole].AsString();
50
+ set => this.Set((int)ComPlusUserInPartitionRoleTupleFields.UserInPartitionRole, value);
51
+ }
52
+
53
+ public string PartitionRole_
54
+ {
55
+ get => this.Fields[(int)ComPlusUserInPartitionRoleTupleFields.PartitionRole_].AsString();
56
+ set => this.Set((int)ComPlusUserInPartitionRoleTupleFields.PartitionRole_, value);
57
+ }
58
+
59
+ public string Component_
60
+ {
61
+ get => this.Fields[(int)ComPlusUserInPartitionRoleTupleFields.Component_].AsString();
62
+ set => this.Set((int)ComPlusUserInPartitionRoleTupleFields.Component_, value);
63
+ }
64
+
65
+ public string User_
66
+ {
67
+ get => this.Fields[(int)ComPlusUserInPartitionRoleTupleFields.User_].AsString();
68
+ set => this.Set((int)ComPlusUserInPartitionRoleTupleFields.User_, value);
69
+ }
70
+ }
71
+}
\ No newline at end of file
src/wixext/WixComPlusExtension.csproj
deleted
-50
@@ -1,50 +0,0 @@
1
-<?xml version="1.0" encoding="utf-8"?>
2
-<!-- 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. -->
3
-
4
-
5
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
6
- <PropertyGroup>
7
- <ProjectGuid>{1497B777-330B-4CFE-927A-22850CD24D64}</ProjectGuid>
8
- <AssemblyName>WixComPlusExtension</AssemblyName>
9
- <OutputType>Library</OutputType>
10
- <RootNamespace>WixToolset.Extensions</RootNamespace>
11
- </PropertyGroup>
12
- <ItemGroup>
13
- <Compile Include="AssemblyInfo.cs" />
14
- <Compile Include="ComPlusCompiler.cs" />
15
- <Compile Include="ComPlusDecompiler.cs" />
16
- <Compile Include="ComPlusExtensionData.cs" />
17
- <MsgGenSource Include="Data\messages.xml">
18
- <ResourcesLogicalName>$(RootNamespace).Data.Messages.resources</ResourcesLogicalName>
19
- </MsgGenSource>
20
- <EmbeddedFlattenedResource Include="Data\tables.xml">
21
- <LogicalName>$(RootNamespace).Data.tables.xml</LogicalName>
22
- </EmbeddedFlattenedResource>
23
- <EmbeddedFlattenedResource Include="Xsd\complus.xsd">
24
- <LogicalName>$(RootNamespace).Xsd.complus.xsd</LogicalName>
25
- </EmbeddedFlattenedResource>
26
- <XsdGenSource Include="Xsd\complus.xsd">
27
- <CommonNamespace>WixToolset.Data.Serialize</CommonNamespace>
28
- <Namespace>WixToolset.Extensions.Serialize.ComPlus</Namespace>
29
- </XsdGenSource>
30
- <None Include="Xsd\complus.xsd">
31
- <Link>complus.xsd</Link>
32
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
33
- </None>
34
- <EmbeddedResource Include="$(OutputPath)\complus.wixlib">
35
- <Link>Data\complus.wixlib</Link>
36
- </EmbeddedResource>
37
- </ItemGroup>
38
- <ItemGroup>
39
- <Reference Include="System" />
40
- <Reference Include="System.Xml" />
41
- <Reference Include="System.Xml.Linq" />
42
- <ProjectReference Include="..\..\..\libs\WixToolset.Data\WixToolset.Data.csproj" />
43
- <ProjectReference Include="..\..\..\libs\WixToolset.Extensibility\WixToolset.Extensibility.csproj" />
44
- <ProjectReference Include="..\..\..\tools\wix\Wix.csproj" />
45
- <ProjectReference Include="..\wixlib\ComPlusExtension.wixproj">
46
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
47
- </ProjectReference>
48
- </ItemGroup>
49
- <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), wix.proj))\tools\WixBuild.targets" />
50
-</Project>
src/wixext/WixToolset.ComPlus.wixext.csproj
new
+33
@@ -0,0 +1,33 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- 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. -->
3
+
4
+<Project Sdk="Microsoft.NET.Sdk">
5
+ <PropertyGroup>
6
+ <TargetFramework>netstandard2.0</TargetFramework>
7
+ <RootNamespace>WixToolset.ComPlus</RootNamespace>
8
+ <Description>WiX Toolset ComPlus Extension</Description>
9
+ <Title>WiX Toolset ComPlus Extension</Title>
10
+ <IsTool>true</IsTool>
11
+ <ContentTargetFolders>build</ContentTargetFolders>
12
+ </PropertyGroup>
13
+
14
+ <ItemGroup>
15
+ <Content Include="$(MSBuildThisFileName).targets" />
16
+ <Content Include="complus.xsd" PackagePath="tools" />
17
+ <EmbeddedResource Include="tables.xml" />
18
+ <EmbeddedResource Include="$(OutputPath)..\complus.wixlib" />
19
+ </ItemGroup>
20
+
21
+ <ItemGroup>
22
+ <PackageReference Include="WixToolset.Data" Version="4.0.*" PrivateAssets="all" />
23
+ <PackageReference Include="WixToolset.Extensibility" Version="4.0.*" PrivateAssets="all" />
24
+ </ItemGroup>
25
+
26
+ <ItemGroup>
27
+ <ProjectReference Include="..\wixlib\complus.wixproj" ReferenceOutputAssembly="false" Condition=" '$(NCrunch)'=='' " />
28
+ </ItemGroup>
29
+
30
+ <ItemGroup>
31
+ <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="all" />
32
+ </ItemGroup>
33
+</Project>
src/wixext/WixToolset.ComPlus.wixext.targets
new
+11
@@ -0,0 +1,11 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- 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. -->
3
+
4
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
5
+ <PropertyGroup>
6
+ <WixToolsetComPlusWixextPath Condition=" '$(WixToolsetComPlusWixextPath)' == '' ">$(MSBuildThisFileDirectory)..\tools\WixToolset.ComPlus.wixext.dll</WixToolsetComPlusWixextPath>
7
+ </PropertyGroup>
8
+ <ItemGroup>
9
+ <WixExtension Include="$(WixToolsetComPlusWixextPath)" />
10
+ </ItemGroup>
11
+</Project>
src/wixext/messages.xml
deleted
-77
@@ -1,77 +0,0 @@
1
-<?xml version="1.0" encoding="utf-8"?>
2
-<!-- 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. -->
3
-
4
-
5
-<Messages Namespace="WixToolset.Extensions" Resources="Data.Messages" xmlns="http://schemas.microsoft.com/genmsgs/2004/07/messages">
6
- <Class Name="ComPlusErrors" ContainerName="ComPlusErrorEventArgs" BaseContainerName="MessageEventArgs">
7
- <Message Id="IllegalAttributeWithoutComponent" Number="6000">
8
- <Instance>
9
- The {0}/@{1} attribute cannot be specified unless the element has a component as an ancestor. A {0} that does not have a component ancestor is not installed.
10
- <Parameter Type="System.String" Name="elementName" />
11
- <Parameter Type="System.String" Name="attributeName" />
12
- </Instance>
13
- </Message>
14
- <Message Id="IllegalElementWithoutComponent" Number="6001">
15
- <Instance>
16
- The {0} element cannot be specified unless the element has a component as an ancestor. A {0} that does not have a component ancestor is not installed.
17
- <Parameter Type="System.String" Name="elementName" />
18
- </Instance>
19
- </Message>
20
- <Message Id="UnexpectedAttributeWithOtherValue" Number="6002">
21
- <Instance>
22
- The {0}/@{1} attribute cannot coexist with the {2} attribute's value of '{3}'.
23
- <Parameter Type="System.String" Name="elementName" />
24
- <Parameter Type="System.String" Name="attributeName" />
25
- <Parameter Type="System.String" Name="otherAttributeName" />
26
- <Parameter Type="System.String" Name="otherValue" />
27
- </Instance>
28
- <Instance>
29
- The {0}/@{1} attribute's value, '{2}', cannot coexist with the {3} attribute's value of '{4}'.
30
- <Parameter Type="System.String" Name="elementName" />
31
- <Parameter Type="System.String" Name="attributeName" />
32
- <Parameter Type="System.String" Name="value" />
33
- <Parameter Type="System.String" Name="otherAttributeName" />
34
- <Parameter Type="System.String" Name="otherValue" />
35
- </Instance>
36
- </Message>
37
- <Message Id="UnexpectedAttributeWithoutOtherValue" Number="6003">
38
- <Instance>
39
- The {0}/@{1} cannot be provided unless the {2} attribute is provided with a value of '{3}'.
40
- <Parameter Type="System.String" Name="elementName" />
41
- <Parameter Type="System.String" Name="attributeName" />
42
- <Parameter Type="System.String" Name="otherAttributeName" />
43
- <Parameter Type="System.String" Name="otherValue" />
44
- </Instance>
45
- </Message>
46
- <Message Id="RequiredAttributeUnderComponent" Number="6004">
47
- <Instance>
48
- The {0}/@{1} attribute must be provided when {0} element is nested under a component.
49
- <Parameter Type="System.String" Name="elementName" />
50
- <Parameter Type="System.String" Name="attributeName" />
51
- </Instance>
52
- </Message>
53
- <Message Id="RequiredAttribute" Number="6005">
54
- <Instance>
55
- A {0} element must have either a {1} attribute or a {2} attribute, or both set.
56
- <Parameter Type="System.String" Name="elementName" />
57
- <Parameter Type="System.String" Name="attributeName1" />
58
- <Parameter Type="System.String" Name="attributeName2" />
59
- </Instance>
60
- </Message>
61
- <Message Id="RequiredAttributeNotUnderComponent" Number="6006">
62
- <Instance>
63
- A {0} element not nested under a component must have either a {1} attribute or a {2} attribute, or both set.
64
- <Parameter Type="System.String" Name="elementName" />
65
- <Parameter Type="System.String" Name="attributeName1" />
66
- <Parameter Type="System.String" Name="attributeName2" />
67
- </Instance>
68
- </Message>
69
- </Class>
70
- <Class Name="ComPlusWarnings" ContainerName="ComPlusWarningEventArgs" BaseContainerName="MessageEventArgs">
71
- <Message Id="MissingComponents" Number="6007">
72
- <Instance>The ComPlusAssembly element has a Type attribute with a value of 'native', but the element does not contain any ComPlusComponent elements. All components contained in a native assembly must be listed, or they will not be correctly removed during uninstall.</Instance>
73
- </Message>
74
- </Class>
75
- <Class Name="ComPlusVerboses" ContainerName="ComPlusVerboseEventArgs" BaseContainerName="MessageEventArgs">
76
- </Class>
77
-</Messages>
src/wixlib/ComPlusExtension.wixproj
deleted
-26
@@ -1,26 +0,0 @@
1
-<?xml version="1.0" encoding="utf-8" ?>
2
-<!-- 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. -->
3
-
4
-
5
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
6
- <PropertyGroup>
7
- <ProjectGuid>{E191E61E-E098-4F71-888F-51A79F952022}</ProjectGuid>
8
- <OutputName>complus</OutputName>
9
- <OutputType>Library</OutputType>
10
- <BindFiles>true</BindFiles>
11
- <SuppressSpecificWarnings>1086</SuppressSpecificWarnings>
12
- </PropertyGroup>
13
-
14
- <ItemGroup>
15
- <Compile Include="ComPlusExtension.wxs" />
16
- <EmbeddedResource Include="en-us.wxl" />
17
- <EmbeddedResource Include="es-es.wxl" />
18
- <EmbeddedResource Include="ja-jp.wxl" />
19
- </ItemGroup>
20
-
21
- <ItemGroup>
22
- <ProjectReference Include="..\ca\complusca.proj" />
23
- </ItemGroup>
24
-
25
- <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), wix.proj))\tools\WixBuild.targets" />
26
-</Project>
src/wixlib/ComPlusExtension.wxs
+28
-30
@@ -60,19 +60,19 @@
60
<Fragment>
61
<UIRef Id="ComPlusUI" />
62
63
- <CustomAction Id="ConfigureComPlusInstall" BinaryKey="WixCPSched_x86" DllEntry="ConfigureComPlusInstall" Execute="immediate" Return="check" SuppressModularization="yes" />
64
- <CustomAction Id="ConfigureComPlusUninstall" BinaryKey="WixCPSched_x86" DllEntry="ConfigureComPlusUninstall" Execute="immediate" Return="check" SuppressModularization="yes" />
65
- <CustomAction Id="ComPlusInstallPrepare" BinaryKey="WixCPExec_x86" DllEntry="ComPlusPrepare" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
66
- <CustomAction Id="ComPlusRollbackInstallPrepare" BinaryKey="WixCPExec_x86" DllEntry="ComPlusCleanup" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
67
- <CustomAction Id="ComPlusInstallExecute" BinaryKey="WixCPExec_x86" DllEntry="ComPlusInstallExecute" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
68
- <CustomAction Id="ComPlusInstallExecuteCommit" BinaryKey="WixCPExec_x86" DllEntry="ComPlusInstallExecuteCommit" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
69
- <CustomAction Id="ComPlusRollbackInstallExecute" BinaryKey="WixCPExec_x86" DllEntry="ComPlusRollbackInstallExecute" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
70
- <CustomAction Id="ComPlusInstallCommit" BinaryKey="WixCPExec_x86" DllEntry="ComPlusCleanup" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
71
- <CustomAction Id="ComPlusUninstallPrepare" BinaryKey="WixCPExec_x86" DllEntry="ComPlusPrepare" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
72
- <CustomAction Id="ComPlusRollbackUninstallPrepare" BinaryKey="WixCPExec_x86" DllEntry="ComPlusCleanup" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
73
- <CustomAction Id="ComPlusUninstallExecute" BinaryKey="WixCPExec_x86" DllEntry="ComPlusUninstallExecute" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
74
- <CustomAction Id="ComPlusRollbackUninstallExecute" BinaryKey="WixCPExec_x86" DllEntry="ComPlusInstallExecute" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
75
- <CustomAction Id="ComPlusUninstallCommit" BinaryKey="WixCPExec_x86" DllEntry="ComPlusCleanup" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
63
+ <CustomAction Id="ConfigureComPlusInstall" BinaryKey="ComPlusCA_x86" DllEntry="ConfigureComPlusInstall" Execute="immediate" Return="check" SuppressModularization="yes" />
64
+ <CustomAction Id="ConfigureComPlusUninstall" BinaryKey="ComPlusCA_x86" DllEntry="ConfigureComPlusUninstall" Execute="immediate" Return="check" SuppressModularization="yes" />
65
+ <CustomAction Id="ComPlusInstallPrepare" BinaryKey="ComPlusCA_x86" DllEntry="ComPlusPrepare" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
66
+ <CustomAction Id="ComPlusRollbackInstallPrepare" BinaryKey="ComPlusCA_x86" DllEntry="ComPlusCleanup" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
67
+ <CustomAction Id="ComPlusInstallExecute" BinaryKey="ComPlusCA_x86" DllEntry="ComPlusInstallExecute" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
68
+ <CustomAction Id="ComPlusInstallExecuteCommit" BinaryKey="ComPlusCA_x86" DllEntry="ComPlusInstallExecuteCommit" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
69
+ <CustomAction Id="ComPlusRollbackInstallExecute" BinaryKey="ComPlusCA_x86" DllEntry="ComPlusRollbackInstallExecute" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
70
+ <CustomAction Id="ComPlusInstallCommit" BinaryKey="ComPlusCA_x86" DllEntry="ComPlusCleanup" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
71
+ <CustomAction Id="ComPlusUninstallPrepare" BinaryKey="ComPlusCA_x86" DllEntry="ComPlusPrepare" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
72
+ <CustomAction Id="ComPlusRollbackUninstallPrepare" BinaryKey="ComPlusCA_x86" DllEntry="ComPlusCleanup" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
73
+ <CustomAction Id="ComPlusUninstallExecute" BinaryKey="ComPlusCA_x86" DllEntry="ComPlusUninstallExecute" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
74
+ <CustomAction Id="ComPlusRollbackUninstallExecute" BinaryKey="ComPlusCA_x86" DllEntry="ComPlusInstallExecute" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
75
+ <CustomAction Id="ComPlusUninstallCommit" BinaryKey="ComPlusCA_x86" DllEntry="ComPlusCleanup" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
76
77
<Property Id="ComPlusInstallPrepare" Hidden="yes" SuppressModularization="yes" />
78
<Property Id="ComPlusRollbackInstallPrepare" Hidden="yes" SuppressModularization="yes" />
@@ -95,19 +95,19 @@
95
<Fragment>
96
<UIRef Id="ComPlusUI" />
97
98
- <CustomAction Id="ConfigureComPlusInstall_x64" BinaryKey="WixCPSched_x64" DllEntry="ConfigureComPlusInstall" Execute="immediate" Return="check" SuppressModularization="yes" />
99
- <CustomAction Id="ConfigureComPlusUninstall_x64" BinaryKey="WixCPSched_x64" DllEntry="ConfigureComPlusUninstall" Execute="immediate" Return="check" SuppressModularization="yes" />
100
- <CustomAction Id="ComPlusInstallPrepare_64" BinaryKey="WixCPExec_x64" DllEntry="ComPlusPrepare" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
101
- <CustomAction Id="ComPlusRollbackInstallPrepare_64" BinaryKey="WixCPExec_x64" DllEntry="ComPlusCleanup" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
102
- <CustomAction Id="ComPlusInstallExecute_64" BinaryKey="WixCPExec_x64" DllEntry="ComPlusInstallExecute" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
103
- <CustomAction Id="ComPlusInstallExecuteCommit_64" BinaryKey="WixCPExec_x64" DllEntry="ComPlusInstallExecuteCommit" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
104
- <CustomAction Id="ComPlusRollbackInstallExecute_64" BinaryKey="WixCPExec_x64" DllEntry="ComPlusRollbackInstallExecute" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
105
- <CustomAction Id="ComPlusInstallCommit_64" BinaryKey="WixCPExec_x64" DllEntry="ComPlusCleanup" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
106
- <CustomAction Id="ComPlusUninstallPrepare_64" BinaryKey="WixCPExec_x64" DllEntry="ComPlusPrepare" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
107
- <CustomAction Id="ComPlusRollbackUninstallPrepare_64" BinaryKey="WixCPExec_x64" DllEntry="ComPlusCleanup" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
108
- <CustomAction Id="ComPlusUninstallExecute_64" BinaryKey="WixCPExec_x64" DllEntry="ComPlusUninstallExecute" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
109
- <CustomAction Id="ComPlusRollbackUninstallExecute_64" BinaryKey="WixCPExec_x64" DllEntry="ComPlusInstallExecute" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
110
- <CustomAction Id="ComPlusUninstallCommit_64" BinaryKey="WixCPExec_x64" DllEntry="ComPlusCleanup" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
98
+ <CustomAction Id="ConfigureComPlusInstall_x64" BinaryKey="ComPlusCA_x64" DllEntry="ConfigureComPlusInstall" Execute="immediate" Return="check" SuppressModularization="yes" />
99
+ <CustomAction Id="ConfigureComPlusUninstall_x64" BinaryKey="ComPlusCA_x64" DllEntry="ConfigureComPlusUninstall" Execute="immediate" Return="check" SuppressModularization="yes" />
100
+ <CustomAction Id="ComPlusInstallPrepare_64" BinaryKey="ComPlusCA_x64" DllEntry="ComPlusPrepare" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
101
+ <CustomAction Id="ComPlusRollbackInstallPrepare_64" BinaryKey="ComPlusCA_x64" DllEntry="ComPlusCleanup" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
102
+ <CustomAction Id="ComPlusInstallExecute_64" BinaryKey="ComPlusCA_x64" DllEntry="ComPlusInstallExecute" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
103
+ <CustomAction Id="ComPlusInstallExecuteCommit_64" BinaryKey="ComPlusCA_x64" DllEntry="ComPlusInstallExecuteCommit" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
104
+ <CustomAction Id="ComPlusRollbackInstallExecute_64" BinaryKey="ComPlusCA_x64" DllEntry="ComPlusRollbackInstallExecute" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
105
+ <CustomAction Id="ComPlusInstallCommit_64" BinaryKey="ComPlusCA_x64" DllEntry="ComPlusCleanup" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
106
+ <CustomAction Id="ComPlusUninstallPrepare_64" BinaryKey="ComPlusCA_x64" DllEntry="ComPlusPrepare" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
107
+ <CustomAction Id="ComPlusRollbackUninstallPrepare_64" BinaryKey="ComPlusCA_x64" DllEntry="ComPlusCleanup" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
108
+ <CustomAction Id="ComPlusUninstallExecute_64" BinaryKey="ComPlusCA_x64" DllEntry="ComPlusUninstallExecute" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
109
+ <CustomAction Id="ComPlusRollbackUninstallExecute_64" BinaryKey="ComPlusCA_x64" DllEntry="ComPlusInstallExecute" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
110
+ <CustomAction Id="ComPlusUninstallCommit_64" BinaryKey="ComPlusCA_x64" DllEntry="ComPlusCleanup" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" />
111
112
<Property Id="ComPlusInstallPrepare_64" Hidden="yes" SuppressModularization="yes" />
113
<Property Id="ComPlusRollbackInstallPrepare_64" Hidden="yes" SuppressModularization="yes" />
@@ -128,12 +128,10 @@
128
</Fragment>
129
130
<Fragment>
131
- <Binary Id="WixCPExec_x86" SourceFile="!(bindpath.x86)\cpexec.dll"/>
132
- <Binary Id="WixCPSched_x86" SourceFile="!(bindpath.x86)\cpsched.dll"/>
131
+ <Binary Id="ComPlusCA_x86" SourceFile="!(bindpath.x86)complusca.dll"/>
132
</Fragment>
133
134
<Fragment>
136
- <Binary Id="WixCPExec_x64" SourceFile="!(bindpath.x64)\cpexec.dll"/>
137
- <Binary Id="WixCPSched_x64" SourceFile="!(bindpath.x64)\cpsched.dll"/>
135
+ <Binary Id="ComPlusCA_x64" SourceFile="!(bindpath.x64)complusca.dll"/>
136
</Fragment>
137
</Wix>
src/wixlib/caerr.wxi
new
+96
@@ -0,0 +1,96 @@
1
+<Include>
2
+ <?define msierrSecureObjectsFailedCreateSD = 25520?>
3
+ <?define msierrSecureObjectsFailedSet = 25521?>
4
+ <?define msierrSecureObjectsUnknownType = 25522?>
5
+ <?define msierrXmlFileFailedRead = 25530?>
6
+ <?define msierrXmlFileFailedOpen = 25531?>
7
+ <?define msierrXmlFileFailedSelect = 25532?>
8
+ <?define msierrXmlFileFailedSave = 25533?>
9
+ <?define msierrXmlConfigFailedRead = 25540?>
10
+ <?define msierrXmlConfigFailedOpen = 25541?>
11
+ <?define msierrXmlConfigFailedSelect = 25542?>
12
+ <?define msierrXmlConfigFailedSave = 25543?>
13
+ <?define msierrFirewallCannotConnect = 25580?>
14
+ <?define msierrIISCannotConnect = 26001?>
15
+ <?define msierrIISFailedReadWebSite = 26002?>
16
+ <?define msierrIISFailedReadWebDirs = 26003?>
17
+ <?define msierrIISFailedReadVDirs = 26004?>
18
+ <?define msierrIISFailedReadFilters = 26005?>
19
+ <?define msierrIISFailedReadAppPool = 26006?>
20
+ <?define msierrIISFailedReadMimeMap = 26007?>
21
+ <?define msierrIISFailedReadProp = 26008?>
22
+ <?define msierrIISFailedReadWebSvcExt = 26009?>
23
+ <?define msierrIISFailedReadWebError = 26010?>
24
+ <?define msierrIISFailedReadHttpHeader = 26011?>
25
+ <?define msierrIISFailedSchedTransaction = 26031?>
26
+ <?define msierrIISFailedSchedInstallWebs = 26032?>
27
+ <?define msierrIISFailedSchedInstallWebDirs = 26033?>
28
+ <?define msierrIISFailedSchedInstallVDirs = 26034?>
29
+ <?define msierrIISFailedSchedInstallFilters = 26035?>
30
+ <?define msierrIISFailedSchedInstallAppPool = 26036?>
31
+ <?define msierrIISFailedSchedInstallProp = 26037?>
32
+ <?define msierrIISFailedSchedInstallWebSvcExt = 26038?>
33
+ <?define msierrIISFailedSchedUninstallWebs = 26051?>
34
+ <?define msierrIISFailedSchedUninstallWebDirs = 26052?>
35
+ <?define msierrIISFailedSchedUninstallVDirs = 26053?>
36
+ <?define msierrIISFailedSchedUninstallFilters = 26054?>
37
+ <?define msierrIISFailedSchedUninstallAppPool = 26055?>
38
+ <?define msierrIISFailedSchedUninstallProp = 26056?>
39
+ <?define msierrIISFailedSchedUninstallWebSvcExt = 26057?>
40
+ <?define msierrIISFailedStartTransaction = 26101?>
41
+ <?define msierrIISFailedOpenKey = 26102?>
42
+ <?define msierrIISFailedCreateKey = 26103?>
43
+ <?define msierrIISFailedWriteData = 26104?>
44
+ <?define msierrIISFailedCreateApp = 26105?>
45
+ <?define msierrIISFailedDeleteKey = 26106?>
46
+ <?define msierrIISFailedDeleteApp = 26107?>
47
+ <?define msierrIISFailedDeleteValue = 26108?>
48
+ <?define msierrIISFailedCommitInUse = 26109?>
49
+ <?define msierrSQLFailedCreateDatabase = 26201?>
50
+ <?define msierrSQLFailedDropDatabase = 26202?>
51
+ <?define msierrSQLFailedConnectDatabase = 26203?>
52
+ <?define msierrSQLFailedExecString = 26204?>
53
+ <?define msierrSQLDatabaseAlreadyExists = 26205?>
54
+ <?define msierrPERFMONFailedRegisterDLL = 26251?>
55
+ <?define msierrPERFMONFailedUnregisterDLL = 26252?>
56
+ <?define msierrInstallPerfCounterData = 26253?>
57
+ <?define msierrUninstallPerfCounterData = 26254?>
58
+ <?define msierrSMBFailedCreate = 26301?>
59
+ <?define msierrSMBFailedDrop = 26302?>
60
+ <?define msierrCERTFailedOpen = 26351?>
61
+ <?define msierrCERTFailedAdd = 26352?>
62
+ <?define msierrUSRFailedUserCreate = 26401?>
63
+ <?define msierrUSRFailedUserCreatePswd = 26402?>
64
+ <?define msierrUSRFailedUserGroupAdd = 26403?>
65
+ <?define msierrUSRFailedUserCreateExists = 26404?>
66
+ <?define msierrUSRFailedGrantLogonAsService = 26405?>
67
+ <?define msierrDependencyMissingDependencies = 26451?>
68
+ <?define msierrDependencyHasDependents = 26452?>
69
+ <?define msierrDotNetRuntimeRequired = 27000?>
70
+ <?define msierrComPlusCannotConnect = 28001?>
71
+ <?define msierrComPlusPartitionReadFailed = 28002?>
72
+ <?define msierrComPlusPartitionRoleReadFailed = 28003?>
73
+ <?define msierrComPlusUserInPartitionRoleReadFailed = 28004?>
74
+ <?define msierrComPlusPartitionUserReadFailed = 28005?>
75
+ <?define msierrComPlusApplicationReadFailed = 28006?>
76
+ <?define msierrComPlusApplicationRoleReadFailed = 28007?>
77
+ <?define msierrComPlusUserInApplicationRoleReadFailed = 28008?>
78
+ <?define msierrComPlusAssembliesReadFailed = 28009?>
79
+ <?define msierrComPlusSubscriptionReadFailed = 28010?>
80
+ <?define msierrComPlusPartitionDependency = 28011?>
81
+ <?define msierrComPlusPartitionNotFound = 28012?>
82
+ <?define msierrComPlusPartitionIdConflict = 28013?>
83
+ <?define msierrComPlusPartitionNameConflict = 28014?>
84
+ <?define msierrComPlusApplicationDependency = 28015?>
85
+ <?define msierrComPlusApplicationNotFound = 28016?>
86
+ <?define msierrComPlusApplicationIdConflict = 28017?>
87
+ <?define msierrComPlusApplicationNameConflict = 28018?>
88
+ <?define msierrComPlusApplicationRoleDependency = 28019?>
89
+ <?define msierrComPlusApplicationRoleNotFound = 28020?>
90
+ <?define msierrComPlusApplicationRoleConflict = 28021?>
91
+ <?define msierrComPlusAssemblyDependency = 28022?>
92
+ <?define msierrComPlusSubscriptionIdConflict = 28023?>
93
+ <?define msierrComPlusSubscriptionNameConflict = 28024?>
94
+ <?define msierrComPlusFailedLookupNames = 28025?>
95
+ <?define msierrMsmqCannotConnect = 28101?>
96
+</Include>
\ No newline at end of file
src/wixlib/complus.wixproj
new
+36
@@ -0,0 +1,36 @@
1
+<?xml version="1.0" encoding="utf-8" ?>
2
+<!-- 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. -->
3
+<Project DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0">
4
+ <Import Project="..\..\packages\WixToolset.MSBuild.4.0.0-build-0042\build\WixToolset.MSBuild.props" Condition="Exists('..\..\packages\WixToolset.MSBuild.4.0.0-build-0042\build\WixToolset.MSBuild.props')" />
5
+ <Import Project="..\FindLocalWix.props" />
6
+ <PropertyGroup>
7
+ <ProjectGuid>{E191E61E-E098-4F71-888F-51A79F952022}</ProjectGuid>
8
+ <OutputName>complus</OutputName>
9
+ <OutputType>Library</OutputType>
10
+ <BindFiles>true</BindFiles>
11
+ <SuppressSpecificWarnings>1086</SuppressSpecificWarnings>
12
+ </PropertyGroup>
13
+
14
+ <ItemGroup>
15
+ <Compile Include="ComPlusExtension.wxs" />
16
+ <EmbeddedResource Include="en-us.wxl" />
17
+ <EmbeddedResource Include="es-es.wxl" />
18
+ <EmbeddedResource Include="ja-jp.wxl" />
19
+ </ItemGroup>
20
+ <ItemGroup>
21
+ <None Include="packages.config" />
22
+ </ItemGroup>
23
+ <Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' AND Exists('$(WixTargetsPath)') " />
24
+ <Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\wix.targets" Condition=" '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\wix.targets') " />
25
+ <Target Name="EnsureWixToolsetInstalled" Condition=" '$(WixTargetsImported)' != 'true' ">
26
+ <Error Text="WiX Toolset build tools (v4.0 or later) must be installed to build this project. To download the WiX Toolset, go to http://wixtoolset.org/releases/." />
27
+ </Target>
28
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
29
+ <PropertyGroup>
30
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
31
+ </PropertyGroup>
32
+ <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" />
33
+ <Error Condition="!Exists('..\..\packages\WixToolset.MSBuild.4.0.0-build-0042\build\WixToolset.MSBuild.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.MSBuild.4.0.0-build-0042\build\WixToolset.MSBuild.props'))" />
34
+ </Target>
35
+ <Import Project="..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets" Condition="Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" />
36
+</Project>
src/wixlib/packages.config
new
+5
@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<packages>
3
+ <package id="Nerdbank.GitVersioning" version="2.1.65" developmentDependency="true" targetFramework="net40" />
4
+ <package id="WixToolset.MSBuild" version="4.0.0-build-0042" developmentDependency="true" targetFramework="net40" />
5
+</packages>
\ No newline at end of file
version.json
new
+11
@@ -0,0 +1,11 @@
1
+{
2
+ "version": "4.0",
3
+ "publicReleaseRefSpec": [
4
+ "^refs/heads/master$"
5
+ ],
6
+ "cloudBuild": {
7
+ "buildNumber": {
8
+ "enabled": true
9
+ }
10
+ }
11
+}