#include "windows.h" #include "sql.h" #ifdef __cplusplus extern "C" { // Assume C declarations for C++ #endif // __cplusplus #ifndef ODBCVER #define ODBCVER 0x0351 // Assume ODBC 3.51 #endif #ifndef WINVER #define WINVER 0x0400 // Assume Windows 4.0 #endif // Constants --------------------------------------------------------------- // SQLConfigDataSource request flags #define ODBC_ADD_DSN 1 // Add data source #define ODBC_CONFIG_DSN 2 // Configure (edit) data source #define ODBC_REMOVE_DSN 3 // Remove data source #if (ODBCVER >= 0x0250) #define ODBC_ADD_SYS_DSN 4 // add a system DSN #define ODBC_CONFIG_SYS_DSN 5 // Configure a system DSN #define ODBC_REMOVE_SYS_DSN 6 // remove a system DSN #if (ODBCVER >= 0x0300) #define ODBC_REMOVE_DEFAULT_DSN 7 // remove the default DSN #endif /* ODBCVER >= 0x0300 */ // install request flags #define ODBC_INSTALL_INQUIRY 1 #define ODBC_INSTALL_COMPLETE 2 // config driver flags #define ODBC_INSTALL_DRIVER 1 #define ODBC_REMOVE_DRIVER 2 #define ODBC_CONFIG_DRIVER 3 #define ODBC_CONFIG_DRIVER_MAX 100 #endif // SQLGetConfigMode and SQLSetConfigMode flags #if (ODBCVER >= 0x0300) #define ODBC_BOTH_DSN 0 #define ODBC_USER_DSN 1 #define ODBC_SYSTEM_DSN 2 #endif /* ODBCVER >= 0x0300 */ // SQLInstallerError code #if (ODBCVER >= 0x0300) #define ODBC_ERROR_GENERAL_ERR 1 #define ODBC_ERROR_INVALID_BUFF_LEN 2 #define ODBC_ERROR_INVALID_HWND 3 #define ODBC_ERROR_INVALID_STR 4 #define ODBC_ERROR_INVALID_REQUEST_TYPE 5 #define ODBC_ERROR_COMPONENT_NOT_FOUND 6 #define ODBC_ERROR_INVALID_NAME 7 #define ODBC_ERROR_INVALID_KEYWORD_VALUE 8 #define ODBC_ERROR_INVALID_DSN 9 #define ODBC_ERROR_INVALID_INF 10 #define ODBC_ERROR_REQUEST_FAILED 11 #define ODBC_ERROR_INVALID_PATH 12 #define ODBC_ERROR_LOAD_LIB_FAILED 13 #define ODBC_ERROR_INVALID_PARAM_SEQUENCE 14 #define ODBC_ERROR_INVALID_LOG_FILE 15 #define ODBC_ERROR_USER_CANCELED 16 #define ODBC_ERROR_USAGE_UPDATE_FAILED 17 #define ODBC_ERROR_CREATE_DSN_FAILED 18 #define ODBC_ERROR_WRITING_SYSINFO_FAILED 19 #define ODBC_ERROR_REMOVE_DSN_FAILED 20 #define ODBC_ERROR_OUT_OF_MEM 21 #define ODBC_ERROR_OUTPUT_STRING_TRUNCATED 22 #endif /* ODBCVER >= 0x0300 */ #ifndef EXPORT #define EXPORT #endif #ifndef RC_INVOKED // Prototypes -------------------------------------------------------------- #define INSTAPI __stdcall // High level APIs BOOL INSTAPI SQLInstallODBC ( HWND hwndParent, LPCSTR lpszInfFile, LPCSTR lpszSrcPath, LPCSTR lpszDrivers ) { return FALSE; } BOOL INSTAPI SQLManageDataSources ( HWND hwndParent ) { return FALSE; } BOOL INSTAPI SQLCreateDataSource ( HWND hwndParent, LPCSTR lpszDSN ) { return FALSE; } BOOL INSTAPI SQLGetTranslator ( HWND hwnd, LPSTR lpszName, WORD cbNameMax, WORD *pcbNameOut, LPSTR lpszPath, WORD cbPathMax, WORD *pcbPathOut, DWORD *pvOption ) { return FALSE; } // Low level APIs BOOL INSTAPI SQLInstallDriver ( LPCSTR lpszInfFile, LPCSTR lpszDriver, LPSTR lpszPath, WORD cbPathMax, WORD *pcbPathOut ) { return FALSE; } BOOL INSTAPI SQLInstallDriverManager ( LPSTR lpszPath, WORD cbPathMax, WORD *pcbPathOut ) { return FALSE; } BOOL INSTAPI SQLGetInstalledDrivers ( LPSTR lpszBuf, WORD cbBufMax, WORD *pcbBufOut ) { return FALSE; } BOOL INSTAPI SQLGetAvailableDrivers ( LPCSTR lpszInfFile, LPSTR lpszBuf, WORD cbBufMax, WORD *pcbBufOut ) { return FALSE; } BOOL INSTAPI SQLConfigDataSource ( HWND hwndParent, WORD fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes ) { return FALSE; } BOOL INSTAPI SQLRemoveDefaultDataSource ( void ) { return FALSE; } BOOL INSTAPI SQLWriteDSNToIni ( LPCSTR lpszDSN, LPCSTR lpszDriver ) { return FALSE; } BOOL INSTAPI SQLRemoveDSNFromIni ( LPCSTR lpszDSN ) { return FALSE; } BOOL INSTAPI SQLValidDSN ( LPCSTR lpszDSN ) { return FALSE; } BOOL INSTAPI SQLWritePrivateProfileString ( LPCSTR lpszSection, LPCSTR lpszEntry, LPCSTR lpszString, LPCSTR lpszFilename ) { return FALSE; } int INSTAPI SQLGetPrivateProfileString ( LPCSTR lpszSection, LPCSTR lpszEntry, LPCSTR lpszDefault, LPSTR lpszRetBuffer, int cbRetBuffer, LPCSTR lpszFilename ) { return 0; } #if (ODBCVER >= 0x0250) BOOL INSTAPI SQLRemoveDriverManager ( LPDWORD lpdwUsageCount ) { return FALSE; } BOOL INSTAPI SQLInstallTranslator ( LPCSTR lpszInfFile, LPCSTR lpszTranslator, LPCSTR lpszPathIn, LPSTR lpszPathOut, WORD cbPathOutMax, WORD *pcbPathOut, WORD fRequest, LPDWORD lpdwUsageCount ) { return FALSE; } BOOL INSTAPI SQLRemoveTranslator ( LPCSTR lpszTranslator, LPDWORD lpdwUsageCount ) { return FALSE; } BOOL INSTAPI SQLRemoveDriver ( LPCSTR lpszDriver, BOOL fRemoveDSN, LPDWORD lpdwUsageCount ) { return FALSE; } BOOL INSTAPI SQLConfigDriver ( HWND hwndParent, WORD fRequest, LPCSTR lpszDriver, LPCSTR lpszArgs, LPSTR lpszMsg, WORD cbMsgMax, WORD *pcbMsgOut ) { return FALSE; } #endif #if (ODBCVER >= 0x0300) SQLRETURN INSTAPI SQLInstallerError ( WORD iError, DWORD *pfErrorCode, LPSTR lpszErrorMsg, WORD cbErrorMsgMax, WORD *pcbErrorMsg ) { return 0; } SQLRETURN INSTAPI SQLPostInstallerError ( DWORD dwErrorCode, LPCSTR lpszErrMsg ) { return 0; } BOOL INSTAPI SQLWriteFileDSN ( LPCSTR lpszFileName, LPCSTR lpszAppName, LPCSTR lpszKeyName, LPCSTR lpszString ) { return FALSE; } BOOL INSTAPI SQLReadFileDSN ( LPCSTR lpszFileName, LPCSTR lpszAppName, LPCSTR lpszKeyName, LPSTR lpszString, WORD cbString, WORD *pcbString ) { return FALSE; } BOOL INSTAPI SQLInstallDriverEx ( LPCSTR lpszDriver, LPCSTR lpszPathIn, LPSTR lpszPathOut, WORD cbPathOutMax, WORD *pcbPathOut, WORD fRequest, LPDWORD lpdwUsageCount ) { return FALSE; } BOOL INSTAPI SQLInstallTranslatorEx ( LPCSTR lpszTranslator, LPCSTR lpszPathIn, LPSTR lpszPathOut, WORD cbPathOutMax, WORD *pcbPathOut, WORD fRequest, LPDWORD lpdwUsageCount ) { return FALSE; } BOOL INSTAPI SQLGetConfigMode ( UWORD *pwConfigMode ) { return FALSE; } BOOL INSTAPI SQLSetConfigMode ( UWORD wConfigMode ) { return FALSE; } #endif /* ODBCVER >= 0x0300 */ // Driver specific Setup APIs called by installer BOOL INSTAPI ConfigDSN ( HWND hwndParent, WORD fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes ) { return FALSE; } BOOL INSTAPI ConfigTranslator ( HWND hwndParent, DWORD *pvOption ) { return FALSE; } #if (ODBCVER >= 0x0250) BOOL INSTAPI ConfigDriver ( HWND hwndParent, WORD fRequest, LPCSTR lpszDriver, LPCSTR lpszArgs, LPSTR lpszMsg, WORD cbMsgMax, WORD *pcbMsgOut ) { return FALSE; } #endif // UNICODE APIs // High level APIs BOOL INSTAPI SQLInstallODBCW ( HWND hwndParent, LPCWSTR lpszInfFile, LPCWSTR lpszSrcPath, LPCWSTR lpszDrivers ) { return FALSE; } BOOL INSTAPI SQLCreateDataSourceW ( HWND hwndParent, LPCWSTR lpszDSN ) { return FALSE; } BOOL INSTAPI SQLGetTranslatorW ( HWND hwnd, LPWSTR lpszName, WORD cbNameMax, WORD *pcbNameOut, LPWSTR lpszPath, WORD cbPathMax, WORD *pcbPathOut, DWORD *pvOption ) { return FALSE; } // Low level APIs // NOTE: The high-level APIs should always be used. These APIs // have been left for compatibility. BOOL INSTAPI SQLInstallDriverW ( LPCWSTR lpszInfFile, LPCWSTR lpszDriver, LPWSTR lpszPath, WORD cbPathMax, WORD *pcbPathOut ) { return FALSE; } BOOL INSTAPI SQLInstallDriverManagerW ( LPWSTR lpszPath, WORD cbPathMax, WORD *pcbPathOut ) { return FALSE; } BOOL INSTAPI SQLGetInstalledDriversW ( LPWSTR lpszBuf, WORD cbBufMax, WORD *pcbBufOut ) { return FALSE; } BOOL INSTAPI SQLGetAvailableDriversW ( LPCWSTR lpszInfFile, LPWSTR lpszBuf, WORD cbBufMax, WORD *pcbBufOut ) { return FALSE; } BOOL INSTAPI SQLConfigDataSourceW ( HWND hwndParent, WORD fRequest, LPCWSTR lpszDriver, LPCWSTR lpszAttributes ) { return FALSE; } BOOL INSTAPI SQLWriteDSNToIniW ( LPCWSTR lpszDSN, LPCWSTR lpszDriver ) { return FALSE; } BOOL INSTAPI SQLRemoveDSNFromIniW ( LPCWSTR lpszDSN ) { return FALSE; } BOOL INSTAPI SQLValidDSNW ( LPCWSTR lpszDSN ) { return FALSE; } BOOL INSTAPI SQLWritePrivateProfileStringW ( LPCWSTR lpszSection, LPCWSTR lpszEntry, LPCWSTR lpszString, LPCWSTR lpszFilename ) { return FALSE; } int INSTAPI SQLGetPrivateProfileStringW ( LPCWSTR lpszSection, LPCWSTR lpszEntry, LPCWSTR lpszDefault, LPWSTR lpszRetBuffer, int cbRetBuffer, LPCWSTR lpszFilename ) { return 0; } #if (ODBCVER >= 0x0250) BOOL INSTAPI SQLInstallTranslatorW ( LPCWSTR lpszInfFile, LPCWSTR lpszTranslator, LPCWSTR lpszPathIn, LPWSTR lpszPathOut, WORD cbPathOutMax, WORD *pcbPathOut, WORD fRequest, LPDWORD lpdwUsageCount ) { return FALSE; } BOOL INSTAPI SQLRemoveTranslatorW ( LPCWSTR lpszTranslator, LPDWORD lpdwUsageCount ) { return FALSE; } BOOL INSTAPI SQLRemoveDriverW ( LPCWSTR lpszDriver, BOOL fRemoveDSN, LPDWORD lpdwUsageCount ) { return FALSE; } BOOL INSTAPI SQLConfigDriverW ( HWND hwndParent, WORD fRequest, LPCWSTR lpszDriver, LPCWSTR lpszArgs, LPWSTR lpszMsg, WORD cbMsgMax, WORD *pcbMsgOut ) { return FALSE; } #endif #if (ODBCVER >= 0x0300) SQLRETURN INSTAPI SQLInstallerErrorW ( WORD iError, DWORD *pfErrorCode, LPWSTR lpszErrorMsg, WORD cbErrorMsgMax, WORD *pcbErrorMsg ) { return 0; } SQLRETURN INSTAPI SQLPostInstallerErrorW ( DWORD dwErrorCode, LPCWSTR lpszErrorMsg ) { return 0; } BOOL INSTAPI SQLWriteFileDSNW ( LPCWSTR lpszFileName, LPCWSTR lpszAppName, LPCWSTR lpszKeyName, LPCWSTR lpszString ) { return FALSE; } BOOL INSTAPI SQLReadFileDSNW ( LPCWSTR lpszFileName, LPCWSTR lpszAppName, LPCWSTR lpszKeyName, LPWSTR lpszString, WORD cbString, WORD *pcbString ) { return FALSE; } BOOL INSTAPI SQLInstallDriverExW ( LPCWSTR lpszDriver, LPCWSTR lpszPathIn, LPWSTR lpszPathOut, WORD cbPathOutMax, WORD *pcbPathOut, WORD fRequest, LPDWORD lpdwUsageCount ) { return FALSE; } BOOL INSTAPI SQLInstallTranslatorExW ( LPCWSTR lpszTranslator, LPCWSTR lpszPathIn, LPWSTR lpszPathOut, WORD cbPathOutMax, WORD *pcbPathOut, WORD fRequest, LPDWORD lpdwUsageCount ) { return FALSE; } #endif /* ODBCVER >= 0x0300 */ // Driver specific Setup APIs called by installer BOOL INSTAPI ConfigDSNW ( HWND hwndParent, WORD fRequest, LPCWSTR lpszDriver, LPCWSTR lpszAttributes ) { return FALSE; } #if (ODBCVER >= 0x0250) BOOL INSTAPI ConfigDriverW ( HWND hwndParent, WORD fRequest, LPCWSTR lpszDriver, LPCWSTR lpszArgs, LPWSTR lpszMsg, WORD cbMsgMax, WORD *pcbMsgOut ) { return FALSE; } #endif #ifndef SQL_NOUNICODEMAP // define this to disable the mapping #ifdef UNICODE #define SQLInstallODBC SQLInstallODBCW #define SQLCreateDataSource SQLCreateDataSourceW #define SQLGetTranslator SQLGetTranslatorW #define SQLInstallDriver SQLInstallDriverW #define SQLInstallDriverManager SQLInstallDriverManagerW #define SQLGetInstalledDrivers SQLGetInstalledDriversW #define SQLGetAvailableDrivers SQLGetAvailableDriversW #define SQLConfigDataSource SQLConfigDataSourceW #define SQLWriteDSNToIni SQLWriteDSNToIniW #define SQLRemoveDSNFromIni SQLRemoveDSNFromIniW #define SQLValidDSN SQLValidDSNW #define SQLWritePrivateProfileString SQLWritePrivateProfileStringW #define SQLGetPrivateProfileString SQLGetPrivateProfileStringW #define SQLInstallTranslator SQLInstallTranslatorW #define SQLRemoveTranslator SQLRemoveTranslatorW #define SQLRemoveDriver SQLRemoveDriverW #define SQLConfigDriver SQLConfigDriverW #define SQLInstallerError SQLInstallerErrorW #define SQLPostInstallerError SQLPostInstallerErrorW #define SQLReadFileDSN SQLReadFileDSNW #define SQLWriteFileDSN SQLWriteFileDSNW #define SQLInstallDriverEx SQLInstallDriverExW #define SQLInstallTranslatorEx SQLInstallTranslatorExW #endif // UNICODE #endif // SQL_NOUNICODEMAP #endif // RC_INVOKED #ifdef __cplusplus } // End of extern "C" { #endif // __cplusplus