Revision history for Perl extension Win32::OLE.

0.10	Thu Sep 10 17:32:16 1998
	- memory corruption fix (for ->SetProperty) method by Gurusamy Sarathy.
	- document *nitialize(), SpinMessageLoop()

0.0902	(unreleased)
	- Allow specification of apartment model to Initialize() method. Special
	  case is COINIT_OLEINITIALIZE to fall back to OleInitialize(). This
	  is required to instantiate objects using compound document technology,
	  like e.g. "MAPI.Session".
	- Compatibility module now uses OleInitilize()

0.0901	(unreleased)
	- PL_na replaced by local variables
	- Dispatch method now accepts [wFlags, 'method'] to specify
	  various dispatch flags, e.g. DISPATCH_PROPERTYPUT
	- new $Obj->SetProperty() methods supports setting properties
	  with parameters
	- bug fix: the DCOM spec ['host', 'prog.id'] is no longer 'shifted'
	- more doc tweaks

0.09	(unreleased)
	- fix conversion from VT_DISPATCH/VT_UNKNOWN Win32::OLE::Variant objects
	  into Win32::OLE objects (were previously blessed into wrong class)
	- dynamically load CoInitializeEx to make OLE.dll compatible with 
	  "Win95 without DCOM" once again
	- convert Perl globals to PL_xxx form (with defines for Perl 5.004_xx)
	- minor doc tweaks
	- call CoFreeUnusedLibraries() whenever an OLE object is released

0.0810  (unreleased, maybe PRK for Win32 version, included by ActivePerl 501)
	- Removed USE_SV_PERINTERP, perl_atexit() only used for 5.004_68 and up

0.0809  (unreleased) identical to 0.0808

0.0808  (unreleased)
	- Introduced USE_SV_PERINTERP to switch off perl_atexit() usage

0.0807  (unreleased)
	- OleInitialize replaced by CoInitializeEx(NULL, COINIT_MULTITHREADED)
	  (as suggested by James Snyder). This gets rid of the hidden top-level
	  window problem.
	- Fixed warning in Win32::OLE::Const when called without arg

0.0806  (unreleased)
	- Bug fixes for IsLocalMachine()
	- Free per-interpreter memory area at interpreter-exit
	- Bootstrap no longer static function
	- Use MY_VERSION as key/variable name for per-interpreter data

0.0805  (unreleased)
	- Never do CLSID lookup by registry on local machine
	- try to use socket APIs too to determine host identity
	- make all globals per-interpreter variables / remove DllMain
	- proper per-interpreter cleanup for all Perl versions

0.0804  (unreleased)
	- Fix breakage in GetOleObject (from 0.0801) for 5.004_04 and earlier
	- Ignore DCOM hostname if it seems to be the local machine

0.0803  (unreleased)
	- Rearrange t/3_ole.t to behave nicely when Excel is not installed
	- Win32::OLE->Dispatch: only warn about unidentifiable method name
	  when C<use strict "subs"> is in effect (kind of)
	- Most error msgs and warnings are prefixed with Win32::OLE version#

0.0802  (unreleased)
	- Win32::OLE->new(['Machine', 'Prog.Id']) does a remote registry lookup
	  if the Prog.Id is not registered locally.
	- CLSCTX changed to CLSCTX_REMOTE_SERVER when a machine is specified.
	  Otherwise OLE would still prefer a local server when available

0.0801  (unreleased)
	- Win32::OLE::Tie::(FETCH|STORE) now interpret $^H correctly
	- removed all Perl related stuff from DllMain (for embedded stuff)
	- Additional checks in GetOleObject for Perl 5.004_05 or later

0.08    Mon May 11 03:36:49 1998
	- Make sure mg_get() gets called during GetOleObject()

0.0615  (unreleased)
	- use SvIMMORTAL instead of SvREADONLY where applicable
	- use newCONSTSUB in Win32::OLE::Const to define inlineable functions

0.0614  (unreleased)
	- devel/dumprot.cpp removed, use IROTVIEW instead :-)
	- COSERVERINFO hack removed, requires MSC++ 4.2b or later now

0.0613  (unreleased)
	- WinOleEnum objects where never Safefree()d before
	- New Initialize/Uninitialize class methods. Uninitialize zombifies all
	  OLE objects and then calls OleUninitialize.

0.0612  (unreleased)
	- new Win32::OLE->SpinMessageLoop() class method
	- Messageloop will be emptied before OleUnitialize is called
	  (thanks to Steve Glassman for finding this problem!)

0.0611  (unreleased)
	- Win32::OLE::Tie::Store use DISPATCH_PROPERTYPUTREF for objects
	  (as suggested by Steve Biondi)
	- all OLE calls now automatically reset LastError
	- added devel/dumprot.cpp tool to distribution

0.0610  (unreleased)
	- Win32::OLE::Const now loads consts from all TKINDs and not only ENUMs
	- Win32::OLE::Variants are actually freed during DESTROY now
	- Misc. robustness fixes (VariantClear etc.)

0.0609  (unreleased)
	- Win32::OLE::LastError() returns $Win32::OLE::LastError
	- misc COSERVERINFO fixes

0.0608  (unreleased)
	- use scode from excepinfo structure when available instead 
	  of DISP_E_EXCEPTION (as suggested by Steve Glassman)
	- misc. Get(WideChar|MultiByte) robustness enhancements
	- Win32::OLE::new now uses CLSTLX_SERVER
	-         "       allows specification of remote server name
	-         "          "         "       of numeric class id

0.0607  (unreleased)
	- enhanced C<in> allows multiple args and supports array refs too
	- SetSVFromVariant array bug fixes
	
0.0606  (unreleased)
	- use SvTRUE instead of SvIV to convert SV to VARIANT
	- REFCNT of returned SV for VT_ARRAY variant is now set correctly
	- SAFEARRAYs of VT_DISPATCH and VT_BSTR (and VT_VARIANT containing
	  those) are now handled correctly
	- folding of SAFEARRAYs removed again. Original structure is maintained
	  t/3_ole.t adjusted accordingly
	- Win32::OLE::Enum->All doesn't call Reset anymore

0.0605  (unreleased)
	- Property enumeration now dereferences TKIND_COCLASS etc.
	- Overloading in Win32::OLE now only enabled by OVERLOAD pseudotarget
	- Win32::OLE::CreateObject function for compatibility w/"Learning Perl"
	- Win32::OLE->LastError returns a dual value now (IV and PV)
	- Removed unsupported TKIND_ and VT_ constants from Win32::OLE::Variant
	- lcidDefault changed back to LOCALE_SYSTEM_DEFAULT, the language
	  neutral setting didn't allow portable scripts either
	- Sample file type converter script in eg/word2xxx.pl
	- valof uses CP and LCID of arg class for variant conversion

0.0604  (unreleased)
	- New package variable Win32::OLE::Tie specifies 'Win32::OLE::Tie' class
	- Win32::OLE::Tie FIRSTENUM/NEXTENUM added for compatibility mode
	- Win32::OLE::Tie STORE/FETCH renamed. Added default method argument
	- Default method retries enabled under C<no strict 'subs';> only
	- New C<in> function; C<With> renamed to C<with>
	- Const module now defines xlConstant instead of $xlConstant
	- multi-dimensional arrays are folded to lower dimensions if possible
	  (e.g. 1x1 array -> scalar, 1x5 array -> list of 5, 5x1 -> unchanged)
	- new regression tests: unicode, variant
	- new sample: eg/word2pod.pl
	- first cut of NLS.pm module
	- compiles and tests ok with 5.004_60 built with -DUSE_THREADS
	- new C<valof> function
	- Win32::OLE objects overloaded conversion to strings and numbers

0.0603  (unreleased)
	- Win32::OLE::Enum::Count method removed
	- SetSVFromVariant now works with SAFEARRAYs of non-VARIANT types too
	- Onedimensional SAFEARRAY of UI1s converted to SvPV
	- OLE, Enum and Variant objects all linked in g_pObj chain
	- g_pObj chain protected by critical section to make it thread safe
	- New package variables $CP,$LCID for Win32::OLE and Win32::OLE::Variant
	- default lcid changed from LOCALE_SYSTEM_DEFAULT -> language neutral
	- LastOleError is stored in a package variable $LastError now
	- Error reporting now controled by $Warn package variable
	- Win32::OLE::Variant: new As,ChangeType,Type,Unicode,Value methods
	- Win32::OLE::Variant overloaded "" and 0+ operations
	- Preliminary Variant BYREF support
	- Dispatch can return Win32::OLE::Variant objects too
	- Compatibility package "OLE" created
	- Invoke method added, supports default method too
	- Memory leaks
	- "keys %$object", QueryObjectType and Win32::OLE::Const::Load no
	  longer croak when the GetTypeInfo is unavailable or returns 0
	- Enum::new returns undef if object is not a valid collection object

0.06  Fri Feb  6 21:13:20 1998
	All changes in this release courtesy Jan Dubois <jan.dubois@ibm.net>
	- bugfix: DoCroak uninitialized variable
	- Multidimensional arrays can now be sent and received

0.05  Sun Dec 14 21:13:11 1997
	All changes in this release courtesy Jan Dubois <jan.dubois@ibm.net>
	- All OLE errors are caught and a verbose error message is provided
	  through Carp::croak (if -w is in effect)
	- Internal errors will no longer be silently ignored; they'll croak now
	- All hardcoded buffer size limits removed from XS code
	- Collection support is fixed and moved into Win32::OLE::Enum
	- C<keys %$object> now enumerates the objects properties
	- Win32::OLE::Const module imports constants from type libraries
	- Moniker support through Win32::OLE->GetObject
	- Win32::OLE->GetActiveObject finds active instance of OLE server
	- Variants moved to Win32::OLE::Variant module; enhanced functionality
	- Win32::OLE->QueryObjectType return typelib name and class name of
	  object

0.04  Sun Oct 12 23:03:32 1997 (unreleased)
	- support for unnamed default methods (thanks to
	  Doug Lankshear <Doug_Lankshear@ActiveState.com>)
	- Following changes courtesy Jan Dubois <jan.dubois@ibm.net>:
	    * CreateVariantFromSV is more robust now
	    * support for omitting optional params with "undef"
	    * named arguments can be specified as a hash ref
	    * array elements are now properly typed (used to be always text)
	    * additions to testsuite
	    * With() utility method suggestion
	    * optional DESTROY method arg for Win32::OLE->new
	    * Win32::OLE::CreateObject renamed to Win32::OLE::new
	      old Perl new() method deleted
	    * Hardcoded package names gone, so inheritance is feasible now

0.03  Sat Jul 12 16:10:07 1997
	- DllEntryPoint for Borland

0.02  Sat May 10 15:40:52 1997
	- cleaned up one big memory leakathon (DESTROY actually gets
	  called now on all the objects)
	- back to XS
	- package names are Win32::OLE and Win32::OLE::Tie now
	- fixed misplaced DESTROY
	- implemented OLEUninitialize via DllMain

0.01  Sat Apr  5 14:23:42 1997
	- original version; created by h2xs 1.18
	- imported Activeware version

