If you’ve been around Visual Basic for the last few years, you’ve probably seen or heard the terms OCX and ActiveX tossed around in the press, documentation, and vendor literature. Lately you’ve probably heard the term ActiveX more and wondered “what ever happened to the OCX ?” Well the OCX never went away, it just underwent a name change.
To provide some history, lets look at how this whole object game began. Back in the early 1990’s, Microsoft created OLE 1.0, or Object Linking and Embedding. With OLE 1, a user could build a graph in Excel using some business data and drop that graph into Word, thus linking the two documents together. The next version of the specification, OLE 2.0, took things further by addressing how software components could actually share functionality. The Component Object Model (COM) was created as part of the OLE 2.0 specification to provide a foundation for software modules to interact through more than just compounding of documents.
Since COM was so far reaching in it’s coverage, Microsoft soon saw people using COM to do a wide variety of things and wanted to have one name to apply to all technologies using COM. So the names OLE and OLE Automation were coined. OLE was used to refer to any software that used the Component Object Model. OLE Automation was used to refer to the ability of software programs to let their services and functionality be accessed through some external user scripting language such as Visual Basic. The term OCX referred to a user written software module, based on COM, that exposed its own interfaces to allow the object to be used inside of other software.
Then along came Microsoft’s Internet strategy. As part of that strategy, the term ActiveX was coined to refer to Internet related software technologies. Because the software Microsoft was developing for the Internet was based on COM, ActiveX and OLE were for the most part indistinguishable. So they did a name shuffle and now ActiveX is used to refer to any COM based technology, including OCX’s. Many technologies were renamed using the ActiveX name. The term OLE now has gone back to its roots and refers to the creating of compound documents using object linking and embedding. So for the purposes of products in the Software Toolbox catalog, we’ve updated our terminology to use the ActiveX name as well.
See also: “ActiveX Controls - What are They?”
References to learn more: "Understanding ActiveX and OLE - A guide for developers and managers", David Chappell, Microsoft Press.