Files
jlibcom/docs/ReleaseNotes.html

504 lines
14 KiB
HTML

<HTML>
<BODY>
<h2>What's New in JACOB 1.10</h2>
<ul>
<li>
<b>Windows Processes</b>
<ul>
<li>New proposed API to support ActiveXComponent connections to already running applications.
Factory methods have been added to the ActiveXComponent to support this.
(Feedback wanted)
</ul>
</li>
<li>
<b>Variants</b>
<ul>
<li>Variant now accept Java Dates in the constructor.
<li>Redundant constructors removed
<li>Experimental toJavaObject() method added that automatically
converts to appropriate java type
<li>Support added for "NOTHING", a Variant of type Dispatch with no value
<li>Non functional getNull() and getEmpty() methods deprecated. They were void methods
</ul>
</li>
<li>
<b>Event Callbacks</b>
<ul>
<li>Jacob normally uses information in the registry to find the connection
information needed to set up event callbacks. Excel and other programs
don't put that information in the registry. A new optional parameter
has been added to the DispatchEvents constructors that lets a user provide
the location of the OLB or EXE that contains the information required to
retrieve the events.
<li>Event handlers can now return a value to calling MS Windows program.
The event handlers must return an objec of type Variant if they wish to return
a value. All
previous event handlers still work with a void return. (This change should be
backwards compatible)
</ul>
</li>
<h2>Tracked Changes</h2>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
<tr>
<td width="100%" colspan="2"><b>Bugs</b></td>
</tr>
<tr>
<td width="13%">1340233</td>
<td width="87%">Null Program Id in Dispatch Constructor does bad things to VM(pre1)</td>
</tr>
<tr>
<td width="13%">1341763</td>
<td width="87%">Removed Variant serializable interface because it is not
actually serializable on 2000/xp(pre1)</td>
</tr>
<tr>
<td width="13%">&nbsp;</td>
<td width="87%">&nbsp;</td>
</tr>
<tr>
<td width="100%" colspan="2"><b>Patches</b></td>
</tr>
<tr>
<td width="13%">1386454</td>
<td width="87%">Return values from event callbacks (pre3)</td>
</tr>
<tr>
<td width="13%">1394001</td>
<td width="87%">Missing variable initialization (pre3)</td>
</tr>
<tr>
<td width="13%">1208570</td>
<td width="87%">Support Excel and other objects events(pre1)</td>
</tr>
<tr>
<td width="13%">&nbsp;</td>
<td width="87%">&nbsp;</td>
</tr>
<tr>
<td width="100%" colspan="2"><b>Feature Requests(pre1)</b></td>
</tr>
<tr>
<td width="13%">1241037</td>
<td width="87%">Support NULL VT_DISPATCH.(pre2)</td>
</tr>
<tr>
<td width="13%">1169851 </td>
<td width="87%">Support of VB's Nothing.(pre2)</td>
</tr>
<tr>
<td width="13%">1185167</td>
<td width="87%">Provide methods to connect to running instance.(pre1)</td>
</tr>
<tr>
<td width="13%">959381</td>
<td width="87%">Auto variant to object conversion method method added to Variant.(pre1)</td>
</tr>
<tr>
<td width="13%">1341779</td>
<td width="87%">Variant should accept java.util.Date in Variant(Object) constructor(pre1)</td>
</tr>
</table>
</ul>
<!---------------------------------------/>
<h2>What's New in JACOB 1.9.1</h2>
<ul>
<li>
<b>License</b>
<ul>
<li>License standardized on LGPL. See LICENSE.TXT for more information
</ul>
</li>
<li>
<b>Event Callbacks</b>
<ul>
<li>Event handlers are now wrapped in an InvocationProxy. The COM/JNI event
code knows only about InvocationProxies and calls the appropriate methods
on the Invocation proxy to get needed Variant instances and to forward
events to the Java layer.
</ul>
</li>
<li>
<b>Variants</b>
<ul>
<li>Automatic conversion between Windows Time and Java Date is now supported
in Variant object.
</ul>
</li>
<li>
<b>SafeArray</b>
<ul>
<li>Multi-dimensional (greater than 2) support
</ul>
</li>
<h2>Tracked Changes</h2>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
<tr>
<td width="100%" colspan="2"><b>Bugs</b></td>
</tr>
<tr>
<td width="13%">1335897 </td>
<td width="87%">SafeArray() called toString() on objects when debug was turned on</td>
</tr>
<tr>
<td width="13%">&nbsp;</td>
<td width="87%">&nbsp;</td>
</tr>
<tr>
<td width="100%" colspan="2"><b>Patches</b></td>
</tr>
<tr>
<td width="13%">1314116 </td>
<td width="87%"> putString UNICODE string length not detected</td>
</tr>
<tr>
<td width="13%">&nbsp;</td>
<td width="87%">&nbsp;</td>
</tr>
<tr>
<td width="100%" colspan="2"><b>Feature Requests</b></td>
</tr>
<tr>
<td width="13%">1264850</td>
<td width="87%">Custom Event Dispatching</td>
</tr>
<tr>
<td width="13%">959382</td>
<td width="87%">Time Conversion</td>
</tr>
<tr>
<td width="13%">1313892 </td>
<td width="87%">Multi-Dimensional SafeArray</td>
</tr>
</table>
</ul>
<!---------------------------------------/>
<h2>What's New in JACOB 1.9</h2>
<ul>
<li>
<b>Event Callbacks</b>
<ul>
<li>Variant parameters can now be modified by the receiver to be passed
back to the COM caller </li>
<li>Callbacks now create objects of class VariantViaEvent rather than Variant.
This was aided to add debugging and tracing</li>
<li>Callbacks can now be received when running in JWS other launchers where
JACOB.jar is not in the system classloader's path.</li>
</ul>
</li>
<li>
<b>Dispatch API Clarifications</B>
<ul>
<li>All static method's first parameters have been more strongly typed
to the Dispatch class, rather than Object. This may call for code
changes in the cases of code that just asigned Dispatch objects
to variables of type Object rather than Dispatch or one of its subclasses </li>
</ul>
</li>
<li>
<b>Dispatch subclasses are now supported with pointer modifying constructor</b>
<ul>
<li>Dispatch and ActiveXComponent now includes a constructor to be used by Dispatch subclasses
that swaps the pointers around. This eliminates the need for every Dispatch subclass
to have a constructor that swapped and nulled out the pointers to the COM layer.
All samples have updated to use the new api </li>
</ul>
</li>
<li>
<b>ActiveXComponent has been upgraded</b><ul>
<li>ActiveXComponent methods return ActiveXComponets </li>
<li>Methods have been added to the ActiveXComponents to retrieve
parameters as Dispatch objects or ActiveX components. The
Script Tests have been updated to show the same programs in Dispatch
format or ActiveXComponentFormat </li>
</ul>
</li>
<li>
<b>Memory Management</b>
<ul>
<li>Beta test option that lets an application use automatic object object
removal through the use of weak reference hash maps in the ROT class.&nbsp; The
default behavior of manual release via the COMThread class has been retained as
the default behavior.&nbsp; Developers can test automatic memory collection by
using the command line option <i>-Dcom.JACOB.autogc=true</i> </li>
</ul>
</li>
<li>
<b>JNI Changes</b>
<ul>
<li>Erroneous Array dimension checking fixed for certain boolean set and get functions
</li>
<li>Alternative method for finding Variant class for callbacks in JWS
or other application lanchers where the system classloader does not
know about JACOB classes. </li>
<li>Unicode is supported for putString and putStringRef</li>
<li>EventProxy zeros out the com object reference in the Variant objects
that are created by EventProxy so that they are not double released,
by both the Java VM and calling code from the COM side. The caller
is supposed to be responsible for releasing the memory it created.
This fix only applies to Variants created in callbacks. </li>
</ul>
</li>
<li>
<b>Logging Additions</b><ul>
<li>Debugging logging to standard out for JACOB can be turned on by using the
command line option <i>-Dcom.JACOB.debug=true</i></li>
</ul>
</li>
<li>
<b>Visual Studio</b><ul>
<li>The VisualStudio directory in the CVS repository will be removed in the next
release</li>
</ul>
</li>
<li>
<b>Documentation</b><ul>
<li>API documentation via Javadoc&nbsp; is now being generated for all classes.</li>
<li>The development team is looking for help in upgrading the quality of the
class documentation</li>
</ul>
</li>
<li>
<b>Build Changes</b>
<ul>
<li>A static method has been added to JacobObject that returns the build version</li>
<li>The project is now being built using ANT.&nbsp; Most of the developers are
running this from inside of Eclipse</li>
<li>All makefiles have been purged</li>
</ul>
<h2>Tracked Changes</h2>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
<tr>
<td width="100%" colspan="2"><b>Bugs</b></td>
</tr>
<tr>
<td width="13%">1116101</td>
<td width="87%">jacob-msg 0284 : Access Violation while garbage collecting</td>
</tr>
<tr>
<td width="13%">1114159</td>
<td width="87%">Problem with COM Error Trapping in JACOB DLL</td>
</tr>
<tr>
<td width="13%">1113610</td>
<td width="87%">Bad error check in SafeArray.cpp</td>
</tr>
<tr>
<td width="13%">1066698</td>
<td width="87%">Minor Memory leak in Dispatch.cpp</td>
</tr>
<tr>
<td width="13%">1065533</td>
<td width="87%">Problem with unicode conversion</td>
</tr>
<tr>
<td width="13%">1053871</td>
<td width="87%">solution for memory leak in 1.7</td>
</tr>
<tr>
<td width="13%">1053870</td>
<td width="87%">JACOB0msg 2019 - Safe Array</td>
</tr>
<tr>
<td width="13%">1053866</td>
<td width="87%">getHResult only returns 80020009</td>
</tr>
<tr>
<td width="13%">960646</td>
<td width="87%">But in SafeArray:: getBoolean for 2D arrays</td>
</tr>
<tr>
<td width="13%">&nbsp;</td>
<td width="87%">&nbsp;</td>
</tr>
<tr>
<td width="100%" colspan="2"><b>Patches</b></td>
</tr>
<tr>
<td width="13%">1115187</td>
<td width="87%">EventCallbacks fail w/Variant ClassNotFoundException in JWS</td>
</tr>
<tr>
<td width="13%">1105915</td>
<td width="87%">Fix for event handling memory corruption</td>
</tr>
<tr>
<td width="13%">1090104</td>
<td width="87%">Weak Reference in teh ROT</td>
</tr>
<tr>
<td width="13%">1068544</td>
<td width="87%">in/out parameter support for event handlers</td>
</tr>
<tr>
<td width="13%">981540</td>
<td width="87%">jre 1.4.2 fix as patch</td>
</tr>
<tr>
<td width="13%">&nbsp;</td>
<td width="87%">&nbsp;</td>
</tr>
<tr>
<td width="100%" colspan="2"><b>Feature Requests</b></td>
</tr>
<tr>
<td width="13%">1049390</td>
<td width="87%">static Version information</td>
</tr>
<tr>
<td width="13%">1049224</td>
<td width="87%">Javadocs or at least script to generate it</td>
</tr>
<tr>
<td width="13%">1049158</td>
<td width="87%">API to get ProgId of ActiveXComponent</td>
</tr>
<tr>
<td width="13%">&nbsp;</td>
<td width="87%">&nbsp;</td>
</tr>
</table>
</li>
</ul>
<h2>What's New in JACOB 1.8</h2>
<ul>
<li>
<b>Move To SourceForge</b>
The project is not housed at
<a href="http://sourceforge.net/projects/jacob-project/">Sourceforge.net</a>.
</li>
<li>
<b>Licensing Change</b>
All limitations on commercial use of JACOB have been removed and it
is now being developed under a BSD license at
<a href="http://sourceforge.net/projects/jacob-project/">Sourceforge.net</a>.
</li>
<li>
<b>Compiled with Java 1.4.2</b>
Version 1.8 was compiled with JSEE 1.4.2 and fixes the compilation bug
that was remnant of compilation with JDK 1.1.
</li>
<li>
<b>Baseline For Change</b>
This version is the baseline for the first CVS checkin and we encourage
people to start contributing to the project with this version.
</li>
</ul>
<li>
<h2>What's New in JACOB 1.7</h2>
<ul>
<li>
<b>Explicit COM Threading Model Support:</b>
See a detailed discussion of
<a href="JacobThreading.html">COM Apartments in JACOB</a>
</li>
<li>
<b>New COM Object Lifetime model:</b>
See a detailed discussion of
<a href="JacobComLifetime.html">COM Object Lifetime in JACOB</a>.
</li>
<li>
<b>Improved Event Handling:</b>
Thanks to code contributed by
<a href="mailto:n.o.bouvin@daimi.au.dk">
Niels Olof Bouvin</a>
and <a href="mailto:jehoej@daimi.au.dk">Henning Jae</a> JACOB 1.7 can
read the type information of a Connection Point interface by looking
it up in the registry. This makes it possible to use events with IE as
well as office products.
</li>
<li>
<b>Improved Dispatch:</b>
Error messages from Invoke failures are now printed out as well as
allowing the passing in of arguments to a Get method.
</li>
<li>
<b>EnumVariant Implementation:</b>
Makes it easier to iterate over COM collections. Thanks to code
contributed by
<a href="mailto:Thomas.Hallgren@eoncompany.com">Thomas Hallgren</a>.
</li>
<li>
<b>SafeArray leaks:</b>
SafeArrays were not being properly freed prior to version 1.7, many
other memory leaks were fixed as well.
</li>
<li>
<b>Visual Studio Project:</b>
For those who want to debug: vstudio/JACOB. At the moment all the
native code is replicated there from the jni directory...
</li>
</ul>
<h2>Related Links</h2>
<ul>
<li>
The JACOB mailing list is hosted at yahoo groups:
<a href="http://groups.yahoo.com/group/jacob-project">
http://groups.yahoo.com/group/JACOB-project</a>.
<b>This is the preferred way to get support for JACOB</b>. It also
includes an extensive archive. If you are doing any development with
JACOB, please join the list.
<li>
Massimiliano Bigatti has developed
<a href="http://www.bigatti.it/projects/jacobgen/">
JACOBgen - a generator that automatically creates JACOB code from
Type Libraries</a>
</li>
<li>
Steven Lewis is developing a version of Java2Com that supports JACOB
code generation. See:
<a href="http://www.lordjoe.com/Java2Com/index.html">
http://www.lordjoe.com/Java2Com/index.html</a>.
<li>
To find documentation on the com.ms.com package, go to:
<a href="http://www.microsoft.com/java/download/dl_sdk40.htm">
http://www.microsoft.com/java/download/dl_sdk40.htm</a>
and at the bottom of the page is a link that says:
Microsoft SDK for Java 4.0 Documentation Only. You should download
that file and install it. Then, view sdkdocs.chm and look for
"Microsoft Packages Reference". Hopefully, the next release of
JACOB will include full javadoc (volunteers?)...</li>
</BODY>
</HTML>