Warum nicht die
DLL ersetzen?
Die
DLL ist der
ODBC-Treiber, aber die Aufrufe werden an die umbenannte originale
DLL weitergeleitet.
In der
DLL kann man nun beim Laden der
DLL (PROCESS_ATTACH bzw THREAD_ATTACH) den Pfadamen des aufrufenden Programms herausbekommen und entsprechend reagieren.
Alternativ macht man das in den einzelnen Funktionsaufrufen.
GetModuleFileName(0, ...) liefert auch in der
DLL den Namen des aufrufenden EXEs.