From b6c44ffcf2ef7a706598fe218523ec377e96cc47 Mon Sep 17 00:00:00 2001
From: Rob Mensching <rob@firegiant.com>
Date: Wed, 21 Apr 2021 11:53:24 -0700
Subject: Migrate Burn API headers to balutil repository

---
 src/Cpp.Build.props                                |  115 --
 .../WixToolset.BootstrapperCore.Native.nuspec      |   19 -
 .../WixToolset.BootstrapperCore.Native.proj        |   19 -
 .../build/WixToolset.BootstrapperCore.Native.props |   13 -
 .../inc/BootstrapperApplication.h                  | 1318 --------------------
 .../inc/BootstrapperEngine.h                       |  442 -------
 .../inc/BundleExtension.h                          |   60 -
 .../inc/BundleExtensionEngine.h                    |  184 ---
 src/engine/engine.vcxproj                          |   21 +-
 src/engine/precomp.h                               |    8 +-
 src/stub/WixToolset.Burn.nuspec                    |   24 -
 src/test/BurnUnitTest/BurnUnitTest.vcxproj         |   25 +-
 src/test/BurnUnitTest/packages.config              |    7 +-
 13 files changed, 42 insertions(+), 2213 deletions(-)
 delete mode 100644 src/Cpp.Build.props
 delete mode 100644 src/WixToolset.BootstrapperCore.Native/WixToolset.BootstrapperCore.Native.nuspec
 delete mode 100644 src/WixToolset.BootstrapperCore.Native/WixToolset.BootstrapperCore.Native.proj
 delete mode 100644 src/WixToolset.BootstrapperCore.Native/build/WixToolset.BootstrapperCore.Native.props
 delete mode 100644 src/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h
 delete mode 100644 src/WixToolset.BootstrapperCore.Native/inc/BootstrapperEngine.h
 delete mode 100644 src/WixToolset.BootstrapperCore.Native/inc/BundleExtension.h
 delete mode 100644 src/WixToolset.BootstrapperCore.Native/inc/BundleExtensionEngine.h
 delete mode 100644 src/stub/WixToolset.Burn.nuspec

(limited to 'src')

diff --git a/src/Cpp.Build.props b/src/Cpp.Build.props
deleted file mode 100644
index a734aab0..00000000
--- a/src/Cpp.Build.props
+++ /dev/null
@@ -1,115 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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. -->
-
-<Project>
-  <PropertyGroup>
-    <Platform Condition=" '$(Platform)' == '' OR '$(Platform)' == 'AnyCPU' ">Win32</Platform>
-    <IntDir>$(BaseIntermediateOutputPath)$(Configuration)\$(Platform)\</IntDir>
-    <OutDir>$(OutputPath)$(Platform)\</OutDir>
-
-    <!-- NBGV properties -->
-    <AssemblyCompany>$(Company)</AssemblyCompany>
-    <AssemblyCopyright>$(Copyright)</AssemblyCopyright>
-  </PropertyGroup>
-
-  <PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'=='' AND '$(VisualStudioVersion)'>='15.0'">
-    <WindowsTargetPlatformVersion>$([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))</WindowsTargetPlatformVersion>
-  </PropertyGroup>
-
-  <PropertyGroup>
-    <CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)CustomizedNativeRecommendedRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-
-  <ItemDefinitionGroup>
-    <ClCompile>
-      <DisableSpecificWarnings>$(DisableSpecificCompilerWarnings)</DisableSpecificWarnings>
-      <WarningLevel>Level4</WarningLevel>
-      <AdditionalIncludeDirectories>$(ProjectDir)inc;$(MSBuildProjectDirectory);$(IntDir);$(SqlCESdkIncludePath);$(ProjectAdditionalIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_WINDOWS;_WIN32_MSI=500;_WIN32_WINNT=0x0600;$(ArmPreprocessorDefinitions);$(UnicodePreprocessorDefinitions);_CRT_STDIO_LEGACY_WIDE_SPECIFIERS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <PrecompiledHeader>Use</PrecompiledHeader>
-      <PrecompiledHeaderFile>precomp.h</PrecompiledHeaderFile>
-      <CallingConvention Condition="'$(Platform)'=='Win32'">StdCall</CallingConvention>
-      <TreatWarningAsError>true</TreatWarningAsError>
-      <ExceptionHandling>false</ExceptionHandling>
-      <ControlFlowGuard>Guard</ControlFlowGuard>
-      <AdditionalOptions>-YlprecompDefine</AdditionalOptions>
-      <AdditionalOptions Condition=" $(PlatformToolset.StartsWith('v14')) ">/Zc:threadSafeInit- %(AdditionalOptions)</AdditionalOptions>
-      <MultiProcessorCompilation Condition=" $(NUMBER_OF_PROCESSORS) &gt; 4 ">true</MultiProcessorCompilation>
-    </ClCompile>
-    <ResourceCompile>
-      <PreprocessorDefinitions>$(ArmPreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(ProjectAdditionalResourceIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>$(OutDir);$(AdditionalMultiTargetLibraryPath);$(ProjectAdditionalLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-    </Lib>
-    <Link>
-      <SubSystem>$(ProjectSubSystem)</SubSystem>
-      <ModuleDefinitionFile>$(ProjectModuleDefinitionFile)</ModuleDefinitionFile>
-      <NoEntryPoint>$(ResourceOnlyDll)</NoEntryPoint>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>$(ProjectAdditionalLinkLibraries);advapi32.lib;comdlg32.lib;user32.lib;oleaut32.lib;gdi32.lib;shell32.lib;ole32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>$(OutDir);$(AdditionalMultiTargetLibraryPath);$(ArmLibraryDirectories);$(ProjectAdditionalLinkLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalOptions Condition=" $(PlatformToolset.StartsWith('v14')) ">/IGNORE:4099 %(AdditionalOptions)</AdditionalOptions>
-    </Link>
-  </ItemDefinitionGroup>
-
-  <ItemDefinitionGroup Condition=" '$(Platform)'=='Win32' and '$(PlatformToolset)'!='v100'">
-    <ClCompile>
-      <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition=" '$(Platform)'=='arm' ">
-    <ClCompile>
-      <CallingConvention>CDecl</CallingConvention>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition=" '$(ConfigurationType)'=='StaticLibrary' ">
-    <ClCompile>
-      <DebugInformationFormat>OldStyle</DebugInformationFormat>
-      <OmitDefaultLibName>true</OmitDefaultLibName>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition=" '$(Configuration)'=='Debug' ">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition=" '$(Configuration)'=='Debug' and '$(CLRSupport)'=='true' ">
-    <ClCompile>
-      <ControlFlowGuard></ControlFlowGuard>
-      <BasicRuntimeChecks></BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDll</RuntimeLibrary>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition=" '$(Configuration)'=='Release' ">
-    <ClCompile>
-      <Optimization>MinSpace</Optimization>
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-    </ClCompile>
-    <Link>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition=" '$(Configuration)'=='Release' and '$(CLRSupport)'=='true' ">
-    <ClCompile>
-      <ControlFlowGuard></ControlFlowGuard>
-      <BasicRuntimeChecks></BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDll</RuntimeLibrary>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition=" '$(CLRSupport)'=='true' ">
-    <Link>
-      <KeyFile>$(LinkKeyFile)</KeyFile>
-      <DelaySign>$(LinkDelaySign)</DelaySign>
-    </Link>
-  </ItemDefinitionGroup>
-</Project>
diff --git a/src/WixToolset.BootstrapperCore.Native/WixToolset.BootstrapperCore.Native.nuspec b/src/WixToolset.BootstrapperCore.Native/WixToolset.BootstrapperCore.Native.nuspec
deleted file mode 100644
index b10b75d2..00000000
--- a/src/WixToolset.BootstrapperCore.Native/WixToolset.BootstrapperCore.Native.nuspec
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<package >
-  <metadata>
-    <id>$id$</id>
-    <version>$version$</version>
-    <authors>WiX Toolset Team</authors>
-    <owners>WiX Toolset Team</owners>
-    <license type="expression">MS-RL</license>
-    <projectUrl>https://github.com/wixtoolset/BootstrapperCore</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>$description$</description>
-    <copyright>$copyright$</copyright>
-  </metadata>
-
-  <files>
-    <file src="build\$id$.props" target="build\" />
-    <file src="inc\*" target="build\native\include" />
-  </files>
-</package>
diff --git a/src/WixToolset.BootstrapperCore.Native/WixToolset.BootstrapperCore.Native.proj b/src/WixToolset.BootstrapperCore.Native/WixToolset.BootstrapperCore.Native.proj
deleted file mode 100644
index 30b48b29..00000000
--- a/src/WixToolset.BootstrapperCore.Native/WixToolset.BootstrapperCore.Native.proj
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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. -->
-
-
-<Project ToolsVersion="4.0" DefaultTargets="Pack" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <PackageId>WixToolset.BootstrapperCore.Native</PackageId>
-    <Description>WiX Bootstrapper native interfaces</Description>
-  </PropertyGroup>
-
-  <Target Name="Pack" DependsOnTargets="GetBuildVersion">
-    <Exec Command='nuget pack $(PackageId).nuspec -OutputDirectory "$(BaseOutputPath)$(Configuration)" -Properties Id=$(PackageId);Version="$(BuildVersionSimple)";Authors="$(Authors)";Copyright="$(Copyright)";Description="$(Description)"' />
-  </Target>
-  
-  <Import Project="..\Directory.Build.props" />  
-  <Import Project="..\Directory.Build.targets" />
-
-  <Import Project="..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets" Condition="Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" />
-</Project>
\ No newline at end of file
diff --git a/src/WixToolset.BootstrapperCore.Native/build/WixToolset.BootstrapperCore.Native.props b/src/WixToolset.BootstrapperCore.Native/build/WixToolset.BootstrapperCore.Native.props
deleted file mode 100644
index 82f81163..00000000
--- a/src/WixToolset.BootstrapperCore.Native/build/WixToolset.BootstrapperCore.Native.props
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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. -->
-
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemDefinitionGroup>
-    <ClCompile>
-      <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)native\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ClCompile>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)native\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
-  </ItemDefinitionGroup>
-</Project>
diff --git a/src/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h b/src/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h
deleted file mode 100644
index 2a6d5c8a..00000000
--- a/src/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h
+++ /dev/null
@@ -1,1318 +0,0 @@
-#pragma once
-// 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.
-
-
-enum BOOTSTRAPPER_DISPLAY
-{
-    BOOTSTRAPPER_DISPLAY_UNKNOWN,
-    BOOTSTRAPPER_DISPLAY_EMBEDDED,
-    BOOTSTRAPPER_DISPLAY_NONE,
-    BOOTSTRAPPER_DISPLAY_PASSIVE,
-    BOOTSTRAPPER_DISPLAY_FULL,
-};
-
-enum BOOTSTRAPPER_RESTART
-{
-    BOOTSTRAPPER_RESTART_UNKNOWN,
-    BOOTSTRAPPER_RESTART_NEVER,
-    BOOTSTRAPPER_RESTART_PROMPT,
-    BOOTSTRAPPER_RESTART_AUTOMATIC,
-    BOOTSTRAPPER_RESTART_ALWAYS,
-};
-
-enum BOOTSTRAPPER_RESUME_TYPE
-{
-    BOOTSTRAPPER_RESUME_TYPE_NONE,
-    BOOTSTRAPPER_RESUME_TYPE_INVALID,        // resume information is present but invalid
-    BOOTSTRAPPER_RESUME_TYPE_INTERRUPTED,    // relaunched after an unexpected interruption
-    BOOTSTRAPPER_RESUME_TYPE_REBOOT_PENDING, // reboot has not taken place yet
-    BOOTSTRAPPER_RESUME_TYPE_REBOOT,         // relaunched after reboot
-    BOOTSTRAPPER_RESUME_TYPE_SUSPEND,        // relaunched after suspend
-    BOOTSTRAPPER_RESUME_TYPE_ARP,            // launched from ARP
-};
-
-enum BOOTSTRAPPER_ERROR_TYPE
-{
-    BOOTSTRAPPER_ERROR_TYPE_ELEVATE,            // error occurred trying to elevate.
-    BOOTSTRAPPER_ERROR_TYPE_WINDOWS_INSTALLER,  // error came from windows installer.
-    BOOTSTRAPPER_ERROR_TYPE_EXE_PACKAGE,        // error came from an exe package.
-    BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_SERVER,   // error occurred trying to authenticate with HTTP server.
-    BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_PROXY,    // error occurred trying to authenticate with HTTP proxy.
-    BOOTSTRAPPER_ERROR_TYPE_APPLY,              // error occurred during apply.
-};
-
-enum BOOTSTRAPPER_RELATED_OPERATION
-{
-    BOOTSTRAPPER_RELATED_OPERATION_NONE,
-    BOOTSTRAPPER_RELATED_OPERATION_DOWNGRADE,
-    BOOTSTRAPPER_RELATED_OPERATION_MINOR_UPDATE,
-    BOOTSTRAPPER_RELATED_OPERATION_MAJOR_UPGRADE,
-    BOOTSTRAPPER_RELATED_OPERATION_REMOVE,
-    BOOTSTRAPPER_RELATED_OPERATION_INSTALL,
-    BOOTSTRAPPER_RELATED_OPERATION_REPAIR,
-};
-
-enum BOOTSTRAPPER_CACHE_OPERATION
-{
-    // There is no source available.
-    BOOTSTRAPPER_CACHE_OPERATION_NONE,
-    // Copy the payload or container from the chosen local source.
-    BOOTSTRAPPER_CACHE_OPERATION_COPY,
-    // Download the payload or container using the download URL.
-    BOOTSTRAPPER_CACHE_OPERATION_DOWNLOAD,
-    // Extract the payload from the container.
-    BOOTSTRAPPER_CACHE_OPERATION_EXTRACT,
-};
-
-enum BOOTSTRAPPER_CACHE_RESOLVE_OPERATION
-{
-    // There is no source available.
-    BOOTSTRAPPER_CACHE_RESOLVE_NONE,
-    // Copy the payload or container from the chosen local source.
-    BOOTSTRAPPER_CACHE_RESOLVE_LOCAL,
-    // Download the payload or container from the download URL.
-    BOOTSTRAPPER_CACHE_RESOLVE_DOWNLOAD,
-    // Extract the payload from the container.
-    BOOTSTRAPPER_CACHE_RESOLVE_CONTAINER,
-    // Look again for the payload or container locally.
-    BOOTSTRAPPER_CACHE_RESOLVE_RETRY,
-};
-
-enum BOOTSTRAPPER_CACHE_VERIFY_STEP
-{
-    BOOTSTRAPPER_CACHE_VERIFY_STEP_STAGE,
-    BOOTSTRAPPER_CACHE_VERIFY_STEP_HASH,
-    BOOTSTRAPPER_CACHE_VERIFY_STEP_FINALIZE,
-};
-
-enum BOOTSTRAPPER_APPLY_RESTART
-{
-    BOOTSTRAPPER_APPLY_RESTART_NONE,
-    BOOTSTRAPPER_APPLY_RESTART_REQUIRED,
-    BOOTSTRAPPER_APPLY_RESTART_INITIATED,
-};
-
-enum BOOTSTRAPPER_RELATION_TYPE
-{
-    BOOTSTRAPPER_RELATION_NONE,
-    BOOTSTRAPPER_RELATION_DETECT,
-    BOOTSTRAPPER_RELATION_UPGRADE,
-    BOOTSTRAPPER_RELATION_ADDON,
-    BOOTSTRAPPER_RELATION_PATCH,
-    BOOTSTRAPPER_RELATION_DEPENDENT,
-    BOOTSTRAPPER_RELATION_UPDATE,
-};
-
-enum BOOTSTRAPPER_CACHE_TYPE
-{
-    BOOTSTRAPPER_CACHE_TYPE_REMOVE,
-    BOOTSTRAPPER_CACHE_TYPE_KEEP,
-    BOOTSTRAPPER_CACHE_TYPE_FORCE,
-};
-
-enum BOOTSTRAPPER_PACKAGE_CONDITION_RESULT
-{
-    BOOTSTRAPPER_PACKAGE_CONDITION_DEFAULT,
-    BOOTSTRAPPER_PACKAGE_CONDITION_FALSE,
-    BOOTSTRAPPER_PACKAGE_CONDITION_TRUE,
-};
-
-enum BOOTSTRAPPER_APPLICATION_MESSAGE
-{
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTCOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANCOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONSTARTUP,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONSHUTDOWN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMSHUTDOWN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTFORWARDCOMPATIBLEBUNDLE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTUPDATEBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTUPDATE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTUPDATECOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGEBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDMSIPACKAGE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPATCHTARGET,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTMSIFEATURE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGECOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGEBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPATCHTARGET,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIFEATURE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGECOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONELEVATEBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONELEVATECOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONPROGRESS,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONERROR,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONREGISTERBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONREGISTERCOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPACKAGEBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIREBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIREPROGRESS,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIRERESOLVING,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIRECOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYCOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPACKAGECOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPACKAGEBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPATCHTARGET,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROGRESS,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEMSIMESSAGE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEFILESINUSE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPACKAGECOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTECOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONUNREGISTERBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONUNREGISTERCOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYCOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIPACKAGE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONCOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDPACKAGE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYPROGRESS,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE,
-    BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS,
-};
-
-enum BOOTSTRAPPER_APPLYCOMPLETE_ACTION
-{
-    BOOTSTRAPPER_APPLYCOMPLETE_ACTION_NONE,
-    // Instructs the engine to restart.
-    // The engine will not launch again after the machine is rebooted.
-    // Ignored if reboot was already initiated by OnExecutePackageComplete().
-    BOOTSTRAPPER_APPLYCOMPLETE_ACTION_RESTART,
-};
-
-enum BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION
-{
-    BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION_NONE,
-    // Instructs the engine to try the acquisition of the payload again.
-    // Ignored if hrStatus is a success.
-    BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION_RETRY,
-};
-
-enum BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION
-{
-    BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION_NONE,
-    // Instructs the engine to ignore non-vital package failures and
-    // continue with the caching.
-    // Ignored if hrStatus is a success or the package is vital.
-    BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION_IGNORE,
-    // Instructs the engine to try the acquisition and verification of the package again.
-    // Ignored if hrStatus is a success.
-    BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION_RETRY,
-};
-
-enum BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION
-{
-    BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION_NONE,
-    // Ignored if hrStatus is a success.
-    BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION_RETRYVERIFICATION,
-    // Ignored if hrStatus is a success.
-    BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION_RETRYACQUISITION,
-};
-
-enum BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION
-{
-    BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_NONE,
-    // Instructs the engine to ignore non-vital package failures and
-    // continue with the install.
-    // Ignored if hrStatus is a success or the package is vital.
-    BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_IGNORE,
-    // Instructs the engine to try the execution of the package again.
-    // Ignored if hrStatus is a success.
-    BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_RETRY,
-    // Instructs the engine to stop processing the chain and restart.
-    // The engine will launch again after the machine is restarted.
-    BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_RESTART,
-    // Instructs the engine to stop processing the chain and
-    // suspend the current state.
-    BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_SUSPEND,
-};
-
-enum BOOTSTRAPPER_SHUTDOWN_ACTION
-{
-    BOOTSTRAPPER_SHUTDOWN_ACTION_NONE,
-    // Instructs the engine to restart.
-    // The engine will not launch again after the machine is rebooted.
-    // Ignored if reboot was already initiated by OnExecutePackageComplete().
-    BOOTSTRAPPER_SHUTDOWN_ACTION_RESTART,
-    // Instructs the engine to unload the bootstrapper application and
-    // restart the engine which will load the bootstrapper application again.
-    // Typically used to switch from a native bootstrapper application to a managed one.
-    BOOTSTRAPPER_SHUTDOWN_ACTION_RELOAD_BOOTSTRAPPER,
-    // Opts out of the engine behavior of trying to uninstall itself
-    // when no non-permanent packages are installed.
-    BOOTSTRAPPER_SHUTDOWN_ACTION_SKIP_CLEANUP,
-};
-
-enum BURN_MSI_PROPERTY
-{
-    BURN_MSI_PROPERTY_NONE,     // no property added
-    BURN_MSI_PROPERTY_INSTALL,  // add BURNMSIINSTALL=1
-    BURN_MSI_PROPERTY_MODIFY,   // add BURNMSIMODIFY=1
-    BURN_MSI_PROPERTY_REPAIR,   // add BURNMSIREPAIR=1
-    BURN_MSI_PROPERTY_UNINSTALL,// add BURNMSIUNINSTALL=1
-};
-
-struct BOOTSTRAPPER_COMMAND
-{
-    DWORD cbSize;
-    BOOTSTRAPPER_ACTION action;
-    BOOTSTRAPPER_DISPLAY display;
-    BOOTSTRAPPER_RESTART restart;
-
-    LPWSTR wzCommandLine;
-    int nCmdShow;
-
-    BOOTSTRAPPER_RESUME_TYPE resumeType;
-    HWND hwndSplashScreen;
-
-    // If this was run from a related bundle, specifies the relation type
-    BOOTSTRAPPER_RELATION_TYPE relationType;
-    BOOL fPassthrough;
-
-    LPWSTR wzLayoutDirectory;
-    LPWSTR wzBootstrapperWorkingFolder;
-    LPWSTR wzBootstrapperApplicationDataPath;
-};
-
-struct BA_ONAPPLYBEGIN_ARGS
-{
-    DWORD cbSize;
-    DWORD dwPhaseCount;
-};
-
-struct BA_ONAPPLYBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONAPPLYCOMPLETE_ARGS
-{
-    DWORD cbSize;
-    HRESULT hrStatus;
-    // Indicates whether any package required a reboot or initiated the reboot already.
-    BOOTSTRAPPER_APPLY_RESTART restart;
-    BOOTSTRAPPER_APPLYCOMPLETE_ACTION recommendation;
-};
-
-struct BA_ONAPPLYCOMPLETE_RESULTS
-{
-    DWORD cbSize;
-    BOOTSTRAPPER_APPLYCOMPLETE_ACTION action;
-};
-
-struct BA_ONBEGINMSITRANSACTIONBEGIN_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzTransactionId;
-};
-
-struct BA_ONBEGINMSITRANSACTIONBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONBEGINMSITRANSACTIONCOMPLETE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzTransactionId;
-    HRESULT hrStatus;
-};
-
-struct BA_ONBEGINMSITRANSACTIONCOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONCACHEACQUIREBEGIN_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageOrContainerId;
-    LPCWSTR wzPayloadId;
-    LPCWSTR wzSource;
-    LPCWSTR wzDownloadUrl;
-    LPCWSTR wzPayloadContainerId;
-    BOOTSTRAPPER_CACHE_OPERATION recommendation;
-};
-
-struct BA_ONCACHEACQUIREBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-    BOOTSTRAPPER_CACHE_OPERATION action;
-};
-
-struct BA_ONCACHEACQUIRECOMPLETE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageOrContainerId;
-    LPCWSTR wzPayloadId;
-    HRESULT hrStatus;
-    BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION recommendation;
-};
-
-struct BA_ONCACHEACQUIRECOMPLETE_RESULTS
-{
-    DWORD cbSize;
-    BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION action;
-};
-
-struct BA_ONCACHEACQUIREPROGRESS_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageOrContainerId;
-    LPCWSTR wzPayloadId;
-    DWORD64 dw64Progress;
-    DWORD64 dw64Total;
-    DWORD dwOverallPercentage;
-};
-
-struct BA_ONCACHEACQUIREPROGRESS_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONCACHEACQUIRERESOLVING_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageOrContainerId;
-    LPCWSTR wzPayloadId;
-    LPCWSTR* rgSearchPaths;
-    DWORD cSearchPaths;
-    BOOL fFoundLocal;
-    DWORD dwRecommendedSearchPath;
-    LPCWSTR wzDownloadUrl;
-    LPCWSTR wzPayloadContainerId;
-    BOOTSTRAPPER_CACHE_RESOLVE_OPERATION recommendation;
-};
-
-struct BA_ONCACHEACQUIRERESOLVING_RESULTS
-{
-    DWORD cbSize;
-    DWORD dwChosenSearchPath;
-    BOOTSTRAPPER_CACHE_RESOLVE_OPERATION action;
-    BOOL fCancel;
-};
-
-struct BA_ONCACHEBEGIN_ARGS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONCACHEBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONCACHECOMPLETE_ARGS
-{
-    DWORD cbSize;
-    HRESULT hrStatus;
-};
-
-struct BA_ONCACHECOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONCACHECONTAINERORPAYLOADVERIFYBEGIN_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageOrContainerId;
-    LPCWSTR wzPayloadId;
-};
-
-struct BA_ONCACHECONTAINERORPAYLOADVERIFYBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageOrContainerId;
-    LPCWSTR wzPayloadId;
-    HRESULT hrStatus;
-};
-
-struct BA_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageOrContainerId;
-    LPCWSTR wzPayloadId;
-    DWORD64 dw64Progress;
-    DWORD64 dw64Total;
-    DWORD dwOverallPercentage;
-};
-
-struct BA_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONCACHEPACKAGEBEGIN_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    DWORD cCachePayloads;
-    DWORD64 dw64PackageCacheSize;
-};
-
-struct BA_ONCACHEPACKAGEBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONCACHEPACKAGECOMPLETE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    HRESULT hrStatus;
-    BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION recommendation;
-};
-
-struct BA_ONCACHEPACKAGECOMPLETE_RESULTS
-{
-    DWORD cbSize;
-    BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION action;
-};
-
-struct BA_ONCACHEPAYLOADEXTRACTBEGIN_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzContainerId;
-    LPCWSTR wzPayloadId;
-};
-
-struct BA_ONCACHEPAYLOADEXTRACTBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONCACHEPAYLOADEXTRACTCOMPLETE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzContainerId;
-    LPCWSTR wzPayloadId;
-    HRESULT hrStatus;
-};
-
-struct BA_ONCACHEPAYLOADEXTRACTCOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONCACHEPAYLOADEXTRACTPROGRESS_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzContainerId;
-    LPCWSTR wzPayloadId;
-    DWORD64 dw64Progress;
-    DWORD64 dw64Total;
-    DWORD dwOverallPercentage;
-};
-
-struct BA_ONCACHEPAYLOADEXTRACTPROGRESS_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONCACHEVERIFYBEGIN_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageOrContainerId;
-    LPCWSTR wzPayloadId;
-};
-
-struct BA_ONCACHEVERIFYBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONCACHEVERIFYCOMPLETE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageOrContainerId;
-    LPCWSTR wzPayloadId;
-    HRESULT hrStatus;
-    BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION recommendation;
-};
-
-struct BA_ONCACHEVERIFYCOMPLETE_RESULTS
-{
-    DWORD cbSize;
-    BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION action;
-};
-
-struct BA_ONCACHEVERIFYPROGRESS_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageOrContainerId;
-    LPCWSTR wzPayloadId;
-    DWORD64 dw64Progress;
-    DWORD64 dw64Total;
-    DWORD dwOverallPercentage;
-    BOOTSTRAPPER_CACHE_VERIFY_STEP verifyStep;
-};
-
-struct BA_ONCACHEVERIFYPROGRESS_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONCOMMITMSITRANSACTIONBEGIN_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzTransactionId;
-};
-
-struct BA_ONCOMMITMSITRANSACTIONBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONCOMMITMSITRANSACTIONCOMPLETE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzTransactionId;
-    HRESULT hrStatus;
-};
-
-struct BA_ONCOMMITMSITRANSACTIONCOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONDETECTBEGIN_ARGS
-{
-    DWORD cbSize;
-    BOOL fInstalled;
-    DWORD cPackages;
-    BOOL fCached;
-};
-
-struct BA_ONDETECTBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONDETECTCOMPLETE_ARGS
-{
-    DWORD cbSize;
-    HRESULT hrStatus;
-    BOOL fEligibleForCleanup;
-};
-
-struct BA_ONDETECTCOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONDETECTFORWARDCOMPATIBLEBUNDLE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzBundleId;
-    BOOTSTRAPPER_RELATION_TYPE relationType;
-    LPCWSTR wzBundleTag;
-    BOOL fPerMachine;
-    LPCWSTR wzVersion;
-    BOOL fMissingFromCache;
-};
-
-struct BA_ONDETECTFORWARDCOMPATIBLEBUNDLE_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONDETECTMSIFEATURE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    LPCWSTR wzFeatureId;
-    BOOTSTRAPPER_FEATURE_STATE state;
-};
-
-struct BA_ONDETECTMSIFEATURE_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONDETECTPACKAGEBEGIN_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-};
-
-struct BA_ONDETECTPACKAGEBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONDETECTPACKAGECOMPLETE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    HRESULT hrStatus;
-    BOOTSTRAPPER_PACKAGE_STATE state;
-    BOOL fCached;
-};
-
-struct BA_ONDETECTPACKAGECOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONDETECTRELATEDBUNDLE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzBundleId;
-    BOOTSTRAPPER_RELATION_TYPE relationType;
-    LPCWSTR wzBundleTag;
-    BOOL fPerMachine;
-    LPCWSTR wzVersion;
-    BOOTSTRAPPER_RELATED_OPERATION operation;
-    BOOL fMissingFromCache;
-};
-
-struct BA_ONDETECTRELATEDBUNDLE_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONDETECTRELATEDMSIPACKAGE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    LPCWSTR wzUpgradeCode;
-    LPCWSTR wzProductCode;
-    BOOL fPerMachine;
-    LPCWSTR wzVersion;
-    BOOTSTRAPPER_RELATED_OPERATION operation;
-};
-
-struct BA_ONDETECTRELATEDMSIPACKAGE_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONDETECTPATCHTARGET_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    LPCWSTR wzProductCode;
-    BOOTSTRAPPER_PACKAGE_STATE patchState;
-};
-
-struct BA_ONDETECTPATCHTARGET_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONDETECTUPDATE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzUpdateLocation;
-    DWORD64 dw64Size;
-    LPCWSTR wzVersion;
-    LPCWSTR wzTitle;
-    LPCWSTR wzSummary;
-    LPCWSTR wzContentType;
-    LPCWSTR wzContent;
-};
-
-struct BA_ONDETECTUPDATE_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-    BOOL fStopProcessingUpdates;
-};
-
-struct BA_ONDETECTUPDATEBEGIN_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzUpdateLocation;
-};
-
-struct BA_ONDETECTUPDATEBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-    BOOL fSkip;
-};
-
-struct BA_ONDETECTUPDATECOMPLETE_ARGS
-{
-    DWORD cbSize;
-    HRESULT hrStatus;
-};
-
-struct BA_ONDETECTUPDATECOMPLETE_RESULTS
-{
-    DWORD cbSize;
-    BOOL fIgnoreError;
-};
-
-struct BA_ONELEVATEBEGIN_ARGS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONELEVATEBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONELEVATECOMPLETE_ARGS
-{
-    DWORD cbSize;
-    HRESULT hrStatus;
-};
-
-struct BA_ONELEVATECOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONERROR_ARGS
-{
-    DWORD cbSize;
-    BOOTSTRAPPER_ERROR_TYPE errorType;
-    LPCWSTR wzPackageId;
-    DWORD dwCode;
-    LPCWSTR wzError;
-    DWORD dwUIHint;
-    DWORD cData;
-    LPCWSTR* rgwzData;
-    int nRecommendation;
-};
-
-struct BA_ONERROR_RESULTS
-{
-    DWORD cbSize;
-    int nResult;
-};
-
-struct BA_ONEXECUTEBEGIN_ARGS
-{
-    DWORD cbSize;
-    DWORD cExecutingPackages;
-};
-
-struct BA_ONEXECUTEBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONEXECUTECOMPLETE_ARGS
-{
-    DWORD cbSize;
-    HRESULT hrStatus;
-};
-
-struct BA_ONEXECUTECOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONEXECUTEFILESINUSE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    DWORD cFiles;
-    LPCWSTR* rgwzFiles;
-    int nRecommendation;
-};
-
-struct BA_ONEXECUTEFILESINUSE_RESULTS
-{
-    DWORD cbSize;
-    int nResult;
-};
-
-struct BA_ONEXECUTEMSIMESSAGE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    INSTALLMESSAGE messageType;
-    DWORD dwUIHint;
-    LPCWSTR wzMessage;
-    DWORD cData;
-    LPCWSTR* rgwzData;
-    int nRecommendation;
-};
-
-struct BA_ONEXECUTEMSIMESSAGE_RESULTS
-{
-    DWORD cbSize;
-    int nResult;
-};
-
-struct BA_ONEXECUTEPACKAGEBEGIN_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    BOOL fExecute; // false means rollback.
-    BOOTSTRAPPER_ACTION_STATE action;
-    INSTALLUILEVEL uiLevel;
-    BOOL fDisableExternalUiHandler;
-};
-
-struct BA_ONEXECUTEPACKAGEBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONEXECUTEPACKAGECOMPLETE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    HRESULT hrStatus;
-    // Indicates whether this package requires a reboot or initiated the reboot already.
-    BOOTSTRAPPER_APPLY_RESTART restart;
-    BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION recommendation;
-};
-
-struct BA_ONEXECUTEPACKAGECOMPLETE_RESULTS
-{
-    DWORD cbSize;
-    BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION action;
-};
-
-struct BA_ONEXECUTEPATCHTARGET_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    LPCWSTR wzTargetProductCode;
-};
-
-struct BA_ONEXECUTEPATCHTARGET_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONEXECUTEPROGRESS_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    DWORD dwProgressPercentage;
-    DWORD dwOverallPercentage;
-};
-
-struct BA_ONEXECUTEPROGRESS_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONLAUNCHAPPROVEDEXEBEGIN_ARGS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONLAUNCHAPPROVEDEXEBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONLAUNCHAPPROVEDEXECOMPLETE_ARGS
-{
-    DWORD cbSize;
-    HRESULT hrStatus;
-    // Only valid if the operation succeeded.
-    DWORD dwProcessId;
-};
-
-struct BA_ONLAUNCHAPPROVEDEXECOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONPAUSEAUTOMATICUPDATESBEGIN_ARGS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONPAUSEAUTOMATICUPDATESBEGIN_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_ARGS
-{
-    DWORD cbSize;
-    HRESULT hrStatus;
-};
-
-struct BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONPLANBEGIN_ARGS
-{
-    DWORD cbSize;
-    DWORD cPackages;
-};
-
-struct BA_ONPLANBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONPLANCOMPLETE_ARGS
-{
-    DWORD cbSize;
-    HRESULT hrStatus;
-};
-
-struct BA_ONPLANCOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONPLANFORWARDCOMPATIBLEBUNDLE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzBundleId;
-    BOOTSTRAPPER_RELATION_TYPE relationType;
-    LPCWSTR wzBundleTag;
-    BOOL fPerMachine;
-    LPCWSTR wzVersion;
-    BOOL fRecommendedIgnoreBundle;
-};
-
-struct BA_ONPLANFORWARDCOMPATIBLEBUNDLE_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-    BOOL fIgnoreBundle;
-};
-
-struct BA_ONPLANMSIFEATURE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    LPCWSTR wzFeatureId;
-    BOOTSTRAPPER_FEATURE_STATE recommendedState;
-};
-
-struct BA_ONPLANMSIFEATURE_RESULTS
-{
-    DWORD cbSize;
-    BOOTSTRAPPER_FEATURE_STATE requestedState;
-    BOOL fCancel;
-};
-
-struct BA_ONPLANMSIPACKAGE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    BOOL fExecute; // false means rollback.
-    BOOTSTRAPPER_ACTION_STATE action;
-};
-
-struct BA_ONPLANMSIPACKAGE_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-    BURN_MSI_PROPERTY actionMsiProperty;
-    INSTALLUILEVEL uiLevel;
-    BOOL fDisableExternalUiHandler;
-};
-
-struct BA_ONPLANNEDPACKAGE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    BOOTSTRAPPER_ACTION_STATE execute;
-    BOOTSTRAPPER_ACTION_STATE rollback;
-    BOOL fPlannedCache;
-    BOOL fPlannedUncache;
-};
-
-struct BA_ONPLANNEDPACKAGE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONPLANPACKAGEBEGIN_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    BOOTSTRAPPER_PACKAGE_STATE state;
-    BOOL fCached;
-    BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition;
-    BOOTSTRAPPER_REQUEST_STATE recommendedState;
-    BOOTSTRAPPER_CACHE_TYPE recommendedCacheType;
-};
-
-struct BA_ONPLANPACKAGEBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-    BOOTSTRAPPER_REQUEST_STATE requestedState;
-    BOOTSTRAPPER_CACHE_TYPE requestedCacheType;
-};
-
-struct BA_ONPLANPACKAGECOMPLETE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    HRESULT hrStatus;
-    BOOTSTRAPPER_REQUEST_STATE requested;
-};
-
-struct BA_ONPLANPACKAGECOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONPLANRELATEDBUNDLE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzBundleId;
-    BOOTSTRAPPER_REQUEST_STATE recommendedState;
-};
-
-struct BA_ONPLANRELATEDBUNDLE_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-    BOOTSTRAPPER_REQUEST_STATE requestedState;
-};
-
-struct BA_ONPLANPATCHTARGET_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageId;
-    LPCWSTR wzProductCode;
-    BOOTSTRAPPER_REQUEST_STATE recommendedState;
-};
-
-struct BA_ONPLANPATCHTARGET_RESULTS
-{
-    DWORD cbSize;
-    BOOTSTRAPPER_REQUEST_STATE requestedState;
-    BOOL fCancel;
-};
-
-struct BA_ONPROGRESS_ARGS
-{
-    DWORD cbSize;
-    DWORD dwProgressPercentage;
-    DWORD dwOverallPercentage;
-};
-
-struct BA_ONPROGRESS_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONREGISTERBEGIN_ARGS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONREGISTERBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONREGISTERCOMPLETE_ARGS
-{
-    DWORD cbSize;
-    HRESULT hrStatus;
-};
-
-struct BA_ONREGISTERCOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONROLLBACKMSITRANSACTIONBEGIN_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzTransactionId;
-};
-
-struct BA_ONROLLBACKMSITRANSACTIONBEGIN_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONROLLBACKMSITRANSACTIONCOMPLETE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzTransactionId;
-    HRESULT hrStatus;
-};
-
-struct BA_ONROLLBACKMSITRANSACTIONCOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONSHUTDOWN_ARGS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONSHUTDOWN_RESULTS
-{
-    DWORD cbSize;
-    BOOTSTRAPPER_SHUTDOWN_ACTION action;
-};
-
-struct BA_ONSTARTUP_ARGS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONSTARTUP_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONSYSTEMRESTOREPOINTBEGIN_ARGS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONSYSTEMRESTOREPOINTBEGIN_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONSYSTEMRESTOREPOINTCOMPLETE_ARGS
-{
-    DWORD cbSize;
-    HRESULT hrStatus;
-};
-
-struct BA_ONSYSTEMRESTOREPOINTCOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-struct BA_ONSYSTEMSHUTDOWN_ARGS
-{
-    DWORD cbSize;
-    DWORD dwEndSession;
-};
-
-struct BA_ONSYSTEMSHUTDOWN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fCancel;
-};
-
-struct BA_ONUNREGISTERBEGIN_ARGS
-{
-    DWORD cbSize;
-    BOOL fKeepRegistration;
-};
-
-struct BA_ONUNREGISTERBEGIN_RESULTS
-{
-    DWORD cbSize;
-    BOOL fForceKeepRegistration;
-};
-
-struct BA_ONUNREGISTERCOMPLETE_ARGS
-{
-    DWORD cbSize;
-    HRESULT hrStatus;
-};
-
-struct BA_ONUNREGISTERCOMPLETE_RESULTS
-{
-    DWORD cbSize;
-};
-
-
-
-extern "C" typedef HRESULT(WINAPI *PFN_BOOTSTRAPPER_APPLICATION_PROC)(
-    __in BOOTSTRAPPER_APPLICATION_MESSAGE message,
-    __in const LPVOID pvArgs,
-    __inout LPVOID pvResults,
-    __in_opt LPVOID pvContext
-    );
-
-extern "C" typedef void (WINAPI *PFN_BOOTSTRAPPER_APPLICATION_DESTROY)();
-
-
-
-struct BOOTSTRAPPER_CREATE_ARGS
-{
-    DWORD cbSize;
-    DWORD64 qwEngineAPIVersion;
-    PFN_BOOTSTRAPPER_ENGINE_PROC pfnBootstrapperEngineProc;
-    LPVOID pvBootstrapperEngineProcContext;
-    BOOTSTRAPPER_COMMAND* pCommand;
-};
-
-struct BOOTSTRAPPER_CREATE_RESULTS
-{
-    DWORD cbSize;
-    PFN_BOOTSTRAPPER_APPLICATION_PROC pfnBootstrapperApplicationProc;
-    LPVOID pvBootstrapperApplicationProcContext;
-    BOOL fDisableUnloading; // indicates the BA dll must not be unloaded after BootstrapperApplicationDestroy.
-};
-
-extern "C" typedef HRESULT(WINAPI *PFN_BOOTSTRAPPER_APPLICATION_CREATE)(
-    __in const BOOTSTRAPPER_CREATE_ARGS* pArgs,
-    __inout BOOTSTRAPPER_CREATE_RESULTS* pResults
-    );
diff --git a/src/WixToolset.BootstrapperCore.Native/inc/BootstrapperEngine.h b/src/WixToolset.BootstrapperCore.Native/inc/BootstrapperEngine.h
deleted file mode 100644
index 9c9b38a5..00000000
--- a/src/WixToolset.BootstrapperCore.Native/inc/BootstrapperEngine.h
+++ /dev/null
@@ -1,442 +0,0 @@
-#pragma once
-// 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.
-
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define IDERROR -1
-#define IDNOACTION 0
-
-#ifndef FACILITY_WIX
-#define FACILITY_WIX 500
-#endif
-
-static const HRESULT E_SUSPECTED_AV_INTERFERENCE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIX, 2000);
-
-// Note that ordering of the enumeration values is important.
-// Some code paths use < or > comparisions and simply reording values will break those comparisons.
-enum BOOTSTRAPPER_ACTION
-{
-    BOOTSTRAPPER_ACTION_UNKNOWN,
-    BOOTSTRAPPER_ACTION_HELP,
-    BOOTSTRAPPER_ACTION_LAYOUT,
-    BOOTSTRAPPER_ACTION_UNINSTALL,
-    BOOTSTRAPPER_ACTION_CACHE,
-    BOOTSTRAPPER_ACTION_INSTALL,
-    BOOTSTRAPPER_ACTION_MODIFY,
-    BOOTSTRAPPER_ACTION_REPAIR,
-    BOOTSTRAPPER_ACTION_UPDATE_REPLACE,
-    BOOTSTRAPPER_ACTION_UPDATE_REPLACE_EMBEDDED,
-};
-
-enum BOOTSTRAPPER_ACTION_STATE
-{
-    BOOTSTRAPPER_ACTION_STATE_NONE,
-    BOOTSTRAPPER_ACTION_STATE_UNINSTALL,
-    BOOTSTRAPPER_ACTION_STATE_INSTALL,
-    BOOTSTRAPPER_ACTION_STATE_MODIFY,
-    BOOTSTRAPPER_ACTION_STATE_MEND,
-    BOOTSTRAPPER_ACTION_STATE_REPAIR,
-    BOOTSTRAPPER_ACTION_STATE_MINOR_UPGRADE,
-};
-
-enum BOOTSTRAPPER_PACKAGE_STATE
-{
-    BOOTSTRAPPER_PACKAGE_STATE_UNKNOWN,
-    BOOTSTRAPPER_PACKAGE_STATE_OBSOLETE,
-    BOOTSTRAPPER_PACKAGE_STATE_ABSENT,
-    BOOTSTRAPPER_PACKAGE_STATE_PRESENT,
-    BOOTSTRAPPER_PACKAGE_STATE_SUPERSEDED,
-};
-
-enum BOOTSTRAPPER_REQUEST_STATE
-{
-    BOOTSTRAPPER_REQUEST_STATE_NONE,
-    BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT,
-    BOOTSTRAPPER_REQUEST_STATE_ABSENT,
-    BOOTSTRAPPER_REQUEST_STATE_CACHE,
-    BOOTSTRAPPER_REQUEST_STATE_PRESENT,
-    BOOTSTRAPPER_REQUEST_STATE_MEND,
-    BOOTSTRAPPER_REQUEST_STATE_REPAIR,
-};
-
-enum BOOTSTRAPPER_FEATURE_STATE
-{
-    BOOTSTRAPPER_FEATURE_STATE_UNKNOWN,
-    BOOTSTRAPPER_FEATURE_STATE_ABSENT,
-    BOOTSTRAPPER_FEATURE_STATE_ADVERTISED,
-    BOOTSTRAPPER_FEATURE_STATE_LOCAL,
-    BOOTSTRAPPER_FEATURE_STATE_SOURCE,
-};
-
-enum BOOTSTRAPPER_LOG_LEVEL
-{
-    BOOTSTRAPPER_LOG_LEVEL_NONE,      // turns off report (only valid for XXXSetLevel())
-    BOOTSTRAPPER_LOG_LEVEL_STANDARD,  // written if reporting is on
-    BOOTSTRAPPER_LOG_LEVEL_VERBOSE,   // written only if verbose reporting is on
-    BOOTSTRAPPER_LOG_LEVEL_DEBUG,     // reporting useful when debugging code
-    BOOTSTRAPPER_LOG_LEVEL_ERROR,     // always gets reported, but can never be specified
-};
-
-enum BOOTSTRAPPER_UPDATE_HASH_TYPE
-{
-    BOOTSTRAPPER_UPDATE_HASH_TYPE_NONE,
-    BOOTSTRAPPER_UPDATE_HASH_TYPE_SHA512,
-};
-
-enum BOOTSTRAPPER_ENGINE_MESSAGE
-{
-    BOOTSTRAPPER_ENGINE_MESSAGE_GETPACKAGECOUNT,
-    BOOTSTRAPPER_ENGINE_MESSAGE_GETVARIABLENUMERIC,
-    BOOTSTRAPPER_ENGINE_MESSAGE_GETVARIABLESTRING,
-    BOOTSTRAPPER_ENGINE_MESSAGE_GETVARIABLEVERSION,
-    BOOTSTRAPPER_ENGINE_MESSAGE_FORMATSTRING,
-    BOOTSTRAPPER_ENGINE_MESSAGE_ESCAPESTRING,
-    BOOTSTRAPPER_ENGINE_MESSAGE_EVALUATECONDITION,
-    BOOTSTRAPPER_ENGINE_MESSAGE_LOG,
-    BOOTSTRAPPER_ENGINE_MESSAGE_SENDEMBEDDEDERROR,
-    BOOTSTRAPPER_ENGINE_MESSAGE_SENDEMBEDDEDPROGRESS,
-    BOOTSTRAPPER_ENGINE_MESSAGE_SETUPDATE,
-    BOOTSTRAPPER_ENGINE_MESSAGE_SETLOCALSOURCE,
-    BOOTSTRAPPER_ENGINE_MESSAGE_SETDOWNLOADSOURCE,
-    BOOTSTRAPPER_ENGINE_MESSAGE_SETVARIABLENUMERIC,
-    BOOTSTRAPPER_ENGINE_MESSAGE_SETVARIABLESTRING,
-    BOOTSTRAPPER_ENGINE_MESSAGE_SETVARIABLEVERSION,
-    BOOTSTRAPPER_ENGINE_MESSAGE_CLOSESPLASHSCREEN,
-    BOOTSTRAPPER_ENGINE_MESSAGE_DETECT,
-    BOOTSTRAPPER_ENGINE_MESSAGE_PLAN,
-    BOOTSTRAPPER_ENGINE_MESSAGE_ELEVATE,
-    BOOTSTRAPPER_ENGINE_MESSAGE_APPLY,
-    BOOTSTRAPPER_ENGINE_MESSAGE_QUIT,
-    BOOTSTRAPPER_ENGINE_MESSAGE_LAUNCHAPPROVEDEXE,
-    BOOTSTRAPPER_ENGINE_MESSAGE_SETUPDATESOURCE,
-    BOOTSTRAPPER_ENGINE_MESSAGE_COMPAREVERSIONS,
-};
-
-typedef struct _BAENGINE_APPLY_ARGS
-{
-    DWORD cbSize;
-    HWND hwndParent;
-} BAENGINE_APPLY_ARGS;
-
-typedef struct _BAENGINE_APPLY_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_APPLY_RESULTS;
-
-typedef struct _BAENGINE_CLOSESPLASHSCREEN_ARGS
-{
-    DWORD cbSize;
-} BAENGINE_CLOSESPLASHSCREEN_ARGS;
-
-typedef struct _BAENGINE_CLOSESPLASHSCREEN_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_CLOSESPLASHSCREEN_RESULTS;
-
-typedef struct _BAENGINE_COMPAREVERSIONS_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzVersion1;
-    LPCWSTR wzVersion2;
-} BAENGINE_COMPAREVERSIONS_ARGS;
-
-typedef struct _BAENGINE_COMPAREVERSIONS_RESULTS
-{
-    DWORD cbSize;
-    int nResult;
-} BAENGINE_COMPAREVERSIONS_RESULTS;
-
-typedef struct _BAENGINE_DETECT_ARGS
-{
-    DWORD cbSize;
-    HWND hwndParent;
-} BAENGINE_DETECT_ARGS;
-
-typedef struct _BAENGINE_DETECT_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_DETECT_RESULTS;
-
-typedef struct _BAENGINE_ELEVATE_ARGS
-{
-    DWORD cbSize;
-    HWND hwndParent;
-} BAENGINE_ELEVATE_ARGS;
-
-typedef struct _BAENGINE_ELEVATE_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_ELEVATE_RESULTS;
-
-typedef struct _BAENGINE_ESCAPESTRING_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzIn;
-} BAENGINE_ESCAPESTRING_ARGS;
-
-typedef struct _BAENGINE_ESCAPESTRING_RESULTS
-{
-    DWORD cbSize;
-    LPWSTR wzOut;
-    // Should be initialized to the size of wzOut.
-    SIZE_T cchOut;
-} BAENGINE_ESCAPESTRING_RESULTS;
-
-typedef struct _BAENGINE_EVALUATECONDITION_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzCondition;
-} BAENGINE_EVALUATECONDITION_ARGS;
-
-typedef struct _BAENGINE_EVALUATECONDITION_RESULTS
-{
-    DWORD cbSize;
-    BOOL f;
-} BAENGINE_EVALUATECONDITION_RESULTS;
-
-typedef struct _BAENGINE_FORMATSTRING_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzIn;
-} BAENGINE_FORMATSTRING_ARGS;
-
-typedef struct _BAENGINE_FORMATSTRING_RESULTS
-{
-    DWORD cbSize;
-    LPWSTR wzOut;
-    // Should be initialized to the size of wzOut.
-    SIZE_T cchOut;
-} BAENGINE_FORMATSTRING_RESULTS;
-
-typedef struct _BAENGINE_GETPACKAGECOUNT_ARGS
-{
-    DWORD cbSize;
-} BAENGINE_GETPACKAGECOUNT_ARGS;
-
-typedef struct _BAENGINE_GETPACKAGECOUNT_RESULTS
-{
-    DWORD cbSize;
-    DWORD cPackages;
-} BAENGINE_GETPACKAGECOUNT_RESULTS;
-
-typedef struct _BAENGINE_GETVARIABLENUMERIC_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzVariable;
-} BAENGINE_GETVARIABLENUMERIC_ARGS;
-
-typedef struct _BAENGINE_GETVARIABLENUMERIC_RESULTS
-{
-    DWORD cbSize;
-    LONGLONG llValue;
-} BAENGINE_GETVARIABLENUMERIC_RESULTS;
-
-typedef struct _BAENGINE_GETVARIABLESTRING_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzVariable;
-} BAENGINE_GETVARIABLESTRING_ARGS;
-
-typedef struct _BAENGINE_GETVARIABLESTRING_RESULTS
-{
-    DWORD cbSize;
-    LPWSTR wzValue;
-    // Should be initialized to the size of wzValue.
-    SIZE_T cchValue;
-} BAENGINE_GETVARIABLESTRING_RESULTS;
-
-typedef struct _BAENGINE_GETVARIABLEVERSION_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzVariable;
-} BAENGINE_GETVARIABLEVERSION_ARGS;
-
-typedef struct _BAENGINE_GETVARIABLEVERSION_RESULTS
-{
-    DWORD cbSize;
-    LPWSTR wzValue;
-    // Should be initialized to the size of wzValue.
-    SIZE_T cchValue;
-} BAENGINE_GETVARIABLEVERSION_RESULTS;
-
-typedef struct _BAENGINE_LAUNCHAPPROVEDEXE_ARGS
-{
-    DWORD cbSize;
-    HWND hwndParent;
-    LPCWSTR wzApprovedExeForElevationId;
-    LPCWSTR wzArguments;
-    DWORD dwWaitForInputIdleTimeout;
-} BAENGINE_LAUNCHAPPROVEDEXE_ARGS;
-
-typedef struct _BAENGINE_LAUNCHAPPROVEDEXE_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_LAUNCHAPPROVEDEXE_RESULTS;
-
-typedef struct _BAENGINE_SETUPDATESOURCE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzUrl;
-} BAENGINE_SETUPDATESOURCE_ARGS;
-
-typedef struct _BAENGINE_SETUPDATESOURCE_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_SETUPDATESOURCE_RESULTS;
-
-typedef struct _BAENGINE_LOG_ARGS
-{
-    DWORD cbSize;
-    BOOTSTRAPPER_LOG_LEVEL level;
-    LPCWSTR wzMessage;
-} BAENGINE_LOG_ARGS;
-
-typedef struct _BAENGINE_LOG_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_LOG_RESULTS;
-
-typedef struct _BAENGINE_PLAN_ARGS
-{
-    DWORD cbSize;
-    BOOTSTRAPPER_ACTION action;
-} BAENGINE_PLAN_ARGS;
-
-typedef struct _BAENGINE_PLAN_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_PLAN_RESULTS;
-
-typedef struct _BAENGINE_QUIT_ARGS
-{
-    DWORD cbSize;
-    DWORD dwExitCode;
-} BAENGINE_QUIT_ARGS;
-
-typedef struct _BAENGINE_QUIT_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_QUIT_RESULTS;
-
-typedef struct _BAENGINE_SENDEMBEDDEDERROR_ARGS
-{
-    DWORD cbSize;
-    DWORD dwErrorCode;
-    LPCWSTR wzMessage;
-    DWORD dwUIHint;
-} BAENGINE_SENDEMBEDDEDERROR_ARGS;
-
-typedef struct _BAENGINE_SENDEMBEDDEDERROR_RESULTS
-{
-    DWORD cbSize;
-    int nResult;
-} BAENGINE_SENDEMBEDDEDERROR_RESULTS;
-
-typedef struct _BAENGINE_SENDEMBEDDEDPROGRESS_ARGS
-{
-    DWORD cbSize;
-    DWORD dwProgressPercentage;
-    DWORD dwOverallProgressPercentage;
-} BAENGINE_SENDEMBEDDEDPROGRESS_ARGS;
-
-typedef struct _BAENGINE_SENDEMBEDDEDPROGRESS_RESULTS
-{
-    DWORD cbSize;
-    int nResult;
-} BAENGINE_SENDEMBEDDEDPROGRESS_RESULTS;
-
-typedef struct _BAENGINE_SETDOWNLOADSOURCE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageOrContainerId;
-    LPCWSTR wzPayloadId;
-    LPCWSTR wzUrl;
-    LPCWSTR wzUser;
-    LPCWSTR wzPassword;
-} BAENGINE_SETDOWNLOADSOURCE_ARGS;
-
-typedef struct _BAENGINE_SETDOWNLOADSOURCE_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_SETDOWNLOADSOURCE_RESULTS;
-
-typedef struct _BAENGINE_SETLOCALSOURCE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzPackageOrContainerId;
-    LPCWSTR wzPayloadId;
-    LPCWSTR wzPath;
-} BAENGINE_SETLOCALSOURCE_ARGS;
-
-typedef struct _BAENGINE_SETLOCALSOURCE_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_SETLOCALSOURCE_RESULTS;
-
-typedef struct _BAENGINE_SETUPDATE_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzLocalSource;
-    LPCWSTR wzDownloadSource;
-    DWORD64 qwSize;
-    BOOTSTRAPPER_UPDATE_HASH_TYPE hashType;
-    BYTE* rgbHash;
-    DWORD cbHash;
-} BAENGINE_SETUPDATE_ARGS;
-
-typedef struct _BAENGINE_SETUPDATE_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_SETUPDATE_RESULTS;
-
-typedef struct _BAENGINE_SETVARIABLENUMERIC_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzVariable;
-    LONGLONG llValue;
-} BAENGINE_SETVARIABLENUMERIC_ARGS;
-
-typedef struct _BAENGINE_SETVARIABLENUMERIC_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_SETVARIABLENUMERIC_RESULTS;
-
-typedef struct _BAENGINE_SETVARIABLESTRING_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzVariable;
-    LPCWSTR wzValue;
-    BOOL fFormatted;
-} BAENGINE_SETVARIABLESTRING_ARGS;
-
-typedef struct _BAENGINE_SETVARIABLESTRING_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_SETVARIABLESTRING_RESULTS;
-
-typedef struct _BAENGINE_SETVARIABLEVERSION_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzVariable;
-    LPCWSTR wzValue;
-} BAENGINE_SETVARIABLEVERSION_ARGS;
-
-typedef struct _BAENGINE_SETVARIABLEVERSION_RESULTS
-{
-    DWORD cbSize;
-} BAENGINE_SETVARIABLEVERSION_RESULTS;
-
-
-extern "C" typedef HRESULT(WINAPI *PFN_BOOTSTRAPPER_ENGINE_PROC)(
-    __in BOOTSTRAPPER_ENGINE_MESSAGE message,
-    __in const LPVOID pvArgs,
-    __inout LPVOID pvResults,
-    __in_opt LPVOID pvContext
-    );
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/src/WixToolset.BootstrapperCore.Native/inc/BundleExtension.h b/src/WixToolset.BootstrapperCore.Native/inc/BundleExtension.h
deleted file mode 100644
index be76a1a5..00000000
--- a/src/WixToolset.BootstrapperCore.Native/inc/BundleExtension.h
+++ /dev/null
@@ -1,60 +0,0 @@
-#pragma once
-// 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.
-
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-enum BUNDLE_EXTENSION_MESSAGE
-{
-    BUNDLE_EXTENSION_MESSAGE_SEARCH,
-};
-
-typedef struct _BUNDLE_EXTENSION_SEARCH_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzId;
-    LPCWSTR wzVariable;
-} BUNDLE_EXTENSION_SEARCH_ARGS;
-
-typedef struct _BUNDLE_EXTENSION_SEARCH_RESULTS
-{
-    DWORD cbSize;
-} BUNDLE_EXTENSION_SEARCH_RESULTS;
-
-extern "C" typedef HRESULT(WINAPI *PFN_BUNDLE_EXTENSION_PROC)(
-    __in BUNDLE_EXTENSION_MESSAGE message,
-    __in const LPVOID pvArgs,
-    __inout LPVOID pvResults,
-    __in_opt LPVOID pvContext
-    );
-
-typedef struct _BUNDLE_EXTENSION_CREATE_ARGS
-{
-    DWORD cbSize;
-    DWORD64 qwEngineAPIVersion;
-    PFN_BUNDLE_EXTENSION_ENGINE_PROC pfnBundleExtensionEngineProc;
-    LPVOID pvBundleExtensionEngineProcContext;
-    LPCWSTR wzBootstrapperWorkingFolder;
-    LPCWSTR wzBundleExtensionDataPath;
-    LPCWSTR wzExtensionId;
-} BUNDLE_EXTENSION_CREATE_ARGS;
-
-typedef struct _BUNDLE_EXTENSION_CREATE_RESULTS
-{
-    DWORD cbSize;
-    PFN_BUNDLE_EXTENSION_PROC pfnBundleExtensionProc;
-    LPVOID pvBundleExtensionProcContext;
-} BUNDLE_EXTENSION_CREATE_RESULTS;
-
-extern "C" typedef HRESULT(WINAPI *PFN_BUNDLE_EXTENSION_CREATE)(
-    __in const BUNDLE_EXTENSION_CREATE_ARGS* pArgs,
-    __inout BUNDLE_EXTENSION_CREATE_RESULTS* pResults
-    );
-
-extern "C" typedef void (WINAPI *PFN_BUNDLE_EXTENSION_DESTROY)();
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/src/WixToolset.BootstrapperCore.Native/inc/BundleExtensionEngine.h b/src/WixToolset.BootstrapperCore.Native/inc/BundleExtensionEngine.h
deleted file mode 100644
index b397ec16..00000000
--- a/src/WixToolset.BootstrapperCore.Native/inc/BundleExtensionEngine.h
+++ /dev/null
@@ -1,184 +0,0 @@
-#pragma once
-// 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.
-
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-enum BUNDLE_EXTENSION_LOG_LEVEL
-{
-    BUNDLE_EXTENSION_LOG_LEVEL_NONE,      // turns off report (only valid for XXXSetLevel())
-    BUNDLE_EXTENSION_LOG_LEVEL_STANDARD,  // written if reporting is on
-    BUNDLE_EXTENSION_LOG_LEVEL_VERBOSE,   // written only if verbose reporting is on
-    BUNDLE_EXTENSION_LOG_LEVEL_DEBUG,     // reporting useful when debugging code
-    BUNDLE_EXTENSION_LOG_LEVEL_ERROR,     // always gets reported, but can never be specified
-};
-
-enum BUNDLE_EXTENSION_ENGINE_MESSAGE
-{
-    BUNDLE_EXTENSION_ENGINE_MESSAGE_ESCAPESTRING,
-    BUNDLE_EXTENSION_ENGINE_MESSAGE_EVALUATECONDITION,
-    BUNDLE_EXTENSION_ENGINE_MESSAGE_FORMATSTRING,
-    BUNDLE_EXTENSION_ENGINE_MESSAGE_GETVARIABLENUMERIC,
-    BUNDLE_EXTENSION_ENGINE_MESSAGE_GETVARIABLESTRING,
-    BUNDLE_EXTENSION_ENGINE_MESSAGE_GETVARIABLEVERSION,
-    BUNDLE_EXTENSION_ENGINE_MESSAGE_LOG,
-    BUNDLE_EXTENSION_ENGINE_MESSAGE_SETVARIABLENUMERIC,
-    BUNDLE_EXTENSION_ENGINE_MESSAGE_SETVARIABLESTRING,
-    BUNDLE_EXTENSION_ENGINE_MESSAGE_SETVARIABLEVERSION,
-    BUNDLE_EXTENSION_ENGINE_MESSAGE_COMPAREVERSIONS,
-};
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_COMPAREVERSIONS_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzVersion1;
-    LPCWSTR wzVersion2;
-} BUNDLE_EXTENSION_ENGINE_COMPAREVERSIONS_ARGS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_COMPAREVERSIONS_RESULTS
-{
-    DWORD cbSize;
-    int nResult;
-} BUNDLE_EXTENSION_ENGINE_COMPAREVERSIONS_RESULTS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_ESCAPESTRING_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzIn;
-} BUNDLE_EXTENSION_ENGINE_ESCAPESTRING_ARGS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_ESCAPESTRING_RESULTS
-{
-    DWORD cbSize;
-    LPWSTR wzOut;
-    // Should be initialized to the size of wzOut.
-    SIZE_T cchOut;
-} BUNDLE_EXTENSION_ENGINE_ESCAPESTRING_RESULTS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_EVALUATECONDITION_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzCondition;
-} BUNDLE_EXTENSION_ENGINE_EVALUATECONDITION_ARGS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_EVALUATECONDITION_RESULTS
-{
-    DWORD cbSize;
-    BOOL f;
-} BUNDLE_EXTENSION_ENGINE_EVALUATECONDITION_RESULTS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_FORMATSTRING_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzIn;
-} BUNDLE_EXTENSION_ENGINE_FORMATSTRING_ARGS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_FORMATSTRING_RESULTS
-{
-    DWORD cbSize;
-    LPWSTR wzOut;
-    // Should be initialized to the size of wzOut.
-    SIZE_T cchOut;
-} BUNDLE_EXTENSION_ENGINE_FORMATSTRING_RESULTS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_GETVARIABLENUMERIC_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzVariable;
-} BUNDLE_EXTENSION_ENGINE_GETVARIABLENUMERIC_ARGS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_GETVARIABLENUMERIC_RESULTS
-{
-    DWORD cbSize;
-    LONGLONG llValue;
-} BUNDLE_EXTENSION_ENGINE_GETVARIABLENUMERIC_RESULTS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_GETVARIABLESTRING_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzVariable;
-} BUNDLE_EXTENSION_ENGINE_GETVARIABLESTRING_ARGS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_GETVARIABLESTRING_RESULTS
-{
-    DWORD cbSize;
-    LPWSTR wzValue;
-    // Should be initialized to the size of wzValue.
-    SIZE_T cchValue;
-} BUNDLE_EXTENSION_ENGINE_GETVARIABLESTRING_RESULTS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_GETVARIABLEVERSION_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzVariable;
-} BUNDLE_EXTENSION_ENGINE_GETVARIABLEVERSION_ARGS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_GETVARIABLEVERSION_RESULTS
-{
-    DWORD cbSize;
-    LPWSTR wzValue;
-    // Should be initialized to the size of wzValue.
-    SIZE_T cchValue;
-} BUNDLE_EXTENSION_ENGINE_GETVARIABLEVERSION_RESULTS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_LOG_ARGS
-{
-    DWORD cbSize;
-    BUNDLE_EXTENSION_LOG_LEVEL level;
-    LPCWSTR wzMessage;
-} BUNDLE_EXTENSION_ENGINE_LOG_ARGS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_LOG_RESULTS
-{
-    DWORD cbSize;
-} BUNDLE_EXTENSION_ENGINE_LOG_RESULTS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_SETVARIABLENUMERIC_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzVariable;
-    LONGLONG llValue;
-} BUNDLE_EXTENSION_ENGINE_SETVARIABLENUMERIC_ARGS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_SETVARIABLENUMERIC_RESULTS
-{
-    DWORD cbSize;
-} BUNDLE_EXTENSION_ENGINE_SETVARIABLENUMERIC_RESULTS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_SETVARIABLESTRING_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzVariable;
-    LPCWSTR wzValue;
-    BOOL fFormatted;
-} BUNDLE_EXTENSION_ENGINE_SETVARIABLESTRING_ARGS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_SETVARIABLESTRING_RESULTS
-{
-    DWORD cbSize;
-} BUNDLE_EXTENSION_ENGINE_SETVARIABLESTRING_RESULTS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_SETVARIABLEVERSION_ARGS
-{
-    DWORD cbSize;
-    LPCWSTR wzVariable;
-    LPCWSTR wzValue;
-} BUNDLE_EXTENSION_ENGINE_SETVARIABLEVERSION_ARGS;
-
-typedef struct _BUNDLE_EXTENSION_ENGINE_SETVARIABLEVERSION_RESULTS
-{
-    DWORD cbSize;
-} BUNDLE_EXTENSION_ENGINE_SETVARIABLEVERSION_RESULTS;
-
-extern "C" typedef HRESULT(WINAPI *PFN_BUNDLE_EXTENSION_ENGINE_PROC)(
-    __in BUNDLE_EXTENSION_ENGINE_MESSAGE message,
-    __in const LPVOID pvArgs,
-    __inout LPVOID pvResults,
-    __in_opt LPVOID pvContext
-    );
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/src/engine/engine.vcxproj b/src/engine/engine.vcxproj
index 9e90ee19..b3a0f81b 100644
--- a/src/engine/engine.vcxproj
+++ b/src/engine/engine.vcxproj
@@ -1,7 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- 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. -->
+
 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" />
+  <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.57\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.57\build\WixToolset.BootstrapperCore.Native.props')" />
+  <Import Project="..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props')" />
+
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
@@ -28,6 +31,7 @@
       <Platform>ARM64</Platform>
     </ProjectConfiguration>
   </ItemGroup>
+
   <PropertyGroup Label="Globals">
     <ProjectGuid>{8119537D-E1D9-6591-D51A-49768A2F9C37}</ProjectGuid>
     <ConfigurationType>StaticLibrary</ConfigurationType>
@@ -36,12 +40,19 @@
     <CharacterSet>Unicode</CharacterSet>
     <Description>Native component of WixToolset.Burn</Description>
   </PropertyGroup>
+
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+
+  <PropertyGroup>
+    <ProjectAdditionalIncludeDirectories Condition=" '$(DirectReference)'=='true' ">$(ProjectDir)..\..\..\balutil\src\WixToolset.BootstrapperCore.Native\inc;$(ProjectAdditionalIncludeDirectories)</ProjectAdditionalIncludeDirectories>
+  </PropertyGroup>
+
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Label="Shared">
   </ImportGroup>
+
   <ItemGroup>
     <ClCompile Include="apply.cpp" />
     <ClCompile Include="approvedexe.cpp" />
@@ -136,6 +147,7 @@
   <ItemGroup>
     <None Include="packages.config" />
   </ItemGroup>
+
   <ItemGroup>
     <CustomBuild Include="engine.mc">
       <Message>Compiling message file...</Message>
@@ -144,6 +156,7 @@ rc.exe -fo "$(OutDir)engine.res" "$(IntDir)engine.messages.rc"</Command>
       <Outputs>$(IntDir)engine.messages.h;$(IntDir)engine.messages.rc;$(OutDir)engine.res</Outputs>
     </CustomBuild>
   </ItemGroup>
+
   <Target Name="SetWixVersion" DependsOnTargets="GetBuildVersion" BeforeTargets="ClCompile">
     <PropertyGroup>
       <rmj>$(MajorMinorVersion.Split(`.`)[0])</rmj>
@@ -153,6 +166,7 @@ rc.exe -fo "$(OutDir)engine.res" "$(IntDir)engine.messages.rc"</Command>
       <szVerMajorMinorBuild>$(rmj).$(rmm).$(rup).$(rpr)</szVerMajorMinorBuild>
       <wixver>rmj=$(rmj);rmm=$(rmm);rup=$(rup);rpr=$(rpr);szVerMajorMinorBuild="$(szVerMajorMinorBuild)"</wixver>
     </PropertyGroup>
+
     <ItemGroup>
       <ClCompile>
         <PreprocessorDefinitions>$(wixver);%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -166,6 +180,7 @@ rc.exe -fo "$(OutDir)engine.res" "$(IntDir)engine.messages.rc"</Command>
       <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>
     </PropertyGroup>
     <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" />
-    <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props'))" />
+    <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props'))" />
+    <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.57\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.57\build\WixToolset.BootstrapperCore.Native.props'))" />
   </Target>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/src/engine/precomp.h b/src/engine/precomp.h
index 4ab636fc..11b594da 100644
--- a/src/engine/precomp.h
+++ b/src/engine/precomp.h
@@ -55,10 +55,10 @@
 #include <apuputil.h>
 #include <dpiutil.h>
 
-#include "..\WixToolset.BootstrapperCore.Native\inc\BootstrapperEngine.h"
-#include "..\WixToolset.BootstrapperCore.Native\inc\BootstrapperApplication.h"
-#include "..\WixToolset.BootstrapperCore.Native\inc\BundleExtensionEngine.h"
-#include "..\WixToolset.BootstrapperCore.Native\inc\BundleExtension.h"
+#include "BootstrapperEngine.h"
+#include "BootstrapperApplication.h"
+#include "BundleExtensionEngine.h"
+#include "BundleExtension.h"
 
 #include "platform.h"
 #include "variant.h"
diff --git a/src/stub/WixToolset.Burn.nuspec b/src/stub/WixToolset.Burn.nuspec
deleted file mode 100644
index f314a8a4..00000000
--- a/src/stub/WixToolset.Burn.nuspec
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0"?>
-<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
-  <metadata minClientVersion="4.0">
-    <id>$id$</id>
-    <version>$version$</version>
-    <authors>$authors$</authors>
-    <owners>$authors$</owners>
-    <license type="expression">MS-RL</license>
-    <projectUrl>https://github.com/wixtoolset/burn</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>$description$</description>
-    <copyright>$copyright$</copyright>
-  </metadata>
-
-  <files>
-    <file src="$projectFolder$$id$.props" target="buildTransitive" />
-    <file src="Win32\burn.exe" target="tools\x86" />
-    <file src="Win32\burn.pdb" target="tools\x86" />
-    <file src="x64\burn.exe" target="tools\x64" />
-    <file src="x64\burn.pdb" target="tools\x64" />
-    <file src="arm64\burn.exe" target="tools\arm64" />
-    <file src="arm64\burn.pdb" target="tools\arm64" />
-  </files>
-</package>
diff --git a/src/test/BurnUnitTest/BurnUnitTest.vcxproj b/src/test/BurnUnitTest/BurnUnitTest.vcxproj
index 99db505d..33c8ed6c 100644
--- a/src/test/BurnUnitTest/BurnUnitTest.vcxproj
+++ b/src/test/BurnUnitTest/BurnUnitTest.vcxproj
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- 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. -->
 
-
 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" />
-  <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.props" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.props')" />
+  <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.57\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.57\build\WixToolset.BootstrapperCore.Native.props')" />
+  <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props')" />
+  <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" />
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|ARM64">
       <Configuration>Debug</Configuration>
@@ -23,6 +23,7 @@
       <Platform>Win32</Platform>
     </ProjectConfiguration>
   </ItemGroup>
+
   <PropertyGroup Label="Globals">
     <ProjectTypes>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}</ProjectTypes>
     <ProjectGuid>{9D1F1BA3-9393-4833-87A3-D5F1FC08EF67}</ProjectGuid>
@@ -31,13 +32,18 @@
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <CLRSupport>true</CLRSupport>
+    <SignOutput>false</SignOutput>
   </PropertyGroup>
+
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+
   <PropertyGroup>
-    <ProjectAdditionalIncludeDirectories>..\..\engine;..\..\WixToolset.BootstrapperCore.Native\inc</ProjectAdditionalIncludeDirectories>
+    <ProjectAdditionalIncludeDirectories Condition=" '$(DirectReference)'=='true' ">$(ProjectDir)..\..\..\..\balutil\src\WixToolset.BootstrapperCore.Native\inc</ProjectAdditionalIncludeDirectories>
+    <ProjectAdditionalIncludeDirectories>$(ProjectAdditionalIncludeDirectories);..\..\engine</ProjectAdditionalIncludeDirectories>
     <ProjectAdditionalLinkLibraries>cabinet.lib;crypt32.lib;msi.lib;rpcrt4.lib;shlwapi.lib;wininet.lib</ProjectAdditionalLinkLibraries>
   </PropertyGroup>
+
   <ItemGroup>
     <ClCompile Include="AssemblyInfo.cpp" />
     <ClCompile Include="CacheTest.cpp" />
@@ -86,7 +92,7 @@
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\..\engine\engine.vcxproj">
-      <Project>{8119537D-E1D9-6591-D51A-49768A2F9C37}</Project>
+      <Project>{8119537D-E1D9-6591-D51A-49770A2F9C37}</Project>
     </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
@@ -95,8 +101,9 @@
     <PropertyGroup>
       <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>
     </PropertyGroup>
-    <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.props'))" />
-    <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.targets'))" />
-    <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props'))" />
+    <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props'))" />
+    <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets'))" />
+    <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props'))" />
+    <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.57\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.57\build\WixToolset.BootstrapperCore.Native.props'))" />
   </Target>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/src/test/BurnUnitTest/packages.config b/src/test/BurnUnitTest/packages.config
index 1eb30932..1d36c387 100644
--- a/src/test/BurnUnitTest/packages.config
+++ b/src/test/BurnUnitTest/packages.config
@@ -1,9 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- 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. -->
 <packages>
-  <package id="WixBuildTools.TestSupport" version="4.0.50" />
-  <package id="WixBuildTools.TestSupport.Native" version="4.0.50" />
-  <package id="WixToolset.DUtil" version="4.0.72" targetFramework="native" />
+  <package id="WixBuildTools.TestSupport" version="4.0.47" />
+  <package id="WixBuildTools.TestSupport.Native" version="4.0.47" />
+  <package id="WixToolset.DUtil" version="4.0.70" targetFramework="native" />
+  <package id="WixToolset.BootstrapperCore.Native" version="4.0.57" targetFramework="native" />
   <package id="xunit.abstractions" version="2.0.3" />
   <package id="xunit.assert" version="2.4.1" />
   <package id="xunit.core" version="2.4.1" />
-- 
cgit v1.2.3-55-g6feb