[MSPORTS]
authorEric Kohl <eric.kohl@reactos.org>
Fri, 27 May 2011 15:33:12 +0000 (15:33 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Fri, 27 May 2011 15:33:12 +0000 (15:33 +0000)
- Implement a simple property sheet provider for serial ports. The property sheet does not show yet because the dialog resource is not found because a call to FindResourceW fails.

svn path=/trunk/; revision=51960

reactos/dll/win32/msports/CMakeLists.txt
reactos/dll/win32/msports/internal.h [new file with mode: 0644]
reactos/dll/win32/msports/lang/de-DE.rc [new file with mode: 0644]
reactos/dll/win32/msports/lang/en-US.rc [new file with mode: 0644]
reactos/dll/win32/msports/msports.c
reactos/dll/win32/msports/msports.rbuild
reactos/dll/win32/msports/msports.rc
reactos/dll/win32/msports/msports.spec
reactos/dll/win32/msports/resource.h [new file with mode: 0644]
reactos/dll/win32/msports/serial.c [new file with mode: 0644]
reactos/media/inf/ports.inf

index 8dfbd65..eda1624 100644 (file)
@@ -7,6 +7,7 @@ list(APPEND SOURCE
     classinst.c
     comdb.c
     msports.c
+    serial.c
     msports.rc
     ${CMAKE_CURRENT_BINARY_DIR}/msports_stubs.c
     ${CMAKE_CURRENT_BINARY_DIR}/msports.def)
@@ -17,7 +18,7 @@ set_module_type(msports win32dll)
 
 target_link_libraries(msports wine)
 
-add_importlibs(msports setupapi advapi32 kernel32 ntdll)
+add_importlibs(msports setupapi comctl32 user32 advapi32 kernel32 ntdll)
 
 add_cd_file(TARGET msports DESTINATION reactos/system32 FOR all)
 add_importlib_target(msports.spec)
diff --git a/reactos/dll/win32/msports/internal.h b/reactos/dll/win32/msports/internal.h
new file mode 100644 (file)
index 0000000..8f67052
--- /dev/null
@@ -0,0 +1,9 @@
+/*
+ * PROJECT:     Ports installer library
+ * LICENSE:     GPL - See COPYING in the top level directory
+ * FILE:        dll\win32\msports\internal.h
+ * PURPOSE:     Global declarations
+ * COPYRIGHT:   Copyright 2011 Eric Kohl
+ */
+
+extern HINSTANCE hInstance;
\ No newline at end of file
diff --git a/reactos/dll/win32/msports/lang/de-DE.rc b/reactos/dll/win32/msports/lang/de-DE.rc
new file mode 100644 (file)
index 0000000..2277fe9
--- /dev/null
@@ -0,0 +1,12 @@
+
+LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
+
+IDD_SERIALSETTINGS DIALOGEX DISCARDABLE  0, 0, 252, 218
+STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Port Einstellungen"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "", -1, 7, 4, 238, 114
+    RTEXT "B&its pro Sekunde:", -1, 77, 19, 62, 8, WS_GROUP
+    COMBOBOX IDC_SERIALBITSPERSECOND, 142, 17, 99, 13, WS_TABSTOP | CBS_DROPDOWNLIST
+END
diff --git a/reactos/dll/win32/msports/lang/en-US.rc b/reactos/dll/win32/msports/lang/en-US.rc
new file mode 100644 (file)
index 0000000..b3b5942
--- /dev/null
@@ -0,0 +1,12 @@
+
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+IDD_SERIALSETTINGS DIALOGEX DISCARDABLE  0, 0, 252, 218
+STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Port Settings"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "", -1, 7, 4, 238, 114
+    RTEXT "B&its per second:", -1, 77, 19, 62, 8, WS_GROUP
+    COMBOBOX IDC_SERIALBITSPERSECOND, 142, 17, 99, 13, WS_TABSTOP | CBS_DROPDOWNLIST
+END
index 2d0bcc5..587c01e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * PROJECT:     Ports installer library
  * LICENSE:     GPL - See COPYING in the top level directory
- * FILE:        dll/win32/msports/msports.c
+ * FILE:        dll\win32\msports\msports.c
  * PURPOSE:     Library main function
  * COPYRIGHT:   Copyright 2011 Eric Kohl
  */
@@ -12,6 +12,7 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(msports);
 
+HINSTANCE hInstance;
 
 BOOL
 WINAPI
@@ -23,6 +24,7 @@ DllMain(HINSTANCE hinstDll,
     {
         case DLL_PROCESS_ATTACH:
             TRACE("DLL_PROCESS_ATTACH\n");
+            hInstance = hinstDll;
             DisableThreadLibraryCalls(hinstDll);
             break;
     }
index cd4a3de..cf67dfd 100644 (file)
@@ -4,9 +4,12 @@
        <library>wine</library>
        <library>kernel32</library>
        <library>advapi32</library>
+       <library>comctl32</library>
+       <library>user32</library>
        <library>setupapi</library>
        <file>classinst.c</file>
        <file>comdb.c</file>
        <file>msports.c</file>
+       <file>serial.c</file>
        <file>msports.rc</file>
 </module>
index 33ab2b4..45ab64a 100644 (file)
@@ -1,7 +1,11 @@
 #include <windows.h>
+#include "resource.h"
 
 #define REACTOS_VERSION_DLL
 #define REACTOS_STR_FILE_DESCRIPTION   "Ports Class Installer\0"
 #define REACTOS_STR_INTERNAL_NAME      "msports\0"
 #define REACTOS_STR_ORIGINAL_FILENAME  "msports.dll\0"
 #include <reactos/version.rc>
+
+#include "lang/de-DE.rc"
+#include "lang/en-US.rc"
index 84fb957..3be8a92 100644 (file)
@@ -9,4 +9,4 @@
 @ stub ParallelPortPropPageProvider
 @ stdcall PortsClassInstaller(long ptr ptr)
 @ stub SerialDisplayAdvancedSettings
-@ stub SerialPortPropPageProvider
+@ stdcall SerialPortPropPageProvider(ptr ptr long)
diff --git a/reactos/dll/win32/msports/resource.h b/reactos/dll/win32/msports/resource.h
new file mode 100644 (file)
index 0000000..2ec38cd
--- /dev/null
@@ -0,0 +1,3 @@
+
+#define IDD_SERIALSETTINGS                200
+#define IDC_SERIALBITSPERSECOND           201
diff --git a/reactos/dll/win32/msports/serial.c b/reactos/dll/win32/msports/serial.c
new file mode 100644 (file)
index 0000000..d172bee
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+ * PROJECT:     Ports installer library
+ * LICENSE:     GPL - See COPYING in the top level directory
+ * FILE:        dll\win32\msports\serial.c
+ * PURPOSE:     Serial Port property functions
+ * COPYRIGHT:   Copyright 2011 Eric Kohl
+ */
+
+#include <windows.h>
+#include <commctrl.h>
+#include <prsht.h>
+#include <setupapi.h>
+
+#include <wine/debug.h>
+
+#include "internal.h"
+#include "resource.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(msports);
+
+
+static
+BOOL
+OnInitDialog(HWND hwnd,
+             WPARAM wParam,
+             LPARAM lParam)
+{
+    FIXME("Port_OnInit()\n");
+    return TRUE;
+}
+
+
+static
+INT_PTR
+CALLBACK
+SerialSettingsDlgProc(HWND hwnd,
+                      UINT uMsg,
+                      WPARAM wParam,
+                      LPARAM lParam)
+{
+    FIXME("SerialSettingsDlgProc()\n");
+
+    switch (uMsg)
+    {
+        case WM_INITDIALOG:
+            return OnInitDialog(hwnd, wParam, lParam);
+    }
+
+    return FALSE;
+}
+
+
+BOOL
+WINAPI
+SerialPortPropPageProvider(PSP_PROPSHEETPAGE_REQUEST lpPropSheetPageRequest,
+                           LPFNADDPROPSHEETPAGE lpfnAddPropSheetPageProc,
+                           LPARAM lParam)
+{
+    PROPSHEETPAGEW PropSheetPage;
+    HPROPSHEETPAGE hPropSheetPage;
+
+    FIXME("SerialPortPropPageProvider(%p %p %lx)\n",
+          lpPropSheetPageRequest, lpfnAddPropSheetPageProc, lParam);
+
+    if (lpPropSheetPageRequest->PageRequested == SPPSR_ENUM_ADV_DEVICE_PROPERTIES)
+    {
+        FIXME("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.pfnCallback = NULL;
+
+        hPropSheetPage = CreatePropertySheetPageW(&PropSheetPage);
+        if (hPropSheetPage == NULL)
+        {
+            FIXME("CreatePropertySheetPageW() failed!\n");
+            return FALSE;
+        }
+
+        if (!(*lpfnAddPropSheetPageProc)(hPropSheetPage, lParam))
+        {
+            FIXME("lpfnAddPropSheetPageProc() failed!\n");
+            DestroyPropertySheetPage(hPropSheetPage);
+            return FALSE;
+        }
+    }
+
+    FIXME("Done!\n");
+
+    return TRUE;
+}
+
+/* EOF */
\ No newline at end of file
index ebe6dfa..4589d3b 100644 (file)
Binary files a/reactos/media/inf/ports.inf and b/reactos/media/inf/ports.inf differ