This project is a thunker which allows 64 bit windows applications to call a 32 bit ODBC driver by transferring or "thunking" all DLL calls to the lower level by means of a communication protocol.
A "Thunker" is defined as a DLL which allows the mapping of one register size DLL call to another. In this case we want to allow 64 bit Windows applications to call a 32 bit ODBC driver DLL without modification.
Thunk is defined with examples here: [url removed, login to view]
This project will be a DLL acting as a 64 bit ODBC driver supporting all documented functions.
The setup screen would include settings for the DSN name of this driver and the 32 bit DSN Name you want to connect to with a browse button. ? (See screen shot). Pressing the browse button (…) would give you a list of 32 bit ODBC drivers available.
If it is a 64 bit system DSN, only list 32 bit system DSNs.
Driver Name: FLEX64_32
Driver DLL: [url removed, login to view]
The 32 bit side would be a system service executable that would auto start. It would have some kind of network socket protocol or be a Web Service. We are flexible on the communication method used and open to suggestions.
Exposed would be all items necessary to transport (thunk) the Flex64_32 ODBC calls. Also exposed would be calls necessary to support browse function. The communication protocol used needs to be encrypted.
If allowing connecting to a remote computer (32 Computer Resource) is too complicated that can be left out. The idea here is the 32 Bit System service would not even have to be on the same computer as the 64 Bit side if the protocol is a by wire protocol like SOAP.
The most current ODBC 64 definition of functions would be the complete list of functions we would support. ? If there are some features like data binding would be a big issue, we can maybe table that for a version 2 feature.