Difference between COM DLL and ActiveX control

Akaanthan Ccoder picture Akaanthan Ccoder · Nov 19, 2009 · Viewed 10k times · Source

Few similarities I know..

  • Both cannot execute by themself. It needs some program to instantiate it.

  • COM DLL & ActiveX controls are platform independant. (is it so...?)

  • Both requires to support the interface IUnknown and exposes three methods QueryInterface, AddRef, and Release.

  • It also requires to be registered before using and un-registered after done with it.

But how are they different? Can someone please list it down?

Also my understanding is ActiveX controls are OLE custom controls (OCX). I have heard of terms like ActiveX DLLs. Is it another form of ActiveX control or something different?

Answer

Jordan Parmer picture Jordan Parmer · Nov 19, 2009

ActiveX is a flavor of COM. COM+, OLE, and DCOM are also flavors of COM. COM just means Component Object Model. An ActiveX object is just an OLE object that supports IUnknown.

COM is a system-level standard and provides model services to facilitate the construction of higher-level functionality. OLE and ActiveX are high-level services built on top of the COM foundation. COM, ActiveX, and OLE are very similar in nature but ActiveX and OLE provide more application-level features.