/*++ Copyright (c) 1995-1996 Microsoft Corporation Module Name: dynodbc.c Abstract: This module provides functions for dynamically loading the ODBC functions. Author: Murali R. Krishnan (MuraliK) 3-Nov-1995 Revision History: --*/ #include "precomp.hxx" #define ODBC_MODULE_NAME "odbc32.dll" #define LOAD_ENTRY( hMod, Name ) \ ( p##Name = ( pfn##Name )GetProcAddress( ( hMod ), #Name ) ) // // ODBC DLL Entry Points, fill by calling LoadODBC // pfnSQLAllocConnect pSQLAllocConnect ; pfnSQLAllocEnv pSQLAllocEnv ; pfnSQLAllocStmt pSQLAllocStmt ; pfnSQLBindCol pSQLBindCol ; pfnSQLCancel pSQLCancel ; pfnSQLColAttributes pSQLColAttributes ; pfnSQLConnect pSQLConnect ; pfnSQLDescribeCol pSQLDescribeCol ; pfnSQLDisconnect pSQLDisconnect ; pfnSQLError pSQLError ; pfnSQLExecDirect pSQLExecDirect ; pfnSQLExecute pSQLExecute ; pfnSQLFetch pSQLFetch ; pfnSQLFreeConnect pSQLFreeConnect ; pfnSQLFreeEnv pSQLFreeEnv ; pfnSQLFreeStmt pSQLFreeStmt ; pfnSQLGetCursorName pSQLGetCursorName ; pfnSQLNumResultCols pSQLNumResultCols ; pfnSQLPrepare pSQLPrepare ; pfnSQLRowCount pSQLRowCount ; pfnSQLSetCursorName pSQLSetCursorName ; pfnSQLTransact pSQLTransact ; pfnSQLSetConnectOption pSQLSetConnectOption; pfnSQLDrivers pSQLDrivers ; pfnSQLDataSources pSQLDataSources ; pfnSQLBindParameter pSQLBindParameter ; pfnSQLGetInfo pSQLGetInfo ; pfnSQLMoreResults pSQLMoreResults ; static BOOL s_fODBCLoaded = FALSE; BOOL DynLoadODBC( VOID ) { HMODULE hMod; if( s_fODBCLoaded ) { return TRUE; } if( ( hMod = ( HMODULE ) LoadLibraryA( ODBC_MODULE_NAME ) ) ) { if( LOAD_ENTRY( hMod, SQLAllocConnect ) && LOAD_ENTRY( hMod, SQLAllocEnv ) && LOAD_ENTRY( hMod, SQLAllocStmt ) && LOAD_ENTRY( hMod, SQLBindCol ) && LOAD_ENTRY( hMod, SQLCancel ) && LOAD_ENTRY( hMod, SQLColAttributes ) && LOAD_ENTRY( hMod, SQLConnect ) && LOAD_ENTRY( hMod, SQLDescribeCol ) && LOAD_ENTRY( hMod, SQLDisconnect ) && LOAD_ENTRY( hMod, SQLError ) && LOAD_ENTRY( hMod, SQLExecDirect ) && LOAD_ENTRY( hMod, SQLExecute ) && LOAD_ENTRY( hMod, SQLFetch ) && LOAD_ENTRY( hMod, SQLFreeConnect ) && LOAD_ENTRY( hMod, SQLFreeEnv ) && LOAD_ENTRY( hMod, SQLFreeStmt ) && LOAD_ENTRY( hMod, SQLNumResultCols ) && LOAD_ENTRY( hMod, SQLPrepare ) && LOAD_ENTRY( hMod, SQLRowCount ) && LOAD_ENTRY( hMod, SQLTransact ) && LOAD_ENTRY( hMod, SQLSetConnectOption ) && LOAD_ENTRY( hMod, SQLDrivers ) && LOAD_ENTRY( hMod, SQLDataSources ) && LOAD_ENTRY( hMod, SQLGetInfo ) && LOAD_ENTRY( hMod, SQLBindParameter ) && LOAD_ENTRY( hMod, SQLMoreResults ) ) { s_fODBCLoaded = TRUE; } } return ( s_fODBCLoaded ); } // DynLoadODBC()