COM / OLE / ActiveX / IDispatch Verwirrung
Frage
Ich kann nicht meinen Kopf wickeln sich um die Unterschiede zwischen diesen Begriffen.
Sind COM und ActiveX Synonyme?
Ist ActiveX-Objekt nur ein COM-Objekt, das IDispatch aussetzt?
Viele ältere MSDN Seiten erwähnen IDispatch ohne COM Kontext. Gibt es eine separate Geschichte, und wurde nur unter dem COM ‚Schirm‘ später in seinem Lebenszyklus eingeführt?
Wo OLE passen? Ist seine (erhebliche) Präsenz in MFC Namensgebung und MSDN im Allgemeinen - alles nur Vermächtnis
Wikipedia einen Einblick gibt, aber nicht viel. Ich konnte keinen mehr in der Tiefe Referenz finden.
Lösung
Gefunden einige Zitate von COM Programming by Example :
Eine andere Sache, die Sie schnell finden mit COM ist, dass Marketing eine Exkursion hatte Tag mit der Terminologie. Eher, als hilft das Verständnis zu fördern, Sie werden in den meisten Fällen finden es fördert Geheimnis. ... OLE, ActiveX, Remotable Objekte - was man meint, was diese Woche? ...
COM aus der Lösung zu einem weiterentwickelt spezielles Problem - wie ein Wort ermöglichen Prozessor die Tabelle in eine zu bearbeitende Brief ohne dass der Benutzer verlassen müssen die Textverarbeitung zu tun. Diese Lösung wurde OLE genannt. ... Jedoch, mit der zweiten Version von OLE (OLE2), seine Schöpfer modifizierte OLE32.DLL zu mehr von der Grundfunktionalität aussetzen von OLE, so dass sein API verwendet werden könnte, zu ermöglichen, die jede Anwendung Acess Funktionalität eines anderen. Diese API, die seit 1993 nicht viel geändert, ist das, was als die COM sein API. ...
Sobald die COM API wurde ausgesetzt, Microsoft verwendet, es zu schaffen, was waren dann genannt OLE steuert zu ermöglichen anspruchsvolle Kontrollen (z.B. Knöpfe dass Spirale, Listenfelder, die spielen Musik) in Visual C ++ geschrieben sein zugänglich zu Visual Basic Anwendungen. Schließlich das gleiche Technologie wurde verwendet, um eine Kontrolle zu ermöglichen, durch Ihren Web heruntergeladen und verwendet werden Browser. An dieser Stelle der Name geändert, um ActiveX-Steuerelemente oder Ebene ActiveX rein für Marketing Gründe dafür. Sie können zwar jedes Paket Funktionalität in einem ActiveX-Steuerelement, seine requrirements gewesen Fach einen Benutzer für die Unterstützung Schnittstellensteuerung.
Ich bin immer noch neugierig auf den allerletzten Satz - müssen einige zusätzliche Anforderungen ein COM-Objekt erfüllen als ActiveX-Steuerelement zu qualifizieren? -. Aber es ist genug, um sie gehen zu lassen
Vielen Dank für Ihre Antworten!
Andere Tipps
ActiveX ist Marketing-ese für COM, obwohl ActiveX in der Regel im Zusammenhang mit dem "ActiveX-Steuerelemente" verwendet wird, die GUI-Objekte sind.
IDispatch ist eine Schnittstelle von COM implementiert Objekte, so dass Client-Programme ihre Methoden dynamisch zur Laufzeit aufrufen können (späte Bindung), im Gegensatz zu zum Zeitpunkt der Kompilierung, wo alle Methoden und Argumenttypen müssen vor der Zeit bekannt sein .
OLE ist die frühere Version von COM.
In Bezug auf OLE: COM hat seine Wurzeln in OLE. Aber heute kann OLE in Betracht gezogen werden oben auf COM gebaut werden und wird meist verwendet, für das, was der Name schon sagt - Dokument Verknüpfung und Einbettung. Während COM selbst nur ein paar Schnittstellen definiert sich (IUnknown, IClassFactory, IMalloc etc), OLE fügt eine ganze Reihe von zusätzlichen Schnittstellen wie IMoniker, IOleItemComtainer, etc.
Um es zusammenzufassen:. COM ist die Grundlage, ActiveX und OLE sind Schichten auf COM