added basic skeleton for the system control panel
authorThomas Bluemel <thomas@reactsoft.com>
Mon, 8 Mar 2004 14:24:47 +0000 (14:24 +0000)
committerThomas Bluemel <thomas@reactsoft.com>
Mon, 8 Mar 2004 14:24:47 +0000 (14:24 +0000)
svn path=/trunk/; revision=8591

16 files changed:
reactos/lib/cpl/Makefile
reactos/lib/cpl/sysdm/.cvsignore [new file with mode: 0644]
reactos/lib/cpl/sysdm/Makefile [new file with mode: 0644]
reactos/lib/cpl/sysdm/advanced.c [new file with mode: 0644]
reactos/lib/cpl/sysdm/computer.c [new file with mode: 0644]
reactos/lib/cpl/sysdm/general.c [new file with mode: 0644]
reactos/lib/cpl/sysdm/hardware.c [new file with mode: 0644]
reactos/lib/cpl/sysdm/resource.h [new file with mode: 0644]
reactos/lib/cpl/sysdm/resources/applet.ico [new file with mode: 0644]
reactos/lib/cpl/sysdm/resources/devmgr.ico [new file with mode: 0644]
reactos/lib/cpl/sysdm/resources/gpl.txt [new file with mode: 0644]
reactos/lib/cpl/sysdm/sysdm.c [new file with mode: 0644]
reactos/lib/cpl/sysdm/sysdm.def [new file with mode: 0644]
reactos/lib/cpl/sysdm/sysdm.edf [new file with mode: 0644]
reactos/lib/cpl/sysdm/sysdm.h [new file with mode: 0644]
reactos/lib/cpl/sysdm/sysdm.rc [new file with mode: 0644]

index 86bc514..2356eca 100644 (file)
@@ -6,7 +6,7 @@ PATH_TO_TOP = ../..
 
 include $(PATH_TO_TOP)/rules.mak
 
-CONTROL_PANELS = 
+CONTROL_PANELS = sysdm
 
 all: $(CONTROL_PANELS)
 
diff --git a/reactos/lib/cpl/sysdm/.cvsignore b/reactos/lib/cpl/sysdm/.cvsignore
new file mode 100644 (file)
index 0000000..ee6046a
--- /dev/null
@@ -0,0 +1,8 @@
+*.coff
+*.cpl
+*.d
+*.a
+*.o
+*.sym
+*.map
+*.tmp
diff --git a/reactos/lib/cpl/sysdm/Makefile b/reactos/lib/cpl/sysdm/Makefile
new file mode 100644 (file)
index 0000000..a4640c9
--- /dev/null
@@ -0,0 +1,47 @@
+# $Id: Makefile,v 1.1 2004/03/08 14:24:47 weiden Exp $
+
+PATH_TO_TOP = ../../..
+
+TARGET_TYPE = dynlink
+
+TARGET_EXTENSION = .cpl
+
+TARGET_NAME = sysdm
+
+TARGET_INSTALLDIR = system32
+
+TARGET_BASE = 0x58760000
+
+TARGET_CFLAGS = \
+ -I./include \
+ -DUNICODE \
+ -D_UNICODE \
+ -D__REACTOS__ \
+ -Wall \
+ -Werror \
+ -fno-builtin
+
+TARGET_LFLAGS = -nostartfiles
+
+TARGET_SDKLIBS = kernel32.a user32.a comctl32.a
+
+TARGET_GCCLIBS = gcc
+
+TARGET_PCH = 
+
+TARGET_CLEAN = 
+
+TARGET_OBJECTS = sysdm.o general.o computer.o hardware.o advanced.o
+
+DEP_OBJECTS = $(TARGET_OBJECTS)
+
+include $(PATH_TO_TOP)/rules.mak
+
+include $(TOOLS_PATH)/helper.mk
+
+include $(TOOLS_PATH)/depend.mk
+
+%/TAGS:
+       etags -o $(@D)/TAGS $(@D)/\*.c
+
+etags: ./TAGS
diff --git a/reactos/lib/cpl/sysdm/advanced.c b/reactos/lib/cpl/sysdm/advanced.c
new file mode 100644 (file)
index 0000000..8cd77a8
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  ReactOS
+ *  Copyright (C) 2004 ReactOS Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/* $Id: advanced.c,v 1.1 2004/03/08 14:24:47 weiden Exp $
+ *
+ * PROJECT:         ReactOS System Control Panel
+ * FILE:            lib/cpl/system/advanced.c
+ * PURPOSE:         Memory, start-up and profiles settings
+ * PROGRAMMER:      Thomas Weidenmueller (w3seek@users.sourceforge.net)
+ * UPDATE HISTORY:
+ *      03-04-2004  Created
+ */
+#include <windows.h>
+#include <stdlib.h>
+#include "resource.h"
+#include "sysdm.h"
+
+/* Property page dialog callback */
+BOOL CALLBACK
+AdvancedPageProc(
+  HWND hwndDlg,
+  UINT uMsg,
+  WPARAM wParam,
+  LPARAM lParam
+)
+{
+  switch(uMsg)
+  {
+    case WM_INITDIALOG:
+      break;
+  }
+  return FALSE;
+}
+
diff --git a/reactos/lib/cpl/sysdm/computer.c b/reactos/lib/cpl/sysdm/computer.c
new file mode 100644 (file)
index 0000000..f2ea1c6
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  ReactOS
+ *  Copyright (C) 2004 ReactOS Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/* $Id: computer.c,v 1.1 2004/03/08 14:24:47 weiden Exp $
+ *
+ * PROJECT:         ReactOS System Control Panel
+ * FILE:            lib/cpl/system/computer.c
+ * PURPOSE:         Computer settings for networking
+ * PROGRAMMER:      Thomas Weidenmueller (w3seek@users.sourceforge.net)
+ * UPDATE HISTORY:
+ *      03-04-2004  Created
+ */
+#include <windows.h>
+#include <stdlib.h>
+#include "resource.h"
+#include "sysdm.h"
+
+/* Property page dialog callback */
+BOOL CALLBACK
+ComputerPageProc(
+  HWND hwndDlg,
+  UINT uMsg,
+  WPARAM wParam,
+  LPARAM lParam
+)
+{
+  switch(uMsg)
+  {
+    case WM_INITDIALOG:
+      break;
+  }
+  return FALSE;
+}
+
diff --git a/reactos/lib/cpl/sysdm/general.c b/reactos/lib/cpl/sysdm/general.c
new file mode 100644 (file)
index 0000000..50889de
--- /dev/null
@@ -0,0 +1,131 @@
+/*
+ *  ReactOS
+ *  Copyright (C) 2004 ReactOS Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/* $Id: general.c,v 1.1 2004/03/08 14:24:47 weiden Exp $
+ *
+ * PROJECT:         ReactOS System Control Panel
+ * FILE:            lib/cpl/system/general.c
+ * PURPOSE:         General System Information
+ * PROGRAMMER:      Thomas Weidenmueller (w3seek@users.sourceforge.net)
+ * UPDATE HISTORY:
+ *      03-04-2004  Created
+ */
+#include <windows.h>
+#include <stdlib.h>
+#include "resource.h"
+#include "sysdm.h"
+
+void
+ShowLastWin32Error(HWND hWndOwner)
+{
+  LPWSTR lpMsg;
+  DWORD LastError;
+  
+  LastError = GetLastError();
+  
+  if((LastError == 0) || !FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | 
+                    FORMAT_MESSAGE_FROM_SYSTEM, NULL, LastError, 
+                    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),(LPWSTR)&lpMsg, 0, 
+                    NULL))
+  {
+    return;
+  }
+  
+  MessageBox(hWndOwner, lpMsg, NULL, MB_OK | MB_ICONERROR);
+  
+  LocalFree((LPVOID)lpMsg);
+}
+
+typedef struct
+{
+  HWND hDlg;
+} OSITINFO, *POSITINFO;
+
+DWORD WINAPI
+ObtainSystemInformationThread(POSITINFO posit)
+{
+  HRSRC hResInfo;
+  HGLOBAL hResMem;
+  WCHAR *LicenseText;
+  
+  /* wait a bit */
+  Sleep(100);
+  
+  /* load license from resource */
+  if(!(hResInfo = FindResource(hApplet, MAKEINTRESOURCE(RC_LICENSE), 
+                               MAKEINTRESOURCE(RTDATA))) ||
+     !(hResMem = LoadResource(hApplet, hResInfo)) ||
+     !(LicenseText = LockResource(hResMem)))
+  {
+    ShowLastWin32Error(posit->hDlg);
+    goto LoadSystemInfo;
+  }
+  /* insert the license into the edit control (unicode!) */
+  SetDlgItemText(posit->hDlg, IDC_LICENSEMEMO, LicenseText);
+  SendDlgItemMessage(posit->hDlg, IDC_LICENSEMEMO, EM_SETSEL, 0, 0);
+  
+  LoadSystemInfo:
+  /* FIXME */
+  /*free:*/
+  HeapFree(GetProcessHeap(), 0, posit);
+  
+  return 0;
+}
+
+/* Property page dialog callback */
+BOOL CALLBACK
+GeneralPageProc(
+  HWND hwndDlg,
+  UINT uMsg,
+  WPARAM wParam,
+  LPARAM lParam
+)
+{
+  switch(uMsg)
+  {
+    case WM_INITDIALOG:
+    {
+      HANDLE Thread;
+      DWORD ThreadId;
+      POSITINFO posit;
+      
+      posit = (POSITINFO)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(OSITINFO));
+      if(!posit)
+      {
+        ShowLastWin32Error(hwndDlg);
+        return FALSE;
+      }
+      posit->hDlg = hwndDlg;
+      Thread = CreateThread(NULL,
+                            0,
+                            (LPTHREAD_START_ROUTINE)ObtainSystemInformationThread,
+                            (PVOID)posit,
+                            0,
+                            &ThreadId);
+      if(Thread)
+      {
+        CloseHandle(Thread);
+        return FALSE;
+      }
+      
+      break;
+    }
+  }
+  return FALSE;
+}
+
diff --git a/reactos/lib/cpl/sysdm/hardware.c b/reactos/lib/cpl/sysdm/hardware.c
new file mode 100644 (file)
index 0000000..ef329b3
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ *  ReactOS
+ *  Copyright (C) 2004 ReactOS Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/* $Id: hardware.c,v 1.1 2004/03/08 14:24:47 weiden Exp $
+ *
+ * PROJECT:         ReactOS System Control Panel
+ * FILE:            lib/cpl/system/hardware.c
+ * PURPOSE:         Hardware devices
+ * PROGRAMMER:      Thomas Weidenmueller (w3seek@users.sourceforge.net)
+ * UPDATE HISTORY:
+ *      03-04-2004  Created
+ */
+#include <windows.h>
+#include <stdlib.h>
+#include "resource.h"
+#include "sysdm.h"
+
+typedef WINBOOL (STDCALL *PDEVMGREXEC)(HWND hWndParent, HINSTANCE hInst, PVOID Unknown, int nCmdShow);
+BOOL LaunchDeviceManager(HWND hWndParent)
+{
+  HMODULE hDll;
+  PDEVMGREXEC DevMgrExec;
+  BOOL Ret;
+  
+  if(!(hDll = LoadLibrary(L"devmgr.dll")))
+  {
+    return FALSE;
+  }
+  if(!(DevMgrExec = (PDEVMGREXEC)GetProcAddress(hDll, "DeviceManager_ExecuteW")))
+  {
+    FreeLibrary(hDll);
+    return FALSE;
+  }
+  /* run the Device Manager */
+  Ret = DevMgrExec(hWndParent, hApplet, NULL /* ??? */, SW_SHOW);
+  FreeLibrary(hDll);
+  return Ret;
+}
+
+/* Property page dialog callback */
+BOOL CALLBACK
+HardwarePageProc(
+  HWND hwndDlg,
+  UINT uMsg,
+  WPARAM wParam,
+  LPARAM lParam
+)
+{
+  switch(uMsg)
+  {
+    case WM_INITDIALOG:
+      break;
+    case WM_COMMAND:
+      switch(LOWORD(wParam))
+      {
+        case IDC_DEVMGR:
+          if(!LaunchDeviceManager(hwndDlg))
+          {
+            /* FIXME */
+          }
+          break;
+      }
+      break;
+  }
+  return FALSE;
+}
+
diff --git a/reactos/lib/cpl/sysdm/resource.h b/reactos/lib/cpl/sysdm/resource.h
new file mode 100644 (file)
index 0000000..c6650a9
--- /dev/null
@@ -0,0 +1,38 @@
+#ifndef __CPL_RESOURCE_H
+#define __CPL_RESOURCE_H
+
+/* metrics */
+#define PROPSHEETWIDTH  246
+#define PROPSHEETHEIGHT 228
+#define PROPSHEETPADDING        6
+#define SYSTEM_COLUMN   (18 * PROPSHEETPADDING)
+#define LABELLINE(x)    (((PROPSHEETPADDING + 2) * x) + (x + 2))
+#define ICONSIZE        16
+
+/* ids */
+#define RC_LICENSE      101
+#define RTDATA  300
+
+#define IDI_CPLSYSTEM  100
+#define IDI_DEVMGR      101
+
+#define IDD_PROPPAGEGENERAL    100
+#define IDD_PROPPAGECOMPUTER   101
+#define IDD_PROPPAGEHARDWARE   102
+#define IDD_PROPPAGEADVANCED   103
+
+#define IDS_CPLSYSTEMNAME      1001
+#define IDS_CPLSYSTEMDESCRIPTION       2001
+
+/* controls */
+#define IDC_LICENSEMEMO 101
+#define IDC_PROCESSORMANUFACTURER       102
+#define IDC_PROCESSOR   103
+#define IDC_PROCESSORSPEED      104
+#define IDC_SYSTEMMEMORY        105
+#define IDC_DEVMGR      106
+#define IDC_ICON1       201
+
+#endif /* __CPL_RESOURCE_H */
+
+/* EOF */
diff --git a/reactos/lib/cpl/sysdm/resources/applet.ico b/reactos/lib/cpl/sysdm/resources/applet.ico
new file mode 100644 (file)
index 0000000..3eae16d
Binary files /dev/null and b/reactos/lib/cpl/sysdm/resources/applet.ico differ
diff --git a/reactos/lib/cpl/sysdm/resources/devmgr.ico b/reactos/lib/cpl/sysdm/resources/devmgr.ico
new file mode 100644 (file)
index 0000000..283fe4e
Binary files /dev/null and b/reactos/lib/cpl/sysdm/resources/devmgr.ico differ
diff --git a/reactos/lib/cpl/sysdm/resources/gpl.txt b/reactos/lib/cpl/sysdm/resources/gpl.txt
new file mode 100644 (file)
index 0000000..86ed154
Binary files /dev/null and b/reactos/lib/cpl/sysdm/resources/gpl.txt differ
diff --git a/reactos/lib/cpl/sysdm/sysdm.c b/reactos/lib/cpl/sysdm/sysdm.c
new file mode 100644 (file)
index 0000000..08ab750
--- /dev/null
@@ -0,0 +1,176 @@
+/*
+ *  ReactOS
+ *  Copyright (C) 2004 ReactOS Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/* $Id: sysdm.c,v 1.1 2004/03/08 14:24:47 weiden Exp $
+ *
+ * PROJECT:         ReactOS System Control Panel
+ * FILE:            lib/cpl/system/sysdm.c
+ * PURPOSE:         ReactOS System Control Panel
+ * PROGRAMMER:      Thomas Weidenmueller (w3seek@users.sourceforge.net)
+ * UPDATE HISTORY:
+ *      03-04-2004  Created
+ */
+#include <windows.h>
+#include <stdlib.h>
+#include "resource.h"
+#include "sysdm.h"
+
+#define NUM_APPLETS    (1)
+
+LONG CALLBACK SystemApplet(VOID);
+BOOL CALLBACK GeneralPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+BOOL CALLBACK ComputerPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+BOOL CALLBACK HardwarePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+BOOL CALLBACK AdvancedPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+HINSTANCE hApplet = 0;
+
+/* Applets */
+APPLET Applets[NUM_APPLETS] = 
+{
+  {IDI_CPLSYSTEM, IDS_CPLSYSTEMNAME, IDS_CPLSYSTEMDESCRIPTION, SystemApplet}
+};
+
+static void
+InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc)
+{
+  ZeroMemory(psp, sizeof(PROPSHEETPAGE));
+  psp->dwSize = sizeof(PROPSHEETPAGE);
+  psp->dwFlags = PSP_DEFAULT;
+  psp->hInstance = hApplet;
+  psp->u1.pszTemplate = MAKEINTRESOURCE(idDlg);
+  psp->pfnDlgProc = DlgProc;
+}
+
+/* Property Sheet Callback */
+int CALLBACK
+PropSheetProc(
+       HWND hwndDlg,
+       UINT uMsg,
+       LPARAM lParam
+)
+{
+  switch(uMsg)
+  {
+    case PSCB_BUTTONPRESSED:
+      switch(lParam)
+      {
+        case PSBTN_OK: /* OK */
+          break;
+        case PSBTN_CANCEL: /* Cancel */
+          break;
+        case PSBTN_APPLYNOW: /* Apply now */
+          break;
+        case PSBTN_FINISH: /* Close */
+          break;
+        default:
+          return FALSE;
+      }
+      break;
+      
+    case PSCB_INITIALIZED:
+      break;
+  }
+  return TRUE;
+}
+
+/* First Applet */
+
+LONG CALLBACK
+SystemApplet(VOID)
+{
+  PROPSHEETPAGE psp[4];
+  PROPSHEETHEADER psh;
+  TCHAR Caption[1024];
+  
+  LoadString(hApplet, IDS_CPLSYSTEMNAME, Caption, sizeof(Caption) / sizeof(TCHAR));
+  
+  ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
+  psh.dwSize = sizeof(PROPSHEETHEADER);
+  psh.dwFlags =  PSH_PROPSHEETPAGE | PSH_USECALLBACK | PSH_PROPTITLE;
+  psh.hwndParent = NULL;
+  psh.hInstance = hApplet;
+  psh.u1.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLSYSTEM));
+  psh.pszCaption = Caption;
+  psh.nPages = sizeof(psp) / sizeof(PROPSHEETHEADER);
+  psh.u2.nStartPage = 0;
+  psh.u3.ppsp = psp;
+  psh.pfnCallback = PropSheetProc;
+  
+  InitPropSheetPage(&psp[0], IDD_PROPPAGEGENERAL, GeneralPageProc);
+  InitPropSheetPage(&psp[1], IDD_PROPPAGECOMPUTER, ComputerPageProc);
+  InitPropSheetPage(&psp[2], IDD_PROPPAGEHARDWARE, HardwarePageProc);
+  InitPropSheetPage(&psp[3], IDD_PROPPAGEADVANCED, AdvancedPageProc);
+  
+  return (LONG)(PropertySheet(&psh) != -1);
+}
+
+/* Control Panel Callback */
+LONG CALLBACK
+CPlApplet(
+       HWND hwndCPl,
+       UINT uMsg,
+       LPARAM lParam1,
+       LPARAM lParam2)
+{
+  int i = (int)lParam1;
+  
+  switch(uMsg)
+  {
+    case CPL_INIT:
+    {
+      return TRUE;
+    }
+    case CPL_GETCOUNT:
+    {
+      return NUM_APPLETS;
+    }
+    case CPL_INQUIRE:
+    {
+      CPLINFO *CPlInfo = (CPLINFO*)lParam2;
+      CPlInfo->lData = 0;
+      CPlInfo->idIcon = Applets[i].idIcon;
+      CPlInfo->idName = Applets[i].idName;
+      CPlInfo->idInfo = Applets[i].idDescription;
+      break;
+    }
+    case CPL_DBLCLK:
+    {
+      Applets[i].AppletProc();
+      break;
+    }
+  }
+  return FALSE;
+}
+
+
+BOOL STDCALL
+DllMain(
+       HINSTANCE hinstDLL,
+       DWORD     dwReason,
+       LPVOID    lpvReserved)
+{
+  switch(dwReason)
+  {
+    case DLL_PROCESS_ATTACH:
+    case DLL_THREAD_ATTACH:
+      hApplet = hinstDLL;
+      break;
+  }
+  return TRUE;
+}
+
diff --git a/reactos/lib/cpl/sysdm/sysdm.def b/reactos/lib/cpl/sysdm/sysdm.def
new file mode 100644 (file)
index 0000000..1ed8431
--- /dev/null
@@ -0,0 +1,6 @@
+LIBRARY cplsample.cpl
+
+EXPORTS
+CPlApplet@16
+
+; EOF
diff --git a/reactos/lib/cpl/sysdm/sysdm.edf b/reactos/lib/cpl/sysdm/sysdm.edf
new file mode 100644 (file)
index 0000000..47e146a
--- /dev/null
@@ -0,0 +1,6 @@
+LIBRARY cplsample.cpl
+
+EXPORTS
+CPlApplet=CPlApplet@16
+
+; EOF
diff --git a/reactos/lib/cpl/sysdm/sysdm.h b/reactos/lib/cpl/sysdm/sysdm.h
new file mode 100644 (file)
index 0000000..0640f5f
--- /dev/null
@@ -0,0 +1,20 @@
+#ifndef __CPL_SYSDM_H
+#define __CPL_SYSDM_H
+
+typedef LONG (CALLBACK *APPLET_PROC)(VOID);
+
+typedef struct
+{
+  int idIcon;
+  int idName;
+  int idDescription;
+  APPLET_PROC AppletProc;
+} APPLET, *PAPPLET;
+
+extern HINSTANCE hApplet;
+
+void ShowLastWin32Error(HWND hWndOwner);
+
+#endif /* __CPL_SYSDM_H */
+
+/* EOF */
diff --git a/reactos/lib/cpl/sysdm/sysdm.rc b/reactos/lib/cpl/sysdm/sysdm.rc
new file mode 100644 (file)
index 0000000..64a2fba
--- /dev/null
@@ -0,0 +1,93 @@
+#include <reactos/resource.h>
+#include <defines.h>
+#include "resource.h"
+
+LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
+
+VS_VERSION_INFO VERSIONINFO
+       FILEVERSION     RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
+       PRODUCTVERSION  RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD      
+       FILEFLAGSMASK   0x3fL
+#ifdef _DEBUG
+       FILEFLAGS       0x1L
+#else
+       FILEFLAGS       0x0L
+#endif
+       FILEOS          0x40004L
+       FILETYPE        0x2L
+       FILESUBTYPE     0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            VALUE "CompanyName",       RES_STR_COMPANY_NAME
+            VALUE "FileDescription",   "ReactOS System Control Panel\0"
+            VALUE "FileVersion",       RES_STR_FILE_VERSION
+            VALUE "InternalName",      "sysdm\0"
+            VALUE "LegalCopyright",    RES_STR_LEGAL_COPYRIGHT
+            VALUE "OriginalFilename",  "sysdm.cpl\0"
+            VALUE "ProductName",       RES_STR_PRODUCT_NAME
+            VALUE "ProductVersion",    RES_STR_PRODUCT_VERSION
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 1200
+    END
+END
+
+IDI_CPLSYSTEM ICON "resources/applet.ico"
+IDI_DEVMGR ICON "resources/devmgr.ico"
+RC_LICENSE RTDATA "resources/gpl.txt"
+
+IDD_PROPPAGEGENERAL DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "General"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+  LTEXT "Operating System",-1,SYSTEM_COLUMN,LABELLINE(2),PROPSHEETWIDTH-SYSTEM_COLUMN-PROPSHEETPADDING,8
+  LTEXT RES_STR_PRODUCT_NAME,-1,SYSTEM_COLUMN+PROPSHEETPADDING,LABELLINE(3),PROPSHEETWIDTH-SYSTEM_COLUMN-PROPSHEETPADDING,8
+  LTEXT "Version " RES_STR_PRODUCT_VERSION,-1,SYSTEM_COLUMN+PROPSHEETPADDING,LABELLINE(4),PROPSHEETWIDTH-SYSTEM_COLUMN-PROPSHEETPADDING,8
+  
+  LTEXT "Computer",-1,SYSTEM_COLUMN,LABELLINE(6),PROPSHEETWIDTH-SYSTEM_COLUMN-PROPSHEETPADDING,8
+  LTEXT "",IDC_PROCESSORMANUFACTURER,SYSTEM_COLUMN+PROPSHEETPADDING,LABELLINE(7),PROPSHEETWIDTH-SYSTEM_COLUMN-PROPSHEETPADDING,8
+  LTEXT "",IDC_PROCESSOR,SYSTEM_COLUMN+PROPSHEETPADDING,LABELLINE(8),PROPSHEETWIDTH-SYSTEM_COLUMN-PROPSHEETPADDING,8
+  LTEXT "",IDC_PROCESSORSPEED,SYSTEM_COLUMN+PROPSHEETPADDING,LABELLINE(9),PROPSHEETWIDTH-SYSTEM_COLUMN-PROPSHEETPADDING,8
+  LTEXT "",IDC_SYSTEMMEMORY,SYSTEM_COLUMN+PROPSHEETPADDING,LABELLINE(10),PROPSHEETWIDTH-SYSTEM_COLUMN-PROPSHEETPADDING,8
+  
+  EDITTEXT IDC_LICENSEMEMO,PROPSHEETPADDING,LABELLINE(13),PROPSHEETWIDTH-(2*PROPSHEETPADDING),PROPSHEETHEIGHT-LABELLINE(13)-PROPSHEETPADDING,ES_LEFT|WS_TABSTOP|WS_BORDER|WS_VSCROLL|WS_HSCROLL|WS_GROUP|ES_MULTILINE|ES_READONLY
+END
+
+IDD_PROPPAGECOMPUTER DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Computer Name"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+  /* LTEXT "Property Page 2",-1,73,74,90,8 */
+END
+
+IDD_PROPPAGEHARDWARE DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Hardware"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+  GROUPBOX "Hardware Devices",-1,PROPSHEETPADDING,PROPSHEETPADDING,PROPSHEETWIDTH-(2*PROPSHEETPADDING),LABELLINE(6)+PROPSHEETPADDING
+  ICON IDI_DEVMGR, IDC_ICON1, (2*PROPSHEETPADDING),LABELLINE(2), ICONSIZE, ICONSIZE, SS_ICON
+  LTEXT "The Device Manager lists all the hardware devices that are installed on your computer. Use the Device Manger to change their settings.",-1,(4*PROPSHEETPADDING)+ICONSIZE,LABELLINE(2),PROPSHEETWIDTH-(6*PROPSHEETPADDING)-ICONSIZE,LABELLINE(3)
+  PUSHBUTTON "&Device Manager",IDC_DEVMGR,PROPSHEETWIDTH-(17*PROPSHEETPADDING),LABELLINE(5)+2,(15*PROPSHEETPADDING),14
+END
+
+IDD_PROPPAGEADVANCED DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+  /* LTEXT "Property Page 4",-1,73,74,90,8 */
+END
+
+STRINGTABLE 
+BEGIN
+  IDS_CPLSYSTEMNAME "System"
+  IDS_CPLSYSTEMDESCRIPTION "See information about your computer and change various system and hardware settings."
+END