Pergunta

Eu não posso envolver minha cabeça em torno das diferenças entre estes termos.

É COM e sinónimos ActiveX?

O ActiveX é objeto apenas um objeto COM que expõe IDispatch?

Muitas páginas MSDN mais velhos mencionar IDispatch sem qualquer contexto COM. Será que ela tem uma história separada, e foi introduzido apenas sob o 'guarda-chuva' COM mais tarde, em seu ciclo de vida?

Onde se encaixa OLE em? É a sua presença (considerável) na nomeação MFC e MSDN em geral -? Tudo apenas legado

Wikipedia dá algumas dicas, mas não muito. Eu não poderia encontrar um mais em referência profundidade.

Foi útil?

Solução

Encontrado algumas citações de COM Programação por exemplo :

Outra coisa que você vai descobrir rapidamente com COM é que o marketing tinha uma viagem de campo dias com a terminologia. Em vez de ajudando a promover a compreensão, você encontrará na maioria dos casos, promove mistério. ... OLE, ActiveX, Remotable Objetos - que um meio do que este semana? ...

COM evoluiu a partir da solução para um problema específico - como permitir que uma palavra processador para editar a planilha em um carta sem que o usuário ter que sair o processador de texto para fazê-lo. este solução foi chamado OLE. ... Contudo, com a segunda versão do OLE (ole2), seus criadores modificado OLE32.DLL para expor mais a funcionalidade básica de OLE para que a sua API poderia ser usado para permitir que qualquer aplicativo para acessar o funcionalidade do outro. Esta API, que não mudou muito desde 1993, é o que é considerado o COM API. ...

Uma vez que a API COM foi exposto, Microsoft usou para criar o que eram então chamado de controles OLE para permitir controles sofisticados (por exemplo, botões que espiral, caixas de listagem que o jogo música) escrito em Visual C ++ para ser acessíveis a Visual Basic formulários. Eventualmente, este mesmo A tecnologia foi utilizada para permitir que um controle para ser baixado e usado por seu web navegador. Neste ponto, o nome mudado para controles ActiveX ou apenas ActiveX simples puramente para comercialização razões. Embora você pode empacotar qualquer funcionalidade de um controlo ActiveX, seus requrirements ter sido especializada para suportar um utilizador controle de interface.

Eu ainda estou curioso sobre a última frase - tem um objeto COM satisfazer alguns requisitos adicionais para se qualificar como um controle ActiveX? -. Mas seu o suficiente para deixá-lo ir

Obrigado por suas respostas!

Outras dicas

ActiveX é marketing-ese for COM, embora ActiveX é geralmente usado no contexto de "controles ActiveX", que são objetos de GUI.

IDispatch é uma interface implementada por COM objetos para que os programas cliente podem chamar seus métodos dinamicamente em tempo de execução (ligação tardia), ao contrário de em tempo de compilação, onde todos os métodos e tipos de argumentos precisam ser conhecidos antes do tempo .

OLE é a versão anterior do COM.

Em relação OLE: COM tem suas raízes no OLE. Mas hoje, OLE pode ser considerada a ser construído em cima do COM e é usado principalmente para o que seu nome sugere - linking documento e incorporação. Enquanto COM se define apenas um par de si interfaces (IUnknown, IClassFactory, IMalloc etc), OLE adiciona um monte de interfaces adicionais como IMoniker, IOleItemComtainer, etc.

Para resumir: COM é a fundação, ActiveX e OLE são camadas em cima do COM

.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top