
O problema que o COM resolve é que não há uma maneira padrão de módulos Windows se comunicarem uns com os outros.
Os "padrões" anteriores não são bons o bastante, pois:
- a API do Windows tem uma interface de mais de 350 funções
- VBX’s não funcionam em 32 bits.
- Com DDE há um sistema complicado de aplicações, tópicos e itens
- A maneira de chamar uma DLL é totalmente específica de uma aplicação
O COM fornece um protocolo de comunicação unificado, expansível e orientado a objeto para Windows que suporta o seguinte:
- uma maneira padrão, independente de linguagem, para um cliente EXE Win32 carregar e chamar uma DLL win32
- uma maneira geral para um EXE controlar outro EXE no mesmo computador (a substituição do DDE)
- uma substituição para um controle VBX, chamada um controle ActiveX
- uma maneira poderosa para programas de aplicação interagirem com o sistema operacional.
- uma expansão para acomodar novos protocolos como a interface para bancos de dados OLE DB
- uma versao distribuida (DCOM) que permite a um EXE se comunicar com outro EXE em um computador diferente
O COM é um protocolo que conecta um modulo de software com outro e então sai de cena. Após a conexão ser feita, os dois módulos podem se comunicar através de um mecanismo chamado interface. Interfaces não precisam de entry points ligados estática ou dinâmicamente, sómente uma poucas funções COM gerais que iniciam o processo de comunicação.
