1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef __ODBCINST_H
7 #define __ODBCINST_H
8 
9 #include <sql.h>
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 #ifndef ODBCVER
16 #define ODBCVER 0x0351
17 #endif
18 
19 #define ODBC_ADD_DSN 1
20 #define ODBC_CONFIG_DSN 2
21 #define ODBC_REMOVE_DSN 3
22 
23 #if (ODBCVER >= 0x0250)
24 #define ODBC_ADD_SYS_DSN 4
25 #define ODBC_CONFIG_SYS_DSN 5
26 #define ODBC_REMOVE_SYS_DSN 6
27 #if (ODBCVER >= 0x0300)
28 #define ODBC_REMOVE_DEFAULT_DSN 7
29 #endif
30 
31 #define ODBC_INSTALL_INQUIRY 1
32 #define ODBC_INSTALL_COMPLETE 2
33 
34 #define ODBC_INSTALL_DRIVER 1
35 #define ODBC_REMOVE_DRIVER 2
36 #define ODBC_CONFIG_DRIVER 3
37 #define ODBC_CONFIG_DRIVER_MAX 100
38 #endif
39 
40 #if (ODBCVER >= 0x0300)
41 #define ODBC_BOTH_DSN 0
42 #define ODBC_USER_DSN 1
43 #define ODBC_SYSTEM_DSN 2
44 #endif
45 
46 #if (ODBCVER >= 0x0300)
47 #define ODBC_ERROR_GENERAL_ERR 1
48 #define ODBC_ERROR_INVALID_BUFF_LEN 2
49 #define ODBC_ERROR_INVALID_HWND 3
50 #define ODBC_ERROR_INVALID_STR 4
51 #define ODBC_ERROR_INVALID_REQUEST_TYPE 5
52 #define ODBC_ERROR_COMPONENT_NOT_FOUND 6
53 #define ODBC_ERROR_INVALID_NAME 7
54 #define ODBC_ERROR_INVALID_KEYWORD_VALUE 8
55 #define ODBC_ERROR_INVALID_DSN 9
56 #define ODBC_ERROR_INVALID_INF 10
57 #define ODBC_ERROR_REQUEST_FAILED 11
58 #define ODBC_ERROR_INVALID_PATH 12
59 #define ODBC_ERROR_LOAD_LIB_FAILED 13
60 #define ODBC_ERROR_INVALID_PARAM_SEQUENCE 14
61 #define ODBC_ERROR_INVALID_LOG_FILE 15
62 #define ODBC_ERROR_USER_CANCELED 16
63 #define ODBC_ERROR_USAGE_UPDATE_FAILED 17
64 #define ODBC_ERROR_CREATE_DSN_FAILED 18
65 #define ODBC_ERROR_WRITING_SYSINFO_FAILED 19
66 #define ODBC_ERROR_REMOVE_DSN_FAILED 20
67 #define ODBC_ERROR_OUT_OF_MEM 21
68 #define ODBC_ERROR_OUTPUT_STRING_TRUNCATED 22
69 #endif
70 
71 #ifndef EXPORT
72 #define EXPORT
73 #endif
74 
75 #ifndef RC_INVOKED
76 
77 #ifndef WINAPI
78 #if defined(_ARM_)
79 #define WINAPI
80 #else
81 #define WINAPI __stdcall
82 #endif
83 #endif
84 
85 #define INSTAPI WINAPI
86 
87   WINBOOL WINAPI SQLInstallODBC(HWND hwndParent,LPCSTR lpszInfFile,LPCSTR lpszSrcPath,LPCSTR lpszDrivers);
88   WINBOOL WINAPI SQLManageDataSources(HWND hwndParent);
89   WINBOOL WINAPI SQLCreateDataSource(HWND hwndParent,LPCSTR lpszDSN);
90   WINBOOL WINAPI SQLGetTranslator(HWND hwnd,LPSTR lpszName,WORD cbNameMax,WORD *pcbNameOut,LPSTR lpszPath,WORD cbPathMax,WORD *pcbPathOut,DWORD *pvOption);
91   WINBOOL WINAPI SQLInstallDriver(LPCSTR lpszInfFile,LPCSTR lpszDriver,LPSTR lpszPath,WORD cbPathMax,WORD *pcbPathOut);
92   WINBOOL WINAPI SQLInstallDriverManager (LPSTR lpszPath,WORD cbPathMax,WORD *pcbPathOut);
93   WINBOOL WINAPI SQLGetInstalledDrivers (LPSTR lpszBuf,WORD cbBufMax,WORD *pcbBufOut);
94   WINBOOL WINAPI SQLGetAvailableDrivers(LPCSTR lpszInfFile,LPSTR lpszBuf,WORD cbBufMax,WORD *pcbBufOut);
95   WINBOOL WINAPI SQLConfigDataSource(HWND hwndParent,WORD fRequest,LPCSTR lpszDriver,LPCSTR lpszAttributes);
96   WINBOOL WINAPI SQLRemoveDefaultDataSource(void);
97   WINBOOL WINAPI SQLWriteDSNToIni(LPCSTR lpszDSN,LPCSTR lpszDriver);
98   WINBOOL WINAPI SQLRemoveDSNFromIni(LPCSTR lpszDSN);
99   WINBOOL WINAPI SQLValidDSN(LPCSTR lpszDSN);
100   WINBOOL WINAPI SQLWritePrivateProfileString(LPCSTR lpszSection,LPCSTR lpszEntry,LPCSTR lpszString,LPCSTR lpszFilename);
101   int WINAPI SQLGetPrivateProfileString(LPCSTR lpszSection,LPCSTR lpszEntry,LPCSTR lpszDefault,LPSTR lpszRetBuffer,int cbRetBuffer,LPCSTR lpszFilename);
102 #if (ODBCVER >= 0x0250)
103   WINBOOL WINAPI SQLRemoveDriverManager(LPDWORD lpdwUsageCount);
104   WINBOOL WINAPI SQLInstallTranslator(LPCSTR lpszInfFile,LPCSTR lpszTranslator,LPCSTR lpszPathIn,LPSTR lpszPathOut,WORD cbPathOutMax,WORD *pcbPathOut,WORD fRequest,LPDWORD lpdwUsageCount);
105   WINBOOL WINAPI SQLRemoveTranslator(LPCSTR lpszTranslator,LPDWORD lpdwUsageCount);
106   WINBOOL WINAPI SQLRemoveDriver(LPCSTR lpszDriver,WINBOOL fRemoveDSN,LPDWORD lpdwUsageCount);
107   WINBOOL WINAPI SQLConfigDriver(HWND hwndParent,WORD fRequest,LPCSTR lpszDriver,LPCSTR lpszArgs,LPSTR lpszMsg,WORD cbMsgMax,WORD *pcbMsgOut);
108 #endif
109 
110 #if (ODBCVER >= 0x0300)
111   SQLRETURN WINAPI SQLInstallerError(WORD iError,DWORD *pfErrorCode,LPSTR lpszErrorMsg,WORD cbErrorMsgMax,WORD *pcbErrorMsg);
112   SQLRETURN WINAPI SQLPostInstallerError(DWORD dwErrorCode,LPCSTR lpszErrMsg);
113   WINBOOL WINAPI SQLWriteFileDSN(LPCSTR lpszFileName,LPCSTR lpszAppName,LPCSTR lpszKeyName,LPCSTR lpszString);
114   WINBOOL WINAPI SQLReadFileDSN(LPCSTR lpszFileName,LPCSTR lpszAppName,LPCSTR lpszKeyName,LPSTR lpszString,WORD cbString,WORD *pcbString);
115   WINBOOL WINAPI SQLInstallDriverEx(LPCSTR lpszDriver,LPCSTR lpszPathIn,LPSTR lpszPathOut,WORD cbPathOutMax,WORD *pcbPathOut,WORD fRequest,LPDWORD lpdwUsageCount);
116   WINBOOL WINAPI SQLInstallTranslatorEx(LPCSTR lpszTranslator,LPCSTR lpszPathIn,LPSTR lpszPathOut,WORD cbPathOutMax,WORD *pcbPathOut,WORD fRequest,LPDWORD lpdwUsageCount);
117   WINBOOL WINAPI SQLGetConfigMode(UWORD *pwConfigMode);
118   WINBOOL WINAPI SQLSetConfigMode(UWORD wConfigMode);
119 #endif
120 
121   WINBOOL WINAPI ConfigDSN(HWND hwndParent,WORD fRequest,LPCSTR lpszDriver,LPCSTR lpszAttributes);
122   WINBOOL WINAPI ConfigTranslator(HWND hwndParent,DWORD *pvOption);
123 #if (ODBCVER >= 0x0250)
124   WINBOOL WINAPI ConfigDriver(HWND hwndParent,WORD fRequest,LPCSTR lpszDriver,LPCSTR lpszArgs,LPSTR lpszMsg,WORD cbMsgMax,WORD *pcbMsgOut);
125 #endif
126   WINBOOL WINAPI SQLInstallODBCW(HWND hwndParent,LPCWSTR lpszInfFile,LPCWSTR lpszSrcPath,LPCWSTR lpszDrivers);
127   WINBOOL WINAPI SQLCreateDataSourceW(HWND hwndParent,LPCWSTR lpszDSN);
128   WINBOOL WINAPI SQLGetTranslatorW(HWND hwnd,LPWSTR lpszName,WORD cbNameMax,WORD *pcbNameOut,LPWSTR lpszPath,WORD cbPathMax,WORD *pcbPathOut,DWORD *pvOption);
129   WINBOOL WINAPI SQLInstallDriverW (LPCWSTR lpszInfFile,LPCWSTR lpszDriver,LPWSTR lpszPath,WORD cbPathMax,WORD *pcbPathOut);
130   WINBOOL WINAPI SQLInstallDriverManagerW (LPWSTR lpszPath,WORD cbPathMax,WORD *pcbPathOut);
131   WINBOOL WINAPI SQLGetInstalledDriversW (LPWSTR lpszBuf,WORD cbBufMax,WORD *pcbBufOut);
132   WINBOOL WINAPI SQLGetAvailableDriversW (LPCWSTR lpszInfFile,LPWSTR lpszBuf,WORD cbBufMax,WORD *pcbBufOut);
133   WINBOOL WINAPI SQLConfigDataSourceW(HWND hwndParent,WORD fRequest,LPCWSTR lpszDriver,LPCWSTR lpszAttributes);
134   WINBOOL WINAPI SQLWriteDSNToIniW (LPCWSTR lpszDSN,LPCWSTR lpszDriver);
135   WINBOOL WINAPI SQLRemoveDSNFromIniW (LPCWSTR lpszDSN);
136   WINBOOL WINAPI SQLValidDSNW (LPCWSTR lpszDSN);
137   WINBOOL WINAPI SQLWritePrivateProfileStringW(LPCWSTR lpszSection,LPCWSTR lpszEntry,LPCWSTR lpszString,LPCWSTR lpszFilename);
138   int WINAPI SQLGetPrivateProfileStringW(LPCWSTR lpszSection,LPCWSTR lpszEntry,LPCWSTR lpszDefault,LPWSTR lpszRetBuffer,int cbRetBuffer,LPCWSTR lpszFilename);
139 #if (ODBCVER >= 0x0250)
140   WINBOOL WINAPI SQLInstallTranslatorW(LPCWSTR lpszInfFile,LPCWSTR lpszTranslator,LPCWSTR lpszPathIn,LPWSTR lpszPathOut,WORD cbPathOutMax,WORD *pcbPathOut,WORD fRequest,LPDWORD lpdwUsageCount);
141   WINBOOL WINAPI SQLRemoveTranslatorW(LPCWSTR lpszTranslator,LPDWORD lpdwUsageCount);
142   WINBOOL WINAPI SQLRemoveDriverW(LPCWSTR lpszDriver,WINBOOL fRemoveDSN,LPDWORD lpdwUsageCount);
143   WINBOOL WINAPI SQLConfigDriverW(HWND hwndParent,WORD fRequest,LPCWSTR lpszDriver,LPCWSTR lpszArgs,LPWSTR lpszMsg,WORD cbMsgMax,WORD *pcbMsgOut);
144 #endif
145 #if (ODBCVER >= 0x0300)
146   SQLRETURN WINAPI SQLInstallerErrorW(WORD iError,DWORD *pfErrorCode,LPWSTR lpszErrorMsg,WORD cbErrorMsgMax,WORD *pcbErrorMsg);
147   SQLRETURN WINAPI SQLPostInstallerErrorW(DWORD dwErrorCode,LPCWSTR lpszErrorMsg);
148   WINBOOL WINAPI SQLWriteFileDSNW(LPCWSTR lpszFileName,LPCWSTR lpszAppName,LPCWSTR lpszKeyName,LPCWSTR lpszString);
149   WINBOOL WINAPI SQLReadFileDSNW(LPCWSTR lpszFileName,LPCWSTR lpszAppName,LPCWSTR lpszKeyName,LPWSTR lpszString,WORD cbString,WORD *pcbString);
150   WINBOOL WINAPI SQLInstallDriverExW(LPCWSTR lpszDriver,LPCWSTR lpszPathIn,LPWSTR lpszPathOut,WORD cbPathOutMax,WORD *pcbPathOut,WORD fRequest,LPDWORD lpdwUsageCount);
151   WINBOOL WINAPI SQLInstallTranslatorExW(LPCWSTR lpszTranslator,LPCWSTR lpszPathIn,LPWSTR lpszPathOut,WORD cbPathOutMax,WORD *pcbPathOut,WORD fRequest,LPDWORD lpdwUsageCount);
152 #endif
153 
154   WINBOOL WINAPI ConfigDSNW(HWND hwndParent,WORD fRequest,LPCWSTR lpszDriver,LPCWSTR lpszAttributes);
155 
156 #if (ODBCVER >= 0x0250)
157   WINBOOL WINAPI ConfigDriverW(HWND hwndParent,WORD fRequest,LPCWSTR lpszDriver,LPCWSTR lpszArgs,LPWSTR lpszMsg,WORD cbMsgMax,WORD *pcbMsgOut);
158 #endif
159 
160 #ifndef SQL_NOUNICODEMAP
161 
162 #if defined(UNICODE)
163 #define SQLInstallODBC SQLInstallODBCW
164 #define SQLCreateDataSource SQLCreateDataSourceW
165 #define SQLGetTranslator SQLGetTranslatorW
166 #define SQLInstallDriver SQLInstallDriverW
167 #define SQLInstallDriverManager SQLInstallDriverManagerW
168 #define SQLGetInstalledDrivers SQLGetInstalledDriversW
169 #define SQLGetAvailableDrivers SQLGetAvailableDriversW
170 #define SQLConfigDataSource SQLConfigDataSourceW
171 #define SQLWriteDSNToIni SQLWriteDSNToIniW
172 #define SQLRemoveDSNFromIni SQLRemoveDSNFromIniW
173 #define SQLValidDSN SQLValidDSNW
174 #define SQLWritePrivateProfileString SQLWritePrivateProfileStringW
175 #define SQLGetPrivateProfileString SQLGetPrivateProfileStringW
176 #define SQLInstallTranslator SQLInstallTranslatorW
177 #define SQLRemoveTranslator SQLRemoveTranslatorW
178 #define SQLRemoveDriver SQLRemoveDriverW
179 #define SQLConfigDriver SQLConfigDriverW
180 #define SQLInstallerError SQLInstallerErrorW
181 #define SQLPostInstallerError SQLPostInstallerErrorW
182 #define SQLReadFileDSN SQLReadFileDSNW
183 #define SQLWriteFileDSN SQLWriteFileDSNW
184 #define SQLInstallDriverEx SQLInstallDriverExW
185 #define SQLInstallTranslatorEx SQLInstallTranslatorExW
186 #endif
187 
188 #endif
189 #endif
190 
191 #ifdef __cplusplus
192 }
193 #endif
194 #endif
195