diff --git a/reactos/baseaddress.rbuild b/reactos/baseaddress.rbuild
index a32704198d6..9f52d80f326 100644
--- a/reactos/baseaddress.rbuild
+++ b/reactos/baseaddress.rbuild
@@ -19,6 +19,7 @@
+
diff --git a/reactos/dll/win32/console/colors.c b/reactos/dll/win32/console/colors.c
new file mode 100644
index 00000000000..a2f5cc046dc
--- /dev/null
+++ b/reactos/dll/win32/console/colors.c
@@ -0,0 +1,37 @@
+/* $Id$
+ *
+ * PROJECT: ReactOS Console Configuration DLL
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: dll/win32/console/colors.c
+ * PURPOSE: displays colors dialog
+ * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at)
+ */
+
+#include "ntstatus.h"
+#define WIN32_NO_STATUS
+#include
+#include
+#include
+#include "resource.h"
+
+
+INT_PTR
+CALLBACK
+ColorsProc(
+ HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam
+)
+{
+ switch(uMsg)
+ {
+ case WM_INITDIALOG:
+ return TRUE;
+
+ default:
+ break;
+ }
+
+ return FALSE;
+}
diff --git a/reactos/dll/win32/console/console.c b/reactos/dll/win32/console/console.c
new file mode 100644
index 00000000000..94caaa839b9
--- /dev/null
+++ b/reactos/dll/win32/console/console.c
@@ -0,0 +1,171 @@
+/* $Id$
+ *
+ * PROJECT: ReactOS Console Configuration DLL
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: dll/win32/console/console.c
+ * PURPOSE: initialization of DLL
+ * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at)
+ */
+
+#include
+#include
+#include
+
+#include "resource.h"
+#include "console.h"
+
+#define NUM_APPLETS (1)
+
+LONG APIENTRY InitApplet(HWND hwnd, UINT uMsg, LONG wParam, LONG lParam);
+INT_PTR CALLBACK OptionsProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK FontProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK LayoutProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK ColorsProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+
+HINSTANCE hApplet = 0;
+
+/* Applets */
+APPLET Applets[NUM_APPLETS] =
+{
+ {IDC_CPLICON, IDS_CPLNAME, IDS_CPLDESCRIPTION, InitApplet}
+};
+
+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->pszTemplate = MAKEINTRESOURCE(idDlg);
+ psp->pfnDlgProc = DlgProc;
+}
+
+
+/* Property Sheet Callback */
+int CALLBACK
+PropSheetProc(
+ HWND hwndDlg,
+ UINT uMsg,
+ LPARAM lParam
+)
+{
+ UNREFERENCED_PARAMETER(hwndDlg)
+ 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 APIENTRY
+InitApplet(HWND hwnd, UINT uMsg, LONG wParam, LONG lParam)
+{
+ PROPSHEETPAGE psp[5];
+ PROPSHEETHEADER psh;
+ TCHAR Caption[1024];
+ INT i=0;
+
+ UNREFERENCED_PARAMETER(hwnd)
+ UNREFERENCED_PARAMETER(uMsg)
+ UNREFERENCED_PARAMETER(wParam)
+ UNREFERENCED_PARAMETER(lParam)
+
+ memset(Caption, 0x0, sizeof(Caption));
+ LoadString(hApplet, IDS_CPLNAME, 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.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON));
+ psh.pszCaption = Caption;
+ psh.nPages = 4;
+ psh.nStartPage = 0;
+ psh.ppsp = psp;
+ psh.pfnCallback = PropSheetProc;
+
+ InitPropSheetPage(&psp[i++], IDD_PROPPAGEOPTIONS, (DLGPROC) OptionsProc);
+ InitPropSheetPage(&psp[i++], IDD_PROPPAGEFONT, (DLGPROC) FontProc);
+ InitPropSheetPage(&psp[i++], IDD_PROPPAGELAYOUT, (DLGPROC) LayoutProc);
+ InitPropSheetPage(&psp[i++], IDD_PROPPAGECOLORS, (DLGPROC) ColorsProc);
+
+ 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(hwndCPl, uMsg, lParam1, lParam2);
+ break;
+ }
+ }
+ return FALSE;
+}
+
+
+BOOLEAN
+WINAPI
+DllMain(
+ HINSTANCE hinstDLL,
+ DWORD dwReason,
+ LPVOID lpvReserved)
+{
+ UNREFERENCED_PARAMETER(lpvReserved)
+ switch(dwReason)
+ {
+ case DLL_PROCESS_ATTACH:
+ case DLL_THREAD_ATTACH:
+ hApplet = hinstDLL;
+ break;
+ }
+ return TRUE;
+}
+
diff --git a/reactos/dll/win32/console/console.def b/reactos/dll/win32/console/console.def
new file mode 100644
index 00000000000..242d6e44708
--- /dev/null
+++ b/reactos/dll/win32/console/console.def
@@ -0,0 +1,6 @@
+LIBRARY console.dll
+
+EXPORTS
+CPlApplet@16
+
+; EOF
diff --git a/reactos/dll/win32/console/console.h b/reactos/dll/win32/console/console.h
new file mode 100644
index 00000000000..28390a8170c
--- /dev/null
+++ b/reactos/dll/win32/console/console.h
@@ -0,0 +1,12 @@
+#ifndef CONSOLE_H__
+#define CONSOLE_H__
+
+typedef struct
+{
+ int idIcon;
+ int idName;
+ int idDescription;
+ APPLET_PROC AppletProc;
+} APPLET, *PAPPLET;
+
+#endif /* CONSOLE_H__ */
diff --git a/reactos/dll/win32/console/console.rbuild b/reactos/dll/win32/console/console.rbuild
new file mode 100644
index 00000000000..68e94e68446
--- /dev/null
+++ b/reactos/dll/win32/console/console.rbuild
@@ -0,0 +1,19 @@
+
+
+ .
+
+
+
+
+ 0x600
+ 0x501
+ kernel32
+ user32
+ comctl32
+ console.c
+ options.c
+ font.c
+ layout.c
+ colors.c
+ console.rc
+
diff --git a/reactos/dll/win32/console/console.rc b/reactos/dll/win32/console/console.rc
new file mode 100644
index 00000000000..8743be78158
--- /dev/null
+++ b/reactos/dll/win32/console/console.rc
@@ -0,0 +1,20 @@
+/* $Id$
+ *
+ * PROJECT: ReactOS Console Configuration DLL
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: dll/win32/console/console.rc
+ * PURPOSE: main resource file
+ * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at)
+ */
+
+
+#include
+#include "resource.h"
+
+#define REACTOS_VERSION_DLL
+#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Control Panel Console Applet\0"
+#define REACTOS_STR_INTERNAL_NAME "powercfg\0"
+#define REACTOS_STR_ORIGINAL_FILENAME "console.dll\0"
+#include
+
+#include "en.rc"
diff --git a/reactos/dll/win32/console/en.rc b/reactos/dll/win32/console/en.rc
new file mode 100644
index 00000000000..e24ccf6c385
--- /dev/null
+++ b/reactos/dll/win32/console/en.rc
@@ -0,0 +1,71 @@
+/* $Id$
+ *
+ * PROJECT: ReactOS Console Configuration DLL
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: dll/win32/console/en.rc
+ * PURPOSE: English resource file
+ * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at)
+ */
+
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+IDD_PROPPAGEOPTIONS DIALOGEX 0, 0, 250, 220
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Options"
+FONT 8, "MS Shell Dlg"
+EXSTYLE DS_SHELLFONT
+BEGIN
+GROUPBOX "Cursor Size", -1, 15, 15, 120, 70
+CONTROL "&Small", IDC_RADIO_SMALL_CURSOR, "Button", 0x50010009, 25, 25, 90, 10
+CONTROL "&Medium", IDC_RADIO_MEDIUM_CURSOR, "Button", 0x50010009, 25, 40, 90, 10
+CONTROL "&Large", IDC_RADIO_LARGE_CURSOR, "Button", 0x50010009, 25, 55, 90, 10
+GROUPBOX "Display Options", -1, 140, 15, 100, 70
+CONTROL "&Window", IDC_RADIO_DISPLAY_WINDOW, "Button", 0x50010009, 150, 35, 70, 10
+CONTROL "F&ull Screen", IDC_RADIO_DISPLAY_FULL, "Button", 0x50010009, 150, 50, 70, 10
+GROUPBOX "Command History:", -1, 15, 90, 120, 70
+LTEXT "&Buffer Size", -1, 25, 100, 60, 15
+EDITTEXT IDC_EDIT_BUFFER_SIZE, 90, 100, 30, 15, ES_RIGHT | WS_GROUP
+CONTROL "", IDC_UPDOWN_BUFFER_SIZE, UPDOWN_CLASS,UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER | WS_GROUP, 115, 100, 12, 12
+LTEXT "&Number of Buffers:", -1, 25, 120, 80, 15
+EDITTEXT IDC_EDIT_NUM_BUFFER, 90, 120, 30, 15, ES_RIGHT | WS_GROUP
+CONTROL "", IDC_UPDOWN_NUM_BUFFER, UPDOWN_CLASS,UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER | WS_GROUP, 115, 120, 12, 12
+CHECKBOX "&Discard Old Duplicates", IDC_CHECK_DISCARD_DUPLICATES, 25, 140, 100, 15
+
+
+GROUPBOX "Edit Options", -1, 140, 90, 100, 70
+CHECKBOX "&QuickEdit Mode", IDC_CHECK_QUICK_EDIT, 150, 100, 60, 15
+CHECKBOX "&Insert Mode", IDC_CHECK_INSERT_MODE, 150, 120, 60, 15
+END
+
+IDD_PROPPAGEFONT DIALOGEX 0, 0, 220, 220
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Font"
+FONT 8, "MS Shell Dlg"
+EXSTYLE DS_SHELLFONT
+BEGIN
+LTEXT "This space is intentionally left blank", -1, 55, 103, 120, 10
+END
+
+IDD_PROPPAGELAYOUT DIALOGEX 0, 0, 220, 220
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Layout"
+FONT 8, "MS Shell Dlg"
+EXSTYLE DS_SHELLFONT
+BEGIN
+LTEXT "This space is intentionally left blank", -1, 55, 103, 120, 10
+END
+
+IDD_PROPPAGECOLORS DIALOGEX 0, 0, 220, 220
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Colors"
+FONT 8, "MS Shell Dlg"
+EXSTYLE DS_SHELLFONT
+BEGIN
+LTEXT "This space is intentionally left blank", -1, 55, 103, 120, 10
+END
+
+STRINGTABLE
+BEGIN
+ IDS_CPLNAME "Console"
+ IDS_CPLDESCRIPTION "Configures console properties."
+END
diff --git a/reactos/dll/win32/console/font.c b/reactos/dll/win32/console/font.c
new file mode 100644
index 00000000000..15f2739795b
--- /dev/null
+++ b/reactos/dll/win32/console/font.c
@@ -0,0 +1,38 @@
+/* $Id$
+ *
+ * PROJECT: ReactOS Console Configuration DLL
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: dll/win32/console/font.c
+ * PURPOSE: displays font dialog
+ * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at)
+ */
+
+
+#include "ntstatus.h"
+#define WIN32_NO_STATUS
+#include
+#include
+#include
+#include "resource.h"
+
+
+INT_PTR
+CALLBACK
+FontProc(
+ HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam
+)
+{
+ switch(uMsg)
+ {
+ case WM_INITDIALOG:
+ return TRUE;
+
+ default:
+ break;
+ }
+
+ return FALSE;
+}
diff --git a/reactos/dll/win32/console/layout.c b/reactos/dll/win32/console/layout.c
new file mode 100644
index 00000000000..f7082cfbaf2
--- /dev/null
+++ b/reactos/dll/win32/console/layout.c
@@ -0,0 +1,37 @@
+/* $Id$
+ *
+ * PROJECT: ReactOS Console Configuration DLL
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: dll/win32/console/layout.c
+ * PURPOSE: displays layout dialog
+ * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at)
+ */
+
+#include "ntstatus.h"
+#define WIN32_NO_STATUS
+#include
+#include
+#include
+#include "resource.h"
+
+
+INT_PTR
+CALLBACK
+LayoutProc(
+ HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam
+)
+{
+ switch(uMsg)
+ {
+ case WM_INITDIALOG:
+ return TRUE;
+
+ default:
+ break;
+ }
+
+ return FALSE;
+}
diff --git a/reactos/dll/win32/console/options.c b/reactos/dll/win32/console/options.c
new file mode 100644
index 00000000000..f55dfef820a
--- /dev/null
+++ b/reactos/dll/win32/console/options.c
@@ -0,0 +1,38 @@
+/* $Id$
+ *
+ * PROJECT: ReactOS Console Configuration DLL
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: dll/win32/console/options.c
+ * PURPOSE: displays options dialog
+ * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at)
+ */
+
+
+#include "ntstatus.h"
+#define WIN32_NO_STATUS
+#include
+#include
+#include
+#include "resource.h"
+
+
+INT_PTR
+CALLBACK
+OptionsProc(
+ HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam
+)
+{
+ switch(uMsg)
+ {
+ case WM_INITDIALOG:
+ return TRUE;
+
+ default:
+ break;
+ }
+
+ return FALSE;
+}
diff --git a/reactos/dll/win32/console/resource.h b/reactos/dll/win32/console/resource.h
new file mode 100644
index 00000000000..4499c8d2f66
--- /dev/null
+++ b/reactos/dll/win32/console/resource.h
@@ -0,0 +1,26 @@
+#ifndef RESOURCE_H__
+#define RESOURCE_H__
+
+#define IDC_CPLICON 40
+#define IDS_CPLNAME 41
+#define IDS_CPLDESCRIPTION 42
+
+#define IDD_PROPPAGEOPTIONS 100
+#define IDD_PROPPAGEFONT 101
+#define IDD_PROPPAGELAYOUT 102
+#define IDD_PROPPAGECOLORS 103
+
+#define IDC_CHECK_QUICK_EDIT 200
+#define IDC_CHECK_INSERT_MODE 201
+#define IDC_CHECK_DISCARD_DUPLICATES 202
+#define IDC_EDIT_BUFFER_SIZE 203
+#define IDC_UPDOWN_BUFFER_SIZE 204
+#define IDC_EDIT_NUM_BUFFER 205
+#define IDC_UPDOWN_NUM_BUFFER 206
+#define IDC_RADIO_SMALL_CURSOR 207
+#define IDC_RADIO_MEDIUM_CURSOR 208
+#define IDC_RADIO_LARGE_CURSOR 209
+#define IDC_RADIO_DISPLAY_WINDOW 210
+#define IDC_RADIO_DISPLAY_FULL 211
+
+#endif
diff --git a/reactos/dll/win32/win32.rbuild b/reactos/dll/win32/win32.rbuild
index a6a946b281c..54ff665e0a7 100644
--- a/reactos/dll/win32/win32.rbuild
+++ b/reactos/dll/win32/win32.rbuild
@@ -28,6 +28,9 @@
+
+
+