The source code for this post has been updated to VS 2017 (master branch). There is also a VS2015 branch for Visual Studio 2015. 5,092 more words