Component Object Model (
COM) é uma
plataforma da
Microsoft para
componentes de software lançada em
1993. Ela é usada para permitir a
comunicação entre processos e a criação dinâmica de
objetos em qualquer
linguagem de programação que suporte a tecnologia. O termo
COM é freqüentemente usado no
desenvolvimento de software para se referir a um grupo de tecnologias que incluem
OLE,
OLE Automation,
ActiveX,
COM+ e
DCOM. Apesar de introduzido em 1993, a Microsoft não iniciou a divulgação ampla do nome antes de
1997. Em sua essência, a COM é uma forma independente de linguagem de programação de implementar objetos de forma que eles possam ser utilizados em diferentes ambientes dos quais foram criados, mesmo entre diferentes máquinas e arquiteturas. A COM permite a reutilização de objetos sem o conhecimento de sua implementação interna pois força o desenvolvedor a fornecer uma
interface bem definida, que está separada da implementação. As diferentes semânticas na
alocação de memória entre linguagens de programação são resolvidas ao tornar os objetos responsáveis por sua própria criação e destruição, através de contagem de referência. A conversão entre diferentes interfaces de um objeto são obtidas através da função
QueryInterface()
. O método preferível de herdar em COM é a criação de sub-objetos (chamada agregação) para as chamadas de método, os quais são delegados.