And may I add that ActiveX objects belong to the class of COM/COM+ objects. Its a special class in that it displays a UI while COM objects includes those that do and don't.
COM objects were designed to make it easier to let VB and C++ apps interop
(erate
), ie VB apps using C++ COM objects and C++ apps using VB COM objects. It was also meant to remove DLL hell.
And further up that hierachy
(if you are still with me
), COM objects form a special class of DLL
(Dynamically Linked Libraries
) in that it always contain Function pointer "IUnknown" with-which the COM client app use to query for the exposed methods. This is vs the traditional retrieving of the function pointers via names, which do not define the interface itself, lending to the DLL hell.
DLL in the grand scheme of things, belong to a special category of binary, alongside with EXE
(cutables
). The diff being that DLLs expose function pointers, while EXEs do not and vary slightly in format for DOS and windows in terms of the program loader header/pointer segment.
ok ok ... I'm so off thread by now!
... this show go into Developers column! hehe