Detlef Riekenberg : kernel32: Remove duplicate code (use serialui
instead).
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Feb 27 06:46:01 CST 2007
Module: wine
Branch: master
Commit: ade9fd6400099207e3a4240f6ad433c3539d2daf
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ade9fd6400099207e3a4240f6ad433c3539d2daf
Author: Detlef Riekenberg <wine.dev at web.de>
Date: Mon Feb 26 22:16:07 2007 +0100
kernel32: Remove duplicate code (use serialui instead).
---
dlls/kernel32/comm.c | 42 +++++++++++++++---------------------------
1 files changed, 15 insertions(+), 27 deletions(-)
diff --git a/dlls/kernel32/comm.c b/dlls/kernel32/comm.c
index 07caa83..8fc1033 100644
--- a/dlls/kernel32/comm.c
+++ b/dlls/kernel32/comm.c
@@ -1388,35 +1388,23 @@ BOOL WINAPI GetDefaultCommConfigW(
afterwards the number of bytes copied to the buffer or
the needed size of the buffer. */
{
- LPDCB lpdcb = &(lpCC->dcb);
- WCHAR temp[40];
- static const WCHAR comW[] = {'C','O','M',0};
- static const WCHAR formatW[] = {'C','O','M','%','c',':','3','8','4','0','0',',','n',',','8',',','1',0};
-
- TRACE("(%s, %p, %p) *lpdwSize: %u\n", debugstr_w(lpszName), lpCC, lpdwSize, lpdwSize ? *lpdwSize : 0 );
-
- if (strncmpiW(lpszName,comW,3)) {
- ERR("not implemented for <%s>\n", debugstr_w(lpszName));
- return FALSE;
- }
-
- if (*lpdwSize < sizeof(COMMCONFIG)) {
- *lpdwSize = sizeof(COMMCONFIG);
- return FALSE;
- }
-
- *lpdwSize = sizeof(COMMCONFIG);
+ FARPROC pGetDefaultCommConfig;
+ HMODULE hConfigModule;
+ DWORD res = ERROR_INVALID_PARAMETER;
- lpCC->dwSize = sizeof(COMMCONFIG);
- lpCC->wVersion = 1;
- lpCC->dwProviderSubType = PST_RS232;
- lpCC->dwProviderOffset = 0L;
- lpCC->dwProviderSize = 0L;
+ TRACE("(%s, %p, %p) *lpdwSize: %u\n", debugstr_w(lpszName), lpCC, lpdwSize, lpdwSize ? *lpdwSize : 0 );
+ hConfigModule = LoadLibraryW(lpszSerialUI);
- sprintfW( temp, formatW, lpszName[3]);
- FIXME("setting %s as default\n", debugstr_w(temp));
+ if (hConfigModule) {
+ pGetDefaultCommConfig = GetProcAddress(hConfigModule, "drvGetDefaultCommConfigW");
+ if (pGetDefaultCommConfig) {
+ res = pGetDefaultCommConfig(lpszName, lpCC, lpdwSize);
+ }
+ FreeLibrary(hConfigModule);
+ }
- return BuildCommDCBW( temp, lpdcb);
+ if (res) SetLastError(res);
+ return (res == ERROR_SUCCESS);
}
/**************************************************************************
@@ -1443,7 +1431,7 @@ BOOL WINAPI GetDefaultCommConfigA(
if(lpszName) RtlCreateUnicodeStringFromAsciiz(&lpszNameW,lpszName);
else lpszNameW.Buffer = NULL;
- if(lpszNameW.Buffer) ret = GetDefaultCommConfigW(lpszNameW.Buffer,lpCC,lpdwSize);
+ ret = GetDefaultCommConfigW(lpszNameW.Buffer,lpCC,lpdwSize);
RtlFreeUnicodeString(&lpszNameW);
return ret;
More information about the wine-cvs
mailing list