Release Notes >
Comfy 2.5 Release Notes
Post date: Oct 28, 2010 2:48:37 PM
New Features:
Added processing of the [optional] flag in the parameter specification in Codegen for ComfyJ application.
Added new wrappers (in ComFunctions class) for RegisterActiveObject and RevokeActiveObject methods.
Added a new sample that demonstrates integration with MS Richedit text control.
Added the debug mode to ComfyJ and particularly to IUnknownImpl class. The purpose of this mode is simply to keep stack trace of a Java COM wrapper. And if any error occurs during the release of this object we can print that stack trace. It can point out to the object which can be released incorrectly. This mode can be extremely useful for example in case if we got Access Violation error (Exception c0000005, at ...) which may occur when NativeResourceCollector tries to release already released Java COM wrappers. To enable this debug mode use -DdebugComfyJ=true parameter.
Added the ability to OleCotnainer for handling keyboard events of embedded objects.
Improvements:
Added MshCtx enumeration, wrapper for MSHCTX type.
Added MshlFlags MshCtx enumeration, wrapper for MSHLFLAGS type.
Added new helper methods that allow invoking of COM methods with one or more parameter without using Java arrays.
Added a new option to IDispatchServer class, which can specify whether to use case sensitive or case-insensitive comparison of method names.
Added a new optional timeout parameter (to Java COM server support) which can specify the period that host JVM will wait after last instance of Java COM server is destroyed.
Added the ability to specify the default COM interface of a Java COM server.
Changed the SafeArray to be resizable and re-creatable.
Improved performance of values setting in multi-dimensial SafeArray (now in several times faster).
Fixes:
Fixed the java.lang.OutOfMemoryError exception that occurred when trying to generate stubs.
Fixed the problem with BStr parameters that did not work correctly in VTBLs.
Fixed a memory leak in OleContainer when various listeners remained in memory.
Fixes in IStream* classes. The IStream inherits ISequentialStream now, but not IUnknown as it was before. Also, added the corresponding ISequentialStream* classes.
Fixed the naming of OleFunctions.marshallInterfaceToStream and OleFunctions.unmarshallInterfaceFromStream function wrappers. Also, added checking of HResult after function call.
Added .release() to the reserved names to fix the problem with name clashing.
Fixed the problem with incorrect order of VTBL methods for some interfaces.
Fixed the problem OleContainer when embedded OLE object "steals" focus input of a parent window in first appearance.
Fixed the problem in IDispathServer with invocation of methods which contain COM objects in parameters.
Fixed the problem in implementation of ISequentialStream.read() method in the ISequentialStreamImpl and ISequentialStreamVTBL classes.
Fixed the problem in Variant.getVariantType() method when it does not determine correctly the VarType of successors from IDispatchImpl class or classes that implement IDispatch.
Fixed the problem with getting the currency (VT_CY) value from Variant.
Fixed the problem in the Automation.invokeDispatch() method with releasing of Automation object after method invocation.
Fixed the problem in BStr class when BStr is created using BStr(String value, int size) constructor.
Fixed the problem when Automation fails with DISP_E_UNKNOWNNAME exception when invoke the methods of VB COM object.
Fixed the "invalid window handle" problem when disposing of OleContainer which is embedded in JDialog.
Fixed generation of enumerations for names that contain whitespaces.
Fixed the issue with focus in AbstractOleControl class.
Fixed the issue with incorrect marshaling of VB empty arrays.
Fixed the issue with incorrect marshaling of SafeArrays stored in Variant variables.
Fixed the problem with registering of all Java COM classes that extend AbstractOleControl class.