Pregunta

No puedo comprender las diferencias entre estos términos.

¿Son sinónimos COM y ActiveX?

¿Es el objeto ActiveX solo un objeto COM que expone IDispatch?

Muchas de las páginas antiguas de MSDN mencionan IDispatch sin ningún contexto COM. ¿Tiene un historial separado y se presentó en el 'paraguas' de COM más adelante en su ciclo de vida?

¿Dónde encaja OLE? ¿Es su (considerable) presencia en la denominación de MFC y en MSDN en general, todo solo legado?

Wikipedia da una idea, pero no mucho. No pude encontrar una referencia más detallada.

¿Fue útil?

Solución

Encontré algunas citas de Programación COM por ejemplo :

  

Otra cosa que encontrarás rápidamente con   COM es que el marketing tuvo un viaje de campo.   Día con la terminología. En lugar   ayudando a promover la comprensión,   Usted encontrará en la mayoría de los casos que promueve   misterio. ... OLE, ActiveX, Remoto   Objetos - cual significa lo que esto   ¿semana? ...

     

COM evolucionó de la solución a una   problema específico - cómo permitir una palabra   procesador para editar la hoja de cálculo en una   carta sin que el usuario tenga que salir   El procesador de textos para hacerlo. Esta   La solución se llamaba OLE. ... Sin embargo,   con la segunda versión de OLE (OLE2),   sus creadores modificaron OLE32.DLL para   Exponer más de la funcionalidad básica.   de OLE para que su API pueda ser utilizada   para permitir que cualquier aplicación acceda al   Funcionalidad de otro. Esta API,   que no ha cambiado mucho desde 1993,   Es lo que se considera el COM.   API.   ...

     

Una vez que la API de COM fue expuesta,   Microsoft lo usó para crear lo que eran   entonces llamados controles OLE para permitir   controles sofisticados (por ejemplo, botones   esa espiral, lista de cuadros que juegan   música) escrita en Visual C ++ para ser   accesible a Visual Basic   aplicaciones Eventualmente este mismo   La tecnología fue utilizada para permitir un control.   para ser descargado y utilizado por su web   navegador. En este punto, el nombre   cambiado a los controles ActiveX o simplemente   ActiveX simple solo para marketing   razones. Aunque puedes empaquetar cualquier   funcionalidad en un control ActiveX,   sus requisitos han sido   especializada para apoyar a un usuario   control de interfaz.

Todavía siento curiosidad por la última oración: ¿debe un objeto COM cumplir con algunos requisitos adicionales para calificar como control ActiveX? - pero es suficiente para dejarlo ir.

¡Gracias por tus respuestas!

Otros consejos

ActiveX es marketing-ese para COM, aunque ActiveX se usa generalmente en el contexto de " Controles ActiveX " que son objetos GUI.

IDispatch es una interfaz implementada por objetos COM para que los programas cliente puedan llamar sus métodos dinámicamente en tiempo de ejecución (enlace tardío), a diferencia de en tiempo de compilación, donde todos los métodos y tipos de argumentos deben conocerse con anticipación. .

OLE es la versión anterior de COM.

Respecto a OLE: COM tiene sus raíces en OLE. Pero hoy en día, se puede considerar que OLE está construido sobre COM y se usa principalmente por lo que su nombre sugiere: vinculación e incrustación de documentos. Mientras que la propia COM solo define un par de interfaces (IUnknown, IClassFactory, IMalloc, etc.), OLE agrega un montón de interfaces adicionales como IMoniker, IOleItemComtainer, etc.

Para resumir: COM es la base, ActiveX y OLE son capas encima de COM.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top