Paul Millar wrote:
dwMajorVersion dwMinorVersion dwPlatformID
Win3x+Win32s ? ? VER_PLATFORM_WIN32s Win95 4 0 VER_PLATFORM_WIN32_WINDOWS Win98 4 10 VER_PLATFORM_WIN32_WINDOWS WinME 4 90 VER_PLATFORM_WIN32_WINDOWS NT3.51 3 51 VER_PLATFORM_WIN32_NT NT4.0 4 0 VER_PLATFORM_WIN32_NT Win2k 5 0 VER_PLATFORM_WIN32_NT WINXP 5 1 VER_PLATFORM_WIN32_NT WIN.NET 5 1 VER_PLATFORM_WIN32_NT
So, NT3.51 and NT4.0 should both fail the above WIN98_PLUS test (as version.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS). If the test is (Major == 4, Minor > 0) then this would include NT4.0, or am I missing something?
NT4.0 has a minor==0, so no, my test will not allow it to pass. However, I was not aware of how dwPlatformID was defined (and I miscounted parentheses in your macro).
I think the method you proposed would be more robust than the way I implemented the check, but currently my method should work fine for all availiable MS platforms. Perhaps it would be best to make a test.h somewhere and put all of these kind of definitions someplace so we don't need to redefine them for each test.
I'm happy that someone is at least looking at my tests though :)
.Geoff