From 00e7c3346d426a0c6578d3b9633c11eadbc20373 Mon Sep 17 00:00:00 2001 From: Stefan Leichter Date: Sat, 8 Jul 2000 18:29:54 +0000 Subject: [PATCH] Started implementation of the functions GetDefaultCommConfigA/W. --- dlls/kernel/kernel32.spec | 4 +-- misc/comm.c | 52 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/dlls/kernel/kernel32.spec b/dlls/kernel/kernel32.spec index 4537ea4e857..f601022db9f 100644 --- a/dlls/kernel/kernel32.spec +++ b/dlls/kernel/kernel32.spec @@ -328,8 +328,8 @@ import ntdll.dll 310 stdcall GetDateFormatA(long long ptr str ptr long) GetDateFormatA 311 stdcall GetDateFormatW(long long ptr wstr ptr long) GetDateFormatW 312 stub GetDaylightFlag -313 stub GetDefaultCommConfigA -314 stub GetDefaultCommConfigW +313 stdcall GetDefaultCommConfigA(str ptr long) GetDefaultCommConfigA +314 stdcall GetDefaultCommConfigW(wstr ptr long) GetDefaultCommConfigW 315 stdcall GetDiskFreeSpaceA(str ptr ptr ptr ptr) GetDiskFreeSpaceA 316 stdcall GetDiskFreeSpaceW(wstr ptr ptr ptr ptr) GetDiskFreeSpaceW 317 stdcall GetDriveTypeA(str) GetDriveTypeA diff --git a/misc/comm.c b/misc/comm.c index 8f170aa5ed8..59c3e9749fa 100644 --- a/misc/comm.c +++ b/misc/comm.c @@ -2584,3 +2584,55 @@ BOOL WINAPI GetCommProperties(HANDLE hFile, LPCOMMPROP lpCommProp) return TRUE; } +/*********************************************************************** + * GetDefaultCommConfigA (KERNEL32.313) + */ +BOOL WINAPI GetDefaultCommConfigA(LPCSTR lpszName,LPCOMMCONFIG lpCC, + LPDWORD lpdwSize) +{ + LPDCB lpdcb = &(lpCC->dcb); + char temp[40]; + + if (strncasecmp(lpszName,"COM",3)) { + ERR("not implemented for <%s>\n", lpszName); + return FALSE; + } + + if (!ValidCOMPort(lpszName[3]-'1')) + return FALSE; + + TRACE("(%s %p %ld)\n", lpszName, lpCC, *lpdwSize ); + if (*lpdwSize < sizeof(COMMCONFIG)) { + *lpdwSize = sizeof(COMMCONFIG); + return FALSE; + } + + *lpdwSize = sizeof(COMMCONFIG); + + lpCC->dwSize = sizeof(COMMCONFIG); + lpCC->wVersion = 1; + lpCC->dwProviderSubType = PST_RS232; + lpCC->dwProviderOffset = 0L; + lpCC->dwProviderSize = 0L; + + (void) sprintf( temp, "COM%c:38400,n,8,1", lpszName[3]); + FIXME("setting %s as default\n", temp); + + return BuildCommDCBA( temp, lpdcb); +} + +/************************************************************************** + * GetDefaultCommConfigW (KERNEL32.314) + */ +BOOL WINAPI GetDefaultCommConfigW( LPCWSTR lpszName,LPCOMMCONFIG lpCC, + LPDWORD lpdwSize) +{ + LPSTR lpszNameA; + BOOL ret; + + TRACE("(%p,%p,%d)\n",lpszName,lpCC,*lpdwSize); + lpszNameA = HEAP_strdupWtoA( GetProcessHeap(), 0, lpszName ); + ret=GetDefaultCommConfigA(lpszNameA,lpCC,lpdwSize); + HeapFree( GetProcessHeap(), 0, lpszNameA ); + return ret; +}