Component Object Model (COM) is a simple Microsoft specification method that defines a binary standard for exchanging code between two systems, regardless of the OS or programming language. COM provides access to distributed client object services and is used to share cross-platform binary code and programming languages.
Portability - COM's primary objective - is achieved through well-defined COM object interfaces.
Techopedia Explains Component Object Model (COM)
COM interactivity occurs via interfacing with expandable COM software components that do not have an impact on underlying implementation objects. COM uses one intra- and interprocess communication model for developer transparency. Developers increase efficiency by modifying service implementation. COM machine components also share memory, which increases efficiency and provides superior error handling and debugging.
Dynamic link library (DLL) or EXE files contain COM object classes. The client uses one or more COM interfaces to access COM object services, defined as COM object classes or CO class memory instances. A 128-bit globally unique identifier (GUID), known as a class identifier (CLSID), is associated with each CO CLASS and interface for unique COM object identification.
Clients access COM objects through one or more supported interfaces, which are actual contracts specifying COM object service availability. The COM object interface is not tied to any programming language and is usually written in an interface definition language.
Because the COM object can have more than one set of available services, COM objects may expose more than one interface to clients. Because two interfaces may have the same name, a GUID is used to uniquely assign COM object references for client access.
The primary COM module feature is expandability. COM objects continuously incorporate new functions and present new client interfaces for access to old and new services.