ActiveX Components (ActiveX Controls, COM Objects & OLE Objects)
Microsoft first introduced the term ActiveX in 1996 when they launched a downloadable user interface control or software component that could be used by Internet Explorer to give more interactive or active content on a Web page to the reader. ActiveX controls were a re-branded subset of OLE custom controls (OCX) or OLE controls (OCXes) that were streamlined for downloading over the Internet and that could be digitally signed for security and authentication reasons. These ActiveX downloads were also tagged or marked as being safe for scripting and safe for initialization, to help give users confidence in using them in ActiveX Internet apps, as they were less likely to start making unauthorized actions on their systems. ActiveX controls also supported threading models, such as Apartment Model Threading, to try and improve performance in a multi-user or multi-process environment.
OLE controls (OCX's) or Object Linking and Embedding controls were themselves the successor to VBX controls first introduced by Microsoft to help programmers extend the functionality and features of their Visual Basic program by buying and reusing a VBX control built by another programmer or company, with expertise in a specific area. VBXes were limited to 16 bit usage for example on Windows 3.x, OCXes were available for both 16 bit or 32 bit architectures and began being widely used as people adopted Windows 95, although most people tended to use VBXes on 16-bit systems and OCX controls or OLE components on 32-bit systems for performance reasons. OLE itself was based on earlier work by Microsoft in their Office products to allow data to be exchanged and reused as objects inside other documents or files, such as embedding an Excel spreadsheet in a Word document and updating the content of that Excel spreadsheet for display using Dynamic Data Exchange (DDE). Hence the term OLE document, that is still in use today.
OLE was part of the Microsoft COM or Component Object Model, that enabled programmers to reuse software components and services in a logical and object oriented manner. COM was extended and expanded over the years to include DCOM, the Distributed Component Object Model that allowed programmers to call OLE objects or COM objects situated on other computers or servers. COM+ was added to support transaction services using technologies such as Microsoft Transaction Server (MTS) and this first appeared when Windows 2000 was launched to better support distributed transactions in more complex applications, where higher performance and throughput was required. COM has gradually become a common term used to refer to: COM, DCOM, COM+, OLE and ActiveX technologies in general.
ActiveX components can be created in a variety of object oriented programming languages, but are most commonly created using C++ and the Microsoft Foundation Class (MFC), such as: MFC 4.0, MFC 4.2 and MFC 6.0. When VB 5 was released in became possible for a Visual Basic programmer to create an ActiveX component for reuse by other people and whilst most programmers claim that the best ActiveX components were written in Visual C++ or by utilizing the ActiveX Template Library, it did not stop some entrepreneurial developers from Janus Systems writing one of the bestselling ActiveX UI controls of all time in VB5 and VB6, called Janus GridEx, a VB6 ActiveX, that gives the look and feel of the Microsoft Outlook UI inside your app.
ActiveX components and ActiveX controls come with a variety of file extensions such as: .exe, .dll and .ocx and these denote a certain type of usage either in-process as part of your program or app (an ActiveX DLL), or out-of-process as a standalone executable (an ActiveX Exe), as an ActiveX control or OCX control mainly used as a UI control on a form or page. Downloadable ActiveX controls are also packaged as .cab files or Cabinet files. These CAB files are packages of files compressed to take up less space and hence can be downloaded more efficiently over the Internet.
In this ActiveX Component gallery you will find a variety of commercial products that are ActiveX objects or ActiveX controls that people sometime refer to as VB controls or as a VB object, as they are often used within Visual Basic. You will find ActiveX Windows components that allow you to carry out visuals tasks, such as an ActiveX UI control for displaying video or images, an ActiveX image control or a non-Visual ActiveX upload component that will allow you to push a file up onto a server over the Internet using HTTP or FTP protocols.