Release Notes

ComfyJ 2.4 Release Notes

posted Oct 28, 2010, 7:48 AM by Unknown user   [ updated May 5, 2016, 6:30 AM by Oleksandra Kovalenko ]

Changes since version 2.3:

  • Added the CodegenForComfyJ plug-in for Eclipse.
  • Added the DllClassFactory class that allows obtaining an IClassFactory object directly from the type library file (DLL) without registering it in the system.


  • Improved performance of the Automation function calls (almost by two times).
  • Improved the Deciamal class: added the ability to create a Decimal object from a Java double value and convert a Decimal value to a double value respectively.
  • Added to ComfyJ Programmer's Guide step-by-step instructions guiding through the creation of Java COM wrappers from a COM Type Library.


  • Fixed the problem with returning out parameters from Java COM callbacks.
  • Fixed the problem with releasing all unused objects in the OleContainer.destroyObject() method.
  • Fixed a deadlock problem that occurs while adding/removing an OleContainer object to/from a container.
  • Fixed the problem in the Automation.invoke() method: now it correctly reverses the order of parameters for a dispinterface.
  • Fixed the Automation.invokeDispatch() method which did not cast the resulting value to some types, for instance, to ComEnumeration type.
  • Fixed a focus handling problem in the OleContainer class.
  • Fixed an access violation problem in the OleContainer class that appeared in JDK 1.4.2_12 and later.
  • Fixed the IUnknownImpl.release() method related to disposing of a COM object in a stopped OleMessageLoop thread.
  • Fixed implementation of the IUnknown.hashCode() method.
  • Fixed the problem in the SafeArray class: externally allocated SafeArray's are correctly freed now.
  • Fixed the problem in the BStr class: externally allocated BString's are correctly freed now.
  • Updated Javadoc for ComToJava functionality.

Bug fixes in the CodegenForComfyJ:

Important note: In ComfyJ 2.3, there was a problem (incorrect reverse of parameters for wrappers to dispinterfaces) in code generation. So if you created Java wrappers for dispinterfaces using that version, we recommend you to re-generate them anew. Otherwise, they will not work correctly with ComfyJ 2.4. We are sorry for inconvenience.

  • Fixed generation of wrappers for pure dispinterfaces: the order of parameters is not reversed.
  • Fixed a naming issue for property getters/setters whose names may clash with existing methods of COM interfaces.
  • Fixed the problem with generation of wrong method names for Java COM event servers.
  • Fixed the problem when stubs were not generated properly for some types, like Pointer.Void[] /*[in,out]*/ or Int16[] /*[in,out]*/.
  • Fixed the problem when an incorrect wrapper was generated when a method of a COM interface expected a pointer to a primitive type (for example, in/out type* value).
  • Fixed several issues in the plug-in for IDEA.

ComfyJ 2.3 Release Notes

posted Oct 28, 2010, 7:47 AM by Unknown user   [ updated Oct 28, 2010, 7:47 AM ]

Changes since version 2.2:
  • Added complete support of 64-bit Windows, which enables Java applications (running in 64-bit mode) to work with 64-bit COM and also to create and register 64-bit Java COM servers.
  • Added new Java and VB examples that demonstrate how to listen to events of a Java COM server in a native (VB) client.
  • Added new GUID.string2GUID method that allows to convert a string presentation of a GUID to the real GUID type.


  • Codegen: fixed the problem with wrappers generation in 64-bit mode.
  • Codegen: fixed code generation problem for Adobe InDesign Type Library.
  • Fixed incorrect IllegalStateException in IDispatchServer class when one of a COM callback parameters is NULL pointer to IUnknown interface.
  • Fixed problem in Variant class when working with ComEnumeration parameters.
  • Fixed the problem that caused CO_E_RELEASED COM exception in Java COM servers.

ComfyJ 2.2 Release Notes

posted Oct 28, 2010, 7:47 AM by Unknown user   [ updated May 5, 2016, 6:30 AM by Oleksandra Kovalenko ]

Changes since version 2.1:
  • Added IntelliJ IDEA plugin for ComfyJ Code Generator application.
  • CodeGen: Added processing of optional flag in the parameter specification.
  • IClassFactoryServer now searches for VTBL classes in classloaders for the interface and callback implementation class.
  • A proxy that is created by OleMessageLoop.bindObject(IUnknown) now provides full stack trace.
  • Added ability to handle user input in Yes/No/Cancel dialog in method if file already exists.
  • Added AddedAbstractOleControl class, which is the base implementation of OLE control. Also, SimpleSwingActiveX sample added demonstrating the usage of this new class.


  • Fixed the problem with reading BStr using Automation.
  • Fixed the problem with incorrect releasing Java COM objects of the same type.
  • Fixed the Java COM Server method returning SafeArray failure after aprox. 100 calls from client.
  • Fixed memory leaks when using PowerPoint in the OleContainer.
  • Fixed IllegalArgumentException when COM-to-Java method returns Variant.
  • Fixed failures reading BStr as return value of IDispatchServer.invoke() method.
  • CodeGen: Fixed wrong method name generation for event servers.
  • CodeGen: Fixed wrong method call generated for the methods accepting SafeArray* as [in] parameters.
  • CodeGen: Fixed the problem with generation of structures by ComfyJ generator.
  • CodeGen: Fixed javadoc generation.
  • CodeGen: Fixed the problem with CodeGen failing with no JDK installed, but only JRE.
  • Samples: Added LicensedActiveX component sample.
  • Samples: Added getSafeArray() method to all COM-to-Java samples.
  • Samples: Fixed Word Sample throwing ComException when trying to open a document second time.
  • Documentation: Updated documentation with more details about stubs generation and OleMessageLoop usage.
  • Documentation: Other minor documentation fixes and updates.

Known Issues:

  • In this version of ComfyJ, on 64 bit Windows XP, it is not possible to register Java COM servers using Server Manager application as 64-bit COM Servers. 32-bit mode works well as before. It is also possible to work with 64 bit COM objects in usual way. We are actively working on the issue and will try to fix it as soon as possible.

ComfyJ 2.1 Release Notes

posted Oct 28, 2010, 7:46 AM by Unknown user   [ updated Oct 28, 2010, 7:47 AM ]

Changes since version 2.0:
  • ServerManager: Added the ability to specify some JVM settings individually for each JavaCOM server and for the shared JVM.
  • CodeGen: Added the ability to compile the generated sources.
  • CodeGen: Added the ability to JAR the compiled classes.
  • Documentation: Added information on how to create and register an application JAR file without the need to add all used JAR files into the class path.


  • Fixed the "java.lang.IllegalArgumentException: argument type mismatch" exception occurring when a COM callback method has the Date parameter.
  • Fixed the memory leak problem in the BStr class and incorrect value setting in the BStr.setValue() method.
  • Fixed the problem with returning SafeArray parameter from a JavaCOM object (incorrect type of return value).
  • Fixed the problem with host (shared) JVM failing to load JavaCOM classes with different class paths.
  • Fixed the problem with using BStr in SafeArray.
  • Fixed sporadic Access Violations during code generation in the CodeGen application.

ComfyJ 2.0 Release Notes

posted Oct 28, 2010, 7:46 AM by Unknown user   [ updated Oct 28, 2010, 7:46 AM ]

New Features:
  • Added functionality for creating and registering Java COM servers.
  • Added the ServerManager tool for registering and managing Java COM servers.
  • Support for the IClassFactory2 COM interface.
  • New documentation for the ComfyJ library.
  • Added the ComfyJDemo application demonstrating ComfyJ's capability to integrate ActiveX controls into Java Swing applications and to interact with them using the Automation technology.
  • Added a new constructor to IUknownImpl that takes a Pointer.Void as a parameter for convenience.
  • New samples for the ComfyJ library.


  • Improved the Code Generation application, namely added the ability to generate Java wrappers for a type library as well as for a COM component.
  • Improved stability of the Variant and BStr classes.
  • Resolved several memory management issues in NativeResourceCollector.
  • Registration of a run-time COM server's interfaces is not required any more. Now IClassFactory automatically registers all interfaces implemented by the server class.

Fixed Bugs:

  • Fixed the problem with setting a BStr value in multi-dimensional SafeArrays.
  • Fixed the problem with reassigning a value in the BStr object.
  • Fixed the problem with showing modal OCX windows in OleContainer.
  • Fixed the problem with focus events in OleContainer.
  • Fixed the problem with processing keyboard events in OleContainer.
  • Fixed the Access violation problems in NativeResourceCollector.
  • Fixed the problem in SafeArray.release() method. It did not work when its AutoDelete property was set to false.
  • The Automation.release() method is deprecated since it is not necessary and confusing.
  • Removed the stack trace printing in the OleContainer.insertObject(IOleObject object) method if an object does not support the IPersistStorage interface.
  • Fixed the problem with reading a UInt value from Variant.
  • Fixed the problem with reading SafeArray (byRef) from Variant using the Varinat.getValue() method.
  • Fixed the memory leak problem when Variant contains a BStr.
  • Fixed the problem with releasing memory in theBStr class.
  • Fixed the problem with calling a dispatch method in IDispatchServer, whose DispID is 0.
  • Codegen: Added exception messages with clear error descriptions.
  • Codegen: Added a new option for handling non-labelled parameters in the Code Generation application.
  • Codegen: Fixed "FunctionExecutionException: c0000005" that occurs during Java wrappers generation .
  • Codegen: Fixed "Access violation: attempting to read memory at address 0000000A" that occurs during Java wrappers generation.
  • Codegen: Fixed the problem with generating CoClasses that have no default interface.
  • Codegen: Fixed various minor bugs.

11-15 of 15