TN027: Emulation Support for Visual Basic Custom Controls
Note VBX controls are not supported by this version of Visual C++.
The Visual C++ 1.0 (and 1.5) product for Windows 3.1 supports the use of VBX custom controls. This version of Visual C++ does not support VBX controls. This includes both the resource editor as well as runtime support in the MFC classes (CVBControl). The VBX API is inherently a 16-bit API packaged as 16-bit DLLs. 32-bit applications cannot directly call 16-bit DLLs, so calling a VBX from a 32-bit application is difficult at best.
Complicating the matter is the fact that the VBX API takes advantage of Intel segmentation to a great degree, using compiler extensions such as based pointers. This design (especially based pointers) does not mix well with the 32-bit flat address space of Win32 applications. If an application is dependent on VBX custom controls, it should be built as a 16-bit Windows application and run under the 16-bit emulation system in various Win32 operating systems.
OLE Controls (OCX) is a new custom control architecture for 32-bit systems. Building and using OLE Controls is fully supported in this version of Visual C++. See the product documentation for more information.