ComfyJ is a Java-COM bridge enabling bidirectional communication between the Java platform and COM technologies.
With ComfyJ, you can use COM/OLE/OCX/ActiveX objects right from your Java application and implement Java objects as COM objects, without writing native code.
You could easily integrate your Java application with Microsoft Office Word, Microsoft Office Excel, Microsoft Office Outlook, Internet Explorer, Windows Media Player, Adobe Acrobat etc. entirely in the Java language. With ComfyJ you can build simple bridges:
Java – ActiveX, Java – COM, Java – OLE, Java – OCX, Java – Word, Java – Excel, Java – PowerPoint, Java – Microsoft Office, Java – PDF viewer, Java – Media Player.
*
If you want to use the Internet Explorer browser as a Java Swing UI component, we recommend you to take a look on JExplorer.
If you need to integrate Microsoft Excel & Java Swing applications only, we recommend you to use JExcel.
Major Features
ComfyJ run-time provides bidirectional Java-COM bridge and uses an underlying JNIWrapper technology together with ComfyJ Core framework and WinPack.
The Code Generator application supplied with ComfyJ allows you to wrap any COM library into a set of Java classes to interface with your Java application.
COM-to-Java Integration
This facet of ComfyJ allows you to integrate your Java application with any COM / OLE / OCX / ActiveX library of the Windows platform. In other words you could get full control over COM, OLE, OCX & Active X from your Java application.
Its major features include:
- Wrappers for basic COM interfaces, such as IUnknown, IDispatch, IClassFactory, IStream, etc.
- Wrappers for basic COM types such as BStr (BSTR), Variant (VARIANT), SafeArray (single and multidimensional arrays), etc.
- Support for VTBL method calling mechanism ("early binding" in VB). You can invoke methods of a COM object using their function indexes in Virtual Method Table (VTBL).
- Support for COM Automation ("late binding" in VB). You are free to invoke any method of a COM object using dynamic method invocation technique, get and set properties of a COM object (indexed or named).
- Listening to and handling of COM events. Using the base (IConnectionPoinContainer.findConnectionPoint(), IConnectionPoint.advise()) COM technique, you can create a Java COM event handler and connect it to a COM object.
- Integration with OLE / OCX / ActiveX components. ComfyJ provides the OleContainer class which allows you to:
- Use any OLE/ActiveX components in a Java Swing UI. Using this functionality, you can embed Internet Explorer, Acrobat Reader, Microsoft Office as well as various media components (Windows MediaPlayer, DVD player, QuickTime, ShockwaveFlash, etc.).
- Create an embedded object using ProgID, CLSID, or from a file. Also, there is an ability to insert an IOleObject into the container.
- Save/load an embedded OleObject to/from a file in a special binary format.
- Support for multiple threading models. ComfyJ provides a set of different concurrency models which you can use for initializing Java COM integration in your application.
- CodeGenerator utility. With this bundled application, you can generate Java COM wrappers for all types that are defined in a COM Type Library. Generated classes allow to you to work with respective COM objects just like with usual Java objects. Moreover, you can compile generated classes and pack them into a JAR file, if needed.
- COM memory management. All COM and other native resources allocated by the underlying JNIWrapper are garbage-collected automatically when no longer needed. Alternatively, you can explicitly release resources when required by the application logic.
- DCOM support. ComfyJ allows you to create a COM object on a remote server.
Java-to-COM Integration
This part of ComfyJ provides the ability to create COM objects purely in Java. In other words, Java objects can be exposed as COM objects to other COM applications. No writing of native code is required.
- Development of Java COM servers. For creating Java COM objects, ComfyJ provides all necessary classes such as IUnknownServer and IDispatchServer, so any custom Java COM object can be derived from these servers depending on application requirements. Created Java COM classes can implement various COM interfaces as required. These can be standard interfaces or those which were generated by Code Generator application of ComfyJ.
- Registration of Java COM servers. You can register created Java COM objects at run time (for COM event handlers) or in the Windows Registry using a bundled ServerManager application. There is also an ability to register Java COM objects without using ServerManager application, in which case deployment of Java COM servers will be simplified. Such registered objects can be further used by other COM applications.
Supported platforms
What You Get With ComfyJ
- JNIWrapper 3.x for Windows
- Free Runtime License to deploy ComfyJ inside your software to any number of client machines with no royalties to TeamDev
- Free product upgrades within the same major version number
- Free technical support for a period of one year from the date of purchase
- 20% discount for the support renewal.
- Comprehensive software documentation (Programmer's Guide, Tutorial, code samples)
- 15% discount for purchase of any other TeamDev product
For volume discounts please visit ComfyJ Purchase page.
Try ComfyJ
You can evaluate ComfyJ using the online demo or download a fully-featured evaluation version of it. The evaluation period is 30-days.
To run evaluation version of ComfyJ you should get the evaluation license key.
Feel the pleasure of writing code in the Java language only!