The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
History of Win32::API perl extension.

2013-01-09  Win32::API v0.75    bulk88
   - Fixed/added, alpha Perl 5.6.2 support has been added, ::API will compile,
     will not crash except for randomly threading_fails.t . Many tests fail due
     to prerequities not being met. 00_API.t should pass on 5.6.2 with zero
     failures wWITHOUT prereqs. Other tests require Math::Int64 and
     Encode::compat.
   - Removed, distropref workaround for ActiveState's PPM system (AS fixed it)

2012-11-21  Win32::API v0.74    bulk88
   - Fixed, non threaded Perl fix from Reini Urban
   - Fixed, Perl 5.8 in Struct.pm syntax error (cpantesters report)
   - Fixed, LNK 4210 warning on >= VS 2005 fixed
   - Fixed, misc POD

2012-10-20  Win32::API v0.73    bulk88
   - Known Issue, IATPatch usually does not work on Cygwin
   - Fixed, now works on 32 bit Cygwin Perl
   - Fixed, now works on 32 bit Perl with 64 bit IVs
   - Fixed, misc POD
   - Added, check for cygpath tool on ::API for Cygwin 
   - Fixed, cygpath fix from Jerry D. Hedden
   - Fixed, ::Callback's DLL failed to load in DynaLoader on newer
     (Strawberry Perl 5.16.*) Mingws due to newer Mingws starting to always
     include Static TLS in DLLs
   - Fixed, ::API on newer 32 bit Mingws (Strawberry Perl 5.16.*) crashed on
     all cdecl calls due to different optimization defaults in newer Mingws
   - Improved, some tests were hardened
   - Fixed, should build on ActiveState's PPM system

2012-10-16  Win32::API v0.72    cosimo
   - Improved Callback tests by properly detecting native or ithreads
     fork capability. Thanks to Steve Hay for the patch.

2012-10-15  Win32::API v0.71    bulk88
   - API Change, UseMI64 changed to always return old value, not old on no
     setting and new on setting
   - Added, "in" for ::API and "out" for ::Callback are automatically
     treated as Math::Int64 objects if they are refs, a call to UseMI64 is
     recommended but not mandatory now
   - Half Fixed, on a fork, the child interp free the parent's Win32::API DLL
     HMODULE causing access violation, though a problem with unicode path names
     containing characters not in the local CP probably exists
   - Added, support for forking to Win32::API/Win32::API::More, not ::Callback
   - Added, support for WINAPI, NTAPI, CALLBACK, WINAPIV calling conventions
   - Added, Win32::API::Callback::IATPatch

2012-08-16  Win32::API v0.70_02    bulk88
   - Added, typedef() in ::Struct now aborts and warns when encoutering an
     unknown type rather than creating a garbage struct definition
     (http://perlmonks.org/?node_id=978468)
   - Added, new() in ::Struct now aborts and warns when encoutering an 
     unknown type, rather than silent failure and a 0 byte long struct buffer
     being passed to the C func
   - Fixed/Added, pointers to other ::Struct types now supported in ::Struct
   - Optimized, trim down 32 bit asm code and Call() in ::API, untested 64 bit
     IV on 32 bit support in ::API
   - Optimized APIPARAM struct
   - Fixed, in Call() some of the callbacks trashed the 1st parameter on the PL
     stack, which cause no symptoms since it was the ::API object which was read
     from the PL stack much earlier in Call()
   - Fixed some no symptoms problems with using a stale local SP in Call()
     after a callback, which in a million to once chance might have been
     reallocated during the callback
   - Added 'void' as a type, it is an alias for VOID, which is a 'c'/char
     maybe this needs to be revisted one day because a void function does
     not return a char, but returns garbage on 32 and 64
   - Added, for C proto API objects, struct type is checked against supplied
     struct object, dies on failure
   - Fixed, bug was can not create an alias to char * from ::Type::typedef,
     the alias is to char instead of char *, C function gets a extended char
     instead of pointer
   - Changed, Carp is used in more placed in ::Struct
   - Added, SafeReadWideCString function
   - Fixed, a length checking bug in WriteMemory
   - Fixed, creating an API object, with ::Callback or ::Struct as return type
     now fatally errors in new() instead of silent failure and being a void
   - Optimized, removed CRT initialization code on MSVC
   - Added, 'V' now works for "in" letter protos, it is equivelent to ""
   - Added, strict, warnings, and pod testing globally

2012-08-16  Win32::API v0.70_01    bulk88
   - broken CPAN package, useless

2012 never CPAN released  Win32::API v0.70    bulk88
   - Added, Callback now works on x64
   - Added, Quads on API and Callback for 32 bit perl, they are
     8 byte strings or Math::Int64 objs on 32 bit perl 
   - Added, floats and doubles work in Callback
   - Callback has been rewritten, much less C and machine code, more Perl
   - Fixed RT #55660 and #77677, nonvolatile registers were corrupted on x64,
     especially if more than 4 parameters

2012 never CPAN released  Win32::API v0.69    bulk88
   - Fixed RT #12057, dll leak if func not found
     (https://rt.cpan.org/Ticket/Display.html?id=12057)
   - Fixed RT #77048, shorts and short typedefs crashed since 'S'
     was mapped wrong to structs, fix in Win32::API::More, struct now 'T'
     in ::More, 'S'/'s' now dies on Win32::API if not Win32::APU::Sturct objs,
     not crashes
     (https://rt.cpan.org/Ticket/Display.html?id=77048)
   - Fixed RT #77055, returned numbers are always signed, unsigneds
     fixed in Win32::API::More
     (https://rt.cpan.org/Ticket/Display.html?id=77055)
   - Fixed RT #77182, "int* var" works, "int *var" unparsable,
     fixed in core and ::More
     (https://rt.cpan.org/Ticket/Display.html?id=77182)
   - Fixed/Added RT #39810, in Win32::API::More for C proto created objs,
     pointer to numbers are automatically packed and unpacked, now 1234 or
     0x04D2 not "\xD2\x04\x00\x00", feature was implemented but broken
     previously
   - Fixed, on x64 float "in" params were broken, in 0.68, 4 byte floats were
     converted to 8 byte doubles of the same (approx) numeric 
     value when being prepared for XMM register loading, a C func 
     that takes floats will read 4 bytes from an XMM register, not 8
   - Fixed, on x64, for msvc builds, the callstack was lost during
     Call_x64_real
   - for a func with char * as return type, NULL caused crash, and perl
     memleak if it didn't crash on 32bit, char * as a return type's handing
     is still very flawed, signed/unsigned doesn't work, float * doesn't work,
     if the char * is dynamically allocated by its source, it is leaked
   - for a func with char as return type, undef was always returned, fixed
   - void ** and something ** don't parse, now errors out cleanly on a **
   - stability improvements to Win32::API::Callback, -Od, -O1, -O2 and
     Incremental Linkings/ILT now ok on MSVC 2003
   - on 32 bits, funcs with float return type were silently never called, fixed
   - if a buffer overflow for pointers is detected, a die is thrown, unless env
     var "WIN32_API_SORRY_I_WAS_AN_IDIOT" is set
   - Added, adding unsigned or signed prefixes to C prototype for char
     family (in only, out not implemented) cause numeric treatment for the
     scalar parameter, not string
     treatment, previously unsigned/signed were unparsable
   - Added Win32::API objs from non-DLL function pointers
     use as "$function = new Win32::API::More(undef, 123456, 'GetHandle',
            'P', 'I');", 123456 is the function pointer

2012-04-10  Win32::API v0.68    Cosimo

   - Temporarily skip RT#53914 related Callback test that's crashing
     for everyone and CPAN testers too.

2012-02-14  Win32::API v0.67    Cosimo

   - Fix a problem in 0.66 that prevented successful build and install
     of Win32::API. In other words, v0.66 is unusable! Stay away.
     Thanks CPAN testers!

2012-02-13  Win32::API v0.66    Cosimo

   - RT#74578 about structs alignment calculation should be fixed.
     Thanks to Douglas Wilson (DOUGW) and Reini Urban!

2012-02-12  Win32::API v0.65    Cosimo

   - No changes other than passing all files through perltidy

2011-08-28  Win32::API v0.64    Cosimo

   - Small improvement to Makefile.PLs to build or not build
     the Callback module depending on architecture (64 bit archs
     by default don't build Callback, it's known to fail tests).

2011-07-19  Win32::API v0.63    kmx

   - Fix for the strawberry perl 5.14.1/x64
     the upgraded gcc toolchain (4.4.6) uses different underscoring

2011-03-26  Win32::API v0.62    Cosimo

   - Skip Callback/t/03_Jim_Shaw.t test as it's reported failing
     on both 32-bit and 64-bit architectures.

2011-03-22  Win32::API v0.61    Cosimo

   - Fixed build process that was failing due to missing *.h
     and *.asm files in the MANIFEST

2011-03-19  Win32::API v0.60    Cosimo

   - Added *preliminary* x64, 64-bit, support.
     Now the test dll also ships with a x64 build
     and an updated VS solution file with Release and Debug x64 builds.

     Many fantastic people helped with 64 bits support:
     https://rt.cpan.org/Ticket/Display.html?id=55660

   - Fixed RT #48006
     (https://rt.cpan.org/Ticket/Display.html?id=48006)

   - Added a minimal TODO file, so I can remember where I left off

2009-07-02  Win32::API v0.59     Cosimo

   - Fixed compilation with gcc/mingw 4.4.0, thanks to Reini Urban.
     (RT#47398, https://rt.cpan.org/Ticket/Display.html?id=47398)

2009-01-17  Win32::API v0.58     Cosimo

   No significant updates for normal users.
   Developers instead please update to v0.58.
   Now you can play with the API_test.dll.

   - Test DLL MSVC project files updated to MSVC 2008.
     Now I will be able to add new tests (__cdecl)
   - General cleanup of tests and removed some warnings

2008-10-16  Win32::API v0.57     Cosimo

   - Re-added source code for the API_test DLL.
     Still needs to be adapted to be built with GCC/MinGW
     and different Makes, but it's a start.

2008-10-03  Win32::API v0.56     Cosimo

   - RT#39730 (http://rt.cpan.org/Ticket/Display.html?id=39730)

     Now passing a Perl undefined value to an API imported with
     a prototype, automatically turns it into a NULL value.
     Thanks to Ikegami for his bug report and patch.
     Added a new test case.

   - Fixed MSVC compiler version detection in Win32::API::Test.
     Thanks to Salvador Ortiz Garcia (sog at msg com mx)

   - Fixed several compilation warnings on `Callback.xs'

   - Started some work to support double*. Halfway through.

2008-03-23  Win32::API v0.55     Cosimo

   - Integrated patch from Salvador Ortiz Garcia (sog at msg com mx)
     which fixes RT #14660. There was a bug in arguments type packing
     unpacking of char* (and other pointer types).

2008-03-04  Win32::API v0.54     Cosimo

   - Try to clean up this big OS check mess.

2008-03-02  Win32::API v0.53     Cosimo

   - Devel::AssertOS came out unauthorized.
   - META.yml was outdated and wrong.

2008-03-01  Win32::API v0.52     Cosimo

   - Devel::AssertOS was not properly set up in 0.51.

2008-03-01  Win32::API v0.51     Cosimo

   - Cleaned up API.pm pod docs and clearly stated Win32::API license
   - Fixed $$/pid tests for Cygwin
   - Now uses Devel::AssertOS to check that we are on a Win32 or Cygwin
     system. This should ease the work of CPAN testers.

2008-02-23  Win32::API v0.50     Cosimo

   - Fixed RT #31702 (http://rt.cpan.org/Public/Bug/Display.html?id=31702)
     Thanks to RUrban for supplying the fix.

2008-02-20  Win32::API v0.49     Cosimo

   - Fixed the stack cleanup assembler statements for GCC in API.xs, I hope.
   - Fixed a Borland C macro definition in API.xs
   - Fixed META.yml (stupid me)

2008-02-20  Win32::API v0.48     Cosimo

   - Finally applied the cdecl/stdcall patch available since long time
     from http://www.xs4all.nl/~itsme/projects/perl/.
     Now Win32::API *can* work with cdecl DLLs.
     Fixes RT #32424 (http://rt.cpan.org/Public/Bug/Display.html?id=32424)
       and RT #24685 (http://rt.cpan.org/Public/Bug/Display.html?id=24685)
     Thanks to Willem Jan Hengeveld (itsme at xs4all.nl) for your great work.
     Thanks to JimK for a test case and to BrowserUk and others at PerlMonks
     for providing me useful information and complaints. :-)

     However, still missing some GCC assembler magic for stack cleanup.
     Any help?

   - Clarified licensing info. Yes, Win32::API is available with
     GPL 2 / Artistic license.

2007-11-12  Win32::API v0.47     Cosimo

   - Nothing exciting. Fixed warning on DATA filehandle.
     Reported by Dmitri Karasik. Build passed on Windows Vista.
     Fixes RT #30674 (http://rt.cpan.org/Ticket/Display.html?id=30674)

2006-12-23  Win32::API v0.46     Cosimo

   - Test suite now passes on MSVC6, MSVC7, GCC/MinGW and Cygwin.
     A lot of skips and segfaults on doubles/floats should be examined,
     though. But now it's possible to cleanly install from CPAN!

   - API_test.dll building phase has been removed. Now there is only
     a prebuilt version of it, suitable for all compilers to link and
     use, I hope.

     Why does Cygwin gcc compile an entirely different API_test.dll?
     I checked the tdump of msvc and gcc and the gcc version is
     missing all the kernel32 imports. I don't know why this happens.

   - Removed README.txt file. Now there's only README.

2006-11-29  Win32::API v0.45     Cosimo

   - What a mess! Restored GCC/MinGW compile that broke with that
     damned assembler macros...

2006-11-28  Win32::API v0.44     Cosimo

   - Fixed compile under MSVC broken with GCC/MinGW last changes.

2006-11-28  Win32::API v0.43     Cosimo

   - Now Win32::API should cleanly *compile* on GCC / MinGW
     environment. This has been tested only Vanilla Perl and
     only with Microsoft nmake.
     Test suite does not work with GCC. You can only test that
     Win32::API extension works running manually the t\99_GetProcess.t
     test script.
     This improvement comes thanks to the 0.42 patches I found
     and collected from the internet, though I don't know who
     is the guy that wrote them first. Anyway, thank you!

   - There are problems with current ExtUtils::MakeMaker (6.31 and
     also blead, I believe) version and dmake generated Makefiles.
     I'm trying to understand what to do here.

   - Win32::API::Type now doesn't have a INIT block anymore, that
     seems to be the cause of all evils on this module.
     Please you out there report your findings on this.

   - Last but not least. Current maintainer of Win32::API is now
     Cosimo Streppone (me), cosimo at cpan.org. I'm not very
     skilled on Win32 development, but I'm trying to to work out the
     CPAN bugs queue. Thanks to Aldo for handing me his wonderful
     work maintainance.


Previous history had no changes file.