Saveliy Tretiakov <saveliyt(a)mail.ru>ru>:
- Implemented CommConfigDialogA and CommConfigDialogW
- Removed @unimplemented comments for some implemented functions
Modified: trunk/reactos/lib/kernel32/misc/comm.c
_____
Modified: trunk/reactos/lib/kernel32/misc/comm.c
--- trunk/reactos/lib/kernel32/misc/comm.c 2005-04-06 17:08:17 UTC
(rev 14528)
+++ trunk/reactos/lib/kernel32/misc/comm.c 2005-04-06 17:40:25 UTC
(rev 14529)
@@ -14,6 +14,7 @@
* KJK (11/02/2003) implemented BuildCommDCB &
BuildCommDCBAndTimeouts
* ST (21/03/2005) implemented GetCommProperties
* ST (24/03/2005) implemented ClearCommError.
Corrected many functions.
+ * ST (05/04/2005) implemented CommConfigDialog
*
*/
@@ -584,7 +585,7 @@
}
/*
- * @unimplemented
+ * @implemented
*/
BOOL
STDCALL
@@ -707,7 +708,7 @@
/*
- * @unimplemented
+ * @implemented
*/
BOOL
STDCALL
@@ -736,7 +737,7 @@
}
/*
- * @unimplemented
+ * @implemented
*/
BOOL
STDCALL
@@ -747,7 +748,7 @@
/*
- * @unimplemented
+ * @implemented
*/
BOOL
STDCALL
@@ -833,26 +834,68 @@
/*
- * @unimplemented
+ * @implemented
*/
BOOL
STDCALL
CommConfigDialogA(LPCSTR lpszName, HWND hWnd, LPCOMMCONFIG lpCC)
{
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
+ BOOL (STDCALL *drvCommDlgA)(LPCSTR, HWND, LPCOMMCONFIG);
+ HMODULE hSerialuiDll;
+ BOOL result;
+
+ //FIXME: Get dll name from registry. (setupapi needed)
+ if(!(hSerialuiDll = LoadLibraryW(L"serialui.dll")))
+ {
+ DPRINT("CommConfigDialogA: serialui.dll not found.\n");
+ return FALSE;
+ }
+
+ drvCommDlgA = GetProcAddress(hSerialuiDll,
"drvCommConfigDialogA");
+
+ if(!drvCommDlgA)
+ {
+ DPRINT("CommConfigDialogA: serialui does not export
drvCommConfigDialogA\n");
+ FreeLibrary(hSerialuiDll);
+ return FALSE;
+ }
+
+ result = drvCommDlgA(lpszName, hWnd, lpCC);
+ FreeLibrary(hSerialuiDll);
+ return result;
}
/*
- * @unimplemented
+ * @implemented
*/
BOOL
STDCALL
CommConfigDialogW(LPCWSTR lpszName, HWND hWnd, LPCOMMCONFIG lpCC)
{
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
+ BOOL (STDCALL *drvCommDlgW)(LPCWSTR, HWND, LPCOMMCONFIG);
+ HMODULE hSerialuiDll;
+ BOOL result;
+
+ //FIXME: Get dll name from registry. (setupapi needed)
+ if(!(hSerialuiDll = LoadLibraryW(L"serialui.dll")))
+ {
+ DPRINT("CommConfigDialogW: serialui.dll not found.\n");
+ return FALSE;
+ }
+
+ drvCommDlgW = GetProcAddress(hSerialuiDll,
"drvCommConfigDialogW");
+
+ if(!drvCommDlgW)
+ {
+ DPRINT("CommConfigDialogW: serialui does not export
drvCommConfigDialogW\n");
+ FreeLibrary(hSerialuiDll);
+ return FALSE;
+ }
+
+ result = drvCommDlgW(lpszName, hWnd, lpCC);
+ FreeLibrary(hSerialuiDll);
+ return result;
}