Add a stub for ODBCCPlApplet.
[wine/multimedia.git] / dlls / odbccp32 / odbccp32.c
blobe765a46aaf0384cdda5d29a9e3786e801170da2f
1 /*
2 * Implementation of the ODBC driver installer
4 * Copyright 2005 Mike McCormack for CodeWeavers
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 #include <stdarg.h>
23 #define COBJMACROS
24 #define NONAMELESSUNION
26 #include "windef.h"
27 #include "winbase.h"
28 #include "winreg.h"
29 #include "winnls.h"
30 #include "wine/debug.h"
32 #include "odbcinst.h"
34 WINE_DEFAULT_DEBUG_CHANNEL(odbc);
36 BOOL WINAPI ODBCCPlApplet( LONG i, LONG j, LONG * p1, LONG * p2)
38 FIXME( "( %ld %ld %p %p) : stub!\n", i, j, p1, p2);
39 return FALSE;
42 static LPWSTR SQLInstall_strdup_multi(LPCSTR str)
44 LPCSTR p;
45 LPWSTR ret = NULL;
46 DWORD len;
48 if (!str)
49 return ret;
51 for (p = str; *p; p += lstrlenA(p) + 1)
54 len = MultiByteToWideChar(CP_ACP, 0, str, p - str, NULL, 0 );
55 ret = HeapAlloc(GetProcessHeap(), 0, (len+1)*sizeof(WCHAR));
56 MultiByteToWideChar(CP_ACP, 0, str, p - str, ret, len );
57 ret[len] = 0;
59 return ret;
62 static LPWSTR SQLInstall_strdup(LPCSTR str)
64 DWORD len;
65 LPWSTR ret = NULL;
67 if (!str)
68 return ret;
70 len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0 );
71 ret = HeapAlloc(GetProcessHeap(), 0, len*sizeof(WCHAR));
72 MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len );
74 return ret;
77 BOOL WINAPI SQLConfigDataSourceW(HWND hwndParent, WORD fRequest,
78 LPCWSTR lpszDriver, LPCWSTR lpszAttributes)
80 FIXME("\n");
81 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
82 return FALSE;
85 BOOL WINAPI SQLConfigDataSource(HWND hwndParent, WORD fRequest,
86 LPCSTR lpszDriver, LPCSTR lpszAttributes)
88 FIXME("\n");
89 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
90 return FALSE;
93 BOOL WINAPI SQLConfigDriverW(HWND hwndParent, WORD fRequest, LPCWSTR lpszDriver,
94 LPCWSTR lpszArgs, LPWSTR lpszMsg, WORD cbMsgMax, WORD *pcbMsgOut)
96 FIXME("\n");
97 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
98 return FALSE;
101 BOOL WINAPI SQLConfigDriver(HWND hwndParent, WORD fRequest, LPCSTR lpszDriver,
102 LPCSTR lpszArgs, LPSTR lpszMsg, WORD cbMsgMax, WORD *pcbMsgOut)
104 FIXME("\n");
105 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
106 return FALSE;
109 BOOL WINAPI SQLCreateDataSourceW(HWND hwnd, LPWSTR lpszDS)
111 FIXME("\n");
112 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
113 return FALSE;
116 BOOL WINAPI SQLCreateDataSource(HWND hwnd, LPSTR lpszDS)
118 FIXME("\n");
119 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
120 return FALSE;
123 BOOL WINAPI SQLGetAvailableDriversW(LPCWSTR lpszInfFile, LPWSTR lpszBuf,
124 WORD cbBufMax, WORD *pcbBufOut)
126 FIXME("\n");
127 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
128 return FALSE;
131 BOOL WINAPI SQLGetAvailableDrivers(LPCSTR lpszInfFile, LPSTR lpszBuf,
132 WORD cbBufMax, WORD *pcbBufOut)
134 FIXME("\n");
135 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
136 return FALSE;
139 BOOL WINAPI SQLGetConfigMode(UWORD *pwConfigMode)
141 FIXME("\n");
142 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
143 return FALSE;
146 BOOL WINAPI SQLGetInstalledDriversW(LPWSTR lpszBuf, WORD cbBufMax,
147 WORD *pcbBufOut)
149 FIXME("\n");
150 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
151 return FALSE;
154 BOOL WINAPI SQLGetInstalledDrivers(LPSTR lpszBuf, WORD cbBufMax,
155 WORD *pcbBufOut)
157 FIXME("\n");
158 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
159 return FALSE;
162 int WINAPI SQLGetPrivateProfileStringW(LPCWSTR lpszSection, LPCWSTR lpszEntry,
163 LPCWSTR lpszDefault, LPCWSTR RetBuffer, INT cbRetBuffer,
164 LPCWSTR lpszFilename)
166 FIXME("\n");
167 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
168 return FALSE;
171 int WINAPI SQLGetPrivateProfileString(LPCSTR lpszSection, LPCSTR lpszEntry,
172 LPCSTR lpszDefault, LPCSTR RetBuffer, INT cbRetBuffer,
173 LPCSTR lpszFilename)
175 FIXME("\n");
176 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
177 return FALSE;
180 BOOL WINAPI SQLGetTranslatorW(HWND hwndParent, LPWSTR lpszName, WORD cbNameMax,
181 WORD *pcbNameOut, LPWSTR lpszPath, WORD cbPathMax,
182 WORD *pcbPathOut, DWORD *pvOption)
184 FIXME("\n");
185 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
186 return FALSE;
189 BOOL WINAPI SQLGetTranslator(HWND hwndParent, LPSTR lpszName, WORD cbNameMax,
190 WORD *pcbNameOut, LPSTR lpszPath, WORD cbPathMax,
191 WORD *pcbPathOut, DWORD *pvOption)
193 FIXME("\n");
194 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
195 return FALSE;
198 BOOL WINAPI SQLInstallDriverW(LPCWSTR lpszInfFile, LPCWSTR lpszDriver,
199 LPWSTR lpszPath, WORD cbPathMax, WORD * pcbPathOut)
201 FIXME("%s %s %p %d %p\n", debugstr_w(lpszInfFile),
202 debugstr_w(lpszDriver), lpszPath, cbPathMax, pcbPathOut);
203 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
204 return FALSE;
207 BOOL WINAPI SQLInstallDriver(LPCSTR lpszInfFile, LPCSTR lpszDriver,
208 LPSTR lpszPath, WORD cbPathMax, WORD * pcbPathOut)
210 FIXME("%s %s %p %d %p\n", debugstr_a(lpszInfFile),
211 debugstr_a(lpszDriver), lpszPath, cbPathMax, pcbPathOut);
212 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
213 return FALSE;
216 BOOL WINAPI SQLInstallDriverExW(LPCWSTR lpszDriver, LPCWSTR lpszPathIn,
217 LPWSTR lpszPathOut, WORD cbPathOutMax, WORD *pcbPathOut,
218 WORD fRequest, LPDWORD lpdwUsageCount)
220 LPCWSTR p;
222 FIXME("%s %s %p %d %p %d %p\n", debugstr_w(lpszDriver), debugstr_w(lpszPathIn),
223 lpszPathOut, cbPathOutMax, pcbPathOut, fRequest, lpdwUsageCount);
225 for (p = lpszDriver; *p; p += lstrlenW(p) + 1)
226 FIXME("%s\n", debugstr_w(p));
228 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
229 return FALSE;
232 BOOL WINAPI SQLInstallDriverEx(LPCSTR lpszDriver, LPCSTR lpszPathIn,
233 LPSTR lpszPathOut, WORD cbPathOutMax, WORD *pcbPathOut,
234 WORD fRequest, LPDWORD lpdwUsageCount)
236 LPWSTR driver, pathin;
237 WCHAR pathout[MAX_PATH];
238 BOOL r;
239 WORD cbOut = 0;
241 TRACE("%s %s %p %d %p %d %p\n", debugstr_a(lpszDriver), debugstr_a(lpszPathIn),
242 lpszPathOut, cbPathOutMax, pcbPathOut, fRequest, lpdwUsageCount);
244 driver = SQLInstall_strdup_multi(lpszDriver);
245 pathin = SQLInstall_strdup(lpszPathIn);
247 r = SQLInstallDriverExW( driver, pathin, pathout, MAX_PATH,
248 &cbOut, fRequest, lpdwUsageCount );
249 if (r)
251 *pcbPathOut = WideCharToMultiByte(CP_ACP, 0, pathout, -1,
252 lpszPathOut, cbPathOutMax, NULL, NULL );
255 return r;
258 BOOL WINAPI SQLInstallDriverManagerW(LPWSTR lpszPath, WORD cbPathMax,
259 WORD *pcbPathOut)
261 FIXME("\n");
262 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
263 return FALSE;
266 BOOL WINAPI SQLInstallDriverManager(LPSTR lpszPath, WORD cbPathMax,
267 WORD *pcbPathOut)
269 FIXME("\n");
270 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
271 return FALSE;
274 BOOL WINAPI SQLInstallODBCW(HWND hwndParent, LPCWSTR lpszInfFile,
275 LPCWSTR lpszSrcPath, LPCWSTR lpszDrivers)
277 FIXME("\n");
278 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
279 return FALSE;
282 BOOL WINAPI SQLInstallODBC(HWND hwndParent, LPCSTR lpszInfFile,
283 LPCSTR lpszSrcPath, LPCSTR lpszDrivers)
285 FIXME("\n");
286 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
287 return FALSE;
290 RETCODE WINAPI SQLInstallerErrorW(WORD iError, DWORD *pfErrorCode,
291 LPWSTR lpszErrorMsg, WORD cbErrorMsgMax, WORD *pcbErrorMsg)
293 FIXME("\n");
294 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
295 return FALSE;
298 RETCODE WINAPI SQLInstallerError(WORD iError, DWORD *pfErrorCode,
299 LPSTR lpszErrorMsg, WORD cbErrorMsgMax, WORD *pcbErrorMsg)
301 FIXME("\n");
302 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
303 return FALSE;
306 BOOL WINAPI SQLInstallTranslatorExW(LPCWSTR lpszTranslator, LPCWSTR lpszPathIn,
307 LPWSTR lpszPathOut, WORD cbPathOutMax, WORD *pcbPathOut,
308 WORD fRequest, LPDWORD lpdwUsageCount)
310 FIXME("\n");
311 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
312 return FALSE;
315 BOOL WINAPI SQLInstallTranslatorEx(LPCSTR lpszTranslator, LPCSTR lpszPathIn,
316 LPSTR lpszPathOut, WORD cbPathOutMax, WORD *pcbPathOut,
317 WORD fRequest, LPDWORD lpdwUsageCount)
319 FIXME("\n");
320 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
321 return FALSE;
324 BOOL WINAPI SQLInstallTranslator(LPCSTR lpszInfFile, LPCSTR lpszTranslator,
325 LPCSTR lpszPathIn, LPSTR lpszPathOut, WORD cbPathOutMax,
326 WORD *pcbPathOut, WORD fRequest, LPDWORD lpdwUsageCount)
328 FIXME("\n");
329 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
330 return FALSE;
333 BOOL WINAPI SQLInstallTranslatorW(LPCWSTR lpszInfFile, LPCWSTR lpszTranslator,
334 LPCWSTR lpszPathIn, LPWSTR lpszPathOut, WORD cbPathOutMax,
335 WORD *pcbPathOut, WORD fRequest, LPDWORD lpdwUsageCount)
337 FIXME("\n");
338 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
339 return FALSE;
342 BOOL WINAPI SQLManageDataSources(HWND hwnd)
344 FIXME("\n");
345 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
346 return FALSE;
349 RETCODE WINAPI SQLPostInstallerErrorW(DWORD fErrorCode, LPWSTR szErrorMsg)
351 FIXME("\n");
352 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
353 return FALSE;
356 RETCODE WINAPI SQLPostInstallerError(DWORD fErrorCode, LPSTR szErrorMsg)
358 FIXME("\n");
359 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
360 return FALSE;
363 BOOL WINAPI SQLReadFileDSNW(LPCWSTR lpszFileName, LPCWSTR lpszAppName,
364 LPCWSTR lpszKeyName, LPWSTR lpszString, WORD cbString,
365 WORD *pcbString)
367 FIXME("\n");
368 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
369 return FALSE;
372 BOOL WINAPI SQLReadFileDSN(LPCSTR lpszFileName, LPCSTR lpszAppName,
373 LPCSTR lpszKeyName, LPSTR lpszString, WORD cbString,
374 WORD *pcbString)
376 FIXME("\n");
377 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
378 return FALSE;
381 BOOL WINAPI SQLRemoveDefaultDataSource(void)
383 FIXME("\n");
384 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
385 return FALSE;
388 BOOL WINAPI SQLRemoveDriverW(LPCWSTR lpszDriver, BOOL fRemoveDSN,
389 LPDWORD lpdwUsageCount)
391 FIXME("\n");
392 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
393 return FALSE;
396 BOOL WINAPI SQLRemoveDriver(LPCSTR lpszDriver, BOOL fRemoveDSN,
397 LPDWORD lpdwUsageCount)
399 FIXME("\n");
400 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
401 return FALSE;
404 BOOL WINAPI SQLRemoveDriverManager(LPDWORD pdwUsageCount)
406 FIXME("\n");
407 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
408 return FALSE;
411 BOOL WINAPI SQLRemoveDSNFromIniW(LPCWSTR lpszDSN)
413 FIXME("\n");
414 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
415 return FALSE;
418 BOOL WINAPI SQLRemoveDSNFromIni(LPCSTR lpszDSN)
420 FIXME("\n");
421 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
422 return FALSE;
425 BOOL WINAPI SQLRemoveTranslatorW(LPCWSTR lpszTranslator, LPDWORD lpdwUsageCount)
427 FIXME("\n");
428 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
429 return FALSE;
432 BOOL WINAPI SQLRemoveTranslator(LPCSTR lpszTranslator, LPDWORD lpdwUsageCount)
434 FIXME("\n");
435 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
436 return FALSE;
439 BOOL WINAPI SQLSetConfigMode(UWORD wConfigMode)
441 FIXME("\n");
442 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
443 return FALSE;
446 BOOL WINAPI SQLValidDSNW(LPCWSTR lpszDSN)
448 FIXME("\n");
449 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
450 return FALSE;
453 BOOL WINAPI SQLValidDSN(LPCSTR lpszDSN)
455 FIXME("\n");
456 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
457 return FALSE;
460 BOOL WINAPI SQLWriteDSNToIniW(LPCWSTR lpszDSN, LPCWSTR lpszDriver)
462 FIXME("\n");
463 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
464 return FALSE;
467 BOOL WINAPI SQLWriteDSNToIni(LPCSTR lpszDSN, LPCSTR lpszDriver)
469 FIXME("\n");
470 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
471 return FALSE;
474 BOOL WINAPI SQLWriteFileDSNW(LPCWSTR lpszFileName, LPCWSTR lpszAppName,
475 LPCWSTR lpszKeyName, LPCWSTR lpszString)
477 FIXME("\n");
478 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
479 return FALSE;
482 BOOL WINAPI SQLWriteFileDSN(LPCSTR lpszFileName, LPCSTR lpszAppName,
483 LPCSTR lpszKeyName, LPCSTR lpszString)
485 FIXME("\n");
486 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
487 return FALSE;
490 BOOL WINAPI SQLWritePrivateProfileStringW(LPCWSTR lpszSection, LPCWSTR lpszEntry,
491 LPCWSTR lpszString, LPCWSTR lpszFilename)
493 FIXME("\n");
494 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
495 return FALSE;
498 BOOL WINAPI SQLWritePrivateProfileString(LPCSTR lpszSection, LPCSTR lpszEntry,
499 LPCSTR lpszString, LPCSTR lpszFilename)
501 FIXME("\n");
502 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
503 return FALSE;