diff --git a/win32/.gitignore b/win32/.gitignore
index 2655daf..eb2b1ee 100644
--- a/win32/.gitignore
+++ b/win32/.gitignore
@@ -1,21 +1,105 @@
-# Visual Studio ignores
-[Dd]ebug/
-[Dd]ebugPublic/
-[Rr]elease/
-[Rr]eleases/
-*.manifest
-*.lastbuildstate
-*.exe
-*.log
-*.idb
-*.ipdb
-*.ilk
-*.iobj
-*.obj
-*.pdb
-*.sdf
+# User-specific files
+*.rsuser
*.suo
-*.tlog
-*.vcxproj.user
-*.vc.db
-*.vc.opendb
+*.user
+*.userosscache
+*.sln.docstates
+
+# Build results
+[Dd]ebug/
+[Dd]ebugDLL/
+[Rr]elease/
+[Rr]eleaseDLL/
+x64/
+x86/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Local History for Visual Studio
+.localhistory/
diff --git a/win32/VS2017/libogg.sln b/win32/VS2017/libogg.sln
new file mode 100644
index 0000000..a32bc1f
--- /dev/null
+++ b/win32/VS2017/libogg.sln
@@ -0,0 +1,43 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.28307.489
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libogg", "libogg.vcxproj", "{D55171D6-645F-4044-975F-80859064BE57}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ DebugDLL|x64 = DebugDLL|x64
+ DebugDLL|x86 = DebugDLL|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ ReleaseDLL|x64 = ReleaseDLL|x64
+ ReleaseDLL|x86 = ReleaseDLL|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D55171D6-645F-4044-975F-80859064BE57}.Debug|x64.ActiveCfg = Debug|x64
+ {D55171D6-645F-4044-975F-80859064BE57}.Debug|x64.Build.0 = Debug|x64
+ {D55171D6-645F-4044-975F-80859064BE57}.Debug|x86.ActiveCfg = Debug|Win32
+ {D55171D6-645F-4044-975F-80859064BE57}.Debug|x86.Build.0 = Debug|Win32
+ {D55171D6-645F-4044-975F-80859064BE57}.DebugDLL|x64.ActiveCfg = DebugDLL|x64
+ {D55171D6-645F-4044-975F-80859064BE57}.DebugDLL|x64.Build.0 = DebugDLL|x64
+ {D55171D6-645F-4044-975F-80859064BE57}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32
+ {D55171D6-645F-4044-975F-80859064BE57}.DebugDLL|x86.Build.0 = DebugDLL|Win32
+ {D55171D6-645F-4044-975F-80859064BE57}.Release|x64.ActiveCfg = Release|x64
+ {D55171D6-645F-4044-975F-80859064BE57}.Release|x64.Build.0 = Release|x64
+ {D55171D6-645F-4044-975F-80859064BE57}.Release|x86.ActiveCfg = Release|Win32
+ {D55171D6-645F-4044-975F-80859064BE57}.Release|x86.Build.0 = Release|Win32
+ {D55171D6-645F-4044-975F-80859064BE57}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64
+ {D55171D6-645F-4044-975F-80859064BE57}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64
+ {D55171D6-645F-4044-975F-80859064BE57}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32
+ {D55171D6-645F-4044-975F-80859064BE57}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {E268B15E-DCF8-45E0-8EAC-8DD75BC0C041}
+ EndGlobalSection
+EndGlobal
diff --git a/win32/VS2017/libogg.vcxproj b/win32/VS2017/libogg.vcxproj
new file mode 100644
index 0000000..631dc9c
--- /dev/null
+++ b/win32/VS2017/libogg.vcxproj
@@ -0,0 +1,270 @@
+
+
+
+
+ DebugDLL
+ Win32
+
+
+ DebugDLL
+ x64
+
+
+ Debug
+ Win32
+
+
+ ReleaseDLL
+ Win32
+
+
+ ReleaseDLL
+ x64
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 15.0
+ {D55171D6-645F-4044-975F-80859064BE57}
+ libogg
+ 10.0.17763.0
+
+
+
+ StaticLibrary
+ true
+ v141
+ MultiByte
+
+
+ DynamicLibrary
+ true
+ v141
+ MultiByte
+
+
+ StaticLibrary
+ false
+ v141
+ true
+ MultiByte
+
+
+ DynamicLibrary
+ false
+ v141
+ true
+ MultiByte
+
+
+ StaticLibrary
+ true
+ v141
+ MultiByte
+
+
+ DynamicLibrary
+ true
+ v141
+ MultiByte
+
+
+ StaticLibrary
+ false
+ v141
+ true
+ MultiByte
+
+
+ DynamicLibrary
+ false
+ v141
+ true
+ MultiByte
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)..\..\include;%(AdditionalIncludeDirectories)
+ false
+ true
+ 4244;%(DisableSpecificWarnings)
+ true
+ true
+ Disabled
+ Level4
+
+
+
+
+ $(SolutionDir)..\..\include;%(AdditionalIncludeDirectories)
+ false
+ true
+ 4244;%(DisableSpecificWarnings)
+ true
+ Disabled
+ Level4
+
+
+ $(SolutionDir)..\ogg.def
+
+
+
+
+ $(SolutionDir)..\..\include;%(AdditionalIncludeDirectories)
+ false
+ true
+ 4244;%(DisableSpecificWarnings)
+ true
+ true
+ Disabled
+ Level4
+
+
+
+
+ $(SolutionDir)..\..\include;%(AdditionalIncludeDirectories)
+ false
+ true
+ 4244;%(DisableSpecificWarnings)
+ true
+ Disabled
+ Level4
+
+
+ $(SolutionDir)..\ogg.def
+
+
+
+
+ $(SolutionDir)..\..\include;%(AdditionalIncludeDirectories)
+ false
+ true
+ 4244;%(DisableSpecificWarnings)
+ true
+ true
+ true
+ true
+ MaxSpeed
+ NDEBUG;%(PreprocessorDefinitions)
+ Level4
+
+
+ true
+ true
+
+
+
+
+ $(SolutionDir)..\..\include;%(AdditionalIncludeDirectories)
+ false
+ true
+ 4244;%(DisableSpecificWarnings)
+ true
+ true
+ true
+ MaxSpeed
+ NDEBUG;%(PreprocessorDefinitions)
+ Level4
+
+
+ true
+ $(SolutionDir)..\ogg.def
+ true
+
+
+
+
+ $(SolutionDir)..\..\include;%(AdditionalIncludeDirectories)
+ false
+ true
+ 4244;%(DisableSpecificWarnings)
+ true
+ true
+ true
+ true
+ MaxSpeed
+ NDEBUG;%(PreprocessorDefinitions)
+ Level4
+
+
+ true
+ true
+
+
+
+
+ $(SolutionDir)..\..\include;%(AdditionalIncludeDirectories)
+ false
+ true
+ 4244;%(DisableSpecificWarnings)
+ true
+ true
+ true
+ MaxSpeed
+ NDEBUG;%(PreprocessorDefinitions)
+ Level4
+
+
+ true
+ $(SolutionDir)..\ogg.def
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/win32/VS2017/libogg.vcxproj.filters b/win32/VS2017/libogg.vcxproj.filters
new file mode 100644
index 0000000..1467fd1
--- /dev/null
+++ b/win32/VS2017/libogg.vcxproj.filters
@@ -0,0 +1,41 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+
+
+ Source Files
+
+
+
\ No newline at end of file