This is my old posting posted at planetsourcecode.com which I am re-posting on my own blog...
Component Object Model (COM) is Microsoft's object-oriented programming model that defines how objects interact within a single application or between applications. In COM, client software accesses an object through a pointer to an interface (a related set of functions called methods) on objects. Both OLE and ActiveX are based on COM.
Distributed Component Object Model (DCOM) allows to run COM remotely to facilitate the transparent distribution of objects over networks and over the Internet.