
DtWinVer
v1.89 A comprehensive OS detection Class
DtWinVer is a C++ class which provides a
comprehensive method to determine which OS the program that calls it is running on. All
methods it uses are fully documented on various articles on the MSDN. The routine
provides the emulated OS as well as the underlying OS. e.g. to a DOS program Windows 95
looks like MS-DOS 7.0. A full list of the OSs it can detect are:
- DOS
- Windows 3.0
- Windows 3.1
- Windows 3.11
- Windows for Workgroups
- Win32s (if you can call this
an OS <g>)
- Windows CE 1.0
- Windows CE 2.0
- Windows CE 2.1
- Windows CE 2.11
- Windows CE 3.0
- Windows CE 4.0
- Windows CE .NET 4.X
- Windows CE 5
- Windows CE 6
- Windows Embedded Compact 7
- Windows 95 Gold
- Windows 95 Service Pack 1
- Windows 95B aka OEM Service
Release 2[.1]
- Windows 95C aka OEM Service
Release 2.5
- Windows 98
- Windows 98 Service Pack 1
- Windows 98 Second Edition
- Windows Millennium Edition
- NT 3.1
- NT 3.5
- NT 3.51
- All flavours of NT, 2000 and
XP Service packs
- NT 4.0
- NT Workstation, Server, PDC,
BDC, Datacenter, Enterprise
- Windows 2000
- Windows 2000 Professional,
Server, Domain Controller, Datacenter and Advanced Server
- Windows Terminal Services and
Back Office
- Windows XP Starter Edition, XP Personal & XP
Professional
- Windows Server 2003, Windows
Server 2003 (Web Edition), Windows Server 2003 Domain Controller,
Datacenter, Enterprise Server & 64 bit Editions
- Windows Server 2003 R2,
Windows Server 2003 R2 (Web Edition), Windows Server 2003 R2 Domain
Controller, Datacenter, Enterprise Server & 64 bit Editions
- Embedded Windows NT / 2000 / XP / Vista / Windows 7.
- XP Media Center Edition
- Windows XP Tablet PC Edition
- Windows Vista (All SKU's including Starter Edition, Home Basic N, Home
Basic, Home Premium, Home Premium N, Business N, Business, Enterprise N, Enterprise, Ultimate
N, Ultimate).
- Windows Server 2008, Windows
Server 2008 Web Edition, Windows Server 2008 Datacenter, Enterprise Server,
Core Server, Hyper-V & 64 bit Editions
- Windows Essential Business Server Management, Messaging and Security
Server
- Windows Storage Enterprise, Express, Standard and Workgroup Server,
Windows Storage Server Essentials
- Windows Cluster Server
- Windows Home Server, Windows Home Server Premium
- Windows "Security Application" mode
- BackOffice, Small Business Server & Small Business Server Premium installed
- Windows 7 (All SKU's including Starter Edition, Home Basic, Home
Premium, Professional, Enterprise, Enterprise, Ultimate, 64 bit, N & E
editions).
- Windows Server 2008 R2, Windows
Server 2008 R2 Web Edition, Windows Server 2008 R2 Datacenter, Enterprise Server,
Core Server & Hyper-V Editions.
- Windows Server 2008 R2 Foundation Server
- Windows Multipoint Server (Home and Premium Editions)
- Windows 8 (All SKU's including Starter Edition, Pro N, Enterprise,
Enterprise N, China Edition, Single Language Edition, Professional With
Windows Media Center & Windows RT (aka Windows on ARM)
- Windows Server 2012, Windows
Server 2012 Web Edition, Windows Server 2012 Datacenter, Enterprise Server,
Core Server & Hyper-V Editions.
- Windows Thin PC
- Windows Automotive
- Windows 8.1 (Plus all expected SKU's as per Windows 8)
- Windows Server 2012 R2 (Plus all expected SKU's as per Windows Server
2012).
Some of the possible scenarios it can
report on are:
- "You are running an emulated DOS v5.50
On NT"
- "You are running an emulated Windows
3.95 on Windows 95 v4.0 Build 950"
- "You are running Windows for Workgroups
on DOS v6.22"
- "You are running NT Server v3.51"
Have you ever wanted to determine if you are running under Windows
95 or NT from a 16 bit app. Here's the answer, this class can return such information
as:
- "You are running an emulated DOS v5.50
On Windows 2000 Server Build 2195 Service Pack 2"
- "You are running an emulated Windows
3.95 on Windows 95 v4.0 Build 950"
- "You are running Windows for Workgroups
on DOS v6.22"
- "You are running NT Server v3.51"
- "You are running an
application on Windows NT Terminal Server.
- This NT machine is acting as a
stand alone server, primary domain controller or backup domain controller.
The enclosed zip file contains
source for the detection routine and also includes project files to create a test program
for DOS, Win16, Win32 (9x/NT/2000/XP/Vista/2008), Windows x64 and Windows CE.
Copyright
- You are allowed to include the source code in
any product (commercial, shareware, freeware or otherwise) when your product
is released in binary form.
- You are allowed to modify the source code in
any way you want except you cannot modify the copyright details at the top
of each module.
- If you want to distribute source code with
your application, then you are only allowed to distribute versions released
by the author. This is to maintain a single distribution point for the
source code.
Updates
v1.1 (8 May 1997)
- Fix to remove Unicode and TCHAR
code when
being compiled for Win16.
v1.2 (13 September 1998)
- Updated the sample app plus the
DtWinVer
code to explicitly support Windows 98.
v1.3 (23 June 1999)
- UNICODE enabled the code.
- Removed need for the dwOSVersionInfoSize variable.
- Added support for detecting Build Number of 95 and 98
from DOS code path.
- Now ships as standard with VC 5 workspace files.
- Added explicit support for Windows 95 SP 1.
- Added explicit support for Windows 95 OSR 2.
- Added explicit support for Windows 98 Second Edition.
- Added explicit support for Windows 2000.
- Added explicit support for Windows CE.
- Added explicit support for Windows Terminal Server's.
- Added explicit support for NT Stand Alone Server's.
- Added explicit support for NT Primary Domain
Controller's.
- Added explicit support for NT Backup Domain
Controller's.
v1.31 (23 July 1999)
- Tested out support for Windows 98 SE, minor changes required.
v1.32 (26 July 1999)
- Added explicit support for Windows 98 SP 1.
v1.33 (28 July 1999)
- Fixed a problem when application is build in
non-huge/large memory model in Win16.
- Added explicit support for returning NT and Win9x
service pack information from Win32 and Win16 code paths.
- Updated test program to not bother reporting on any
info which does not exist. e.g. if there is no service pack installed, then
we don't bother displaying any info about service packs.
- Added explicit support for NT Enterprise Edition.
v1.34 (2 February 2000)
- Fixed a minor copy and paste bug in the test program.
v1.35 (30 June 2000)
- Added explicit support for Windows Millennium Edition
3 July 2000
- Minor update to the test program to correctly report
emulated OS on Windows ME.
v1.4 (29 January 2001)
- Added explicit support for XP (Whistler) Personal
- Added explicit support for XP (Whistler) Professional
- Added explicit support for XP (Whistler) Server
- Added explicit support for XP (Whistler) Advanced Server
- Added explicit support for XP (Whistler) Datacenter
- Added explicit support for XP (Whistler) 64 bit (all flavours)
- Made all the code into a C++ class called COSVersion
- Rewrote all the generic thunk code to be easier to follow
- Generic think code now uses CallProcEx32W
- Added explicit support for BackOffice Small Business Edition
- Added explicit support for Terminal Services
- 16 bit code path now can determine ProductSuite and ProductType type thro additional generic thunk code
- Provided a 64 bit test binary and make batch file (make64.bat) for those lucky enough to have an Itanium processor and a beta of 64 bit
XP.
- Provided a Embedded C++ workspace and X86 Release binary.
- Updated copyright information
v1.41 (10 February 2001)
- Updated function names etc following MS decision to
call Whistler "Windows XP".
v1.42 (10 October 2001)
- Added code to 32 bit code path to detect if we are
being run under 64 bit Windows. Also updated the sample app to distinguish
between emulated 64 bit and underlying 64 bit.
- Updated the sample app to call XP Server its proper
name which will be "Windows.NET Server"
v1.5 (13 December 2001)
- Major upgrade. Now 16 bit DOS path can return as much
information as native Win32 code. This is achieved by spawning off the Win32
utility WriteVer with a special command line option. Please note that if you
intend deploying dtwinver then you must now ship the writever.exe file in
addition to linking in the dtwinver code into your application. Also this
utilty needs to be in the path or current directory when the dtwinver code
is executing. Thanks to Chaz Angell for prompted me into finding a solution
for this last major item missing in dtwinver.
23 March 2002
- Updated Win32 and Win64 apps to have version info in
them. No changes have been made to the main dtwinver code.
v1.6 (30 August 2002)
- Provided an update CE workspace to work correctly in eMbedded Visual C++ v3. All build configurations for eVC 3 have also been provided.
- Optimized the usage of _tcscat and _tcscpy in the test app which comes with Dtwinver.cpp
- OEM Info string and Platform Type string is now returned for CE code path
- Fixed display of minor version number for example Windows.Net is version number v5.20 but should be shown as 5.2 to be consistent with what the native ver command displays
- Provided a new CE workspace to work correctly in eMbedded Visual C++ v4. All build configurations for eVC 4 have also been provided.
v1.61 (8 October 2002)
- Now uses OSVERSIONINFOEX it possible in the Win32 or
Win64 code paths. This provides for more reliably detection of Windows XP
Home Edition.
- Renamed the functions which detect Windows .NET Server
2003. Also updated the test code which prints out these names
- Provided explicit support for Windows .NET Web Server
- Fixed a bug in the display of the minor OS version
number on Windows .NET Server.
- Made the project for WriteVer a VC 5 project instead of
VC 6 which it was up until now.
- Reworked the internal function WhichNTProduct to use a
constant input string parameter
- Added explicit support for Windows NT / 2000 / XP
Embedded
- Added explicit support for detecting Terminal Services
in remote admin mode
v1.62 (11 October 2002)
- Fixed a problem where on Windows XP, the test program will include the text "(Standard Edition)"
- Added two variables to the OS_VERSION_INFO structure to report the minor service pack number
- Removed the OS_VERSION_INFO structure from the global namespace
- Removed all static member variables from the class
- Added a member variable to the OS_VERSION_INFO to return the various "suites" installed
- Reduced the number of calls to WriteVer to 1 when called from dos code path.
- Completely reworked the internal WhichNTProduct method
- General tidy up of the header file
- Completely reworked the ValidateProductSuite method
- Now only 1 call is made to WhichNTProduct throughout a single call to COSVersion::GetVersion
- Now only 1 call is made to ValidateProductSuite throughout a single call to COSVersion::GetVersion
- Fixed an unitialized variable problem in COSVersion::IsUnderlying64Bit
- Changed "WhichNTProduct" method to "GetNTOSTypeFromRegistry"
- Changed "ValidateProductSuite" method to "GetProductSuiteDetailsFromRegistry".
- Now correctly reports on Terminal Services being in Remote Admin Mode on OS which do not support calling GetVersionEx using an OSVERSIONINFOEX structure i.e any NT 4 install prior to SP6.
- 16 bit Windows code path now reports as much NT information as the Win32 code path
- Fixed a bug in COSVersion::GetInfoBySpawingWriteVer which was failing if it encountered an empty CSD string. This was spotted on Windows .NET Server which since it is in beta still (as of October 2002) does not have any service pack!.
v1.63 (10 January 2003)
- Update to support MS deciding to change the name of
their Whistler Server product. The product will now be called "Windows Server
2003".
v1.64 (30 January 2003)
- Added explicit support for detecting NT Service Pack 6a
v1.65 (8 February 2003)
- Added explicit support for detecting Windows XP Service
Pack 1a
- Added support to determine the HAL on NT Kernels.
Thanks to Christian Kaiser for suggesting this addition.
v1.66 (12 February 2003)
- Fixed a compiler warning in
GetNTServicePackFromRegistry which occurs when the code is compiled with the
Watcom compiler. Thanks to Christian Kaiser for reporting this.
v1.67 (8 March 2003)
- Updated a comment in
COSVersion::GetProductSuiteDetailsFromRegistry re NT Embedded.
- A comment from John A. Vorchak: On NTe (NT Embedded)
and XPE (XP Embedded), all of the versions (of DTWinver) work just fine so
long as the components to support them are included in the images, which
itself is kind of a crap shoot. I think that you would probably find that most
images will not support the DOS or Win16 versions however most will support
the Win32. Many of the images that folks build either do not include the DOS
subsystem and some of them do not include Explorer, so it really can't be said
that all builds will support them however it is not difficult for a developer
to understand which version would work for them as they understand their
target systems better than anyone and at least one version would certainly
work for almost all images. As far as Win2k (Server Appliance Kit), I haven't
done enough testing with that platform, nor do I currently have any built
images with the SAK to say positively or otherwise. More than likely you would
find no problems with the SAK images since they typically follow W2k much more
than NTe or XPE do. Author: If you are writing for an embedded OS, then there
is little use for DTWinver!!, since the developer has very tight control over
the runtime environment. Also if you do use DTWinver on an embedded version of
Windows, you will probably compile in the dtwinver code rather than ship the
sample binaries I include in the dtwinver download.
v1.68 (10 April 2004)
- Removed a number of unreferenced variable warnings when
you compile the code on VS.NET 2003. Thanks to Edward Livingston for
reporting these issues.
- Now includes support for Windows XP Media Center Edition. Please note that
if you want to do specific version checking of what version of Media Center
you have installed then you should use my CVersionInfo classes at
http://www.naughter.com/versioninfo.html in conjunction with the following
information which I culled from
http://salloway.org.uk/mediacenter/2004/version.htm which describes
the various version numbers of ehshell.exe in \Windows\ehome to the
corresponding versions of XP Media Center Edition.
- dtwinver now returns the processor architecture via a
call to GetSystemInfo or GetNativeSystemInfo. This is used to differentiate
between 64 Bit Windows on Itanium and AMD64 processors.
- Renamed the global preprocesor defines used by dtwinver
to use more unique names
- Added make files and binaries for AMD64 processors
v1.69 (26 June 2005)
- INTEL_PROCESSOR enum is now more correctly know as IA32 which means x86 32 bit.
- Fixed a bug where the OS_VERSION_INFO parameter was not be zero set in the function COSVersion::GetVersion. Thanks to "Remio" for reporting this issue.
v1.70 (29 June 2005)
- Added support for detecting if code is running on
Tablet PC Edition of Windows.
- Code now uses GetSystemMetrics call in preference to
direct registry calls to detect Media Center Edition of Windows.
- Renamed the functions which differentiate between the
different OEM Service Release versions of Windows 95. They are OSR 2[.1] =
Win95B, OSR2.5 = Win95C. For the gory details please see the KB article at http://support.microsoft.com/kb/q158238/.
The code now also explicitly supports Win95C.
v1.71 (22 July 2005)
- Now includes support for Windows Vista, formerly
Windows codename "Longhorn".
v1.72 (6 September 2005)
- Renamed some of the functions
which detect Longhorn Server. Previously the functions were incorrectly
referring to Vista Server. Vista is the name of the Windows Client. As of
yet, a product name has not been picked for Longhorn Server.
- Now includes support for
Windows Server 2003 R2.
- Now includes support for
Windows XP Starter Edition and any future versions such as Windows Vista
Starter Edition
v1.73 (17 May 2006)
- Updated copyright details.
- Updated documentation to use the same style as the web site.
- Updated documentation on version numbers which XP Media Center can have.
- Added support for Windows Server 2003, Computer Cluster Edition
- Added support for Windows Storage Server 2003 R2
- Added support for detecting if Windows is installed in a "Security
Application" mode
- Added support for detecting BackOffice components are installed
- Provided Visual Studio 2005 solution to build DtWinver with.
v1.74 (21 September 2006)
- Included support for detecting all the different types of Vista SKU's,
namely: Windows Vista Starter Edition, Windows Vista Home Basic N, Windows
Vista Home Basic, Windows Vista Home Premium, Windows Vista Business N,
Windows Vista Business, Windows Vista Enterprise, and Windows Vista
Ultimate.
- Fixed a bug in the displaying of unknown versions of Windows in the
sample app
v1.75 (18 May 2007)
- Updated copyright details.
- Updated code to refer to Windows Server 2008 which was formerly known as
Windows Server codename "Longhorn".
v1.76 (20 June 2007)
- Include support for detecting Windows Home Server. Thanks to Petr
Stejskal for suggesting this update.
v1.77 (14 June 2008)
- Updated copyright details
- Code now compiles cleanly using Code Analysis (/analyze)
- Added support for Vista Home Premium N
- Added support for Vista Business N
- Added support for Vista Enterprise N
- Added support for Vista Ultimate N
- Added support for Windows Core Server
- Added support for Windows Hyper-V
- Added support for Windows Essential Business Server Management Server
- Added support for Windows Essential Business Server Messaging Server
- Added support for Windows Essential Business Server Security Server
- Added support for Windows Storage Server Enterprise Edition
- Added support for Windows Storage Server Express Edition
- Added support for Windows Storage Server Standard Edition
- Added support for Windows Storage Server Workgroup Edition
- Added support for Windows Cluster Server Edition
- Added support for Windows Business Server Premium Edition
v1.77 (15 December 2008)
- Added support for detecting Windows 7
v1.79 (12 February 2009)
- Updated the VC 2005 project file to use more reasonable default project
settings
- Updated copyright details
- Includes provisional support for the Windows 7 Professional SKU. Note
that the code currently assumes that the BUSINESS SKU value refers to the
newly documented SKU of "Windows 7 Professional". I have not found any
information to confirm or deny this but this should become clearer as we
approach the release of "Windows 7. Any feedback on this would be much
appreciated.
v1.80 (5 July 2010)
- Updated copyright details
- Added a IsWindowsVistaOrWindowsServer2008 method
- Added a IsWindows7OrWindowsServer2008R2 method
- Reworked the logic in all the Windows 2008 methods to use
IsWindowsVistaOrWindowsServer2008 instead of IsWindowsServer2008. Thanks to
Matt Fox for reporting this issue.
- Added comprehensive support for Windows 2008 R2
- Reworked the GetInfoBySpawingWriteVer method to work correctly on OSes
which use UAC. The code now uses _tempnam which places the temporary file in
the "TMP" directory.
- Fixed a bug in GetInfoBySpawingWriteVer where it incorrectly parsed the
dwSuiteMask values.
- Extended WriteVer and GetInfoBySpawingWriteVer to also update
dwSuiteMask2
- Fixed a bug in the test app where it was incorrectly calling
IsEmulated64Bit instead of IsUnderlying64Bit to report whether the
underlying OS was 64 bit or not.
v1.81 (5 July 2010)
- Added support for the following Product types: PRODUCT_ENTERPRISE_E,
PRODUCT_HOME_BASIC_E, PRODUCT_HOME_PREMIUM_E, PRODUCT_PROFESSIONAL,
PRODUCT_PROFESSIONAL_E, PRODUCT_PROFESSIONAL_N,
PRODUCT_SERVER_FOR_SMALLBUSINESS, PRODUCT_SERVER_FOR_SMALLBUSINESS_V,
PRODUCT_SERVER_FOUNDATION, PRODUCT_SOLUTION_EMBEDDEDSERVER,
PRODUCT_STARTER_E, PRODUCT_STARTER_N, PRODUCT_ULTIMATE_E. This means that
the code now fully supports Windows 7 Professional, Windows E Edition (The
version of Windows 7 that was to
be released in Europe without Internet Explorer 8), Windows Server 2008 R2
Foundation Server and Windows Multipoint Server 2010.
- Changed some of the names of the class methods for overall consistency
v1.82 (8 August 2010)
- The code now differentiates between having the Hyper-V tools installed
and the actual Hyper-V OS. Thanks to Scott Pawloski for reporting this
issue.
- I have removed the CE 3 & 4 and Dos And Win16 binaries from the zip
file. The code should still compile if you still have these ancient
compilers installed.
v1.83 (21 June 2011)
- Updated copyright details.
- Added support for the following Product types:
PRODUCT_HOME_SERVER_PREMIUM, PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE,
PRODUCT_CLUSTER_SERVER_V, PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE,
PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE, PRODUCT_SB_SOLUTION_SERVER,
PRODUCT_EMBEDDED, PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT,
PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE, PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL,
PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC,
PRODUCT_STORAGE_EXPRESS_SERVER_CORE, PRODUCT_STORAGE_STANDARD_SERVER_CORE,
PRODUCT_STORAGE_WORKGROUP_SERVER_CORE. Thanks to Petr Stejskal for prompting
this update.
- Added a IsHomeServerPremiumEditionInstalled method.
- Fixed a bug handling PRODUCT_CLUSTER_SERVER_V ProductType
- Fixed a bug handling PRODUCT_CLUSTER_SERVER ProductType
- Fixed a typo in the name of IsSmallBusinessServerInstalled method
- Added a IsWindowsCENET method.
- Added a IsWindowsEmbeddedCompact method.
- The sample app has been updated to differentiate between the
various marketing names for CE i.e. Windows CE, Windows CE .NET and Windows
Embedded Compact. The code has also been verified to operate correctly on
Windows Embedded Compact using a OSDesign project on Visual Studio 2008
Professional, Windows Embedded Compact, a sub project which builds DtWinVer
for x86 CEPC and a VMWare image of Compact 7 running the DtWinVer binaries.
Thanks to Mike Ryan for prompting this update.
v1.84 (2 July 2011)
- Updated to support Windows 8 and Windows Server 2012. These are
the names which DtWinVer currently uses to refer to the next client and
server versions of Windows respectively. At the moment there is no official
details from Microsoft on what the product names will be, but DtWinVer will
be updated following any announcements.
v1.85 (17 September 2011)
- Updated the code to work correctly against the Windows 8 Developer
Preview and Windows 8 Server Developer Preview builds.
- Updated code to refer to Windows codename "8" and Windows codename
Server "8" instead of Windows 8 and Windows Server 2012.
v1.86 (28 April 2012)
- Updated copyright details.
- My guess from last year was correct! Windows codename Server "8" will
become Windows Server 2012. The code has been updated to reflect this
announcement from
http://www.microsoft.com/en-us/news/Press/2012/Apr12/04-17MMSDay1PR.aspx.
- Updated code to refer to Windows codename "8" as Windows 8 based on
information from
http://windowsteamblog.com/windows/b/bloggingwindows/archive/2012/04/16/announcing-the-windows-8-editions.aspx.
- Removed tests for Windows 8 (Home Basic), Windows 8 (Home Premium),
Windows 8 (Ultimate) from code.
- Added support for the following Product
types: PRODUCT_PRERELEASE, PRODUCT_PRERELEASE_N, PRODUCT_PRERELEASE_ARM,
PRODUCT_PROFESSIONAL_PLUS, PRODUCT_ENTERPRISE_EVALUATION,
PRODUCT_STANDARD_EVALUATION_SERVER, PRODUCT_DATACENTER_EVALUATION_SERVER,
PRODUCT_ENTERPRISE_N_EVALUATION,
PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER,
PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER,
PRODUCT_MULTIPOINT_STANDARD_SERVER, PRODUCT_MULTIPOINT_PREMIUM_SERVER &
PRODUCT_THINPC, PRODUCT_EMBEDDEDINDUSTRY, PRODUCT_EMBEDDEDA,
PRODUCT_EMBEDDEDINDUSTRYA, PRODUCT_EMBEDDEDAUTOMOTIVE, PRODUCT_EMBEDDEDE,
PRODUCT_EMBEDDEDINDUSTRYAE & PRODUCT_EMBEDDEDINDUSTRYE
- Added support for Windows RT based on information from
http://windowsteamblog.com/windows/b/bloggingwindows/archive/2012/04/16/announcing-the-windows-8-editions.aspx.
v1.87 (30 December 2012)
- Added support for the following product types:
PRODUCT_EMBEDDED_AUTOMOTIVE, PRODUCT_EMBEDDED_INDUSTRY_A,
PRODUCT_EMBEDDED_A, PRODUCT_EMBEDDED_INDUSTRY, PRODUCT_EMBEDDED_E,
PRODUCT_EMBEDDED_INDUSTRY_E, PRODUCT_EMBEDDED_INDUSTRY_E,
PRODUCT_EMBEDDED_INDUSTRY_A_E, PRODUCT_CORE_ARM, PRODUCT_CORE_ARM,
PRODUCT_CORE_N, PRODUCT_CORE_COUNTRYSPECIFIC, PRODUCT_CORE_SINGLELANGUAGE,
PRODUCT_CORE & PRODUCT_PROFESSIONAL_WMC
- Fixed a bug with the handling of the PRODUCT_THINPC #define value
- Updated the code to compile cleanly on VC 2012
v1.88 (26 May 2013)
- Updated copyright details.
- Now includes support for Windows 8.1 formerly known as Windows "Blue". I
have also added code to support the server version of "Blue" which for the
moment I am calling Windows Server codename "Blue".
v1.89 (7 June 2013)
-
Updated all code references of Windows Server codename "Blue" to Windows Server 2012 R2.