diff --git a/.gitignore b/.gitignore
index 1207e230..b5a68d43 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,11 @@ include/
obj.*
*.ipdb
*.iobj
+*.tlog
+*.log
+*.obj
+*.user
+*.recipe
+/bin.*
+*.vcxproj.FileListAbsolute.txt
+*.vcxprojAssemblyReference.cache
diff --git a/vc/Detours.sln b/vc/Detours.sln
new file mode 100644
index 00000000..2bd53476
--- /dev/null
+++ b/vc/Detours.sln
@@ -0,0 +1,43 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29519.181
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Detours", "Detours.vcxproj", "{37489709-8054-4903-9C49-A79846049FC9}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ DebugMDd|ARM = DebugMDd|ARM
+ DebugMDd|ARM64 = DebugMDd|ARM64
+ DebugMDd|x64 = DebugMDd|x64
+ DebugMDd|x86 = DebugMDd|x86
+ ReleaseMD|ARM = ReleaseMD|ARM
+ ReleaseMD|ARM64 = ReleaseMD|ARM64
+ ReleaseMD|x64 = ReleaseMD|x64
+ ReleaseMD|x86 = ReleaseMD|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {37489709-8054-4903-9C49-A79846049FC9}.DebugMDd|ARM.ActiveCfg = DebugMDd|ARM
+ {37489709-8054-4903-9C49-A79846049FC9}.DebugMDd|ARM.Build.0 = DebugMDd|ARM
+ {37489709-8054-4903-9C49-A79846049FC9}.DebugMDd|ARM64.ActiveCfg = DebugMDd|ARM64
+ {37489709-8054-4903-9C49-A79846049FC9}.DebugMDd|ARM64.Build.0 = DebugMDd|ARM64
+ {37489709-8054-4903-9C49-A79846049FC9}.DebugMDd|x64.ActiveCfg = DebugMDd|x64
+ {37489709-8054-4903-9C49-A79846049FC9}.DebugMDd|x64.Build.0 = DebugMDd|x64
+ {37489709-8054-4903-9C49-A79846049FC9}.DebugMDd|x86.ActiveCfg = DebugMDd|Win32
+ {37489709-8054-4903-9C49-A79846049FC9}.DebugMDd|x86.Build.0 = DebugMDd|Win32
+ {37489709-8054-4903-9C49-A79846049FC9}.ReleaseMD|ARM.ActiveCfg = ReleaseMD|ARM
+ {37489709-8054-4903-9C49-A79846049FC9}.ReleaseMD|ARM.Build.0 = ReleaseMD|ARM
+ {37489709-8054-4903-9C49-A79846049FC9}.ReleaseMD|ARM64.ActiveCfg = ReleaseMD|ARM64
+ {37489709-8054-4903-9C49-A79846049FC9}.ReleaseMD|ARM64.Build.0 = ReleaseMD|ARM64
+ {37489709-8054-4903-9C49-A79846049FC9}.ReleaseMD|x64.ActiveCfg = ReleaseMD|x64
+ {37489709-8054-4903-9C49-A79846049FC9}.ReleaseMD|x64.Build.0 = ReleaseMD|x64
+ {37489709-8054-4903-9C49-A79846049FC9}.ReleaseMD|x86.ActiveCfg = ReleaseMD|Win32
+ {37489709-8054-4903-9C49-A79846049FC9}.ReleaseMD|x86.Build.0 = ReleaseMD|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {1E71C644-7F30-4025-B1DF-6A4F07A2EDB3}
+ EndGlobalSection
+EndGlobal
diff --git a/vc/Detours.vcxproj b/vc/Detours.vcxproj
new file mode 100644
index 00000000..bc412239
--- /dev/null
+++ b/vc/Detours.vcxproj
@@ -0,0 +1,600 @@
+
+
+
+
+ DebugMDd
+ ARM
+
+
+ DebugMDd
+ ARM64
+
+
+ DebugMDd
+ Win32
+
+
+ ReleaseMD
+ ARM
+
+
+ ReleaseMD
+ ARM64
+
+
+ ReleaseMD
+ Win32
+
+
+ DebugMDd
+ x64
+
+
+ ReleaseMD
+ x64
+
+
+
+ 15.0
+ {37489709-8054-4903-9C49-A79846049FC9}
+ Win32Proj
+ Detours
+ 10.0
+
+
+
+ Makefile
+ true
+ v142
+ Unicode
+
+
+ Makefile
+ false
+ v142
+ Unicode
+
+
+ Makefile
+ true
+ v142
+ Unicode
+
+
+ Makefile
+ true
+ v142
+ Unicode
+
+
+ Makefile
+ true
+ v142
+ Unicode
+
+
+ Makefile
+ false
+ v142
+ Unicode
+
+
+ Makefile
+ false
+ v142
+ Unicode
+
+
+ Makefile
+ false
+ v142
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+nmake
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake clean
+
+
+
+ Level4
+ true
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ true
+ ProgramDatabase
+ $(OutputPath)$(TargetName).pdb
+
+
+ Windows
+ true
+
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+
+
+
+
+ Level4
+ Disabled
+ true
+ _DEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ true
+ ProgramDatabase
+
+
+ $(OutputPath)$(TargetName).pdb
+
+
+ Windows
+ true
+
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+
+
+
+
+ Level4
+ Disabled
+ true
+ _DEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ true
+ ProgramDatabase
+
+
+
+
+ $(OutputPath)$(TargetName).pdb
+
+
+ Windows
+ true
+
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+
+
+
+
+ Level4
+ Disabled
+ true
+ _DEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ true
+ ProgramDatabase
+
+
+
+
+ $(OutputPath)$(TargetName).pdb
+
+
+ Windows
+ true
+
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+
+
+
+
+ Level4
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ true
+ $(OutputPath)$(TargetName).pdb
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+
+
+
+
+ Level4
+ MaxSpeed
+ true
+ true
+ NDEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ true
+
+
+ $(OutputPath)$(TargetName).pdb
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+
+
+
+
+ Level4
+ MaxSpeed
+ true
+ true
+ NDEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ true
+
+
+
+
+ $(OutputPath)$(TargetName).pdb
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+
+
+
+
+ Level4
+ MaxSpeed
+ true
+ true
+ NDEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ true
+
+
+
+
+ $(OutputPath)$(TargetName).pdb
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+ SET DETOURS_TARGET_PROCESSOR=$(PlatformTarget)
+cd ..
+nmake
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vc/Detours.vcxproj.filters b/vc/Detours.vcxproj.filters
new file mode 100644
index 00000000..a6e401b5
--- /dev/null
+++ b/vc/Detours.vcxproj.filters
@@ -0,0 +1,590 @@
+
+
+
+
+ {4DE3849F-647A-48FF-8873-256D44DFF3CA}
+
+
+ {6215A674-4251-4F64-AA56-6F80297E5F8B}
+
+
+ {B581B77F-AE4D-43BC-8C4F-EDE0E61EFFD3}
+
+
+ {BF2ACC0E-890D-4BD0-B532-6228AF011E3E}
+
+
+ {32F50667-320C-4799-B7DA-D1878C358D64}
+
+
+ {314C251E-4D8E-4837-9C36-4741399ED2A1}
+
+
+ {53C9A890-D5AB-4FD1-B898-6107C0E676E7}
+
+
+ {17467834-9161-4FB2-BBEF-E3233CBBC818}
+
+
+ {5A3371DC-E827-47CC-901A-F3D91162EFB2}
+
+
+ {A2B9B912-8C03-400F-B271-51EEB4CE6843}
+
+
+ {571B99A3-B6D5-4838-B189-4A038B104B2A}
+
+
+ {F1740406-C1BB-49C7-A602-9DDACBD4ABCA}
+
+
+ {58CCECE5-A38B-4C56-8E3F-3E0722393F56}
+
+
+ {B3E06AC8-3F78-43C8-B7AC-84546475F960}
+
+
+ {CD32F55E-60C5-4ED6-ACCC-4B43E6AC195D}
+
+
+ {1ABFBA92-4E60-481A-9007-8150D95E072F}
+
+
+ {0929821A-9C85-4D74-B969-865D6DA40D2A}
+
+
+ {9017F1FA-4DCB-44D1-854D-2F14358791F5}
+
+
+ {D9D7E0B0-4E14-473F-AE28-B4A5AF4EB427}
+
+
+ {88EFC740-5E28-484E-97FC-E7BBA6D36454}
+
+
+ {EA900A65-64CA-417B-8DE7-4174C9CB1E5A}
+
+
+ {7A1582F0-0A25-4A0E-B7E5-14F6E332BDFA}
+
+
+ {B99E03FF-320A-4D13-BFB8-674E102E306D}
+
+
+ {6169E241-5297-4B63-8D32-407D592EF103}
+
+
+ {EFD841EC-A8B1-4CD6-AC2D-0D286669BA3B}
+
+
+ {14F0CAFF-0470-4D28-9083-3FD5656E7B27}
+
+
+ {A3CE1454-F707-4A29-B389-2E762651CDD7}
+
+
+ {D3299D5A-9CE3-45E6-9784-4166606BA70B}
+
+
+ {6E1471A7-7B40-4528-8210-64CFC4663258}
+
+
+ {62236214-1B41-4765-9D9D-1E313B4E5AB7}
+
+
+ {24AC6634-A8C9-430B-8D95-45DEB57070C9}
+
+
+ {077E7134-5AA3-4151-8313-88106FCBDAB3}
+
+
+ {E980771B-0BA5-4B01-947A-B99D33E31E89}
+
+
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ samples\tryman
+
+
+ samples\tracebld
+
+
+ samples\tracebld
+
+
+ samples\tracelnk
+
+
+ samples\tracemem
+
+
+ samples\tracereg
+
+
+ samples\traceser
+
+
+ samples\tracessl
+
+
+ samples\tracetcp
+
+
+ samples\tryman
+
+
+ samples\tryman
+
+
+ samples\withdll
+
+
+ samples\traceapi
+
+
+ samples\slept
+
+
+ samples\simple
+
+
+ samples\simple
+
+
+ samples\slept
+
+
+ samples\slept
+
+
+ samples\slept
+
+
+ samples\slept
+
+
+ samples\syelog
+
+
+ samples\syelog
+
+
+ samples\syelog
+
+
+ samples\syelog
+
+
+ samples\talloc
+
+
+ samples\talloc
+
+
+ samples\talloc
+
+
+ samples\talloc
+
+
+ samples\talloc
+
+
+ samples\talloc
+
+
+ samples\talloc
+
+
+ samples\talloc
+
+
+ samples\talloc
+
+
+ samples\talloc
+
+
+ samples\traceapi
+
+
+ samples\traceapi
+
+
+ samples\slept
+
+
+ samples\dtest
+
+
+ samples\dtest
+
+
+ samples\dumpe
+
+
+ samples\dumpi
+
+
+ samples\echo
+
+
+ samples\echo
+
+
+ samples\einst
+
+
+ samples\einst
+
+
+ samples\einst
+
+
+ samples\einst
+
+
+ samples\excep
+
+
+ samples\findfunc
+
+
+ samples\findfunc
+
+
+ samples\excep
+
+
+ samples\impmunge
+
+
+ samples\dynamic_alloc
+
+
+ samples\echo
+
+
+ samples\member
+
+
+ samples\opengl
+
+
+ samples\region
+
+
+ samples\setdll
+
+
+ samples\findfunc
+
+
+ samples\findfunc
+
+
+ samples\opengl
+
+
+ samples\comeasy
+
+
+ samples\commem
+
+
+ samples\cping
+
+
+ samples\disas
+
+
+ samples\disas
+
+
+ samples\comeasy
+
+
+ samples\disas
+
+
+
+
+ src
+
+
+ src
+
+
+ samples\tracebld
+
+
+ samples\slept
+
+
+ samples\syelog
+
+
+ samples\dtest
+
+
+ samples\excep
+
+
+ samples\findfunc
+
+
+
+
+ samples\tracebld
+
+
+ samples\tracelnk
+
+
+ samples\tracemem
+
+
+ samples\tracereg
+
+
+ samples\traceser
+
+
+ samples\tracessl
+
+
+ samples\tracetcp
+
+
+ samples\tryman
+
+
+ samples\withdll
+
+
+ samples\tryman
+
+
+ samples\simple
+
+
+ samples\slept
+
+
+ samples\syelog
+
+
+ samples\talloc
+
+
+ samples\traceapi
+
+
+ samples\dumpe
+
+
+ samples\dumpi
+
+
+ samples\dynamic_alloc
+
+
+ samples\echo
+
+
+ samples\einst
+
+
+ samples\excep
+
+
+ samples\findfunc
+
+
+ samples\impmunge
+
+
+ samples\member
+
+
+ samples\opengl
+
+
+ samples\region
+
+
+ samples\setdll
+
+
+ samples\dynamic_alloc
+
+
+ samples\dynamic_alloc
+
+
+ samples\disas
+
+
+ samples
+
+
+ samples\cping
+
+
+ samples\disas
+
+
+ samples\comeasy
+
+
+ samples\commem
+
+
+ samples\cping
+
+
+ samples\disas
+
+
+ samples\dtest
+
+
+ samples
+
+
+ samples\disas
+
+
+
+
+
+
+
+
+
+ samples\slept
+
+
+ samples\talloc
+
+
+ samples\slept
+
+
+ samples\talloc
+
+
+ samples\slept
+
+
+ samples\dtest
+
+
+ samples\dtest
+
+
+ samples\dtest
+
+
+ samples\cping
+
+
+ samples
+
+
+
+
+
+ samples\traceapi
+
+
+ samples\tracebld
+
+
+ samples\tracelnk
+
+
+ samples\tracemem
+
+
+ samples\tracereg
+
+
+ samples\traceser
+
+
+ samples\tracessl
+
+
+ samples\tracetcp
+
+
+ samples\tryman
+
+
+ samples\slept
+
+
+ samples\simple
+
+
+ samples\slept
+
+
+ samples\dtest
+
+
+ samples\echo
+
+
+ samples\findfunc
+
+
+ samples\opengl
+
+
+ samples\findfunc
+
+
+ samples\comeasy
+
+
+
+
+ samples\cping
+
+
+
\ No newline at end of file