https://git.reactos.org/?p=reactos.git;a=commitdiff;h=69e834fa543abca654ccc…
commit 69e834fa543abca654ccc65c57bc2861e853f808
Author: Eric Kohl <eric.kohl(a)reactos.org>
AuthorDate: Tue Sep 25 14:27:10 2018 +0200
Commit: Eric Kohl <eric.kohl(a)reactos.org>
CommitDate: Tue Sep 25 14:28:29 2018 +0200
[MSPORTS] Implement serial port settings
- Fix the control styles and grouping in the dialogs.
- Implement reading, modifying and writing of the serial port settings.
---
dll/win32/msports/classinst.c | 4 +-
dll/win32/msports/lang/bg-BG.rc | 38 +--
dll/win32/msports/lang/de-DE.rc | 38 +--
dll/win32/msports/lang/en-US.rc | 38 +--
dll/win32/msports/lang/es-ES.rc | 38 +--
dll/win32/msports/lang/he-IL.rc | 38 +--
dll/win32/msports/lang/it-IT.rc | 38 +--
dll/win32/msports/lang/ja-JP.rc | 38 +--
dll/win32/msports/lang/pl-PL.rc | 38 +--
dll/win32/msports/lang/ro-RO.rc | 38 +--
dll/win32/msports/lang/ru-RU.rc | 38 +--
dll/win32/msports/lang/sq-AL.rc | 38 +--
dll/win32/msports/lang/tr-TR.rc | 38 +--
dll/win32/msports/lang/uk-UA.rc | 38 +--
dll/win32/msports/lang/zh-CN.rc | 38 +--
dll/win32/msports/lang/zh-TW.rc | 38 +--
dll/win32/msports/precomp.h | 3 +
dll/win32/msports/resource.h | 18 +-
dll/win32/msports/serial.c | 590 +++++++++++++++++++++++++++++++++++++++-
19 files changed, 876 insertions(+), 309 deletions(-)
diff --git a/dll/win32/msports/classinst.c b/dll/win32/msports/classinst.c
index a1df8ed92b..3a261d87e8 100644
--- a/dll/win32/msports/classinst.c
+++ b/dll/win32/msports/classinst.c
@@ -603,7 +603,7 @@ InstallDeviceData(IN HDEVINFO DeviceInfoSet,
TRACE("Done\n");
-done:;
+done:
if (hKey != NULL)
RegCloseKey(hKey);
@@ -660,7 +660,7 @@ GetPortType(IN HDEVINFO DeviceInfoSet,
PortType = SerialPort;
}
-done:;
+done:
if (hKey != NULL)
RegCloseKey(hKey);
diff --git a/dll/win32/msports/lang/bg-BG.rc b/dll/win32/msports/lang/bg-BG.rc
index 25f6ca9177..de8fa745bd 100644
--- a/dll/win32/msports/lang/bg-BG.rc
+++ b/dll/win32/msports/lang/bg-BG.rc
@@ -6,17 +6,17 @@ CAPTION "Настройки на излаза (порта)"
FONT 8, "MS Shell Dlg"
BEGIN
RTEXT "&Разряда в секунда:", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "Байта &данни:", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Четност:", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Спиращи разряди:", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "Управление на &потока:", -1, 6, 102, 130, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "Раз&ширени...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP
- PUSHBUTTON "&Връщане на под&разбираните", IDC_SERIAL_RESTORE, 160,
130, 85, 14, WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "Байта &данни:", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Четност:", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Спиращи разряди:", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "Управление на &потока:", -1, 6, 102, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "Раз&ширени...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "&Връщане на под&разбираните", IDC_SERIAL_RESTORE, 160,
130, 85, 14, WS_GROUP | WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -24,18 +24,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Настройки на излаза (порта)"
FONT 8, "MS Shell Dlg"
BEGIN
- GROUPBOX "Filter Resource Method", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "Try not to use an interrupt", IDC_TRY_INTERRUPT, 11, 22,
227, 10
+ GROUPBOX "Filter Resource Method", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "Try not to use an interrupt", IDC_TRY_INTERRUPT, 11, 22,
227, 10, WS_GROUP
AUTORADIOBUTTON "Never use an interrupt", IDC_NEVER_INTERRUPT, 11, 44, 227,
10
- AUTORADIOBUTTON "Use any interrupt assigned to the port",
IDC_ANY_INTERRUPT, 11, 66, 227, 10, WS_GROUP
- AUTOCHECKBOX "Enable legacy Plug and Play detection", -1, 6, 90, 237, 10
+ AUTORADIOBUTTON "Use any interrupt assigned to the port",
IDC_ANY_INTERRUPT, 11, 66, 227, 10
+ AUTOCHECKBOX "Enable legacy Plug and Play detection", IDC_PARALLEL_LEGACY,
6, 90, 237, 10, WS_TABSTOP
LTEXT "LPT Port Number:", -1, 6, 107, 140, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Even,Odd,None,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,None"
END
diff --git a/dll/win32/msports/lang/de-DE.rc b/dll/win32/msports/lang/de-DE.rc
index fe28cbf14f..b968518dbe 100644
--- a/dll/win32/msports/lang/de-DE.rc
+++ b/dll/win32/msports/lang/de-DE.rc
@@ -6,17 +6,17 @@ CAPTION "Porteinstellungen"
FONT 8, "MS Shell Dlg"
BEGIN
RTEXT "B&its pro Sekunde:", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Datenbits:", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Parität:", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Stoppbits:", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Flusssteuerung:", -1, 6, 102, 130, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "&Erweitert...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP
- PUSHBUTTON "Wieder&herstellen", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Datenbits:", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Parität:", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Stoppbits:", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Flusssteuerung:", -1, 6, 102, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "&Erweitert...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Wieder&herstellen", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP | WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -24,18 +24,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Porteinstellungen"
FONT 8, "MS Shell Dlg"
BEGIN
- GROUPBOX "Ressourcenmethode", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "Interrupt möglichst nicht verwenden", IDC_TRY_INTERRUPT,
11, 22, 227, 10
+ GROUPBOX "Ressourcenmethode", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "Interrupt möglichst nicht verwenden", IDC_TRY_INTERRUPT,
11, 22, 227, 10, WS_GROUP
AUTORADIOBUTTON "Interrupt nie verwenden", IDC_NEVER_INTERRUPT, 11, 44,
227, 10
- AUTORADIOBUTTON "Jeden dem Port zugeweisenen Interrupt verwenden",
IDC_ANY_INTERRUPT, 11, 66, 227, 10, WS_GROUP
- AUTOCHECKBOX "Legacyerkennung für Plug & Play aktivieren", -1, 6, 90,
237, 10
+ AUTORADIOBUTTON "Jeden dem Port zugeweisenen Interrupt verwenden",
IDC_ANY_INTERRUPT, 11, 66, 227, 10
+ AUTOCHECKBOX "Legacyerkennung für Plug & Play aktivieren",
IDC_PARALLEL_LEGACY, 6, 90, 237, 10, WS_TABSTOP
LTEXT "LPT-Portnummer:", -1, 6, 107, 140, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Gerade,Ungerade,Keine,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,Keine"
END
diff --git a/dll/win32/msports/lang/en-US.rc b/dll/win32/msports/lang/en-US.rc
index fdc5f0cad9..baf2725041 100644
--- a/dll/win32/msports/lang/en-US.rc
+++ b/dll/win32/msports/lang/en-US.rc
@@ -6,17 +6,17 @@ CAPTION "Port Settings"
FONT 8, "MS Shell Dlg"
BEGIN
RTEXT "B&its per second:", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Data bits:", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Parity:", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Stop bits:", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Flow control:", -1, 6, 102, 130, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "&Advanced...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP
- PUSHBUTTON "&Restore Defaults", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Data bits:", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Parity:", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Stop bits:", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Flow control:", -1, 6, 102, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "&Advanced...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "&Restore Defaults", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP | WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -24,18 +24,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Port Settings"
FONT 8, "MS Shell Dlg"
BEGIN
- GROUPBOX "Filter Resource Method", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "Try not to use an interrupt", IDC_TRY_INTERRUPT, 11, 22,
227, 10
+ GROUPBOX "Filter Resource Method", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "Try not to use an interrupt", IDC_TRY_INTERRUPT, 11, 22,
227, 10, WS_GROUP
AUTORADIOBUTTON "Never use an interrupt", IDC_NEVER_INTERRUPT, 11, 44, 227,
10
- AUTORADIOBUTTON "Use any interrupt assigned to the port",
IDC_ANY_INTERRUPT, 11, 66, 227, 10, WS_GROUP
- AUTOCHECKBOX "Enable legacy Plug and Play detection", -1, 6, 90, 237, 10
+ AUTORADIOBUTTON "Use any interrupt assigned to the port",
IDC_ANY_INTERRUPT, 11, 66, 227, 10
+ AUTOCHECKBOX "Enable legacy Plug and Play detection", IDC_PARALLEL_LEGACY,
6, 90, 237, 10, WS_TABSTOP
LTEXT "LPT Port Number:", -1, 6, 107, 140, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Even,Odd,None,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,None"
END
diff --git a/dll/win32/msports/lang/es-ES.rc b/dll/win32/msports/lang/es-ES.rc
index 78a3f04ce1..dd6587b6bf 100644
--- a/dll/win32/msports/lang/es-ES.rc
+++ b/dll/win32/msports/lang/es-ES.rc
@@ -6,17 +6,17 @@ CAPTION "Ajustes de puertos"
FONT 8, "MS Shell Dlg"
BEGIN
RTEXT "B&its por segundo:", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "Bits de &datos:", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Paridad:", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "Bits de ¶da:", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "Control de &flujo:", -1, 6, 102, 130, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "&Avanzado...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP
- PUSHBUTTON "&Por defecto", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "Bits de &datos:", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Paridad:", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "Bits de ¶da:", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "Control de &flujo:", -1, 6, 102, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "&Avanzado...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "&Por defecto", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP | WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -24,18 +24,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Ajustes de puertos"
FONT 8, "MS Shell Dlg"
BEGIN
- GROUPBOX "Método de filtrado de recursos", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "Intentar no usar interrupciones", IDC_TRY_INTERRUPT, 11,
22, 227, 10
+ GROUPBOX "Método de filtrado de recursos", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "Intentar no usar interrupciones", IDC_TRY_INTERRUPT, 11,
22, 227, 10, WS_GROUP
AUTORADIOBUTTON "Nunca usar interrupciones", IDC_NEVER_INTERRUPT, 11, 44,
227, 10
- AUTORADIOBUTTON "Utilizar cualquier interrupción asignada al puerto",
IDC_ANY_INTERRUPT, 11, 66, 227, 10, WS_GROUP
- AUTOCHECKBOX "Activar detección PnP para hardware antiguo", -1, 6, 90, 237,
10
+ AUTORADIOBUTTON "Utilizar cualquier interrupción asignada al puerto",
IDC_ANY_INTERRUPT, 11, 66, 227, 10
+ AUTOCHECKBOX "Activar detección PnP para hardware antiguo",
IDC_PARALLEL_LEGACY, 6, 90, 237, 10, WS_TABSTOP
LTEXT "Número de puerto LPT:", -1, 6, 107, 140, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Even,Odd,None,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,None"
END
diff --git a/dll/win32/msports/lang/he-IL.rc b/dll/win32/msports/lang/he-IL.rc
index fe1d4f9759..e6fef329c3 100644
--- a/dll/win32/msports/lang/he-IL.rc
+++ b/dll/win32/msports/lang/he-IL.rc
@@ -6,17 +6,17 @@ CAPTION "הגדרות יציאה"
FONT 8, "MS Shell Dlg"
BEGIN
RTEXT "סיביות לשניה:", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "סיביות מידע:", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Parity:", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "סיביות עצירה:", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "בקרת זרימה:", -1, 6, 102, 130, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "מתקדם...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14, WS_GROUP
- PUSHBUTTON "שחזר ברירת מחדל", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "סיביות מידע:", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Parity:", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "סיביות עצירה:", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "בקרת זרימה:", -1, 6, 102, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "מתקדם...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14, WS_GROUP |
WS_TABSTOP
+ PUSHBUTTON "שחזר ברירת מחדל", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP | WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -24,18 +24,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "הגדרות יציאה"
FONT 8, "MS Shell Dlg"
BEGIN
- GROUPBOX "Filter Resource Method", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "Try not to use an interrupt", IDC_TRY_INTERRUPT, 11, 22,
227, 10
+ GROUPBOX "Filter Resource Method", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "Try not to use an interrupt", IDC_TRY_INTERRUPT, 11, 22,
227, 10, WS_GROUP
AUTORADIOBUTTON "Never use an interrupt", IDC_NEVER_INTERRUPT, 11, 44, 227,
10
- AUTORADIOBUTTON "Use any interrupt assigned to the port",
IDC_ANY_INTERRUPT, 11, 66, 227, 10, WS_GROUP
- AUTOCHECKBOX "Enable legacy Plug and Play detection", -1, 6, 90, 237, 10
+ AUTORADIOBUTTON "Use any interrupt assigned to the port",
IDC_ANY_INTERRUPT, 11, 66, 227, 10
+ AUTOCHECKBOX "Enable legacy Plug and Play detection", IDC_PARALLEL_LEGACY,
6, 90, 237, 10, WS_TABSTOP
LTEXT "LPT Port Number:", -1, 6, 107, 140, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Even,Odd,None,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,None"
END
diff --git a/dll/win32/msports/lang/it-IT.rc b/dll/win32/msports/lang/it-IT.rc
index 3a3d90f4a5..eeaad20568 100644
--- a/dll/win32/msports/lang/it-IT.rc
+++ b/dll/win32/msports/lang/it-IT.rc
@@ -6,17 +6,17 @@ CAPTION "Impostazioni della Porta"
FONT 8, "MS Shell Dlg"
BEGIN
RTEXT "B&it per secondo:", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "Bit di &Dati:", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Parit�:", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "Bit di &Stop:", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "Controllo di &Flusso:", -1, 6, 102, 130, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "&Avanzate...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP
- PUSHBUTTON "&Ripristina", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "Bit di &Dati:", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Parit�:", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "Bit di &Stop:", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "Controllo di &Flusso:", -1, 6, 102, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "&Avanzate...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "&Ripristina", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP | WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -24,18 +24,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Impostazioni della Porta"
FONT 8, "MS Shell Dlg"
BEGIN
- GROUPBOX "Metodo di filtraggio delle Risorse", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "Prova a non usare un interrupt", IDC_TRY_INTERRUPT, 11,
22, 227, 10
+ GROUPBOX "Metodo di filtraggio delle Risorse", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "Prova a non usare un interrupt", IDC_TRY_INTERRUPT, 11,
22, 227, 10, WS_GROUP
AUTORADIOBUTTON "Non usare mai un interrupt", IDC_NEVER_INTERRUPT, 11, 44,
227, 10
- AUTORADIOBUTTON "Usare qualsiasi interrupt assegnato alla porta",
IDC_ANY_INTERRUPT, 11, 66, 227, 10, WS_GROUP
- AUTOCHECKBOX "Attiva rilevamento Plug and Play obsoleto", -1, 6, 90, 237,
10
+ AUTORADIOBUTTON "Usare qualsiasi interrupt assegnato alla porta",
IDC_ANY_INTERRUPT, 11, 66, 227, 10
+ AUTOCHECKBOX "Attiva rilevamento Plug and Play obsoleto",
IDC_PARALLEL_LEGACY, 6, 90, 237, 10, WS_TABSTOP
LTEXT "Numero di Porta LPT:", -1, 6, 107, 76, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 88, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 88, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Even,Odd,None,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,None"
END
diff --git a/dll/win32/msports/lang/ja-JP.rc b/dll/win32/msports/lang/ja-JP.rc
index 02113d27be..25e5dfca79 100644
--- a/dll/win32/msports/lang/ja-JP.rc
+++ b/dll/win32/msports/lang/ja-JP.rc
@@ -6,17 +6,17 @@ CAPTION "ポート設定"
FONT 9, "MS UI Gothic"
BEGIN
RTEXT "一秒ごとのビット数(&I):", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "データビット(&D):", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "パリティ(&P):", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "ストップビット(&S):", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "フロー制御(&F):", -1, 6, 102, 130, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "上級者向け(&A)...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP
- PUSHBUTTON "既定値を復元(&R)", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "データビット(&D):", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "パリティ(&P):", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "ストップビット(&S):", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "フロー制御(&F):", -1, 6, 102, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "上級者向け(&A)...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "既定値を復元(&R)", IDC_SERIAL_RESTORE, 160, 130, 85, 14, WS_GROUP
| WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -24,18 +24,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "ポート設定"
FONT 9, "MS UI Gothic"
BEGIN
- GROUPBOX "リソースふるい分け方式", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "一度割り込みを使わないで試す", IDC_TRY_INTERRUPT, 11, 22, 227, 10
+ GROUPBOX "リソースふるい分け方式", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "一度割り込みを使わないで試す", IDC_TRY_INTERRUPT, 11, 22, 227, 10,
WS_GROUP
AUTORADIOBUTTON "割り込みを使わない", IDC_NEVER_INTERRUPT, 11, 44, 227, 10
- AUTORADIOBUTTON "ポートに割り当てられたすべての割り込みを使う", IDC_ANY_INTERRUPT, 11, 66, 227,
10, WS_GROUP
- AUTOCHECKBOX "レガシーなプラグアンドプレイ検出を有効にする", -1, 6, 90, 237, 10
+ AUTORADIOBUTTON "ポートに割り当てられたすべての割り込みを使う", IDC_ANY_INTERRUPT, 11, 66, 227,
10
+ AUTOCHECKBOX "レガシーなプラグアンドプレイ検出を有効にする", IDC_PARALLEL_LEGACY, 6, 90, 237, 10,
WS_TABSTOP
LTEXT "LPTポート番号:", -1, 6, 107, 140, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Even,Odd,None,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,None"
END
diff --git a/dll/win32/msports/lang/pl-PL.rc b/dll/win32/msports/lang/pl-PL.rc
index abc86c87c2..d7af8e7626 100644
--- a/dll/win32/msports/lang/pl-PL.rc
+++ b/dll/win32/msports/lang/pl-PL.rc
@@ -14,17 +14,17 @@ CAPTION "Ustawienia portu"
FONT 8, "MS Shell Dlg"
BEGIN
RTEXT "B&itów na sekundę:", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Bity danych:", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Parzystość:", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "Bi&ty stopu:", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Kontrola przepływu:", -1, 6, 102, 130, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "&Zaawansowane...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP
- PUSHBUTTON "P&rzywróć domyślne", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Bity danych:", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Parzystość:", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "Bi&ty stopu:", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Kontrola przepływu:", -1, 6, 102, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "&Zaawansowane...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "P&rzywróć domyślne", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP | WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -32,18 +32,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Ustawienia portu"
FONT 8, "MS Shell Dlg"
BEGIN
- GROUPBOX "Metoda sposobu filtrowania", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "Spróbuj nie używać przerwania", IDC_TRY_INTERRUPT, 11, 22,
227, 10
+ GROUPBOX "Metoda sposobu filtrowania", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "Spróbuj nie używać przerwania", IDC_TRY_INTERRUPT, 11, 22,
227, 10, WS_GROUP
AUTORADIOBUTTON "Nigdy nie używaj przerwania", IDC_NEVER_INTERRUPT, 11, 44,
227, 10
- AUTORADIOBUTTON "Użyj dowolnego przerwania przypisanego do portu",
IDC_ANY_INTERRUPT, 11, 66, 227, 10, WS_GROUP
- AUTOCHECKBOX "Włącz wykrywanie starszego sprzętu Plug and Play", -1, 6, 90,
237, 10
+ AUTORADIOBUTTON "Użyj dowolnego przerwania przypisanego do portu",
IDC_ANY_INTERRUPT, 11, 66, 227, 10
+ AUTOCHECKBOX "Włącz wykrywanie starszego sprzętu Plug and Play",
IDC_PARALLEL_LEGACY, 6, 90, 237, 10, WS_TABSTOP
LTEXT "Numer portu LPT:", -1, 6, 107, 140, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Even,Odd,None,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,None"
END
diff --git a/dll/win32/msports/lang/ro-RO.rc b/dll/win32/msports/lang/ro-RO.rc
index 09aa42b378..caa284ef72 100644
--- a/dll/win32/msports/lang/ro-RO.rc
+++ b/dll/win32/msports/lang/ro-RO.rc
@@ -12,17 +12,17 @@ CAPTION "Configurația portului"
FONT 8, "MS Shell Dlg"
BEGIN
RTEXT "&Biți pe secundă:", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "Biți de &date:", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Paritate:", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "Biți de st&op:", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Controlul fluxului:", -1, 6, 102, 130, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "A&vansate…", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP
- PUSHBUTTON "Valori i&mplicite", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "Biți de &date:", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Paritate:", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "Biți de st&op:", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Controlul fluxului:", -1, 6, 102, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "A&vansate…", IDC_SERIAL_ADVANCED, 71, 130, 85, 14, WS_GROUP
| WS_TABSTOP
+ PUSHBUTTON "Valori i&mplicite", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP | WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -30,18 +30,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Configurația portului"
FONT 8, "MS Shell Dlg"
BEGIN
- GROUPBOX "Metoda de filtrare a resurselor", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "Încearcă evitarea uzului de întreruperi",
IDC_TRY_INTERRUPT, 11, 22, 227, 10
+ GROUPBOX "Metoda de filtrare a resurselor", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "Încearcă evitarea uzului de întreruperi",
IDC_TRY_INTERRUPT, 11, 22, 227, 10, WS_GROUP
AUTORADIOBUTTON "Nu folosi întreruperi", IDC_NEVER_INTERRUPT, 11, 44, 227,
10
- AUTORADIOBUTTON "Folosește orice întrerupere asociată portului",
IDC_ANY_INTERRUPT, 11, 66, 227, 10, WS_GROUP
- AUTOCHECKBOX "Activează detecția PnP (moștenire)", -1, 6, 90, 237, 10
+ AUTORADIOBUTTON "Folosește orice întrerupere asociată portului",
IDC_ANY_INTERRUPT, 11, 66, 227, 10
+ AUTOCHECKBOX "Activează detecția PnP (moștenire)", IDC_PARALLEL_LEGACY, 6,
90, 237, 10, WS_TABSTOP
LTEXT "Număr port LPT:", -1, 6, 107, 140, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Even,Odd,None,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,None"
END
diff --git a/dll/win32/msports/lang/ru-RU.rc b/dll/win32/msports/lang/ru-RU.rc
index 6fc2d250a1..e4d593c166 100644
--- a/dll/win32/msports/lang/ru-RU.rc
+++ b/dll/win32/msports/lang/ru-RU.rc
@@ -8,17 +8,17 @@ CAPTION "Параметры порта"
FONT 8, "MS Shell Dlg"
BEGIN
RTEXT "&Бит в секунду:", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "Б&иты данных:", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Четность:", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "С&топовые биты:", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Управление потоком:", -1, 63, 102, 73, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "До&полнительно...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP
- PUSHBUTTON "&По умолчанию", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "Б&иты данных:", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Четность:", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "С&топовые биты:", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Управление потоком:", -1, 63, 102, 73, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "До&полнительно...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "&По умолчанию", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP | WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -26,18 +26,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Параметры порта"
FONT 8, "MS Shell Dlg"
BEGIN
- GROUPBOX "Метод фильтрации ресурсов", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "По возможности не использовать прерывание",
IDC_TRY_INTERRUPT, 11, 22, 227, 10
+ GROUPBOX "Метод фильтрации ресурсов", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "По возможности не использовать прерывание",
IDC_TRY_INTERRUPT, 11, 22, 227, 10, WS_GROUP
AUTORADIOBUTTON "Не использовать прерывание в любом случае",
IDC_NEVER_INTERRUPT, 11, 44, 227, 10
- AUTORADIOBUTTON "Использовать любое прерывание, назначенное порту",
IDC_ANY_INTERRUPT, 11, 66, 227, 10, WS_GROUP
- AUTOCHECKBOX "Разрешить обнаружение старого Plug and Play порта", -1, 6,
90, 237, 10
+ AUTORADIOBUTTON "Использовать любое прерывание, назначенное порту",
IDC_ANY_INTERRUPT, 11, 66, 227, 10
+ AUTOCHECKBOX "Разрешить обнаружение старого Plug and Play порта",
IDC_PARALLEL_LEGACY, 6, 90, 237, 10, WS_TABSTOP
LTEXT "Номер LPT порта:", -1, 6, 107, 140, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Even,Odd,None,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,None"
END
diff --git a/dll/win32/msports/lang/sq-AL.rc b/dll/win32/msports/lang/sq-AL.rc
index e7126c41c8..73cc86ada1 100644
--- a/dll/win32/msports/lang/sq-AL.rc
+++ b/dll/win32/msports/lang/sq-AL.rc
@@ -10,17 +10,17 @@ CAPTION "Cilësimet Portit"
FONT 8, "MS Shell Dlg"
BEGIN
RTEXT "B&its per sekonda:", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Data bits:", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Barayi:", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Ndalo bits:", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Kontrolli i rrjedhjes:", -1, 6, 102, 130, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "&Përparuar...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP
- PUSHBUTTON "&Rikthe Parazgjedhjet", IDC_SERIAL_RESTORE, 160, 130, 85,
14, WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Data bits:", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Barayi:", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Ndalo bits:", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Kontrolli i rrjedhjes:", -1, 6, 102, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "&Përparuar...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "&Rikthe Parazgjedhjet", IDC_SERIAL_RESTORE, 160, 130, 85,
14, WS_GROUP | WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -28,18 +28,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Cilësimet Portit"
FONT 8, "MS Shell Dlg"
BEGIN
- GROUPBOX "Filter Resource Method", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "Try not to use an interrupt", IDC_TRY_INTERRUPT, 11, 22,
227, 10
+ GROUPBOX "Filter Resource Method", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "Try not to use an interrupt", IDC_TRY_INTERRUPT, 11, 22,
227, 10, WS_GROUP
AUTORADIOBUTTON "Never use an interrupt", IDC_NEVER_INTERRUPT, 11, 44, 227,
10
- AUTORADIOBUTTON "Use any interrupt assigned to the port",
IDC_ANY_INTERRUPT, 11, 66, 227, 10, WS_GROUP
- AUTOCHECKBOX "Enable legacy Plug and Play detection", -1, 6, 90, 237, 10
+ AUTORADIOBUTTON "Use any interrupt assigned to the port",
IDC_ANY_INTERRUPT, 11, 66, 227, 10
+ AUTOCHECKBOX "Enable legacy Plug and Play detection", IDC_PARALLEL_LEGACY,
6, 90, 237, 10, WS_TABSTOP
LTEXT "LPT Port Number:", -1, 6, 107, 140, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Even,Odd,None,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,None"
END
diff --git a/dll/win32/msports/lang/tr-TR.rc b/dll/win32/msports/lang/tr-TR.rc
index de111a3858..39bad63929 100644
--- a/dll/win32/msports/lang/tr-TR.rc
+++ b/dll/win32/msports/lang/tr-TR.rc
@@ -8,17 +8,17 @@ CAPTION "Giriş Ayarları"
FONT 8, "MS Shell Dlg"
BEGIN
RTEXT "&Sâniyedeki Bit Sayısı:", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Veri Bitleri:", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Eşlik:", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Dur Bitleri:", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Akış Denetimi:", -1, 6, 102, 130, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "&Gelişmiş...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP
- PUSHBUTTON "&Ön Tanımlıları Geri Getir", IDC_SERIAL_RESTORE, 160, 130,
85, 14, WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Veri Bitleri:", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Eşlik:", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Dur Bitleri:", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Akış Denetimi:", -1, 6, 102, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "&Gelişmiş...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "&Ön Tanımlıları Geri Getir", IDC_SERIAL_RESTORE, 160, 130,
85, 14, WS_GROUP | WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -26,18 +26,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Giriş Ayarları"
FONT 8, "MS Shell Dlg"
BEGIN
- GROUPBOX "Süzgeç Kaynak Yöntemi", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "Bir Kesme Kullanmayı Deneme", IDC_TRY_INTERRUPT, 11, 22,
227, 10
+ GROUPBOX "Süzgeç Kaynak Yöntemi", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "Bir Kesme Kullanmayı Deneme", IDC_TRY_INTERRUPT, 11, 22,
227, 10, WS_GROUP
AUTORADIOBUTTON "Tüm Zamanlarda Bir Kesme Kullanma", IDC_NEVER_INTERRUPT,
11, 44, 227, 10
- AUTORADIOBUTTON "Giriş İçin Atanmış Bir Kesme Kullan", IDC_ANY_INTERRUPT,
11, 66, 227, 10, WS_GROUP
- AUTOCHECKBOX "Eskiden Kalan Tak ve Çalıştır Algılamasını Etkinleştir", -1,
6, 90, 237, 10
+ AUTORADIOBUTTON "Giriş İçin Atanmış Bir Kesme Kullan", IDC_ANY_INTERRUPT,
11, 66, 227, 10
+ AUTOCHECKBOX "Eskiden Kalan Tak ve Çalıştır Algılamasını Etkinleştir",
IDC_PARALLEL_LEGACY, 6, 90, 237, 10, WS_TABSTOP
LTEXT "LPT Giriş Numarası:", -1, 6, 107, 140, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Even,Odd,None,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,None"
END
diff --git a/dll/win32/msports/lang/uk-UA.rc b/dll/win32/msports/lang/uk-UA.rc
index d2608ccb1d..0f161170f5 100644
--- a/dll/win32/msports/lang/uk-UA.rc
+++ b/dll/win32/msports/lang/uk-UA.rc
@@ -14,17 +14,17 @@ CAPTION "Параметри порту"
FONT 8, "MS Shell Dlg"
BEGIN
RTEXT "Бі&тів на секунду:", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Біти даних:", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Паритет:", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Стопові біти:", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "&Керування потоком:", -1, 6, 102, 130, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "&Розширені...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP
- PUSHBUTTON "&За замовчуванням", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Біти даних:", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Паритет:", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Стопові біти:", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "&Керування потоком:", -1, 6, 102, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "&Розширені...", IDC_SERIAL_ADVANCED, 71, 130, 85, 14,
WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "&За замовчуванням", IDC_SERIAL_RESTORE, 160, 130, 85, 14,
WS_GROUP | WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -32,18 +32,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Параметри порту"
FONT 8, "MS Shell Dlg"
BEGIN
- GROUPBOX "Filter Resource Method", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "Try not to use an interrupt", IDC_TRY_INTERRUPT, 11, 22,
227, 10
+ GROUPBOX "Filter Resource Method", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "Try not to use an interrupt", IDC_TRY_INTERRUPT, 11, 22,
227, 10, WS_GROUP
AUTORADIOBUTTON "Never use an interrupt", IDC_NEVER_INTERRUPT, 11, 44, 227,
10
- AUTORADIOBUTTON "Use any interrupt assigned to the port",
IDC_ANY_INTERRUPT, 11, 66, 227, 10, WS_GROUP
- AUTOCHECKBOX "Enable legacy Plug and Play detection", -1, 6, 90, 237, 10
+ AUTORADIOBUTTON "Use any interrupt assigned to the port",
IDC_ANY_INTERRUPT, 11, 66, 227, 10
+ AUTOCHECKBOX "Enable legacy Plug and Play detection", IDC_PARALLEL_LEGACY,
6, 90, 237, 10, WS_TABSTOP
LTEXT "LPT Port Number:", -1, 6, 107, 140, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Even,Odd,None,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,None"
END
diff --git a/dll/win32/msports/lang/zh-CN.rc b/dll/win32/msports/lang/zh-CN.rc
index beba275387..9f17ba41c1 100644
--- a/dll/win32/msports/lang/zh-CN.rc
+++ b/dll/win32/msports/lang/zh-CN.rc
@@ -8,17 +8,17 @@ CAPTION "端口设置"
FONT 9, "宋体"
BEGIN
RTEXT "每秒位数:(&I)", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "数据位:(&D)", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "奇偶校验:(&P)", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "停止位:(&S)", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "流量控制:(&F)", -1, 6, 102, 130, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "高级...(&A)", IDC_SERIAL_ADVANCED, 71, 130, 85, 14, WS_GROUP
- PUSHBUTTON "还原默认值(&R)", IDC_SERIAL_RESTORE, 160, 130, 85, 14, WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "数据位:(&D)", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "奇偶校验:(&P)", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "停止位:(&S)", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "流量控制:(&F)", -1, 6, 102, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "高级...(&A)", IDC_SERIAL_ADVANCED, 71, 130, 85, 14, WS_GROUP
| WS_TABSTOP
+ PUSHBUTTON "还原默认值(&R)", IDC_SERIAL_RESTORE, 160, 130, 85, 14, WS_GROUP
| WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -26,18 +26,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "端口设置"
FONT 9, "宋体"
BEGIN
- GROUPBOX "筛选资源方法", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "尽量不要使用中断", IDC_TRY_INTERRUPT, 11, 22, 227, 10
+ GROUPBOX "筛选资源方法", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "尽量不要使用中断", IDC_TRY_INTERRUPT, 11, 22, 227, 10, WS_GROUP
AUTORADIOBUTTON "不要使用中断", IDC_NEVER_INTERRUPT, 11, 44, 227, 10
- AUTORADIOBUTTON "使用指派给此端口的任何中断", IDC_ANY_INTERRUPT, 11, 66, 227, 10,
WS_GROUP
- AUTOCHECKBOX "启用旧式即插即用检测", -1, 6, 90, 237, 10
+ AUTORADIOBUTTON "使用指派给此端口的任何中断", IDC_ANY_INTERRUPT, 11, 66, 227, 10
+ AUTOCHECKBOX "启用旧式即插即用检测", IDC_PARALLEL_LEGACY, 6, 90, 237, 10, WS_TABSTOP
LTEXT "LPT 端口号:", -1, 6, 107, 140, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Even,Odd,None,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,None"
END
diff --git a/dll/win32/msports/lang/zh-TW.rc b/dll/win32/msports/lang/zh-TW.rc
index 9880b5acbc..cfaf247a3e 100644
--- a/dll/win32/msports/lang/zh-TW.rc
+++ b/dll/win32/msports/lang/zh-TW.rc
@@ -8,17 +8,17 @@ CAPTION "埠設定"
FONT 9, "新細明體"
BEGIN
RTEXT "每秒位數:(&I)", -1, 6, 19, 130, 8, WS_GROUP
- COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "資料位:(&D)", -1, 6, 40, 130, 8
- COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "奇偶校驗:(&P)", -1, 6, 61, 130, 8
- COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "停止位:(&S)", -1, 6, 82, 130, 8
- COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- RTEXT "流量控制:(&F)", -1, 6, 102, 130, 8
- COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST
- PUSHBUTTON "高階...(&A)", IDC_SERIAL_ADVANCED, 71, 130, 85, 14, WS_GROUP
- PUSHBUTTON "還原預設值(&R)", IDC_SERIAL_RESTORE, 160, 130, 85, 14, WS_GROUP
+ COMBOBOX IDC_SERIAL_BITSPERSECOND, 139, 17, 106, 90, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "資料位:(&D)", -1, 6, 40, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_DATABITS, 139, 38, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "奇偶校驗:(&P)", -1, 6, 61, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "停止位:(&S)", -1, 6, 82, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ RTEXT "流量控制:(&F)", -1, 6, 102, 130, 8, WS_GROUP
+ COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VSCROLL
+ PUSHBUTTON "高階...(&A)", IDC_SERIAL_ADVANCED, 71, 130, 85, 14, WS_GROUP
| WS_TABSTOP
+ PUSHBUTTON "還原預設值(&R)", IDC_SERIAL_RESTORE, 160, 130, 85, 14, WS_GROUP
| WS_TABSTOP
END
IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218
@@ -26,19 +26,19 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "埠設定"
FONT 9, "新細明體"
BEGIN
- GROUPBOX "篩選資源方法", -1, 6, 6, 237, 75, WS_GROUP
- AUTORADIOBUTTON "儘量不要使用中斷", IDC_TRY_INTERRUPT, 11, 22, 227, 10
+ GROUPBOX "篩選資源方法", -1, 6, 6, 237, 75
+ AUTORADIOBUTTON "儘量不要使用中斷", IDC_TRY_INTERRUPT, 11, 22, 227, 10, WS_GROUP
AUTORADIOBUTTON "不要使用中斷", IDC_NEVER_INTERRUPT, 11, 44, 227, 10
- AUTORADIOBUTTON "使用指派給此埠的任何中斷", IDC_ANY_INTERRUPT, 11, 66, 227, 10,
WS_GROUP
- AUTOCHECKBOX "啟用舊式即插即用檢測", -1, 6, 90, 237, 10
+ AUTORADIOBUTTON "使用指派給此埠的任何中斷", IDC_ANY_INTERRUPT, 11, 66, 227, 10
+ AUTOCHECKBOX "啟用舊式即插即用檢測", IDC_PARALLEL_LEGACY, 6, 90, 237, 10, WS_TABSTOP
LTEXT "LPT 埠號:", -1, 6, 107, 140, 10, WS_GROUP
- COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, WS_TABSTOP | CBS_DROPDOWNLIST
+ COMBOBOX IDC_PARALLEL_NAME, 65, 105, 75, 20, CBS_DROPDOWNLIST | WS_GROUP | WS_TABSTOP
| WS_VSCROLL
END
STRINGTABLE
BEGIN
- IDS_LPT1 "LPT1"
- IDS_LPT2 "LPT2"
- IDS_LPT3 "LPT3"
+ IDS_PARITY "Even,Odd,None,Mark,Space"
+ IDS_STOPBITS "1,1.5,2"
+ IDS_FLOWCONTROL "Xon / Xoff,Hardware,None"
END
diff --git a/dll/win32/msports/precomp.h b/dll/win32/msports/precomp.h
index 0b25e4d765..6b16ba7bae 100644
--- a/dll/win32/msports/precomp.h
+++ b/dll/win32/msports/precomp.h
@@ -2,6 +2,8 @@
#define _MSPORTS_PCH_
#include <stdarg.h>
+#include <stdlib.h>
+#include <stdio.h>
#define WIN32_NO_STATUS
#define _INC_WINDOWS
@@ -11,6 +13,7 @@
#include <winbase.h>
#include <winreg.h>
#include <winuser.h>
+#include <windowsx.h>
#include <msports.h>
#include <setupapi.h>
diff --git a/dll/win32/msports/resource.h b/dll/win32/msports/resource.h
index 772a041e31..c9d716859d 100644
--- a/dll/win32/msports/resource.h
+++ b/dll/win32/msports/resource.h
@@ -8,13 +8,15 @@
#define IDC_SERIAL_FLOWCONTROL 205
#define IDC_SERIAL_ADVANCED 206
#define IDC_SERIAL_RESTORE 207
-#define IDC_PARALLEL_NAME 208
-#define IDC_TRY_INTERRUPT 209
-#define IDC_NEVER_INTERRUPT 210
-#define IDC_ANY_INTERRUPT 211
-#define IDS_LPT1 212
-#define IDS_LPT2 213
-#define IDS_LPT3 214
+#define IDD_PARALLELSETTINGS 220
+#define IDC_TRY_INTERRUPT 221
+#define IDC_NEVER_INTERRUPT 222
+#define IDC_ANY_INTERRUPT 223
+#define IDC_PARALLEL_LEGACY 224
+#define IDC_PARALLEL_NAME 225
-#define IDD_PARALLELSETTINGS 220
+
+#define IDS_PARITY 11
+#define IDS_STOPBITS 12
+#define IDS_FLOWCONTROL 13
diff --git a/dll/win32/msports/serial.c b/dll/win32/msports/serial.c
index b4d3d6c6e8..b248072a30 100644
--- a/dll/win32/msports/serial.c
+++ b/dll/win32/msports/serial.c
@@ -8,17 +8,553 @@
#include "precomp.h"
+
+typedef struct _PORT_DATA
+{
+ HDEVINFO DeviceInfoSet;
+ PSP_DEVINFO_DATA DeviceInfoData;
+
+ WCHAR szPortName[16];
+ INT nBaudRateIndex;
+ INT nParityIndex;
+ INT nDataBitsIndex;
+ INT nStopBitsIndex;
+ INT nFlowControlIndex;
+
+ BOOL bChanged;
+} PORT_DATA, *PPORT_DATA;
+
+#define DEFAULT_BAUD_RATE_INDEX 11
+#define DEFAULT_DATA_BITS_INDEX 4
+#define DEFAULT_PARITY_INDEX 2
+#define DEFAULT_STOP_BITS_INDEX 0
+#define DEFAULT_FLOW_CONTROL_INDEX 2
+
+DWORD BaudRates[] = {75, 110, 134, 150, 300, 600, 1200, 1800, 2400, 4800,
+ 7200, 9600, 14400, 19200, 38400, 57600, 115200, 128000};
+PWSTR Paritys[] = {L"e", L"o", L"n", L"m",
L"s"};
+PWSTR DataBits[] = {L"4", L"5", L"6", L"7",
L"8"};
+PWSTR StopBits[] = {L"1", L"1.5", L"2"};
+PWSTR FlowControls[] = {L"x", L"p"};
+
+
+static
+VOID
+FillComboBox(
+ HWND hwnd,
+ PWSTR szBuffer)
+{
+ PWSTR pStart, pEnd;
+
+ pStart = szBuffer;
+ for (;;)
+ {
+ pEnd = wcschr(pStart, L',');
+ if (pEnd != NULL)
+ *pEnd = UNICODE_NULL;
+
+ ComboBox_AddString(hwnd, pStart);
+
+ if (pEnd == NULL)
+ break;
+
+ pStart = pEnd + 1;
+ }
+}
+
+
+static
+VOID
+ReadPortSettings(
+ PPORT_DATA pPortData)
+{
+ WCHAR szPortData[32];
+ WCHAR szParity[4];
+ WCHAR szDataBits[4];
+ WCHAR szStopBits[4];
+ WCHAR szFlowControl[4];
+ DWORD dwType, dwSize;
+ DWORD dwBaudRate = 0;
+ HKEY hKey;
+ INT n, i;
+ LONG lError;
+
+ TRACE("ReadPortSettings(%p)\n", pPortData);
+
+ pPortData->nBaudRateIndex = DEFAULT_BAUD_RATE_INDEX; /* 9600 */
+ pPortData->nParityIndex = DEFAULT_PARITY_INDEX; /* None */
+ pPortData->nDataBitsIndex = DEFAULT_DATA_BITS_INDEX; /* 8 Data Bits */
+ pPortData->nStopBitsIndex = DEFAULT_STOP_BITS_INDEX; /* 1 Stop Bit */
+ pPortData->nFlowControlIndex = DEFAULT_FLOW_CONTROL_INDEX; /* None */
+ pPortData->bChanged = FALSE;
+
+ hKey = SetupDiOpenDevRegKey(pPortData->DeviceInfoSet,
+ pPortData->DeviceInfoData,
+ DICS_FLAG_GLOBAL,
+ 0,
+ DIREG_DEV,
+ KEY_READ);
+ if (hKey == INVALID_HANDLE_VALUE)
+ {
+ ERR("SetupDiOpenDevRegKey() failed\n");
+ return;
+ }
+
+ dwSize = sizeof(pPortData->szPortName);
+ lError = RegQueryValueExW(hKey,
+ L"PortName",
+ NULL,
+ NULL,
+ (PBYTE)pPortData->szPortName,
+ &dwSize);
+ RegCloseKey(hKey);
+
+ if (lError != ERROR_SUCCESS)
+ {
+ ERR("RegQueryValueExW failed (Error %lu)\n", lError);
+ return;
+ }
+
+ wcscat(pPortData->szPortName, L":");
+ TRACE("PortName: '%S'\n", pPortData->szPortName);
+
+ lError = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+ L"Software\\Microsoft\\Windows
NT\\CurrentVersion\\Ports",
+ 0,
+ KEY_READ,
+ &hKey);
+ if (lError != ERROR_SUCCESS)
+ {
+ ERR("RegOpenKeyExW failed (Error %lu)\n", lError);
+ return;
+ }
+
+ dwSize = sizeof(szPortData);
+ lError = RegQueryValueExW(hKey,
+ pPortData->szPortName,
+ NULL,
+ &dwType,
+ (LPBYTE)szPortData,
+ &dwSize);
+ RegCloseKey(hKey);
+
+ if (lError != ERROR_SUCCESS)
+ {
+ ERR("RegQueryValueExW failed (Error %lu)\n", lError);
+ return;
+ }
+
+ if ((dwType != REG_SZ) || (dwSize > sizeof(szPortData)))
+ {
+ ERR("Wrong type or size\n");
+ return;
+ }
+
+ TRACE("szPortData: '%S'\n", szPortData);
+
+ /* Replace commas by spaces */
+ for (i = 0; i < wcslen(szPortData); i++)
+ {
+ if (szPortData[i] == L',')
+ szPortData[i] = L' ';
+ }
+
+ TRACE("szPortData: '%S'\n", szPortData);
+
+ /* Parse the port settings */
+ n = swscanf(szPortData,
+ L"%lu %3s %3s %3s %3s",
+ &dwBaudRate,
+ &szParity,
+ &szDataBits,
+ &szStopBits,
+ &szFlowControl);
+
+ TRACE("dwBaudRate: %lu\n", dwBaudRate);
+ TRACE("szParity: '%S'\n", szParity);
+ TRACE("szDataBits: '%S'\n", szDataBits);
+ TRACE("szStopBits: '%S'\n", szStopBits);
+ TRACE("szFlowControl: '%S'\n", szFlowControl);
+
+ if (n > 0)
+ {
+ for (i = 0; i < ARRAYSIZE(BaudRates); i++)
+ {
+ if (dwBaudRate == BaudRates[i])
+ pPortData->nBaudRateIndex = i;
+ }
+ }
+
+ if (n > 1)
+ {
+ for (i = 0; i < ARRAYSIZE(Paritys); i++)
+ {
+ if (_wcsicmp(szParity, Paritys[i]) == 0)
+ pPortData->nParityIndex = i;
+ }
+ }
+
+ if (n > 2)
+ {
+ for (i = 0; i < ARRAYSIZE(DataBits); i++)
+ {
+ if (_wcsicmp(szDataBits, DataBits[i]) == 0)
+ pPortData->nDataBitsIndex = i;
+ }
+ }
+
+ if (n > 3)
+ {
+ for (i = 0; i < ARRAYSIZE(StopBits); i++)
+ {
+ if (_wcsicmp(szStopBits, StopBits[i]) == 0)
+ pPortData->nStopBitsIndex = i;
+ }
+ }
+
+ if (n > 4)
+ {
+ for (i = 0; i < ARRAYSIZE(FlowControls); i++)
+ {
+ if (_wcsicmp(szFlowControl, FlowControls[i]) == 0)
+ pPortData->nFlowControlIndex = i;
+ }
+ }
+}
+
+
+static
+VOID
+WritePortSettings(
+ HWND hwnd,
+ PPORT_DATA pPortData)
+{
+ WCHAR szPortData[32];
+ HWND hwndControl;
+ INT nBaudRateIndex;
+ INT nDataBitsIndex;
+ INT nParityIndex;
+ INT nStopBitsIndex;
+ INT nFlowControlIndex;
+ HKEY hKey;
+ LONG lError;
+
+ TRACE("WritePortSettings(%p)\n", pPortData);
+
+ if (pPortData->bChanged == FALSE)
+ {
+ TRACE("Nothing changed. Done!\n");
+ return;
+ }
+
+ nBaudRateIndex = pPortData->nBaudRateIndex;
+ nDataBitsIndex = pPortData->nDataBitsIndex;
+ nParityIndex = pPortData->nParityIndex;
+ nStopBitsIndex = pPortData->nStopBitsIndex;
+ nFlowControlIndex = pPortData->nFlowControlIndex;
+
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_BITSPERSECOND);
+ if (hwndControl)
+ {
+ nBaudRateIndex = ComboBox_GetCurSel(hwndControl);
+ }
+
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_DATABITS);
+ if (hwndControl)
+ {
+ nDataBitsIndex = ComboBox_GetCurSel(hwndControl);
+ }
+
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_PARITY);
+ if (hwndControl)
+ {
+ nParityIndex = ComboBox_GetCurSel(hwndControl);
+ }
+
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_STOPBITS);
+ if (hwndControl)
+ {
+ nStopBitsIndex = ComboBox_GetCurSel(hwndControl);
+ }
+
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_FLOWCONTROL);
+ if (hwndControl)
+ {
+ nFlowControlIndex = ComboBox_GetCurSel(hwndControl);
+ }
+
+ swprintf(szPortData,
+ L"%lu,%s,%s,%s",
+ BaudRates[nBaudRateIndex],
+ Paritys[nParityIndex],
+ DataBits[nDataBitsIndex],
+ StopBits[nStopBitsIndex]);
+ if (nFlowControlIndex < 2)
+ {
+ wcscat(szPortData, L",");
+ wcscat(szPortData, FlowControls[nFlowControlIndex]);
+ }
+
+ TRACE("szPortData: '%S'\n", szPortData);
+
+ lError = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+ L"Software\\Microsoft\\Windows
NT\\CurrentVersion\\Ports",
+ 0,
+ KEY_WRITE,
+ &hKey);
+ if (lError != ERROR_SUCCESS)
+ {
+ ERR("RegOpenKeyExW failed (Error %lu)\n", lError);
+ return;
+ }
+
+ lError = RegSetValueExW(hKey,
+ pPortData->szPortName,
+ 0,
+ REG_SZ,
+ (LPBYTE)szPortData,
+ (wcslen(szPortData) + 1) * sizeof(WCHAR));
+
+ RegCloseKey(hKey);
+
+ if (lError != ERROR_SUCCESS)
+ {
+ ERR("RegSetValueExW failed (Error %lu)\n", lError);
+ return;
+ }
+
+ TRACE("Done!\n");
+}
+
+
static
BOOL
-OnInitDialog(HWND hwnd,
- WPARAM wParam,
- LPARAM lParam)
+OnInitDialog(
+ HWND hwnd,
+ WPARAM wParam,
+ LPARAM lParam)
{
- FIXME("Port_OnInit()\n");
+ PPORT_DATA pPortData;
+ WCHAR szBuffer[256];
+ UINT i;
+ HWND hwndControl;
+
+ TRACE("OnInitDialog()\n");
+
+ pPortData = (PPORT_DATA)((LPPROPSHEETPAGEW)lParam)->lParam;
+ if (pPortData == NULL)
+ {
+ ERR("pPortData is NULL\n");
+ return FALSE;
+ }
+
+ SetWindowLongPtr(hwnd, DWLP_USER, (LONG_PTR)pPortData);
+
+ /* Read and parse the port settings */
+ ReadPortSettings(pPortData);
+
+ /* Fill the 'Bits per second' combobox */
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_BITSPERSECOND);
+ if (hwndControl)
+ {
+ for (i = 0; i < ARRAYSIZE(BaudRates); i++)
+ {
+ _ultow(BaudRates[i], szBuffer, 10);
+ ComboBox_AddString(hwndControl, szBuffer);
+ }
+
+ ComboBox_SetCurSel(hwndControl, pPortData->nBaudRateIndex);
+ }
+
+ /* Fill the 'Data bits' combobox */
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_DATABITS);
+ if (hwndControl)
+ {
+ for (i = 0; i < ARRAYSIZE(DataBits); i++)
+ {
+ ComboBox_AddString(hwndControl, DataBits[i]);
+ }
+
+ ComboBox_SetCurSel(hwndControl, pPortData->nDataBitsIndex);
+ }
+
+ /* Fill the 'Parity' combobox */
+ LoadStringW(hInstance, IDS_PARITY, szBuffer, ARRAYSIZE(szBuffer));
+
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_PARITY);
+ if (hwndControl)
+ {
+ FillComboBox(hwndControl, szBuffer);
+ ComboBox_SetCurSel(hwndControl, pPortData->nParityIndex);
+ }
+
+ /* Fill the 'Stop bits' combobox */
+ LoadStringW(hInstance, IDS_STOPBITS, szBuffer, ARRAYSIZE(szBuffer));
+
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_STOPBITS);
+ if (hwndControl)
+ {
+ FillComboBox(hwndControl, szBuffer);
+ ComboBox_SetCurSel(hwndControl, pPortData->nStopBitsIndex);
+ }
+
+ /* Fill the 'Flow control' combobox */
+ LoadStringW(hInstance, IDS_FLOWCONTROL, szBuffer, ARRAYSIZE(szBuffer));
+
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_FLOWCONTROL);
+ if (hwndControl)
+ {
+ FillComboBox(hwndControl, szBuffer);
+ ComboBox_SetCurSel(hwndControl, pPortData->nFlowControlIndex);
+ }
+
+ /* Disable the 'Advanced' button */
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_ADVANCED);
+ if (hwndControl)
+ EnableWindow(hwndControl, FALSE);
+
return TRUE;
}
+static
+VOID
+RestoreDefaultValues(
+ HWND hwnd,
+ PPORT_DATA pPortData)
+{
+ HWND hwndControl;
+
+ /* Reset the 'Bits per second' combobox */
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_BITSPERSECOND);
+ if (hwndControl)
+ {
+ ComboBox_SetCurSel(hwndControl, DEFAULT_BAUD_RATE_INDEX);
+ }
+
+ /* Reset the 'Data bits' combobox */
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_DATABITS);
+ if (hwndControl)
+ {
+ ComboBox_SetCurSel(hwndControl, DEFAULT_DATA_BITS_INDEX);
+ }
+
+ /* Reset the 'Parity' combobox */
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_PARITY);
+ if (hwndControl)
+ {
+ ComboBox_SetCurSel(hwndControl, DEFAULT_PARITY_INDEX);
+ }
+
+ /* Reset the 'Stop bits' combobox */
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_STOPBITS);
+ if (hwndControl)
+ {
+ ComboBox_SetCurSel(hwndControl, DEFAULT_STOP_BITS_INDEX);
+ }
+
+ /* Reset the 'Flow control' combobox */
+ hwndControl = GetDlgItem(hwnd, IDC_SERIAL_FLOWCONTROL);
+ if (hwndControl)
+ {
+ ComboBox_SetCurSel(hwndControl, DEFAULT_FLOW_CONTROL_INDEX);
+ }
+
+ pPortData->bChanged = TRUE;
+}
+
+
+static
+VOID
+OnCommand(
+ HWND hwnd,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ PPORT_DATA pPortData;
+
+ TRACE("OnCommand()\n");
+
+ pPortData = (PPORT_DATA)GetWindowLongPtr(hwnd, DWLP_USER);
+ if (pPortData == NULL)
+ {
+ ERR("pPortData is NULL\n");
+ return;
+ }
+
+ switch (LOWORD(wParam))
+ {
+ case IDC_SERIAL_BITSPERSECOND:
+ case IDC_SERIAL_DATABITS:
+ case IDC_SERIAL_PARITY:
+ case IDC_SERIAL_STOPBITS:
+ case IDC_SERIAL_FLOWCONTROL:
+ if (HIWORD(wParam) == CBN_SELCHANGE ||
+ HIWORD(wParam) == CBN_EDITCHANGE)
+ {
+ pPortData->bChanged = TRUE;
+ }
+ break;
+
+// case IDC_SERIAL_ADVANCED:
+
+ case IDC_SERIAL_RESTORE:
+ RestoreDefaultValues(hwnd, pPortData);
+ break;
+
+ default:
+ break;
+ }
+}
+
+
+static
+VOID
+OnNotify(
+ HWND hwnd,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ PPORT_DATA pPortData;
+
+ TRACE("OnCommand()\n");
+
+ pPortData = (PPORT_DATA)GetWindowLongPtr(hwnd, DWLP_USER);
+ if (pPortData == NULL)
+ {
+ ERR("pPortData is NULL\n");
+ return;
+ }
+
+ if (((LPNMHDR)lParam)->code == (UINT)PSN_APPLY)
+ {
+ FIXME("PSN_APPLY!\n");
+ WritePortSettings(hwnd, pPortData);
+ }
+}
+
+
+static
+VOID
+OnDestroy(
+ HWND hwnd)
+{
+ PPORT_DATA pPortData;
+
+ TRACE("OnDestroy()\n");
+
+ pPortData = (PPORT_DATA)GetWindowLongPtr(hwnd, DWLP_USER);
+ if (pPortData == NULL)
+ {
+ ERR("pPortData is NULL\n");
+ return;
+ }
+
+ HeapFree(GetProcessHeap(), 0, pPortData);
+ SetWindowLongPtr(hwnd, DWLP_USER, (LONG_PTR)NULL);
+}
+
+
static
INT_PTR
CALLBACK
@@ -27,12 +563,24 @@ SerialSettingsDlgProc(HWND hwnd,
WPARAM wParam,
LPARAM lParam)
{
- FIXME("SerialSettingsDlgProc()\n");
+ TRACE("SerialSettingsDlgProc()\n");
switch (uMsg)
{
case WM_INITDIALOG:
return OnInitDialog(hwnd, wParam, lParam);
+
+ case WM_COMMAND:
+ OnCommand(hwnd, wParam, lParam);
+ break;
+
+ case WM_NOTIFY:
+ OnNotify(hwnd, wParam, lParam);
+ break;
+
+ case WM_DESTROY:
+ OnDestroy(hwnd);
+ break;
}
return FALSE;
@@ -41,44 +589,58 @@ SerialSettingsDlgProc(HWND hwnd,
BOOL
WINAPI
-SerialPortPropPageProvider(PSP_PROPSHEETPAGE_REQUEST lpPropSheetPageRequest,
- LPFNADDPROPSHEETPAGE lpfnAddPropSheetPageProc,
- LPARAM lParam)
+SerialPortPropPageProvider(
+ PSP_PROPSHEETPAGE_REQUEST lpPropSheetPageRequest,
+ LPFNADDPROPSHEETPAGE lpfnAddPropSheetPageProc,
+ LPARAM lParam)
{
PROPSHEETPAGEW PropSheetPage;
HPROPSHEETPAGE hPropSheetPage;
+ PPORT_DATA pPortData;
- FIXME("SerialPortPropPageProvider(%p %p %lx)\n",
+ TRACE("SerialPortPropPageProvider(%p %p %lx)\n",
lpPropSheetPageRequest, lpfnAddPropSheetPageProc, lParam);
+ pPortData = HeapAlloc(GetProcessHeap(),
+ HEAP_ZERO_MEMORY,
+ sizeof(PORT_DATA));
+ if (pPortData == NULL)
+ {
+ ERR("Port data allocation failed!\n");
+ return FALSE;
+ }
+
+ pPortData->DeviceInfoSet = lpPropSheetPageRequest->DeviceInfoSet;
+ pPortData->DeviceInfoData = lpPropSheetPageRequest->DeviceInfoData;
+
if (lpPropSheetPageRequest->PageRequested == SPPSR_ENUM_ADV_DEVICE_PROPERTIES)
{
- FIXME("SPPSR_ENUM_ADV_DEVICE_PROPERTIES\n");
+ TRACE("SPPSR_ENUM_ADV_DEVICE_PROPERTIES\n");
PropSheetPage.dwSize = sizeof(PROPSHEETPAGEW);
PropSheetPage.dwFlags = 0;
PropSheetPage.hInstance = hInstance;
PropSheetPage.pszTemplate = MAKEINTRESOURCE(IDD_SERIALSETTINGS);
PropSheetPage.pfnDlgProc = SerialSettingsDlgProc;
- PropSheetPage.lParam = 0;
+ PropSheetPage.lParam = (LPARAM)pPortData;
PropSheetPage.pfnCallback = NULL;
hPropSheetPage = CreatePropertySheetPageW(&PropSheetPage);
if (hPropSheetPage == NULL)
{
- FIXME("CreatePropertySheetPageW() failed!\n");
+ ERR("CreatePropertySheetPageW() failed!\n");
return FALSE;
}
if (!(*lpfnAddPropSheetPageProc)(hPropSheetPage, lParam))
{
- FIXME("lpfnAddPropSheetPageProc() failed!\n");
+ ERR("lpfnAddPropSheetPageProc() failed!\n");
DestroyPropertySheetPage(hPropSheetPage);
return FALSE;
}
}
- FIXME("Done!\n");
+ TRACE("Done!\n");
return TRUE;
}