Port Between 16-Bit and 32-Bit ActiveX Controls

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 OutSecond 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.