Documentation Center

COM - Some background

Using Sax Basic effectively requires that you should have a basic understanding of COM, component based computing and the Passolo Object Model. COM (the Component Object Model) is a binary standard for interfacing and interoperation of (possibly, separately-developed) components. More and more, everything Microsoft offers is COM-compliant.

COM is based on the principle of separation between interface and implementation. Microsoft defines standard, public interfaces, and several implementations of an interface can be provided. Any correct implementation (server) of an interface, and any correct client thereof, will interoperate transparently, regardless of such issues as programming languages being used.

A normal COM interface is just a binary table of entry points (addresses) of procedures that are called to invoke an object's functionality (methods) and get (and possibly set) the values of its properties. Such interfaces are often called either standard or custom. The standard ones are those that are published and released by Microsoft as part of some interoperation protocol while all the others, developed either by Microsoft or by other firms as part of the specification of particular applications or controls, are the custom ones.

COM allows extremely fast and compact implementation. When residing in the same process, a COM server and its client talk to each other (on a standard or custom interface) with direct procedure calls. All of Microsoft's languages, integrated into Visual Studio (VC++, VJ++, VB), support COM, as do many 3rd-party languages (Delphi, Perl, C++Builder, PowerBuilder, Microfocus COBOL, etc).

Automation is the COM way to guarantee interoperation with interpreted languages, which may intrinsically need to bind with an object at runtime. Performance will be slower than with custom interfaces, due to the interpretive access and perhaps to the need for types used in the interface to be constrained to Automation-compatible ones. Probably the most widespread scripting language is Microsoft Visual Basic for Applications (VBA). Sax Basic, the scripting language of SDL Passolo is nearly identical and compatible.