Using 16-Bit Applications with 32-Bit Drivers

You can run 16-bit applications with 32-bit drivers on Windows NT and on Windows 95, as long as the 32-bit driver does not explicitly call Win32 API functions that create threads. The Windows on Windows (WOW) subsystem runs the applications in 16-bit mode and resolves 16-bit calls to the operating system. ODBC thunking DLLs resolve 16-bit calls from the application to 32-bit drivers. The 16-bit applications use the Windows API and 32-bit drivers use the Win32 API.

Architecture

The following figure shows how 16-bit applications communicate with 32-bit drivers. Between the 16-bit Driver Manager and the 32-bit drivers are generic thunking DLLs that convert 16-bit ODBC calls to 32-bit ODBC calls.

Using 16-bit applications with 32-bit drivers

Note   Any time a 16-bit application interacts with a 32-bit driver, the 32-bit Driver Manager always returns “2.0” as the version of ODBC supported by the driver.

Administration

You can manage data sources for 32-bit drivers by using the ODBC Control Panel device, the ODBC Administrator program, or the 32-bit ODBC Administrator program.

The following figure shows how a 16-bit application calls a 32-bit driver setup DLL. Between the 16-bit installer DLL and the 32-bit driver setup DLL is a generic thunking DLL that converts 16-bit installer DLL calls to 32-bit installer DLL calls.

Using 16-bit applications with 32-bit driver setup DLLs

In Windows on Windows (16-bit to 32-bit thunking), an additional thunking DLL named Ds32gt.dll converts 16-bit argument values passed through a 32-bit setup DLL back to 16-bit.

Components

The ODBC component of the Data Access SDK includes the following components for running 16-bit applications with 32-bit drivers. These components are in the \Redist directory.

File Name
ODBC16GT.DLL 16-bit ODBC generic thunking DLL
ODBC32GT.DLL 32-bit ODBC generic thunking DLL
ODBCCP32.DLL 32-bit installer DLL
ODBCAD32.EXE 32-bit Administrator program
ODBCINST.HLP Installer Help file
DS16GT.DLL 16-bit driver setup generic thunking DLL
CTL3D32.DLL 32-bit three-dimensional window style library

In addition, the following files along with the 16-bit ODBC 2.10 Driver Manager, which are not part of ODBC 3.51, are required by and should be installed with the 16-bit application.

File Name
ODBC.DLL 16-bit Driver Manager
ODBCINST.DLL 16-bit installer DLL
ODBCADM.EXE 16-bit Administrator program