Index: build/auto/build_openmpt_release_packages.py
===================================================================
--- build/auto/build_openmpt_release_packages.py	(revision 11392)
+++ build/auto/build_openmpt_release_packages.py	(working copy)
@@ -72,8 +72,8 @@
 def copy_binaries(from_path, to_path):
     os.makedirs(to_path)
     copy_file(from_path, to_path, "mptrack.exe")
-    copy_file(from_path, to_path, "PluginBridge32.exe")
-    copy_file(from_path, to_path, "PluginBridge64.exe")
+    copy_file(from_path, to_path, "PluginBridge-x86.exe")
+    copy_file(from_path, to_path, "PluginBridge-amd64.exe")
     copy_file(from_path, to_path, "openmpt-lame.dll")
     copy_file(from_path, to_path, "openmpt-mpg123.dll")
     copy_file(from_path, to_path, "openmpt-soundtouch.dll")
Index: build/auto/package_openmpt_args.cmd
===================================================================
--- build/auto/package_openmpt_args.cmd	(revision 11392)
+++ build/auto/package_openmpt_args.cmd	(working copy)
@@ -46,10 +46,10 @@
 copy /y ..\..\bin\%MPT_BIN_CONF%\%MPT_VS_VER%-%MPT_BIN_TARGET%-%MPT_BIN_RUNTIME%\%MPT_BIN_ARCH_TRK%\openmpt-mpg123.pdb .\ || goto error
 copy /y ..\..\bin\%MPT_BIN_CONF%\%MPT_VS_VER%-%MPT_BIN_TARGET%-%MPT_BIN_RUNTIME%\%MPT_BIN_ARCH_TRK%\openmpt-soundtouch.dll .\ || goto error
 copy /y ..\..\bin\%MPT_BIN_CONF%\%MPT_VS_VER%-%MPT_BIN_TARGET%-%MPT_BIN_RUNTIME%\%MPT_BIN_ARCH_TRK%\openmpt-soundtouch.pdb .\ || goto error
-copy /y ..\..\bin\%MPT_BIN_CONF%\%MPT_VS_VER%-%MPT_BIN_TARGET%-%MPT_BIN_RUNTIME%\%MPT_BIN_ARCH_TRK%\PluginBridge32.exe .\ || goto error
-copy /y ..\..\bin\%MPT_BIN_CONF%\%MPT_VS_VER%-%MPT_BIN_TARGET%-%MPT_BIN_RUNTIME%\%MPT_BIN_ARCH_TRK%\PluginBridge32.pdb .\ || goto error
-copy /y ..\..\bin\%MPT_BIN_CONF%\%MPT_VS_VER%-%MPT_BIN_TARGET%-%MPT_BIN_RUNTIME%\%MPT_BIN_ARCH_TRK%\PluginBridge64.exe .\ || goto error
-copy /y ..\..\bin\%MPT_BIN_CONF%\%MPT_VS_VER%-%MPT_BIN_TARGET%-%MPT_BIN_RUNTIME%\%MPT_BIN_ARCH_TRK%\PluginBridge64.pdb .\ || goto error
+copy /y ..\..\bin\%MPT_BIN_CONF%\%MPT_VS_VER%-%MPT_BIN_TARGET%-%MPT_BIN_RUNTIME%\x86\PluginBridge-x86.exe .\ || goto error
+copy /y ..\..\bin\%MPT_BIN_CONF%\%MPT_VS_VER%-%MPT_BIN_TARGET%-%MPT_BIN_RUNTIME%\x86\PluginBridge-x86.pdb .\ || goto error
+copy /y ..\..\bin\%MPT_BIN_CONF%\%MPT_VS_VER%-%MPT_BIN_TARGET%-%MPT_BIN_RUNTIME%\amd64\PluginBridge-amd64.exe .\ || goto error
+copy /y ..\..\bin\%MPT_BIN_CONF%\%MPT_VS_VER%-%MPT_BIN_TARGET%-%MPT_BIN_RUNTIME%\amd64\PluginBridge-amd64.pdb .\ || goto error
 copy /y ..\..\bin\%MPT_BIN_CONF%\%MPT_VS_VER%-%MPT_BIN_TARGET%-%MPT_BIN_RUNTIME%\%MPT_BIN_ARCH_TRK%\openmpt-wine-support.zip .\ || goto error
 ..\..\build\tools\7zip\7z.exe a -t%MPT_PKG_FORMAT% -mx=9 ..\openmpt\bin.%MPT_DIST_VARIANT_TRK%\%OPENMPT_VERSION_MAJORMAJOR%.%OPENMPT_VERSION_MAJOR%\openmpt-%MPT_DIST_VARIANT_TRK%-%MPT_REVISION%.%MPT_PKG_FORMAT% ^
  LICENSE.txt ^
@@ -58,8 +58,8 @@
  openmpt-lame.dll ^
  openmpt-mpg123.dll ^
  openmpt-soundtouch.dll ^
- PluginBridge32.exe ^
- PluginBridge64.exe ^
+ PluginBridge-x86.exe ^
+ PluginBridge-amd64.exe ^
  openmpt-wine-support.zip ^
  extraKeymaps ^
  || goto error
@@ -68,8 +68,8 @@
 ..\..\build\tools\7zip\7z.exe a -t%MPT_PKG_FORMAT_SYMBOLS% -mx=9 ..\openmpt\dbg.%MPT_DIST_VARIANT_TRK%\%OPENMPT_VERSION_MAJORMAJOR%.%OPENMPT_VERSION_MAJOR%\openmpt-%MPT_DIST_VARIANT_TRK%-%MPT_REVISION%-symbols\openmpt-lame.pdb.%MPT_PKG_FORMAT_SYMBOLS% openmpt-lame.pdb || goto error
 ..\..\build\tools\7zip\7z.exe a -t%MPT_PKG_FORMAT_SYMBOLS% -mx=9 ..\openmpt\dbg.%MPT_DIST_VARIANT_TRK%\%OPENMPT_VERSION_MAJORMAJOR%.%OPENMPT_VERSION_MAJOR%\openmpt-%MPT_DIST_VARIANT_TRK%-%MPT_REVISION%-symbols\openmpt-mpg123.pdb.%MPT_PKG_FORMAT_SYMBOLS% openmpt-mpg123.pdb || goto error
 ..\..\build\tools\7zip\7z.exe a -t%MPT_PKG_FORMAT_SYMBOLS% -mx=9 ..\openmpt\dbg.%MPT_DIST_VARIANT_TRK%\%OPENMPT_VERSION_MAJORMAJOR%.%OPENMPT_VERSION_MAJOR%\openmpt-%MPT_DIST_VARIANT_TRK%-%MPT_REVISION%-symbols\openmpt-soundtouch.pdb.%MPT_PKG_FORMAT_SYMBOLS% openmpt-soundtouch.pdb || goto error
-..\..\build\tools\7zip\7z.exe a -t%MPT_PKG_FORMAT_SYMBOLS% -mx=9 ..\openmpt\dbg.%MPT_DIST_VARIANT_TRK%\%OPENMPT_VERSION_MAJORMAJOR%.%OPENMPT_VERSION_MAJOR%\openmpt-%MPT_DIST_VARIANT_TRK%-%MPT_REVISION%-symbols\PluginBridge32.pdb.%MPT_PKG_FORMAT_SYMBOLS% PluginBridge32.pdb || goto error
-..\..\build\tools\7zip\7z.exe a -t%MPT_PKG_FORMAT_SYMBOLS% -mx=9 ..\openmpt\dbg.%MPT_DIST_VARIANT_TRK%\%OPENMPT_VERSION_MAJORMAJOR%.%OPENMPT_VERSION_MAJOR%\openmpt-%MPT_DIST_VARIANT_TRK%-%MPT_REVISION%-symbols\PluginBridge64.pdb.%MPT_PKG_FORMAT_SYMBOLS% PluginBridge64.pdb || goto error
+..\..\build\tools\7zip\7z.exe a -t%MPT_PKG_FORMAT_SYMBOLS% -mx=9 ..\openmpt\dbg.%MPT_DIST_VARIANT_TRK%\%OPENMPT_VERSION_MAJORMAJOR%.%OPENMPT_VERSION_MAJOR%\openmpt-%MPT_DIST_VARIANT_TRK%-%MPT_REVISION%-symbols\PluginBridge-x86.pdb.%MPT_PKG_FORMAT_SYMBOLS% PluginBridge-x86.pdb || goto error
+..\..\build\tools\7zip\7z.exe a -t%MPT_PKG_FORMAT_SYMBOLS% -mx=9 ..\openmpt\dbg.%MPT_DIST_VARIANT_TRK%\%OPENMPT_VERSION_MAJORMAJOR%.%OPENMPT_VERSION_MAJOR%\openmpt-%MPT_DIST_VARIANT_TRK%-%MPT_REVISION%-symbols\PluginBridge-amd64.pdb.%MPT_PKG_FORMAT_SYMBOLS% PluginBridge-amd64.pdb || goto error
 cd .. || goto error
 ..\build\tools\7zip\7z.exe a -ttar openmpt-%MPT_DIST_VARIANT_TRK%.tar openmpt || goto error
 del /f /q openmpt-%MPT_DIST_VARIANT_TRK%-%MPT_REVISION%.%MPT_PKG_FORMAT%
Index: build/premake/mpt-PluginBridge.lua
===================================================================
--- build/premake/mpt-PluginBridge.lua	(revision 11392)
+++ build/premake/mpt-PluginBridge.lua	(working copy)
@@ -41,90 +41,14 @@
   warnings "Extra"
   prebuildcommands { "..\\..\\build\\svn_version\\update_svn_version_vs_premake.cmd $(IntDir)" }
   filter { "architecture:x86" }
-   targetsuffix "32"
+   targetsuffix "-x86"
   filter { "architecture:x86_64" }
-   targetsuffix "64"
+   targetsuffix "-amd64"
+  filter { "architecture:ARM" }
+   targetsuffix "-arm"
+  filter { "architecture:ARM64" }
+   targetsuffix "-arm64"
   filter {}
 	filter { "action:vs*", "architecture:x86_64" }
 		linkoptions { "/HIGHENTROPYVA:NO" }
 	filter {}
-
-	if _OPTIONS["win10"] then
-		filter { "architecture:x86", "configurations:*Shared" }
-			postbuildcommands {
-				"if not exist \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-shared\\amd64\" mkdir \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-shared\\amd64\"",
-				"copy /y \"$(TargetDir)\\$(TargetFileName)\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-shared\\amd64\\$(TargetFileName)\"",
-				"copy /y \"$(TargetDir)\\$(TargetName).pdb\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-shared\\amd64\\$(TargetName).pdb\"",
-			}
-		filter { "architecture:x86_64", "configurations:*Shared" }
-			postbuildcommands {
-				"if not exist \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-shared\\x86\" mkdir \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-shared\\x86\"",
-				"copy /y \"$(TargetDir)\\$(TargetFileName)\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-shared\\x86\\$(TargetFileName)\"",
-				"copy /y \"$(TargetDir)\\$(TargetName).pdb\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-shared\\x86\\$(TargetName).pdb\"",
-			}
-		filter { "architecture:x86", "not configurations:*Shared" }
-			postbuildcommands {
-				"if not exist \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-static\\amd64\" mkdir \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-static\\amd64\"",
-				"copy /y \"$(TargetDir)\\$(TargetFileName)\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-static\\amd64\\$(TargetFileName)\"",
-				"copy /y \"$(TargetDir)\\$(TargetName).pdb\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-static\\amd64\\$(TargetName).pdb\"",
-			}
-		filter { "architecture:x86_64", "not configurations:*Shared" }
-			postbuildcommands {
-				"if not exist \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-static\\x86\" mkdir \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-static\\x86\"",
-				"copy /y \"$(TargetDir)\\$(TargetFileName)\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-static\\x86\\$(TargetFileName)\"",
-				"copy /y \"$(TargetDir)\\$(TargetName).pdb\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win10-static\\x86\\$(TargetName).pdb\"",
-			}
-	elseif _OPTIONS["xp"] then
-		filter { "architecture:x86", "configurations:*Shared" }
-			postbuildcommands {
-				"if not exist \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-shared\\amd64\" mkdir \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-shared\\amd64\"",
-				"copy /y \"$(TargetDir)\\$(TargetFileName)\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-shared\\amd64\\$(TargetFileName)\"",
-				"copy /y \"$(TargetDir)\\$(TargetName).pdb\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-shared\\amd64\\$(TargetName).pdb\"",
-			}
-		filter { "architecture:x86_64", "configurations:*Shared" }
-			postbuildcommands {
-				"if not exist \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-shared\\x86\" mkdir \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-shared\\x86\"",
-				"copy /y \"$(TargetDir)\\$(TargetFileName)\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-shared\\x86\\$(TargetFileName)\"",
-				"copy /y \"$(TargetDir)\\$(TargetName).pdb\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-shared\\x86\\$(TargetName).pdb\"",
-			}
-		filter { "architecture:x86", "not configurations:*Shared" }
-			postbuildcommands {
-				"if not exist \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-static\\amd64\" mkdir \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-static\\amd64\"",
-				"copy /y \"$(TargetDir)\\$(TargetFileName)\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-static\\amd64\\$(TargetFileName)\"",
-				"copy /y \"$(TargetDir)\\$(TargetName).pdb\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-static\\amd64\\$(TargetName).pdb\"",
-			}
-		filter { "architecture:x86_64", "not configurations:*Shared" }
-			postbuildcommands {
-				"if not exist \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-static\\x86\" mkdir \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-static\\x86\"",
-				"copy /y \"$(TargetDir)\\$(TargetFileName)\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-static\\x86\\$(TargetFileName)\"",
-				"copy /y \"$(TargetDir)\\$(TargetName).pdb\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-winxp-static\\x86\\$(TargetName).pdb\"",
-			}
-	else
-		filter { "architecture:x86", "configurations:*Shared" }
-			postbuildcommands {
-				"if not exist \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-shared\\amd64\" mkdir \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-shared\\amd64\"",
-				"copy /y \"$(TargetDir)\\$(TargetFileName)\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-shared\\amd64\\$(TargetFileName)\"",
-				"copy /y \"$(TargetDir)\\$(TargetName).pdb\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-shared\\amd64\\$(TargetName).pdb\"",
-			}
-		filter { "architecture:x86_64", "configurations:*Shared" }
-			postbuildcommands {
-				"if not exist \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-shared\\x86\" mkdir \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-shared\\x86\"",
-				"copy /y \"$(TargetDir)\\$(TargetFileName)\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-shared\\x86\\$(TargetFileName)\"",
-				"copy /y \"$(TargetDir)\\$(TargetName).pdb\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-shared\\x86\\$(TargetName).pdb\"",
-			}
-		filter { "architecture:x86", "not configurations:*Shared" }
-			postbuildcommands {
-				"if not exist \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-static\\amd64\" mkdir \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-static\\amd64\"",
-				"copy /y \"$(TargetDir)\\$(TargetFileName)\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-static\\amd64\\$(TargetFileName)\"",
-				"copy /y \"$(TargetDir)\\$(TargetName).pdb\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-static\\amd64\\$(TargetName).pdb\"",
-			}
-		filter { "architecture:x86_64", "not configurations:*Shared" }
-			postbuildcommands {
-				"if not exist \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-static\\x86\" mkdir \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-static\\x86\"",
-				"copy /y \"$(TargetDir)\\$(TargetFileName)\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-static\\x86\\$(TargetFileName)\"",
-				"copy /y \"$(TargetDir)\\$(TargetName).pdb\" \"$(TargetDir)\\..\\..\\" .. _ACTION .. "-win7-static\\x86\\$(TargetName).pdb\"",
-			}
-	end
-
-	filter {}
-
Index: build/vs2015win7/PluginBridge.vcxproj
===================================================================
--- build/vs2015win7/PluginBridge.vcxproj	(revision 11392)
+++ build/vs2015win7/PluginBridge.vcxproj	(working copy)
@@ -178,7 +178,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2015-win7-static\x86\</OutDir>
     <IntDir>..\obj\vs2015win7\PluginBridge\x86\Debug\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -185,7 +185,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2015-win7-static\amd64\</OutDir>
     <IntDir>..\obj\vs2015win7\PluginBridge\x86_64\Debug\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -192,7 +192,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2015-win7-static\x86\</OutDir>
     <IntDir>..\obj\vs2015win7\PluginBridge\x86\Release\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -199,7 +199,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2015-win7-static\amd64\</OutDir>
     <IntDir>..\obj\vs2015win7\PluginBridge\x86_64\Release\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|Win32'">
@@ -206,7 +206,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2015-win7-static\x86\</OutDir>
     <IntDir>..\obj\vs2015win7\PluginBridge\x86\Checked\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|x64'">
@@ -213,7 +213,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2015-win7-static\amd64\</OutDir>
     <IntDir>..\obj\vs2015win7\PluginBridge\x86_64\Checked\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|Win32'">
@@ -220,7 +220,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2015-win7-shared\x86\</OutDir>
     <IntDir>..\obj\vs2015win7\PluginBridge\x86\DebugShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|x64'">
@@ -227,7 +227,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2015-win7-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2015win7\PluginBridge\x86_64\DebugShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|Win32'">
@@ -234,7 +234,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2015-win7-shared\x86\</OutDir>
     <IntDir>..\obj\vs2015win7\PluginBridge\x86\ReleaseShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|x64'">
@@ -241,7 +241,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2015-win7-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2015win7\PluginBridge\x86_64\ReleaseShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|Win32'">
@@ -248,7 +248,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2015-win7-shared\x86\</OutDir>
     <IntDir>..\obj\vs2015win7\PluginBridge\x86\CheckedShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|x64'">
@@ -255,7 +255,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2015-win7-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2015win7\PluginBridge\x86_64\CheckedShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -285,11 +285,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-win7-static\amd64" mkdir "$(TargetDir)\..\..\vs2015-win7-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-win7-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-win7-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
@@ -319,11 +314,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-win7-static\x86" mkdir "$(TargetDir)\..\..\vs2015-win7-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-win7-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-win7-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
@@ -361,11 +351,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-win7-static\amd64" mkdir "$(TargetDir)\..\..\vs2015-win7-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-win7-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-win7-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
@@ -403,11 +388,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-win7-static\x86" mkdir "$(TargetDir)\..\..\vs2015-win7-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-win7-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-win7-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Checked|Win32'">
     <ClCompile>
@@ -445,11 +425,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-win7-static\amd64" mkdir "$(TargetDir)\..\..\vs2015-win7-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-win7-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-win7-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Checked|x64'">
     <ClCompile>
@@ -487,11 +462,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-win7-static\x86" mkdir "$(TargetDir)\..\..\vs2015-win7-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-win7-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-win7-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|Win32'">
     <ClCompile>
@@ -522,11 +492,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-win7-shared\amd64" mkdir "$(TargetDir)\..\..\vs2015-win7-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-win7-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-win7-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|x64'">
     <ClCompile>
@@ -558,11 +523,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-win7-shared\x86" mkdir "$(TargetDir)\..\..\vs2015-win7-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-win7-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-win7-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|Win32'">
     <ClCompile>
@@ -600,11 +560,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-win7-shared\amd64" mkdir "$(TargetDir)\..\..\vs2015-win7-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-win7-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-win7-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|x64'">
     <ClCompile>
@@ -642,11 +597,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-win7-shared\x86" mkdir "$(TargetDir)\..\..\vs2015-win7-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-win7-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-win7-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|Win32'">
     <ClCompile>
@@ -684,11 +634,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-win7-shared\amd64" mkdir "$(TargetDir)\..\..\vs2015-win7-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-win7-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-win7-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|x64'">
     <ClCompile>
@@ -726,11 +671,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-win7-shared\x86" mkdir "$(TargetDir)\..\..\vs2015-win7-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-win7-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-win7-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
     <ClInclude Include="..\..\common\versionNumber.h" />
Index: build/vs2015winxp/PluginBridge.vcxproj
===================================================================
--- build/vs2015winxp/PluginBridge.vcxproj	(revision 11392)
+++ build/vs2015winxp/PluginBridge.vcxproj	(working copy)
@@ -178,7 +178,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2015-winxp-static\x86\</OutDir>
     <IntDir>..\obj\vs2015winxp\PluginBridge\x86\Debug\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -185,7 +185,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2015-winxp-static\amd64\</OutDir>
     <IntDir>..\obj\vs2015winxp\PluginBridge\x86_64\Debug\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -192,7 +192,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2015-winxp-static\x86\</OutDir>
     <IntDir>..\obj\vs2015winxp\PluginBridge\x86\Release\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -199,7 +199,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2015-winxp-static\amd64\</OutDir>
     <IntDir>..\obj\vs2015winxp\PluginBridge\x86_64\Release\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|Win32'">
@@ -206,7 +206,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2015-winxp-static\x86\</OutDir>
     <IntDir>..\obj\vs2015winxp\PluginBridge\x86\Checked\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|x64'">
@@ -213,7 +213,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2015-winxp-static\amd64\</OutDir>
     <IntDir>..\obj\vs2015winxp\PluginBridge\x86_64\Checked\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|Win32'">
@@ -220,7 +220,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2015-winxp-shared\x86\</OutDir>
     <IntDir>..\obj\vs2015winxp\PluginBridge\x86\DebugShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|x64'">
@@ -227,7 +227,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2015-winxp-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2015winxp\PluginBridge\x86_64\DebugShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|Win32'">
@@ -234,7 +234,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2015-winxp-shared\x86\</OutDir>
     <IntDir>..\obj\vs2015winxp\PluginBridge\x86\ReleaseShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|x64'">
@@ -241,7 +241,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2015-winxp-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2015winxp\PluginBridge\x86_64\ReleaseShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|Win32'">
@@ -248,7 +248,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2015-winxp-shared\x86\</OutDir>
     <IntDir>..\obj\vs2015winxp\PluginBridge\x86\CheckedShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|x64'">
@@ -255,7 +255,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2015-winxp-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2015winxp\PluginBridge\x86_64\CheckedShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -287,11 +287,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-winxp-static\amd64" mkdir "$(TargetDir)\..\..\vs2015-winxp-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-winxp-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-winxp-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
@@ -322,11 +317,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-winxp-static\x86" mkdir "$(TargetDir)\..\..\vs2015-winxp-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-winxp-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-winxp-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
@@ -365,11 +355,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-winxp-static\amd64" mkdir "$(TargetDir)\..\..\vs2015-winxp-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-winxp-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-winxp-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
@@ -408,11 +393,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-winxp-static\x86" mkdir "$(TargetDir)\..\..\vs2015-winxp-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-winxp-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-winxp-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Checked|Win32'">
     <ClCompile>
@@ -451,11 +431,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-winxp-static\amd64" mkdir "$(TargetDir)\..\..\vs2015-winxp-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-winxp-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-winxp-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Checked|x64'">
     <ClCompile>
@@ -494,11 +469,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-winxp-static\x86" mkdir "$(TargetDir)\..\..\vs2015-winxp-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-winxp-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-winxp-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|Win32'">
     <ClCompile>
@@ -531,11 +501,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-winxp-shared\amd64" mkdir "$(TargetDir)\..\..\vs2015-winxp-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-winxp-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-winxp-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|x64'">
     <ClCompile>
@@ -568,11 +533,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-winxp-shared\x86" mkdir "$(TargetDir)\..\..\vs2015-winxp-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-winxp-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-winxp-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|Win32'">
     <ClCompile>
@@ -611,11 +571,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-winxp-shared\amd64" mkdir "$(TargetDir)\..\..\vs2015-winxp-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-winxp-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-winxp-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|x64'">
     <ClCompile>
@@ -654,11 +609,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-winxp-shared\x86" mkdir "$(TargetDir)\..\..\vs2015-winxp-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-winxp-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-winxp-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|Win32'">
     <ClCompile>
@@ -697,11 +647,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-winxp-shared\amd64" mkdir "$(TargetDir)\..\..\vs2015-winxp-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-winxp-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-winxp-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|x64'">
     <ClCompile>
@@ -740,11 +685,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2015-winxp-shared\x86" mkdir "$(TargetDir)\..\..\vs2015-winxp-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2015-winxp-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2015-winxp-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
     <ClInclude Include="..\..\common\versionNumber.h" />
Index: build/vs2017win10/PluginBridge.vcxproj
===================================================================
--- build/vs2017win10/PluginBridge.vcxproj	(revision 11392)
+++ build/vs2017win10/PluginBridge.vcxproj	(working copy)
@@ -351,7 +351,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-win10-static\x86\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\x86\Debug\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -358,7 +358,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-win10-static\amd64\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\x86_64\Debug\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
@@ -365,7 +365,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-win10-static\arm\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\arm\Debug\</IntDir>
-    <TargetName>PluginBridge</TargetName>
+    <TargetName>PluginBridge-arm</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
@@ -372,7 +372,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-win10-static\arm64\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\arm64\Debug\</IntDir>
-    <TargetName>PluginBridge</TargetName>
+    <TargetName>PluginBridge-arm64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -379,7 +379,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-win10-static\x86\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\x86\Release\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -386,7 +386,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-win10-static\amd64\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\x86_64\Release\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
@@ -393,7 +393,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-win10-static\arm\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\arm\Release\</IntDir>
-    <TargetName>PluginBridge</TargetName>
+    <TargetName>PluginBridge-arm</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
@@ -400,7 +400,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-win10-static\arm64\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\arm64\Release\</IntDir>
-    <TargetName>PluginBridge</TargetName>
+    <TargetName>PluginBridge-arm64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|Win32'">
@@ -407,7 +407,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-win10-static\x86\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\x86\Checked\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|x64'">
@@ -414,7 +414,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-win10-static\amd64\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\x86_64\Checked\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|ARM'">
@@ -421,7 +421,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-win10-static\arm\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\arm\Checked\</IntDir>
-    <TargetName>PluginBridge</TargetName>
+    <TargetName>PluginBridge-arm</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|ARM64'">
@@ -428,7 +428,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-win10-static\arm64\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\arm64\Checked\</IntDir>
-    <TargetName>PluginBridge</TargetName>
+    <TargetName>PluginBridge-arm64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|Win32'">
@@ -435,7 +435,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-win10-shared\x86\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\x86\DebugShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|x64'">
@@ -442,7 +442,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-win10-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\x86_64\DebugShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|ARM'">
@@ -449,7 +449,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-win10-shared\arm\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\arm\DebugShared\</IntDir>
-    <TargetName>PluginBridge</TargetName>
+    <TargetName>PluginBridge-arm</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|ARM64'">
@@ -456,7 +456,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-win10-shared\arm64\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\arm64\DebugShared\</IntDir>
-    <TargetName>PluginBridge</TargetName>
+    <TargetName>PluginBridge-arm64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|Win32'">
@@ -463,7 +463,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-win10-shared\x86\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\x86\ReleaseShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|x64'">
@@ -470,7 +470,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-win10-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\x86_64\ReleaseShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|ARM'">
@@ -477,7 +477,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-win10-shared\arm\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\arm\ReleaseShared\</IntDir>
-    <TargetName>PluginBridge</TargetName>
+    <TargetName>PluginBridge-arm</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|ARM64'">
@@ -484,7 +484,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-win10-shared\arm64\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\arm64\ReleaseShared\</IntDir>
-    <TargetName>PluginBridge</TargetName>
+    <TargetName>PluginBridge-arm64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|Win32'">
@@ -491,7 +491,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-win10-shared\x86\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\x86\CheckedShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|x64'">
@@ -498,7 +498,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-win10-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\x86_64\CheckedShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|ARM'">
@@ -505,7 +505,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-win10-shared\arm\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\arm\CheckedShared\</IntDir>
-    <TargetName>PluginBridge</TargetName>
+    <TargetName>PluginBridge-arm</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|ARM64'">
@@ -512,7 +512,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-win10-shared\arm64\</OutDir>
     <IntDir>..\obj\vs2017win10\PluginBridge\arm64\CheckedShared\</IntDir>
-    <TargetName>PluginBridge</TargetName>
+    <TargetName>PluginBridge-arm64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -545,11 +545,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win10-static\amd64" mkdir "$(TargetDir)\..\..\vs2017-win10-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win10-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win10-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
@@ -582,11 +577,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win10-static\x86" mkdir "$(TargetDir)\..\..\vs2017-win10-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win10-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win10-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
     <ClCompile>
@@ -688,11 +678,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win10-static\amd64" mkdir "$(TargetDir)\..\..\vs2017-win10-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win10-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win10-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
@@ -732,11 +717,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win10-static\x86" mkdir "$(TargetDir)\..\..\vs2017-win10-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win10-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win10-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
     <ClCompile>
@@ -852,11 +832,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win10-static\amd64" mkdir "$(TargetDir)\..\..\vs2017-win10-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win10-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win10-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Checked|x64'">
     <ClCompile>
@@ -896,11 +871,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win10-static\x86" mkdir "$(TargetDir)\..\..\vs2017-win10-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win10-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win10-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Checked|ARM'">
     <ClCompile>
@@ -1009,11 +979,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win10-shared\amd64" mkdir "$(TargetDir)\..\..\vs2017-win10-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win10-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win10-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|x64'">
     <ClCompile>
@@ -1047,11 +1012,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win10-shared\x86" mkdir "$(TargetDir)\..\..\vs2017-win10-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win10-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win10-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|ARM'">
     <ClCompile>
@@ -1155,11 +1115,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win10-shared\amd64" mkdir "$(TargetDir)\..\..\vs2017-win10-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win10-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win10-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|x64'">
     <ClCompile>
@@ -1199,11 +1154,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win10-shared\x86" mkdir "$(TargetDir)\..\..\vs2017-win10-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win10-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win10-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|ARM'">
     <ClCompile>
@@ -1319,11 +1269,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win10-shared\amd64" mkdir "$(TargetDir)\..\..\vs2017-win10-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win10-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win10-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|x64'">
     <ClCompile>
@@ -1363,11 +1308,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win10-shared\x86" mkdir "$(TargetDir)\..\..\vs2017-win10-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win10-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win10-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|ARM'">
     <ClCompile>
Index: build/vs2017win7/PluginBridge.vcxproj
===================================================================
--- build/vs2017win7/PluginBridge.vcxproj	(revision 11392)
+++ build/vs2017win7/PluginBridge.vcxproj	(working copy)
@@ -178,7 +178,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-win7-static\x86\</OutDir>
     <IntDir>..\obj\vs2017win7\PluginBridge\x86\Debug\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -185,7 +185,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-win7-static\amd64\</OutDir>
     <IntDir>..\obj\vs2017win7\PluginBridge\x86_64\Debug\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -192,7 +192,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-win7-static\x86\</OutDir>
     <IntDir>..\obj\vs2017win7\PluginBridge\x86\Release\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -199,7 +199,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-win7-static\amd64\</OutDir>
     <IntDir>..\obj\vs2017win7\PluginBridge\x86_64\Release\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|Win32'">
@@ -206,7 +206,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-win7-static\x86\</OutDir>
     <IntDir>..\obj\vs2017win7\PluginBridge\x86\Checked\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|x64'">
@@ -213,7 +213,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-win7-static\amd64\</OutDir>
     <IntDir>..\obj\vs2017win7\PluginBridge\x86_64\Checked\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|Win32'">
@@ -220,7 +220,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-win7-shared\x86\</OutDir>
     <IntDir>..\obj\vs2017win7\PluginBridge\x86\DebugShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|x64'">
@@ -227,7 +227,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-win7-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2017win7\PluginBridge\x86_64\DebugShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|Win32'">
@@ -234,7 +234,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-win7-shared\x86\</OutDir>
     <IntDir>..\obj\vs2017win7\PluginBridge\x86\ReleaseShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|x64'">
@@ -241,7 +241,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-win7-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2017win7\PluginBridge\x86_64\ReleaseShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|Win32'">
@@ -248,7 +248,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-win7-shared\x86\</OutDir>
     <IntDir>..\obj\vs2017win7\PluginBridge\x86\CheckedShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|x64'">
@@ -255,7 +255,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-win7-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2017win7\PluginBridge\x86_64\CheckedShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -288,11 +288,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win7-static\amd64" mkdir "$(TargetDir)\..\..\vs2017-win7-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win7-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win7-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
@@ -325,11 +320,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win7-static\x86" mkdir "$(TargetDir)\..\..\vs2017-win7-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win7-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win7-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
@@ -369,11 +359,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win7-static\amd64" mkdir "$(TargetDir)\..\..\vs2017-win7-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win7-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win7-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
@@ -413,11 +398,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win7-static\x86" mkdir "$(TargetDir)\..\..\vs2017-win7-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win7-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win7-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Checked|Win32'">
     <ClCompile>
@@ -457,11 +437,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win7-static\amd64" mkdir "$(TargetDir)\..\..\vs2017-win7-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win7-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win7-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Checked|x64'">
     <ClCompile>
@@ -501,11 +476,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win7-static\x86" mkdir "$(TargetDir)\..\..\vs2017-win7-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win7-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win7-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|Win32'">
     <ClCompile>
@@ -538,11 +508,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win7-shared\amd64" mkdir "$(TargetDir)\..\..\vs2017-win7-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win7-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win7-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|x64'">
     <ClCompile>
@@ -576,11 +541,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win7-shared\x86" mkdir "$(TargetDir)\..\..\vs2017-win7-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win7-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win7-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|Win32'">
     <ClCompile>
@@ -620,11 +580,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win7-shared\amd64" mkdir "$(TargetDir)\..\..\vs2017-win7-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win7-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win7-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|x64'">
     <ClCompile>
@@ -664,11 +619,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win7-shared\x86" mkdir "$(TargetDir)\..\..\vs2017-win7-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win7-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win7-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|Win32'">
     <ClCompile>
@@ -708,11 +658,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win7-shared\amd64" mkdir "$(TargetDir)\..\..\vs2017-win7-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win7-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win7-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|x64'">
     <ClCompile>
@@ -752,11 +697,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-win7-shared\x86" mkdir "$(TargetDir)\..\..\vs2017-win7-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-win7-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-win7-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
     <ClInclude Include="..\..\common\versionNumber.h" />
Index: build/vs2017winxp/PluginBridge.vcxproj
===================================================================
--- build/vs2017winxp/PluginBridge.vcxproj	(revision 11392)
+++ build/vs2017winxp/PluginBridge.vcxproj	(working copy)
@@ -178,7 +178,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-winxp-static\x86\</OutDir>
     <IntDir>..\obj\vs2017winxp\PluginBridge\x86\Debug\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -185,7 +185,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-winxp-static\amd64\</OutDir>
     <IntDir>..\obj\vs2017winxp\PluginBridge\x86_64\Debug\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -192,7 +192,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-winxp-static\x86\</OutDir>
     <IntDir>..\obj\vs2017winxp\PluginBridge\x86\Release\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -199,7 +199,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-winxp-static\amd64\</OutDir>
     <IntDir>..\obj\vs2017winxp\PluginBridge\x86_64\Release\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|Win32'">
@@ -206,7 +206,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-winxp-static\x86\</OutDir>
     <IntDir>..\obj\vs2017winxp\PluginBridge\x86\Checked\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|x64'">
@@ -213,7 +213,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-winxp-static\amd64\</OutDir>
     <IntDir>..\obj\vs2017winxp\PluginBridge\x86_64\Checked\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|Win32'">
@@ -220,7 +220,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-winxp-shared\x86\</OutDir>
     <IntDir>..\obj\vs2017winxp\PluginBridge\x86\DebugShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|x64'">
@@ -227,7 +227,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>..\..\bin\debug\vs2017-winxp-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2017winxp\PluginBridge\x86_64\DebugShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|Win32'">
@@ -234,7 +234,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-winxp-shared\x86\</OutDir>
     <IntDir>..\obj\vs2017winxp\PluginBridge\x86\ReleaseShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|x64'">
@@ -241,7 +241,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\release\vs2017-winxp-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2017winxp\PluginBridge\x86_64\ReleaseShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|Win32'">
@@ -248,7 +248,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-winxp-shared\x86\</OutDir>
     <IntDir>..\obj\vs2017winxp\PluginBridge\x86\CheckedShared\</IntDir>
-    <TargetName>PluginBridge32</TargetName>
+    <TargetName>PluginBridge-x86</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|x64'">
@@ -255,7 +255,7 @@
     <LinkIncremental>false</LinkIncremental>
     <OutDir>..\..\bin\checked\vs2017-winxp-shared\amd64\</OutDir>
     <IntDir>..\obj\vs2017winxp\PluginBridge\x86_64\CheckedShared\</IntDir>
-    <TargetName>PluginBridge64</TargetName>
+    <TargetName>PluginBridge-amd64</TargetName>
     <TargetExt>.exe</TargetExt>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -289,11 +289,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-winxp-static\amd64" mkdir "$(TargetDir)\..\..\vs2017-winxp-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-winxp-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-winxp-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
@@ -326,11 +321,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-winxp-static\x86" mkdir "$(TargetDir)\..\..\vs2017-winxp-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-winxp-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-winxp-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
@@ -370,11 +360,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-winxp-static\amd64" mkdir "$(TargetDir)\..\..\vs2017-winxp-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-winxp-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-winxp-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
@@ -414,11 +399,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-winxp-static\x86" mkdir "$(TargetDir)\..\..\vs2017-winxp-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-winxp-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-winxp-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Checked|Win32'">
     <ClCompile>
@@ -458,11 +438,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-winxp-static\amd64" mkdir "$(TargetDir)\..\..\vs2017-winxp-static\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-winxp-static\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-winxp-static\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Checked|x64'">
     <ClCompile>
@@ -502,11 +477,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-winxp-static\x86" mkdir "$(TargetDir)\..\..\vs2017-winxp-static\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-winxp-static\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-winxp-static\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|Win32'">
     <ClCompile>
@@ -540,11 +510,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-winxp-shared\amd64" mkdir "$(TargetDir)\..\..\vs2017-winxp-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-winxp-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-winxp-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|x64'">
     <ClCompile>
@@ -578,11 +543,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-winxp-shared\x86" mkdir "$(TargetDir)\..\..\vs2017-winxp-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-winxp-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-winxp-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|Win32'">
     <ClCompile>
@@ -622,11 +582,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-winxp-shared\amd64" mkdir "$(TargetDir)\..\..\vs2017-winxp-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-winxp-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-winxp-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|x64'">
     <ClCompile>
@@ -666,11 +621,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-winxp-shared\x86" mkdir "$(TargetDir)\..\..\vs2017-winxp-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-winxp-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-winxp-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|Win32'">
     <ClCompile>
@@ -710,11 +660,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-winxp-shared\amd64" mkdir "$(TargetDir)\..\..\vs2017-winxp-shared\amd64"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-winxp-shared\amd64\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-winxp-shared\amd64\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|x64'">
     <ClCompile>
@@ -754,11 +699,6 @@
     <PreBuildEvent>
       <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command>
     </PreBuildEvent>
-    <PostBuildEvent>
-      <Command>if not exist "$(TargetDir)\..\..\vs2017-winxp-shared\x86" mkdir "$(TargetDir)\..\..\vs2017-winxp-shared\x86"
-copy /y "$(TargetDir)\$(TargetFileName)" "$(TargetDir)\..\..\vs2017-winxp-shared\x86\$(TargetFileName)"
-copy /y "$(TargetDir)\$(TargetName).pdb" "$(TargetDir)\..\..\vs2017-winxp-shared\x86\$(TargetName).pdb"</Command>
-    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
     <ClInclude Include="..\..\common\versionNumber.h" />
Index: common/BuildSettings.h
===================================================================
--- common/BuildSettings.h	(revision 11392)
+++ common/BuildSettings.h	(working copy)
@@ -132,6 +132,11 @@
 //#define MPT_WITH_STBVORBIS
 #define MPT_WITH_VORBIS
 #define MPT_WITH_VORBISFILE
+#if MPT_OS_WINDOWS
+#if (_WIN32_WINNT >= 0x0A00)
+#define MPT_WITH_WINDOWS10
+#endif
+#endif
 #define MPT_WITH_ZLIB
 
 #endif // MODPLUG_TRACKER
Index: installer/install.iss
===================================================================
--- installer/install.iss	(revision 11392)
+++ installer/install.iss	(working copy)
@@ -59,15 +59,15 @@
 ; preserve file type order for best solid compression results (first binary, then text)
 ; base folder
 Source: ..\bin\{#PlatformFolder}\mptrack.exe; DestDir: {app}; Flags: ignoreversion; Check: not InstallWinOld
-Source: ..\bin\{#PlatformFolder}\PluginBridge32.exe; DestDir: {app}; Flags: ignoreversion; Check: not InstallWinOld
-Source: ..\bin\{#PlatformFolder}\PluginBridge64.exe; DestDir: {app}; Flags: ignoreversion; Check: not InstallWinOld
+Source: ..\bin\{#PlatformFolder}\..\x86\PluginBridge-x86.exe; DestDir: {app}; Flags: ignoreversion; Check: not InstallWinOld
+Source: ..\bin\{#PlatformFolder}\..\amd64\PluginBridge-amd64.exe; DestDir: {app}; Flags: ignoreversion; Check: not InstallWinOld
 Source: ..\bin\{#PlatformFolder}\openmpt-lame.dll; DestDir: {app}; Flags: ignoreversion; Check: not InstallWinOld
 Source: ..\bin\{#PlatformFolder}\openmpt-mpg123.dll; DestDir: {app}; Flags: ignoreversion; Check: not InstallWinOld
 Source: ..\bin\{#PlatformFolder}\openmpt-soundtouch.dll; DestDir: {app}; Flags: ignoreversion; Check: not InstallWinOld
 ; Additional binaries for XP-/Vista-compatible version
 Source: ..\bin\{#PlatformFolderOld}\mptrack.exe; DestDir: {app}; Flags: ignoreversion; Check: InstallWinOld
-Source: ..\bin\{#PlatformFolderOld}\PluginBridge32.exe; DestDir: {app}; Flags: ignoreversion; Check: InstallWinOld
-Source: ..\bin\{#PlatformFolderOld}\PluginBridge64.exe; DestDir: {app}; Flags: ignoreversion; Check: InstallWinOld
+Source: ..\bin\{#PlatformFolderOld}\..\x86\PluginBridge-x86.exe; DestDir: {app}; Flags: ignoreversion; Check: InstallWinOld
+Source: ..\bin\{#PlatformFolderOld}\..\amd64\PluginBridge-amd64.exe; DestDir: {app}; Flags: ignoreversion; Check: InstallWinOld
 Source: ..\bin\{#PlatformFolderOld}\openmpt-lame.dll; DestDir: {app}; Flags: ignoreversion; Check: InstallWinOld
 Source: ..\bin\{#PlatformFolderOld}\openmpt-mpg123.dll; DestDir: {app}; Flags: ignoreversion; Check: InstallWinOld
 Source: ..\bin\{#PlatformFolderOld}\openmpt-soundtouch.dll; DestDir: {app}; Flags: ignoreversion; Check: InstallWinOld
@@ -143,6 +143,9 @@
 Type: files; Name: {app}\Plugins\MIDI\MIDI Input Output.dll
 Type: dirifempty; Name: {app}\Plugins\MIDI
 Type: dirifempty; Name: {app}\Plugins
+; PLuginBridge uses arch naming now
+Type: files; Name: {app}\PluginBridge32.exe
+Type: files; Name: {app}\PluginBridge64.exe
 
 [UninstallDelete]
 ; internet shortcut has to be deleted manually
Index: mptrack/AbstractVstEditor.cpp
===================================================================
--- mptrack/AbstractVstEditor.cpp	(revision 11392)
+++ mptrack/AbstractVstEditor.cpp	(working copy)
@@ -457,7 +457,7 @@
 #ifndef NO_VST
 		const CVstPlugin *vstPlugin = dynamic_cast<CVstPlugin *>(&m_VstPlugin);
 		if(vstPlugin != nullptr && vstPlugin->isBridged)
-			title += mpt::cformat(_T(" (%1-Bit Bridged)"))(m_VstPlugin.GetPluginFactory().GetDllBits());
+			title += mpt::cformat(_T(" (%1 Bridged)"))(m_VstPlugin.GetPluginFactory().GetDllArchName());
 #endif // NO_VST
 
 		SetWindowText(title);
Index: mptrack/MainFrm.cpp
===================================================================
--- mptrack/MainFrm.cpp	(revision 11392)
+++ mptrack/MainFrm.cpp	(working copy)
@@ -2902,7 +2902,7 @@
 		if(vstPlug != nullptr && vstPlug->isBridged)
 		{
 			VSTPluginLib &lib = vstPlug->GetPluginFactory();
-			str += mpt::format(U_(" (%1-Bit Bridged)"))(lib.GetDllBits());
+			str += mpt::format(U_(" (%1 Bridged)"))(lib.GetDllArchName());
 		}
 
 		CBox.SetItemData(static_cast<int>(::SendMessageW(CBox.m_hWnd, CB_ADDSTRING, 0, (LPARAM)str.c_str())), iPlug + 1);
Index: mptrack/SelectPluginDialog.cpp
===================================================================
--- mptrack/SelectPluginDialog.cpp	(revision 11392)
+++ mptrack/SelectPluginDialog.cpp	(working copy)
@@ -389,7 +389,7 @@
 			CString title = plug.libraryName.ToCString();
 			if(!plug.IsNativeFromCache())
 			{
-				title += mpt::cformat(_T(" (%1-Bit)"))(plug.GetDllBits());
+				title += mpt::cformat(_T(" (%1)"))(plug.GetDllArchName());
 			}
 			HTREEITEM h = AddTreeItem(title, plug.isInstrument ? IMAGE_PLUGININSTRUMENT : IMAGE_EFFECTPLUGIN, true, categoryFolders[plug.category], reinterpret_cast<LPARAM>(&plug));
 			categoryUsed[plug.category] = true;
@@ -512,9 +512,15 @@
 		if(pPlug->pluginId1 == Vst::kEffectMagic && !pPlug->isBuiltIn)
 		{
 			bool isBridgeAvailable =
-					((pPlug->GetDllBits() == 32) && IsComponentAvailable(pluginBridge32))
+					((pPlug->GetDllArch() == PluginArch_x86) && IsComponentAvailable(pluginBridge_x86))
 				||
-					((pPlug->GetDllBits() == 64) && IsComponentAvailable(pluginBridge64))
+					((pPlug->GetDllArch() == PluginArch_amd64) && IsComponentAvailable(pluginBridge_amd64))
+#if defined(MPT_WITH_WINDOWS10)
+				||
+					((pPlug->GetDllArch() == PluginArch_arm) && IsComponentAvailable(pluginBridge_arm))
+				||
+					((pPlug->GetDllArch() == PluginArch_arm64) && IsComponentAvailable(pluginBridge_arm64))
+#endif // MPT_WITH_WINDOWS10
 				;
 			if(TrackerSettings::Instance().bridgeAllPlugins || !isBridgeAvailable)
 			{
Index: mptrack/SelectPluginDialog.h
===================================================================
--- mptrack/SelectPluginDialog.h	(revision 11392)
+++ mptrack/SelectPluginDialog.h	(working copy)
@@ -20,8 +20,12 @@
 class CModDoc;
 struct SNDMIXPLUGIN;
 struct VSTPluginLib;
-class ComponentPluginBridge32;
-class ComponentPluginBridge64;
+class ComponentPluginBridge_x86;
+class ComponentPluginBridge_amd64;
+#if defined(MPT_WITH_WINDOWS10)
+class ComponentPluginBridge_arm;
+class ComponentPluginBridge_arm64;
+#endif // MPT_WITH_WINDOWS10
 
 class CSelectPluginDlg: public CDialog
 {
@@ -32,8 +36,12 @@
 	CButton m_chkBridge, m_chkShare;
 	mpt::ustring m_nameFilter;
 #ifndef NO_VST
-	ComponentHandle<ComponentPluginBridge32> pluginBridge32;
-	ComponentHandle<ComponentPluginBridge64> pluginBridge64;
+	ComponentHandle<ComponentPluginBridge_x86> pluginBridge_x86;
+	ComponentHandle<ComponentPluginBridge_amd64> pluginBridge_amd64;
+#if defined(MPT_WITH_WINDOWS10)
+	ComponentHandle<ComponentPluginBridge_arm> pluginBridge_arm;
+	ComponentHandle<ComponentPluginBridge_arm64> pluginBridge_arm64;
+#endif // MPT_WITH_WINDOWS10
 #endif
 	PLUGINDEX m_nPlugSlot;
 
Index: pluginBridge/BridgeWrapper.cpp
===================================================================
--- pluginBridge/BridgeWrapper.cpp	(revision 11392)
+++ pluginBridge/BridgeWrapper.cpp	(working copy)
@@ -27,9 +27,34 @@
 OPENMPT_NAMESPACE_BEGIN
 
 
-ComponentPluginBridge::ComponentPluginBridge(int bitness)
+std::size_t GetPluginArchPointerSize(PluginArch arch)
+{
+	std::size_t result = 0;
+	switch(arch)
+	{
+	case PluginArch_x86:
+		result = 4;
+		break;
+	case PluginArch_amd64:
+		result = 8;
+		break;
+	case PluginArch_arm:
+		result = 4;
+		break;
+	case PluginArch_arm64:
+		result = 8;
+		break;
+	default:
+		result = 0;
+		break;
+	}
+	return result;
+}
+
+
+ComponentPluginBridge::ComponentPluginBridge(PluginArch arch)
 	: ComponentBase(ComponentTypeBundled)
-	, bitness(bitness)
+	, arch(arch)
 	, availability(AvailabilityUnknown)
 {
 	return;
@@ -38,22 +63,70 @@
 
 bool ComponentPluginBridge::DoInitialize()
 {
-	if(bitness != 32 && bitness != 64)
+	mpt::PathString archName;
+	switch(arch)
 	{
+	case PluginArch_x86:
+		if(mpt::Windows::HostCanRun(mpt::Windows::GetHostArchitecture(), mpt::Windows::Architecture::x86) == mpt::Windows::EmulationLevel::NA)
+		{
+			return false;
+		}
+		archName = P_("x86");
+		break;
+	case PluginArch_amd64:
+		if(mpt::Windows::HostCanRun(mpt::Windows::GetHostArchitecture(), mpt::Windows::Architecture::amd64) == mpt::Windows::EmulationLevel::NA)
+		{
+			return false;
+		}
+		archName = P_("amd64");
+		break;
+	case PluginArch_arm:
+		if(mpt::Windows::HostCanRun(mpt::Windows::GetHostArchitecture(), mpt::Windows::Architecture::arm) == mpt::Windows::EmulationLevel::NA)
+		{
+			return false;
+		}
+		archName = P_("arm");
+		break;
+	case PluginArch_arm64:
+		if(mpt::Windows::HostCanRun(mpt::Windows::GetHostArchitecture(), mpt::Windows::Architecture::arm64) == mpt::Windows::EmulationLevel::NA)
+		{
+			return false;
+		}
+		archName = P_("arm64");
+		break;
+	default:
+		break;
+	}
+	if(archName.empty())
+	{
 		return false;
 	}
-	exeName = theApp.GetAppDirPath();
-	if(bitness == 32)
+	if(exeName.empty())
 	{
-		exeName += P_("PluginBridge32.exe");
+		mpt::PathString exeNameLocal = theApp.GetAppDirPath() + P_("PluginBridge-") + archName + P_(".exe");
+		if(exeNameLocal.IsFile())
+		{
+			exeName = exeNameLocal;
+		}
 	}
-	if(bitness == 64)
+	if(exeName.empty())
 	{
-		exeName += P_("PluginBridge64.exe");
+		mpt::PathString exeNameMultiArch = theApp.GetAppDirPath() + P_("..") + P_("\\") + archName + P_("\\") + P_("PluginBridge.exe");
+		if(exeNameMultiArch.IsFile())
+		{
+			exeName = exeNameMultiArch;
+		}
 	}
-	// First, check for validity of the bridge executable.
-	if(!exeName.IsFile())
+	if(exeName.empty())
 	{
+		mpt::PathString exeNameMultiArchTransitional = theApp.GetAppDirPath() + P_("..") + P_("\\") + archName + P_("\\") + P_("PluginBridge-") + archName + P_(".exe");
+		if(exeNameMultiArchTransitional.IsFile())
+		{
+			exeName = exeNameMultiArchTransitional;
+		}
+	}
+	if(exeName.empty())
+	{
 		availability = AvailabilityMissing;
 		return false;
 	}
@@ -74,15 +147,48 @@
 }
 
 
-MPT_REGISTERED_COMPONENT(ComponentPluginBridge32, "PluginBridge32")
+MPT_REGISTERED_COMPONENT(ComponentPluginBridge_x86, "PluginBridge-x86")
 
-MPT_REGISTERED_COMPONENT(ComponentPluginBridge64, "PluginBridge64")
+MPT_REGISTERED_COMPONENT(ComponentPluginBridge_amd64, "PluginBridge-amd64")
 
+#if defined(MPT_WITH_WINDOWS10)
 
+MPT_REGISTERED_COMPONENT(ComponentPluginBridge_arm, "PluginBridge-arm")
+
+MPT_REGISTERED_COMPONENT(ComponentPluginBridge_arm64, "PluginBridge-arm64")
+
+#endif // MPT_WITH_WINDOWS10
+
+
+PluginArch BridgeWrapper::GetNativePluginBinaryType()
+{
+	PluginArch result = PluginArch_unknown;
+	switch(mpt::Windows::GetProcessArchitecture())
+	{
+	case mpt::Windows::Architecture::x86:
+		result = PluginArch_x86;
+		break;
+	case mpt::Windows::Architecture::amd64:
+		result = PluginArch_amd64;
+		break;
+	case mpt::Windows::Architecture::arm:
+		result = PluginArch_arm;
+		break;
+	case mpt::Windows::Architecture::arm64:
+		result = PluginArch_arm64;
+		break;
+	default:
+		result = PluginArch_unknown;
+		break;
+	}
+	return result;
+}
+
+
 // Check whether we need to load a 32-bit or 64-bit wrapper.
-BridgeWrapper::BinaryType BridgeWrapper::GetPluginBinaryType(const mpt::PathString &pluginPath)
+PluginArch BridgeWrapper::GetPluginBinaryType(const mpt::PathString &pluginPath)
 {
-	BinaryType type = binUnknown;
+	PluginArch type = PluginArch_unknown;
 	mpt::ifstream file(pluginPath, std::ios::in | std::ios::binary);
 	if(file.is_open())
 	{
@@ -95,10 +201,26 @@
 			file.read(reinterpret_cast<char *>(&ntHeader), sizeof(ntHeader));
 
 			ASSERT((ntHeader.FileHeader.Characteristics & IMAGE_FILE_DLL) != 0);
-			if(ntHeader.FileHeader.Machine == IMAGE_FILE_MACHINE_I386)
-				type = bin32Bit;
-			else if(ntHeader.FileHeader.Machine == IMAGE_FILE_MACHINE_AMD64)
-				type = bin64Bit;
+			switch(ntHeader.FileHeader.Machine)
+			{
+			case IMAGE_FILE_MACHINE_I386:
+				type = PluginArch_x86;
+				break;
+			case IMAGE_FILE_MACHINE_AMD64:
+				type = PluginArch_amd64;
+				break;
+#if defined(MPT_WITH_WINDOWS10)
+			case IMAGE_FILE_MACHINE_ARM:
+				type = PluginArch_arm;
+				break;
+			case IMAGE_FILE_MACHINE_ARM64:
+				type = PluginArch_arm64;
+				break;
+#endif // MPT_WITH_WINDOWS10
+			default:
+				type = PluginArch_unknown;
+				break;
+			}
 		}
 	}
 	return type;
@@ -193,16 +315,41 @@
 	if(sharedInstace == nullptr)
 	{
 		// Create a new bridge instance
-		BinaryType binType;
-		if((binType = GetPluginBinaryType(pluginPath)) == binUnknown)
+		const PluginArch arch = GetPluginBinaryType(pluginPath);
+		bool available = false;
+		switch(arch)
 		{
+		case PluginArch_x86:
+			available = IsComponentAvailable(pluginBridge_x86);
+			break;
+		case PluginArch_amd64:
+			available = IsComponentAvailable(pluginBridge_amd64);
+			break;
+#if defined(MPT_WITH_WINDOWS10)
+		case PluginArch_arm:
+			available = IsComponentAvailable(pluginBridge_arm);
+			break;
+		case PluginArch_arm64:
+			available = IsComponentAvailable(pluginBridge_arm64);
+			break;
+#endif // MPT_WITH_WINDOWS10
+		default:
+			break;
+		}
+		if(arch == PluginArch_unknown)
+		{
 			return false;
 		}
-
-		const bool available = (binType == bin32Bit) ? IsComponentAvailable(pluginBridge32) : IsComponentAvailable(pluginBridge64);
 		if(!available)
 		{
-			ComponentPluginBridge::Availability availability = (binType == bin32Bit) ? pluginBridge32->GetAvailability() : pluginBridge64->GetAvailability();
+			ComponentPluginBridge::Availability availability =
+				(arch == PluginArch_x86) ? pluginBridge_x86->GetAvailability() :
+				(arch == PluginArch_amd64) ? pluginBridge_amd64->GetAvailability() :
+#if defined(MPT_WITH_WINDOWS10)
+				(arch == PluginArch_arm) ? pluginBridge_arm->GetAvailability() :
+				(arch == PluginArch_arm64) ? pluginBridge_arm64->GetAvailability() :
+#endif // MPT_WITH_WINDOWS10
+				ComponentPluginBridge::AvailabilityUnknown;
 			switch(availability)
 			{
 				case ComponentPluginBridge::AvailabilityMissing:
@@ -217,10 +364,17 @@
 					break;
 			}
 		}
-
-		const mpt::PathString exeName = (binType == bin32Bit) ? pluginBridge32->GetFileName() : pluginBridge64->GetFileName();
+		const ComponentPluginBridge * const pluginBridge =
+			(arch == PluginArch_x86) ? static_cast<const ComponentPluginBridge*>(pluginBridge_x86.get()) :
+			(arch == PluginArch_amd64) ? static_cast<const ComponentPluginBridge*>(pluginBridge_amd64.get()) :
+#if defined(MPT_WITH_WINDOWS10)
+			(arch == PluginArch_arm) ? static_cast<const ComponentPluginBridge*>(pluginBridge_arm.get()) :
+			(arch == PluginArch_arm64) ? static_cast<const ComponentPluginBridge*>(pluginBridge_arm64.get()) :
+#endif // MPT_WITH_WINDOWS10
+			nullptr;
+		const mpt::PathString exeName = pluginBridge->GetFileName();
 	
-		otherPtrSize = binType / 8;
+		otherPtrSize = static_cast<int32>(GetPluginArchPointerSize(arch));
 
 		// Command-line must be a modifiable string...
 		wchar_t cmdLine[128];
Index: pluginBridge/BridgeWrapper.h
===================================================================
--- pluginBridge/BridgeWrapper.h	(revision 11392)
+++ pluginBridge/BridgeWrapper.h	(working copy)
@@ -21,6 +21,17 @@
 
 struct VSTPluginLib;
 
+enum PluginArch : int
+{
+	PluginArch_unknown =        0,
+	PluginArch_x86     =       32,
+	PluginArch_amd64   =       64,
+	PluginArch_arm     = 128 + 32,
+	PluginArch_arm64   = 128 + 64,
+};
+
+std::size_t GetPluginArchPointerSize(PluginArch arch);
+
 class ComponentPluginBridge
 	: public ComponentBase
 {
@@ -33,11 +44,11 @@
 		AvailabilityWrongVersion = -2,
 	};
 private:
-	const int bitness;
+	const PluginArch arch;
 	mpt::PathString exeName;
 	Availability availability;
 protected:
-	ComponentPluginBridge(int bitness);
+	ComponentPluginBridge(PluginArch arch);
 protected:
 	bool DoInitialize() override;
 public:
@@ -45,22 +56,42 @@
 	mpt::PathString GetFileName() const { return exeName; }
 };
 
-class ComponentPluginBridge32
+class ComponentPluginBridge_x86
 	: public ComponentPluginBridge
 {
 	MPT_DECLARE_COMPONENT_MEMBERS
 public:
-	ComponentPluginBridge32() : ComponentPluginBridge(32) { }
+	ComponentPluginBridge_x86() : ComponentPluginBridge(PluginArch_x86) { }
 };
 
-class ComponentPluginBridge64
+class ComponentPluginBridge_amd64
 	: public ComponentPluginBridge
 {
 	MPT_DECLARE_COMPONENT_MEMBERS
 public:
-	ComponentPluginBridge64() : ComponentPluginBridge(64) { }
+	ComponentPluginBridge_amd64() : ComponentPluginBridge(PluginArch_amd64) { }
 };
 
+#if defined(MPT_WITH_WINDOWS10)
+
+class ComponentPluginBridge_arm
+	: public ComponentPluginBridge
+{
+	MPT_DECLARE_COMPONENT_MEMBERS
+public:
+	ComponentPluginBridge_arm() : ComponentPluginBridge(PluginArch_arm) { }
+};
+
+class ComponentPluginBridge_arm64
+	: public ComponentPluginBridge
+{
+	MPT_DECLARE_COMPONENT_MEMBERS
+public:
+	ComponentPluginBridge_arm64() : ComponentPluginBridge(PluginArch_arm64) { }
+};
+
+#endif // MPT_WITH_WINDOWS10
+
 class BridgeWrapper : protected BridgeCommon
 {
 protected:
@@ -88,17 +119,15 @@
 	Vst::ERect editRect;
 	Vst::VstSpeakerArrangement speakers[2];
 
-	ComponentHandle<ComponentPluginBridge32> pluginBridge32;
-	ComponentHandle<ComponentPluginBridge64> pluginBridge64;
+	ComponentHandle<ComponentPluginBridge_x86> pluginBridge_x86;
+	ComponentHandle<ComponentPluginBridge_amd64> pluginBridge_amd64;
+#if defined(MPT_WITH_WINDOWS10)
+	ComponentHandle<ComponentPluginBridge_arm> pluginBridge_arm;
+	ComponentHandle<ComponentPluginBridge_arm64> pluginBridge_arm64;
+#endif // MPT_WITH_WINDOWS10
 
 public:
-	enum BinaryType
-	{
-		binUnknown = 0,
-		bin32Bit = 32,
-		bin64Bit = 64,
-	};
-
+	
 	// Generic bridge exception
 	class BridgeException : public std::exception
 	{
@@ -120,8 +149,9 @@
 	};
 
 public:
-	static BinaryType GetPluginBinaryType(const mpt::PathString &pluginPath);
-	static bool IsPluginNative(const mpt::PathString &pluginPath) { return GetPluginBinaryType(pluginPath) == mpt::arch_bits; }
+	static PluginArch GetNativePluginBinaryType();
+	static PluginArch GetPluginBinaryType(const mpt::PathString &pluginPath);
+	static bool IsPluginNative(const mpt::PathString &pluginPath) { return GetPluginBinaryType(pluginPath) == GetNativePluginBinaryType(); }
 	static uint64 GetFileVersion(const WCHAR *exePath);
 
 	static Vst::AEffect *Create(const VSTPluginLib &plugin);
Index: soundlib/plugins/PluginManager.cpp
===================================================================
--- soundlib/plugins/PluginManager.cpp	(revision 11392)
+++ soundlib/plugins/PluginManager.cpp	(working copy)
@@ -70,23 +70,91 @@
 #endif // MODPLUG_TRACKER
 
 
-uint8 VSTPluginLib::GetDllBits(bool fromCache) const
+uint8 VSTPluginLib::GetNativePluginArch()
 {
+	uint8 result = 0;
+	switch(mpt::Windows::GetProcessArchitecture())
+	{
+	case mpt::Windows::Architecture::x86:
+		result = PluginArch_x86;
+		break;
+	case mpt::Windows::Architecture::amd64:
+		result = PluginArch_amd64;
+		break;
+	case mpt::Windows::Architecture::arm:
+		result = PluginArch_arm;
+		break;
+	case mpt::Windows::Architecture::arm64:
+		result = PluginArch_arm64;
+		break;
+	default:
+		result = 0;
+		break;
+	}
+	return result;
+}
+
+
+mpt::ustring VSTPluginLib::GetPluginArchName(uint8 arch)
+{
+	mpt::ustring result;
+	switch(arch)
+	{
+	case PluginArch_x86:
+		result = U_("x86");
+		break;
+	case PluginArch_amd64:
+		result = U_("amd64");
+		break;
+	case PluginArch_arm:
+		result = U_("arm");
+		break;
+	case PluginArch_arm64:
+		result = U_("arm64");
+		break;
+	default:
+		result = U_("");
+		break;
+	}
+	return result;
+}
+
+
+uint8 VSTPluginLib::GetDllArch(bool fromCache) const
+{
 	// Built-in plugins are always native.
 	if(dllPath.empty())
-		return mpt::arch_bits;
+		return GetNativePluginArch();
 #ifndef NO_VST
-	if(!dllBits || !fromCache)
+	if(!dllArch || !fromCache)
 	{
-		dllBits = static_cast<uint8>(BridgeWrapper::GetPluginBinaryType(dllPath));
+		dllArch = static_cast<uint8>(BridgeWrapper::GetPluginBinaryType(dllPath));
 	}
 #else
 	MPT_UNREFERENCED_PARAMETER(fromCache);
 #endif // NO_VST
-	return dllBits;
+	return dllArch;
 }
 
 
+mpt::ustring VSTPluginLib::GetDllArchName(bool fromCache) const
+{
+	return GetPluginArchName(GetDllArch(fromCache));
+}
+
+
+bool VSTPluginLib::IsNative(bool fromCache) const
+{
+	return GetDllArch(fromCache) == GetNativePluginArch();
+}
+
+
+bool VSTPluginLib::IsNativeFromCache() const
+{
+	return dllArch == GetNativePluginArch() || dllArch == 0;
+}
+
+
 // PluginCache format:
 // FullDllPath = <ID1><ID2><CRC32> (hex-encoded)
 // <ID1><ID2><CRC32>.Flags = Plugin Flags (see VSTPluginLib::DecodeCacheFlags).
Index: soundlib/plugins/PluginManager.h
===================================================================
--- soundlib/plugins/PluginManager.h	(revision 11392)
+++ soundlib/plugins/PluginManager.h	(working copy)
@@ -23,6 +23,7 @@
 class CSoundFile;
 class IMixPlugin;
 struct SNDMIXPLUGIN;
+enum PluginArch;
 
 struct VSTPluginLib
 {
@@ -66,7 +67,7 @@
 	bool isInstrument : 1;
 	bool useBridge : 1, shareBridgeInstance : 1;
 protected:
-	mutable uint8 dllBits = 0;
+	mutable uint8 dllArch = 0;
 
 public:
 	VSTPluginLib(CreateProc factoryProc, bool isBuiltIn, const mpt::PathString &dllPath, const mpt::PathString &libraryName
@@ -86,23 +87,28 @@
 	{
 	}
 
+	// GEt native phost process arch encoded as plugin arch
+	static uint8 GetNativePluginArch();
+	static mpt::ustring GetPluginArchName(uint8 arch);
+
 	// Check whether a plugin can be hosted inside OpenMPT or requires bridging
-	uint8 GetDllBits(bool fromCache = true) const;
-	bool IsNative(bool fromCache = true) const { return GetDllBits(fromCache) == mpt::arch_bits; }
+	uint8 GetDllArch(bool fromCache = true) const;
+	mpt::ustring GetDllArchName(bool fromCache = true) const;
+	bool IsNative(bool fromCache = true) const;
 	// Check if a plugin is native, and if it is currently unknown, assume that it is native. Use this function only for performance reasons
 	// (e.g. if tons of unscanned plugins would slow down generation of the plugin selection dialog)
-	bool IsNativeFromCache() const { return dllBits == mpt::arch_bits || dllBits == 0; }
+	bool IsNativeFromCache() const;
 
 	void WriteToCache() const;
 
 	uint32 EncodeCacheFlags() const
 	{
-		// Format: 00000000.00000000.DDDDDDSB.CCCCCCCI
+		// Format: 00000000.00000000.AAAAAASB.CCCCCCCI
 		return (isInstrument ? 1 : 0)
 			| (category << 1)
 			| (useBridge ? 0x100 : 0)
 			| (shareBridgeInstance ? 0x200 : 0)
-			| ((dllBits / 8) << 10);
+			| ((dllArch / 8) << 10);
 	}
 
 	void DecodeCacheFlags(uint32 flags)
@@ -119,7 +125,7 @@
 		}
 		useBridge = (flags & 0x100) != 0;
 		shareBridgeInstance = (flags & 0x200) != 0;
-		dllBits = ((flags >> 10) & 0x3F) * 8;
+		dllArch = ((flags >> 10) & 0x3F) * 8;
 	}
 };
 
