Introduction
Sometimes you need to know a very simple thing, like "Is it Windows NT?".
Some of the solutions to this problem are excellent and very thorough,
but seem to be overkill. But when you try to find out what it takes
to determine what OS your program is running on, then you find there is
no one place to go to.
What Microsoft Says
The facts about what data are returned by GetVersionEx
are scattered
around Microsoft site. Here are a few articles I have tracked down:
As you will see from reading them, these articles are not complete.
Table of Windows Version Numbers
I have pulled together following table from many different sources,
including Usenet news groups, searching web sites, and reading code here
and on other developer sites. It is only a beginning, and if you have
knowledge to share please email me
and I will acknowledge your contribution.
| dwPlatformID | dwMajorVersion | dwMinorVersion | dwBuildNumber |
95 | 1 | 4 | 0 | 950 |
95 SP1 | 1 | 4 | 0 | > 950 && <= 1080 |
95 OSR2 | 1 | 4 | < 10 | > 1080 |
98 | 1 | 4 | 10 | 1998 |
98 SP1 | 1 | 4 | 10 | >1998 && < 2183 |
98 SE | 1 | 4 | 10 | >= 2183 |
Me | 1 | 4 | 90 | 3000 |
|
NT 3.51 | 2 | 3 | 51 | 1057 |
NT 4 | 2 | 4 | 0 | 1381 |
2000 | 2 | 5 | 0 | 2195 |
XP | 2 | 5 | 1 | |
|
CE 1.0 | 3 | 1 | 0 | |
CE 2.0 | 3 | 2 | 0 | |
CE 2.1 | 3 | 2 | 1 | |
CE 3.0 | 3 | 3 | 0 | |
How to use this information
I have developed a simple function which uses this table to return
a single value that can be used in applications. The function is
called GetWinVer
and it is in FontFile demo
here.
Future Enhancements
Depending on what readers want to see, there are several areas
for new entries:
- Windows versions prior to Win95
- CE versions
- Service pack information for NT
I attended St. Michael's College of the University of Toronto, with the intention of becoming a priest. A friend in the University's Computer Science Department got me interested in programming, and I have been hooked ever since.
Recently, I have moved to Los Angeles where I am doing consulting and development work.
For consulting and custom software development, please see
www.hdsoft.org.