|
|
#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
|