Port Between 16-Bit and 32-Bit ActiveX Controls

Visual Studio 6.0

OverviewHow Do IFAQDetails

When porting between 16-bit and 32-bit controls, you must work around the following constraints:

  • You can use 16-bit controls only in 16-bit containers and 32-bit controls only in 32-bit containers.

  • You cannot port 16-bit controls to 32-bit controls.

To write a 16-bit ActiveX control, you must use Visual C++ 1.x and the 16-bit version of the Microsoft OLE Control Development Kit (CDK). These 16-bit versions of Visual C++ and the CDK are shipped with current and recent 32-bit versions of Visual C++, including version 5.x, on a separate CD-ROM disc. Install both from that disc and look at the CDK documentation to get started on a 16-bit control.

The best approach for creating both 16-bit and 32-bit versions of your ActiveX control is to port the 32-bit version to a 16-bit implementation. For the issues involved, see Adam Denning's book ActiveX Controls Inside Out Second Edition (Microsoft Press, 1996).

Note   Some aspects of ActiveX controls and control containment available in Visual C++ 4.0 and later are not available in 16-bit versions of Visual C++. Future ActiveX control improvements, such as OLE Database and OLE Transactions, will never have 16-bit implementations.