Revision history for the Perl extension Win32.

0.47    [2013-02-21]
        - Make sure %PROCESSOR_ARCHITECTURE% is defined before calling
          Win32::GetArchName() in t/Names.t.  It may be undefined when
          the test is running under Cygwin crond.
        - In t/Names.t don't assume that LoginName or NodeName is at
          least 2 characters long; it may just be 1.

0.46    [2013-02-19]
        - add Win2012/Win8 detection (thanks to Michiel Beijen) [rt#82572]
          [perl#116352]

0.45	[2012-08-07]
	- add Win32::GetACP(), Win32::GetConsoleCP(),
	  Win32::GetConsoleOutputCP(), Win32::GetOEMCP(), Win32::SetConsoleCP()
	  and Win32::SetConsoleOutputCP(). [rt#78820] (Steve Hay)
	- adjust t/Unicode.t for Cygwin 1.7, where readdir() returns
	  the utf8 encoded filename without setting the SvUTF8 flag [rt#66751]
	  [rt#74332]

0.44	[2011-01-12]
	- fix memory leak introduced in 0.43

0.43	[2011-01-12]
	- fix a few potential buffer overrun bugs reported by Alex Davies.
	  [perl#78710]

0.42	[2011-01-06]
	- remove brittle test for Win32::GetLongPathName($ENV{SYSTEMROOT})
	  which will fail if the case of the environment value doesn't
	  exactly match the case of the directory name on the filesystem.

0.41	[2010-12-10]
	- Fix Win32::GetChipName() to return the native processor type when
	  running 32-bit Perl on 64-bit Windows (WOW64).  This will also
	  affect the values returned by Win32::GetOSDisplayName() and
	  Win32::GetOSName(). [rt#63797]
	- Fix Win32::GetOSDisplayName() to return the correct values for
	  all products even when a service pack has been installed. (This
	  was only an issue for some "special" editions).
	- The display name for "Windows 7 Business Edition" is actually
	  "Windows 7 Professional".
	- Fix t/GetOSName.t tests to avoid using the values returned by
	  GetSystemMetrics() when the test template didn't specify any
	  value at all.

0.40	[2010-12-08]
	- Add Win32::GetSystemMetrics function.
	- Add Win32::GetProductInfo() function.
	- Add Win32::GetOSDisplayName() function.
	- Detect "Windows Server 2008 R2" as "Win2008" in Win32::GetOSName()
	  (used to return "Win7" before). [rt#57172]
	- Detect "Windows Home Server" as "WinHomeSvr" in Win32::GetOSName()
	  (used to return "Win2003" before).
	- Add "R2", "Media Center", "Tablet PC", "Starter Edition" etc.
	  tags to the description returned by Win32::GetOSName() in
	  list context.
	- Rewrite the t/GetOSName.t tests

0.39	[2009-01-19]
	- Add support for Windows 2008 Server and Windows 7 in
	  Win32::GetOSName() and in the documentation for
	  Win32::GetOSVersion().
	- Make Win32::GetOSName() implementation testable.
	- Document that the OSName for Win32s is actually "WinWin32s".

0.38	[2008-06-27]
	- Fix Cygwin releated problems in t/GetCurrentThreadId.t
	  (Jerry D. Hedden).

0.37	[2008-06-26]
	- Add Win32::GetCurrentProcessId() function

0.36	[2008-04-17]
	- Add typecasts for Win64 compilation

0.35	[2008-03-31]
	Integrate changes from bleadperl:
	- Silence Borland compiler warning (Steve Hay)
	- Fix memory leak in Win32::GetOSVersion (Vincent Pit)
	- Test Win32::GetCurrentThreadId on cygwin (Reini Urban, Steve Hay)

0.34	[2007-11-21]
	- Document "WinVista" return value for Win32::GetOSName()
	  (Steve Hay).

0.33	[2007-11-12]
	- Update version to 0.33 for Perl 5.10 release
	- Add $^O test in Makefile.PL for CPAN Testers
	- Use Win32::GetLastError() instead of $^E in t/Names.t for
	  cygwin compatibility (Jerry D. Hedden).

0.32	[2007-09-20]
	- Additional #define's for older versions of VC++ (Dmitry Karasik).
	- Win32::DomainName() doesn't return anything when the Workstation
	  service isn't running.  Set $^E and adapt t/Names.t accordingly
	  (Steve Hay & Jerry D. Hedden).
	- Fix t/Names.t to allow Win32::GetOSName() to return an empty
	  description as the 2nd return value (e.g. Vista without SP).
	- Fix t/GetFileVersion.t for Perl 5.10

0.31	[2007-09-10]
	- Apply Cygwin fixes from bleadperl (from Jerry D. Hedden).
	- Make sure Win32::GetLongPathName() always returns drive
	  letters in uppercase (Jerry D. Hedden).
	- Use uppercase environment variable names in t/Unicode.t
	  because the MSWin32 doesn't care, and Cygwin only works
	  with the uppercased version.
	- new t/Names.t test (from Sébastien Aperghis-Tramoni)

0.30	[2007-06-25]
	- Fixed t/Unicode.t test for Cygwin (with help from Jerry D. Hedden).
	- Fixed and documented Win32::GetShortPathName() to return undef
	  when the pathname doesn't exist (thanks to Steve Hay).
	- Added t/GetShortPathName.t

0.29	[2007-05-17]
	- Fixed to compile with Borland BCC (thanks to Steve Hay).

0.28_01	[2007-05-16]
	- Increase version number as 0.28 was already used by an ActivePerl
	  release (for essentially 0.27 plus the Win32::IsAdminUser() change).

	- Add MODULE and PROTOTYPES directives to silence warnings from
	  newer versions of xsubpp.

	- Use the Cygwin codepath in Win32::GetFullPathName() when
	  PERL_IMPLICIT_SYS is not defined, because the other code
	  relies on the virtualization code in win32/vdir.h.

0.27_02	[2007-05-15]
	- We need Windows 2000 or later for the Unicode support because
	  WC_NO_BEST_FIT_CHARS is not supported on Windows NT.

	- Fix Win32::GetFullPathName() on Windows NT to return an
	  empty file part if the original argument ends with a slash.

0.27_01	[2007-04-18]
	- Update Win32::IsAdminUser() to use the IsUserAnAdmin() function
	  in shell32.dll when available.  On Windows Vista this will only
	  return true if the process is running with elevated privileges
	  and not just when the owner of the process is a member of the
	  "Administrators" group.

	- Win32::ExpandEnvironmentStrings() may return a Unicode string
	  (a string containing characters outside the system codepage)

	- new Win32::GetANSIPathName() function returns a pathname in
	  a form containing only characters from the system codepage

	- Win32::GetCwd() will return an ANSI version of the directory
	  name if the long name contains characters outside the system
	  codepage.

	- Win32::GetFolderPath() will return an ANSI pathname. Call
	  Win32::GetLongPathName() to get the canonical Unicode
	  representation.

	- Win32::GetFullPathName() will return an ANSI pathname. Call
	  Win32::GetLongPathName() to get the canonical Unicode
	  representation.

	- Win32::GetLongPathName() may return a Unicode path name.
	  Call Win32::GetANSIPathName() to get a representation using
	  only characters from the system codepage.

	- Win32::LoginName() may return a Unicode string.

	- new Win32::OutputDebugString() function sends a string to
	  the debugger.

	- new Win32::GetCurrentThreadId() function returns the thread
	  id (to complement the process id in $$).

	- new Win32::CreateDirectory() creates a new directory.  The
	  name of the directory may contain Unicode characters outside
	  the system codepage.

	- new Win32::CreateFile() creates a new file.  The name of the
	  file may contain Unicode characters outside the system codepage.


0.27	[2007-03-07]
	- Extracted from the libwin32 distribution to simplify maintenance
	  because Win32 is a dual-life core module since 5.8.4.

	- Win32.pm and Win32.xs updated to version in bleadperl.
	  This includes all the Win32::* function from win32/win32.c
	  in core Perl, except for Win32::SetChildShowWindows().

	- Install into 'perl' directory instead of 'site' for Perl 5.8.4
	  and later.

	- Add some simple tests.
