COM or Component Object Model is Microsoft's approach to component based software design and OOP style interface based programming.

The Component Object Model (COM) is a platform-independent (independent of OS), distributed (location independent), object-oriented, design for creating binary software components that can interact with each other. COM is the foundation technology behind Microsoft's OLE (compound documents), ActiveX (internet enabled components), as well as others.

To understand COM and all COM-based technologies, it is crucial to keep in mind that it is not an object-oriented language, but a standard. COM also does not specify how an application should be structured. Programming language which will be used for implementation, source files and source project structure, and implementation details are left to the application developrs. COM does specify an object model and programming requirements that enable COM objects (called COM components, or COM objects) to interact with other COM objects. These objects can be within a single process like application and dynamic link library pair. It can be a pair of server and client processes or even these can run in two different remote machines. They can have been written in different programming languages like C++ and VB, and may be structurally quite dissimilar. That is why COM is referred to as a binary standard - it is a standard that applies after a program has been translated to binary machine code.

The only language dependent requirement for COM is that code is generated in a language that can create structures of pointers and, either explicitly or implicitly, call functions through pointers. Object-oriented languages such as C++, C# and Smalltalk provide programming mechanisms that simplify the implementation of COM objects. But languages such as C, Pascal, Ada, Java, and even BASIC programming environments can create and use COM objects.

COM defines the essential nature of a COM object. A COM object general in is made up of a set of data and the functions that manipulate the data. A COM object is one in which access to an object's data is achieved exclusively through one or more sets of related functions. These function sets are called interfaces, and the functions of an interface are called methods. Further, COM requires that the only way to gain access to the methods of an interface is through a pointer to the interface.

Besides specifying the basic binary object standard, COM defines certain basic interfaces that provide functions common to all COM-based technologies. It also provides a small number of API functions that all components require. COM has now expanded its scope to define how objects work together over a distributed environment, and added security features to ensure system and component integrity.

About our authors: Team EQA

You have viewed 1 page out of 67. Your COM/DCOM learning is 0.00% complete. Login to check your learning progress.

Learn on Youtube