diff --git a/MUtilities_VS2019.sln b/MUtilities_VS2019.sln
new file mode 100644
index 0000000..d722ff0
--- /dev/null
+++ b/MUtilities_VS2019.sln
@@ -0,0 +1,28 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.28803.156
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MUtilities", "MUtilities_VS2019.vcxproj", "{55405FE1-149F-434C-9D72-4B64348D2A08}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release_Static|x86 = Release_Static|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {55405FE1-149F-434C-9D72-4B64348D2A08}.Debug|x86.ActiveCfg = Debug|Win32
+ {55405FE1-149F-434C-9D72-4B64348D2A08}.Debug|x86.Build.0 = Debug|Win32
+ {55405FE1-149F-434C-9D72-4B64348D2A08}.Release_Static|x86.ActiveCfg = Release_Static|Win32
+ {55405FE1-149F-434C-9D72-4B64348D2A08}.Release_Static|x86.Build.0 = Release_Static|Win32
+ {55405FE1-149F-434C-9D72-4B64348D2A08}.Release|x86.ActiveCfg = Release|Win32
+ {55405FE1-149F-434C-9D72-4B64348D2A08}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {56280AAA-AE51-4B45-BFCF-7CA247FD341A}
+ EndGlobalSection
+EndGlobal
diff --git a/MUtilities_VS2019.vcxproj b/MUtilities_VS2019.vcxproj
new file mode 100644
index 0000000..a58fa30
--- /dev/null
+++ b/MUtilities_VS2019.vcxproj
@@ -0,0 +1,241 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release_Static
+ Win32
+
+
+ Release
+ Win32
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp" "%(FullPath)"
+ MOC "$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp"
+ $(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp;%(Outputs)
+ "$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp" "%(FullPath)"
+ MOC "$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp"
+ $(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp;%(Outputs)
+ "$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp" "%(FullPath)"
+ MOC "$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp"
+ $(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp;%(Outputs)
+
+
+
+
+
+
+ Document
+ "$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -name "%(Filename)" "%(FullPath)"
+ "$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -name "%(Filename)" "%(FullPath)"
+ "$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -name "%(Filename)" "%(FullPath)"
+ RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"
+ RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"
+ RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"
+ $(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)
+ $(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)
+ $(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)
+
+
+
+ {55405FE1-149F-434C-9D72-4B64348D2A08}
+ Win32Proj
+ MUtilities
+ MUtilities
+ 8.1
+
+
+
+ DynamicLibrary
+ true
+ v142
+ Unicode
+
+
+ DynamicLibrary
+ false
+ v142
+ true
+ Unicode
+
+
+ StaticLibrary
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)\bin\$(Platform)\$(Configuration)\
+ $(SolutionDir)\obj\$(Platform)\$(Configuration)\$(ProjectName)\
+ MUtils32-1
+
+
+ $(SolutionDir)\bin\$(Platform)\$(Configuration)\
+ $(SolutionDir)\obj\$(Platform)\$(Configuration)\$(ProjectName)\
+ MUtils32-1
+
+
+ $(SolutionDir)\bin\$(Platform)\$(Configuration)\
+ $(SolutionDir)\obj\$(Platform)\$(Configuration)\$(ProjectName)\
+ MUtils32-1
+
+
+
+ NotUsing
+ Level3
+ Disabled
+ WIN32;MUTILS_DLL_EXPORT;_DEBUG;_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT;QT_DLL;QT_DEBUG;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ NoExtensions
+ $(ProjectDir)\include;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(SolutionDir)\..\Prerequisites\VisualLeakDetector\include;%(AdditionalIncludeDirectories)
+ true
+ Disabled
+ Default
+ ProgramDatabase
+
+
+ Windows
+ true
+ $(SolutionDir)\..\Prerequisites\Qt4\$(PlatformToolset)\Debug\lib;$(SolutionDir)\..\Prerequisites\VisualLeakDetector\lib\Win32
+ QtCored4.lib;QtGuid4.lib;Winmm.lib;Psapi.lib;Sensapi.lib;PowrProf.lib;Shlwapi.lib;Version.lib;%(AdditionalDependencies)
+
+
+
+
+ Level3
+ NotUsing
+ Full
+ true
+ true
+ WIN32;MUTILS_DLL_EXPORT;NDEBUG;_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT;QT_DLL;QT_NO_DEBUG;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ NoExtensions
+ AnySuitable
+ Speed
+ true
+ false
+ Fast
+ false
+ $(ProjectDir)\include;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(SolutionDir)\..\Prerequisites\VisualLeakDetector\include;%(AdditionalIncludeDirectories)
+ true
+ false
+ false
+ false
+ true
+
+
+ Windows
+ true
+ true
+ $(SolutionDir)\..\Prerequisites\Qt4\$(PlatformToolset)\Shared\lib;$(SolutionDir)\..\Prerequisites\VisualLeakDetector\lib\Win32
+ notelemetry.obj;QtCore4.lib;QtGui4.lib;Winmm.lib;Psapi.lib;Sensapi.lib;PowrProf.lib;Shlwapi.lib;Version.lib;%(AdditionalDependencies)
+ false
+ LinkVerboseLib
+
+
+
+
+ Level3
+ NotUsing
+ Full
+ true
+ true
+ WIN32;MUTILS_STATIC_LIB;NDEBUG;_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT;QT_NODLL;QT_NO_DEBUG;%(PreprocessorDefinitions)
+ MultiThreaded
+ NoExtensions
+ AnySuitable
+ Speed
+ true
+ false
+ Fast
+ false
+ $(ProjectDir)\include;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(SolutionDir)\..\Prerequisites\VisualLeakDetector\include;%(AdditionalIncludeDirectories)
+ true
+ false
+ false
+ false
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MUtilities_VS2019.vcxproj.filters b/MUtilities_VS2019.vcxproj.filters
new file mode 100644
index 0000000..f710dc2
--- /dev/null
+++ b/MUtilities_VS2019.vcxproj.filters
@@ -0,0 +1,197 @@
+
+
+
+
+ {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;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
+
+
+ {d47fbdba-5e24-460a-bba8-824ea0fe874c}
+
+
+ {458f07b7-5414-4e9c-a599-222196e8d2e8}
+
+
+ {d5bcdb46-27a3-4772-86b4-1b30e02a30cc}
+
+
+ {6261ec8d-8041-495b-bddf-6fe07c11c952}
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files\3rd Party
+
+
+ Source Files\Generated
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files\3rd Party
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files\Generated
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files\3rd Party
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+
+
+ Header Files
+
+
+ Public Headers
+
+
+ Public Headers
+
+
+ Public Headers
+
+
+ Public Headers
+
+
+ Header Files
+
+
+ Public Headers
+
+
+ Public Headers
+
+
+ Public Headers
+
+
+ Public Headers
+
+
+ Public Headers
+
+
+ Header Files\3rd Party
+
+
+ Header Files\3rd Party
+
+
+ Public Headers
+
+
+ Public Headers
+
+
+ Public Headers
+
+
+ Header Files\3rd Party
+
+
+ Public Headers
+
+
+ Public Headers
+
+
+ Header Files\3rd Party
+
+
+ Public Headers
+
+
+ Header Files
+
+
+ Public Headers
+
+
+ Public Headers
+
+
+ Header Files
+
+
+ Header Files
+
+
+
+
+ Public Headers
+
+
+ Resource Files
+
+
+
\ No newline at end of file
diff --git a/include/MUtils/Version.h b/include/MUtils/Version.h
index 12b3464..4e09f03 100644
--- a/include/MUtils/Version.h
+++ b/include/MUtils/Version.h
@@ -163,12 +163,6 @@ namespace MUtils
#else
"MSVC 2010";
#endif
- #elif (_MSC_VER == 1500)
- #if (_MSC_FULL_VER >= 150030729)
- "MSVC 2008-SP1";
- #else
- "MSVC 2008";
- #endif
#else
#error Compiler is not supported!
#endif
diff --git a/src/OSSupport_Win32.cpp b/src/OSSupport_Win32.cpp
index 48fe8f1..6fcf59a 100644
--- a/src/OSSupport_Win32.cpp
+++ b/src/OSSupport_Win32.cpp
@@ -344,6 +344,9 @@ static inline DWORD initialize_step_size(const DWORD &limit)
return result;
}
+#pragma warning(push)
+#pragma warning(disable: 4996)
+
static bool rtl_get_version(OSVERSIONINFOEXW *const osInfo)
{
typedef LONG(__stdcall *RtlGetVersion)(LPOSVERSIONINFOEXW);
@@ -364,6 +367,8 @@ static bool rtl_get_version(OSVERSIONINFOEXW *const osInfo)
return (GetVersionExW((LPOSVERSIONINFOW)osInfo) != FALSE);
}
+#pragma warning(pop)
+
static bool rtl_verify_version(OSVERSIONINFOEXW *const osInfo, const ULONG typeMask, const ULONGLONG condMask)
{
typedef LONG(__stdcall *RtlVerifyVersionInfo)(LPOSVERSIONINFOEXW, ULONG, ULONGLONG);