In computer programming, a Visual Basic Extension (commonly abbreviated VBX) or custom control, was the component model used in Microsoft Visual Basic versions 1.0 to 3.0. It is still supported in the 16-bit version of version 4.0, but was obsoleted by OCXs. VBX has also been supported in some versions of Borland Delphi.
The VBX specification was created so that developers could extend Visual Basic. According to rumor, Bill Gates reviewed the first version of Visual Basic before release and told the development team that it must have an extensibility mechanism. Since at the time Visual Basic was an interpreted language with limited power compared to C, VBXs which were most often written in C or C++ provided the ability to create very powerful and efficient software which could easily be hooked up to form based user interfaces. (need cite for when VB offered compilation - v.4 or v5?)
Visual Basic 4.0 added support for the newer OLE Controls or OCXs (which became ActiveX controls), implicitly deprecating VBX controls. OCXs are based on the Component Object Model.
Each version of Visual Basic has come with many controls. By incorporating VBX controls into Visual Basic, Microsoft spawned the first commercially viable market for reusable software components. Third parties have created a large market of custom controls for resale.
VBX components were called "custom controls" because the Microsoft development team envisioned them as visual "control" components like a toggle switch or button. Enterprising third party software component developers saw opportunities to use the VBX specification for non-visual components, such as components for creating ZIP files, messing with low-level system settings and communicating with TCP/IP, which was the only option at that time, but since Visual Basic 3.0, it is better to use COM objects instead.