Release Notes

ComfyJ 2.13 Release Notes

posted Nov 10, 2015, 7:36 AM by Sergei Piletsky

ComfyJ 2.13 contains the following features and resolved issues:

  • Added support of Windows 10;

  • Added ability to register Java COM servers in 32-bit and 64-bit modes;   

  • Resolved focus traversal issues in OleContainer component;

  • Resolved the issue with activating OleContainer by mouse click in non-modal dialogs;

  • Improved support of Java applets in OleContainer.

ComfyJ 2.12 Release Notes

posted Apr 2, 2015, 9:50 AM by Sergei Piletsky

ComfyJ 2.12 contains the following resolved issues:

  • Added support of Java 8;

  • Fixed keyboard events processing issue in OleContainer component;

  • Fixed a focus handling issue in OleContainer component;

  • Fixed a memory leak issue in ComFunctions.coCreateInstanceEx method;

  • Resolved an issue with Variant property getters in Java COM servers;

  • Resolved a locale issue with generating the wrappers for a properly registered COM component.

ComfyJ 2.11 Release Notes

posted Jul 3, 2014, 9:14 AM by Sergei Piletsky

Release Notes

ComfyJ 2.11 contains the following resolved issues:

  • Fixed exception handling and releasing of the native resources in the property setters of Automation class;

  • Added ability to specify the locale for Automation;

  • Resolved the issue with updating an embedded component after calling the file) method;

  • Fixed the issue in Codegen when it generated uncompilable code (due to ambiguous import) if a type library contains the redefinition of standard ISupportErrorInfo COM interface;

  • Fixed the issue in Codegen when it generated uncompilable code due to improper overwriting of a getter method;

  • Fixed memory leaks in Variant.setValue(IUnknown) and Variant.setValue(IDispatch) methods;

  • Fixed the repainting issue of an embedded component when OfficeContainer is inside JInternalFrame container;

  • Fixed releasing of SafeArray when it is a return value of a Java COM server method;

  • Fixed the pointer issue in IPersistFileVTBL class;

  • Fixed focus handling issues in OleContainer and OfficeContainer components on JDK 7 and higher;

  • Resolved the issue with disposing native resources in OleContainer on 64-bit JVMs;

  • Fixed the deadlock issue in the OleContainer.destroy method;

  • Fixed the issue with generation of wrappers for methods with optional parameters;

  • Resolved issues with opening InfoPath documents inside OleContainer;

  • Fixed memory management issues in the property getter and setter methods of IDispatchServer;

  • Fixed the handle leak issue in OleContainer;

  • Resolved the issue with reading SafeArray parameters from Variant parameters in Java COM server methods;

  • Fixed the issue with activating an embedded object inside OleContainer when it gets focus for the first time;

  • Fixed the issue with deactivating OfficeContainer component when switching focus to a native window;

  • Resolved the issue with handling VT_EMPTY and VT_NULL variant types in Variant class;

  • Fixed the focus stealing issue in OleContainer;

  • Fixed NPE in OleClientSiteImpl.onUIActivate() on JDK 7;

  • Added the ability to load a class factory directly from a library file.

ComfyJ 2.10 Release Notes

posted Nov 15, 2012, 3:39 AM by Unknown user   [ updated Nov 15, 2012, 3:40 AM ]

New Features and Improvements:

  • Added support of Windows 8 platform (32-bit and 64-bit modes);
  • Added support of Java 7;
  • Added support of the properties in Java COM servers.

Resolved Issues:

  • Resolved the memory management issues in output AutoDelete parameters of the virtual method callbacks (methods of Java COM servers);
  • Fixed the issue with assigning a return value of a COM callback in case, when a result is returned via return parameter;
  • Fixed the issues with conversion of standard JNIWrapper types in Variant.toObject() method;
  • Fixed ClassCastException in Variant.getCVal() method;
  • Fixed focus handling issues in OleContainer and OfficeContainer components;
  • Resolved the issues with embedding OleContainer and OfficeContainer components to the JInternalFrame containers;
  • Resolved the issue in OleContainer component with losing a focus in embedded RemoteDesktop ActiveX (MsTscAx);
  • Fixed OleContainer activation mode depending on a specified AutoActivateMode property;
  • Fixed activation/deactivation issues in OfficeContainer component when it contains Excel document;
  • Fixed the issue with displaying a “Save As..” dialog when Word document is embedded in OleContainer;
  • Fixed the issue with registration of a JVM in Server Manager application if a JVM path contains whitespace characters.

Resolved issues in Code Generator:

  • Fixed code generation issues for MS Office type library in Codegen application;
  • Fixed the command line mode of Codegen application;
  • Fixed JVM crash issues during generation of the stubs in Codegen application.

ComfyJ 2.9 Release Notes

posted Dec 6, 2011, 5:54 AM by Unknown user

New Features and Improvements:

  • Added ability to expose custom Java COM interfaces from Java COM servers to other COM applications;
  • Added ability to use primitive Java types in methods of custom Java COM interfaces;
  • Added "vectorized" constructors to SafeArray class, which simplify creating of SafeArray objects from Java arrays, such as long[], String[], double[]

Resolved Issues:

  • Fixed memory leak while disposing unused OleContainer;
  • Optimized memory usage for BStr class;
  • Optimized memory usage for Variant class;
  • Optimized memory usage for SafeArray class;
  • Resolved memory leak issues in IClassFactoryServer and IUnknownServer classes;
  • Fixed instability issues in Java COM servers in multithreaded environments;
  • Fixed the issue with resizing of InfoPath ActiveX component in OleContainer;
  • Fixed read-only state of an embedded ActiveX component, if its OleContainer is located in a modal JDialog;
  • Fixed the issue with drawing a blank screenshot in OleContainer;
  • Fixed JVM crash issue after closing a window with OleContainer;
  • Fixed several minor issues in OleContainer component;
  • Fixed issue with color printing of documents in PowerPoint.

Resolved issues in Code Generator:

  • Improvements in Code Generator:
  • Fixed code generation issues with MS InfoPath 2.0 and 3.0 type libraries;
  • Fixed null pointer exceptions during generation of Java stubs for MS Office 12 Object library;
  • Fixed incorrect generation of method wrappers;

ComfyJ 2.8 Release Notes

posted Oct 28, 2010, 7:50 AM by Unknown user   [ updated Oct 10, 2012, 6:01 AM by Unknown user ]

New Features and Improvements:

  • New OfficeContainer component which is designed for better interaction with MS Office applications/documents;
  • Ability to register Java COM servers with different usage parameters, such as REGCLS_SINGLEUSE or REGCLS_MULTIPLEUSE;
  • Automatic activation of OleContainer component with a specified verb when it becomes visible;
  • Ability to set a record value to Variant;
  • Added Java COM server example that demonstrates how to implement IConnectionPointContainer interface and how to fire events from the server.


Improvements in Code Generator:

  • Enhanced command line generator interface; now it allows the same scope of options as the GUI;
  • Added option for generation stubs for interfaces without explicitly defined parent interface.


Resolved Issues:

  • Fixed memory leak issue in COM event handling, when a method contains the reference to COM interface;
  • Fixed memory leak issue in Automation.getDispatchPropertyAutomation.setDispatchProperty methods;
  • Fixed creation of a SafeArray with a structure parameter;
  • Fixed focus events handling in OleContainer component;
  • Fix incorrect structure alignment in GUID class;
  • Fixed the issue with disappearing of PowerPoint 2003 toolbar during resizing of OleContainer;
  • Fixed OleContainer.destroyObject() method to let embedded Word application unload properly.


Resolved issues in Code Generator:

  • Fixed generation of incorrect (uncompilable) alises for COM classes;
  • Fixed several issue when generating stubs with “Prefer Automation” flag;
  • Corrected generation of import paths to *Impl classes;
  • Corrected generation of methods with optional parameters:
    • using typified initializers instead of default Variants;
    • using Automation calls instead VTBL calls when "Prefer Automation" option is on.
  • Fixed generation of Java imports when dispinterface is used as the return parameter in generated methods;
  • Fixed imports for Variant class in when Variant.createUnspecifiedParameter() is used;
  • Fixed the problem with incorrect prefixes for property getters and setters;
  • Fixed problem with dummy property getters which return nothing;
  • Corrected generation of method for dispinterface wrappers (no methods of IUnknown interface added anymore);
  • Added missing constructors for alias types;
  • Fixed generation of method stubs that return SafeArray of record type.

ComfyJ 2.7 Release Notes

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

New Features and Improvements:

  • Added OleContainer.takeScreenshot() method that allows taking a screenshot of an embedded ActiveX component
  • Added ability to register COM components for a current user only (COM ServerManager)
  • Added ability to get/set properties of a COM object by their DISPIDs, not only by their names (Automation)
  • Added support of IObjectSafety COM interface and wrappers for it
  • Added ability to specify a COM threading model for a Java COM server: -Dteamdev.comfyj.server.threading=[DEFAULT], APARTMENTTHREADED or MULTITHREADED
  • Improved stability of queryInterface() Java COM server method in multithreading environment
  • Changed the signature of IDataObject.getData() method in order to allow fill out parameter properly
  • Added an indication (in UI) that a Java COM server is an OLE component (COM ServerManager)
  • Added OSGI manifest to ComfyJ library
  • Provided the ability to get the HRESULT after execution of the function (Codegen)


Resolved Issues:

  • Re-parenting issue in OleContainer component
  • Flickering issues in OleContainer component
  • Focus handling issues in OleContainer component
  • NPE in the OleContainer.destroyObject() method
  • Issue in IDispatchServer class with dispatching methods that have SafeArray parameters, which contain a structure type
  • Problem with passing null BSTRs values through VARIANT byref
  • Corrected INTERFACE_IDENTIFIER constant (IID) of IDataObject interface
  • Issue in the code generation for WMP11 Type library (Codegen)
  • Issue with not determining the presence of installed JDK 1.6 and thus "Compilation", "JAR" and "Javadoc" options were disabled (Codegen)
  • Problem with generation of parameters for Pointer to Pointer types, such as LPWSTR* (Codegen)
  • Problem with generation of wrappers for "linked" structures(Codegen)
  • NPE in Codegen when it tries to find tools.jar library (Codegen)
  • Problem with starting application when there is no JDK installed on a PC (Codegen)
  • Added using of Wnd class instead of Int32 type in generated Java COM wrappers where it's necessary (Codegen)



  • Updated Programmer's Guide

ComfyJ 2.6 Release Notes

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


  • CodeGen for ComfyJ now generates the Java COM wrappers with Javadoc which are taken directly from a TLB library
  • Added ability to selectively handle incoming and outgoing COM messages while waiting for responses from synchronous calls (out-of-proc COM servers)



  • Fixed the visual issue in OleContainer introduced with ComfyJ-2.5.1

ComfyJ 2.5.1 Release Notes

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


  • Added support for Running Object Table (ROT) and IMarshall-related functions
  • Codegen for ComfyJ does not require JAVA_HOME environment variable now



  • Fixed fond issue with using BStr values in SafeArray
  • Fixed crash issue in ComfyJ Demo while running on JVM 1.6
  • Fixed the issue with OLE control re-opening in the OleContainer that leads to JVM crash
  • Fixed the problem in OleContainer, used to appear during opening/saving OLE documents
  • Fixed the memory leak that appears when manually releasing SafeArrays



  • Added information about using ComfyJ in Java Web Start (JWS) Applications

ComfyJ 2.5 Release Notes

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

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.



  • 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).



  • 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 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.

1-10 of 15