Introdução

COM é um acrônimo para Component Object Model; é uma camada orientada a objeto (e serviços associados) sobre DCE RPC (um padrão aberto) e define uma convenção de chamada comum que permite que código escrito em qualquer linguagem chame e interopere com código escrito em qualquer outra linguagem (desde que essas linguagens reconheçam o COM). O código não apenas pode ser escrito em qualquer linguagem, mas nem precisa fazer parte do mesmo executável; o código pode ser carregado a partir de uma DLL, ser encontrado em outro processo rodando na mesma máquina, ou, com DCOM (COM Distribuído), ser encontrado em outro processo em uma máquina remota, tudo sem que o código precise saber onde um componente reside.

Existe um subconjunto do COM conhecido como Automação OLE que compreende um conjunto de interfaces COM que permitem ligações flexíveis a objetos COM, para que possam ser introspectados e chamados em tempo de execução sem conhecimento em tempo de compilação de como o objeto funciona. A extensão COM do PHP utiliza interfaces de automação OLE para permitir que sejam criados e chamados objetos compatíveis a partir de scripts. Tecnicamente falando, isso deveria ser chamado de "OLE Automation Extension for PHP" (Extensão de Automação OLE para PHP), já que nem todos os objetos COM são compatíveis com OLE.

Agora, por que O COM seria ou deveria ser usado? COM é uma das principais formas de unir aplicativos e componentes na plataforma Windows; usando COM pode-se iniciar o Microsoft Word, preencher um modelo de documento e salvar o resultado como um documento Word e enviá-lo a um visitante do site. Pode-se também pode usar o COM para executar tarefas administrativas na rede e configurar o IIS; estes são apenas os usos mais comuns; pode-se fazer muito mais com o COM.

Além disso, a extensão oferece suporte à instanciação e criação montagens .Net usando a camada de interoperabilidade COM fornecida pela Microsoft.