Component Object Model (COM)

Purpose

COM is a platform-independent, distributed, object-oriented system for creating binary software components that can interact. COM is the foundation technology for Microsoft's OLE (compound documents) and ActiveX (Internet-enabled components) technologies.

Where Applicable

COM objects can be created with a variety of programming languages. Object-oriented languages, such as C++, provide programming mechanisms that simplify the implementation of COM objects. These objects can be within a single process, in other processes, even on remote computers.

Run-Time Requirements

For information on which operating systems are required to use a particular interface or function, see the Requirements section of the documentation for the interface or function.

In This Section

TopicDescription

COM Fundamentals

Describes the fundamental concepts and programming reference.

OLE and Data Transfer

Describes compound documents and data transfer.

Controls and Property Pages

Describes ActiveX controls and property pages.

COM Language Translations

Describes the differences between programming languages and describe how to translate COM object syntax from one language to another.

 

See Also

COM+

Send comments about this topic to Microsoft

Build date: 11/12/2009

Tags :


Community Content

art1n
COM, OLE, OLE Documents, OLE Controls and ActiveX registered terms.

Before COM, the whole technology was named Object Linking and Embedding (OLE).

COM is only a subset of OLE. OLE2 introduced features like Automation and Controls, and all the inner subsets of the technology were given a distinct name (Structured Storage, Compound document, Property). All of them are described by Kraig Brockschmidt in Inside OLE 2, MS Press.

After this, marketing terms caused people to have fuzzy interpretations of the names. ActiveX was used to cover the whole technology, OLE Automation became Automation, and the ActiveX keyword was the only name to represent the future in composition and design of object-oriented applications, previously named OLE.

OLE was available for 16-bits platforms, and was the first to be available from Visual basic 3.0 with VBX controls. OLE2 and the 32bit architecture replaced this, the controls became OLE Controls, and Visual Basic 4.0 and 5.0 allowed VB to create real OLE Controls.

? COM is love is a popular DevelopMentor expression. There are famous books about COM and the most popular is certainly Don Box, Essential COM from Addison Wesley.
This book explained the beauty of COM and the inner architecture, the apartment and threading MUST-HAVE-SEEN complexity with an elegant style.

Don Box is now a Microsoft Architect for the successor of COM named Indigo; finally named Windows Communication Foundation. However, COM is still here, even in Vista. WCF does not replace COM. It just wraps all the WS-* and future unified communication wanted by MS.

A whole range of Microsoft Server product and inner functionalities of the Wndows OS are designed using COM. COM relies on Microsoft RPC and LRPC (memory). Implementation and execution are extremely fast because a COM component is the exact binary representation of an abstract C++ class with its implementation classes, and a registry entry to link the name of the component with its hosted modules (DLL or EXE).

COM is the longest technology used by Microsoft, either into its products or into its range of operating systems. Every product exposes its functionalities via an SDK and most of them have COM API. Office object model are OLE2 object model -> this is COM Windows Management Console (MMC snap-ins) and are COM components. Inserting a Word Object into an Excel Workbook depends on COM. In 2007, COM is still a competitor for .NET. Enterprises services and COM services components are still in place. .NET and COM have a fully interop paradigm.

COM is the fundamental piece of technology that is shipped in every Windows.
When one has understood the impact of COM on Microsoft, they can embrace the future of COM.

This challenge that MS is currently facing is .NET. Can .NET be a winning successor?
How do you enhance all products by replacing COM with .NET? How do you promote .NET as the successor of COM is a day to day challenge.

Enjoy COM.


mwr64
Alternate COM overview
Perhaps some might be helped by Jeff Moser's COM overview in this 2008 blog post: http://www.moserware.com/2008/01/finally-understanding-com-after.html.
Tags :

Page view tracker