The Component Object Model (COM) is a specification that describes how to write components. The main characteristics of COM are the following:
Language neutral. Components may be written in any language and be used by client applications written in any language.
Dynamic linking. A component can be updated without the need to recompile a client application that is using the component.
Encapsulation. A client application has no knowledge of how a component is implemented, the internal data structures it uses, and where it is implemented or the language in which it is implemented. Any implementation issues can change without a client application recognizing the changes.
While COM is mainly a specification ...