As per https://forum.xojo.com/2239-how-to-determine-os-which-version-and-which-ver-of-windoz it turns out that Windows 10 (and Windows 8.1) will lie to you application about what version they are. The solution is to update the Manifest data inside the EXE as per https://msdn.microsoft.com/en-us/library/windows/desktop/dn481241(v=vs.85).aspx
So I did a little test in which I simply hacked in the new bytes into a previously-built EXE (making sure to keep the EXE the same length). There wasn’t room to include the entire list of GUIDs so I just included the latest two (Windows 10 and Windows 8.1).
My app seemed to work fine, and windows version #s show up properly.
However - I realized that OpenGL stopped working - no matter what I did, i always got the OpenGL 1.1 software (non-accelerated) renderer.
So for now, I’m going to un-do my addition and just manifest the app as being for Windows 7 and 8, as that doesn’t seem to break anything.
See related thread: https://forum.xojo.com/2239-how-to-determine-os-which-version-and-which-ver-of-windoz