SmallCOM/X is a tool, which allows you to easily incorporate Win32 and .NET based components in your VisualWorks application. SmallCOM/X generates Smalltalk classes for using COM-, OLE-, ActiveX-, OCX-, .NET- and .NET-Forms components. With SmallCOM/X you can integrate visual components (Active/X, OCX and .NET-Forms components) as easily as non-visual components (COM, OLE and .NET-components).

The current version 2.1.0 supports the creating of classes for Microsoft .NET components.

Why was SmallCOM/X developed

In the Microsoft world many useful visual and non-visual components exist that you might want to use to enhance your VisualWorks application with. SmallCOM/X automates incorporating such components and will save you much time and effort.

What does SmallCOM/X generate

SmallCOM/X automatically generates classes and methods to handle non-visual and visual components:

Additionally for the visual components SmallCOM/X automatically generates:

Thus visual components can be used and chosen from the palette of the UIPainter like normal VisualWorks widgets

Requirements for SmallCOM/X

Required is VisualWorks 5i.4 or higher. Your image needs to have ComConnect installed and must be running the SmalltalkCommander. The component must be properly installed on the system. .NET components must be COM enabled. This can be done by some options in the .NET-IDE and a few additional lines of code.

How to create classes for a COM- or .NET-component with SmallCOM/X

First you select the component or the component’s type library. The type library is usually registered in the Windows Registry, but can also be a .tlb-, .olb-, .dll or .exe-file. After loading the library, all types found are shown (Enums, Interfaces and CoClasses). Additionally the needed Spec-, View- und Controller- classes are shown. For each type a tab-view with the class and code to be generated is displayed. This code can be modified manually before filing in. Selected parts or all the parts can be filed in into a VisualWorks image.
After filing in, you can place a visual component‘s widget by the new widget button in the UIPainter onto a canvas and use it like the other widgets. If classes for a non-visual component are created, you can communicate with the component by creating an instance of the generated class and send it messages using the generated methods. Sending messages to visual components is also possible.

SmallCOM/X in action

The next two pictures show the creating of a model with a cancas containing an AcitveX-component and running this model:

This picture shows the UI-Builder with the InternetExplorer inserted into a canvas. In the Palette you see two new bottons (the World- and the Folder-symbol) representating the InternetExplorer coclasses.


The next picture shows the started application with the opened cancas. is browsed inside.