- start implementing dxdiag
authorJohannes Anderwald <johannes.anderwald@reactos.org>
Wed, 16 Apr 2008 11:01:25 +0000 (11:01 +0000)
committerJohannes Anderwald <johannes.anderwald@reactos.org>
Wed, 16 Apr 2008 11:01:25 +0000 (11:01 +0000)
- does not do anything yet

svn path=/trunk/; revision=32985

17 files changed:
reactos/base/applications/applications.rbuild
reactos/base/applications/dxdiag/display.c [new file with mode: 0644]
reactos/base/applications/dxdiag/dxdiag.c [new file with mode: 0644]
reactos/base/applications/dxdiag/dxdiag.rbuild [new file with mode: 0644]
reactos/base/applications/dxdiag/dxdiag.rc [new file with mode: 0644]
reactos/base/applications/dxdiag/help.c [new file with mode: 0644]
reactos/base/applications/dxdiag/input.c [new file with mode: 0644]
reactos/base/applications/dxdiag/lang/de-DE.rc [new file with mode: 0644]
reactos/base/applications/dxdiag/lang/en-US.rc [new file with mode: 0644]
reactos/base/applications/dxdiag/music.c [new file with mode: 0644]
reactos/base/applications/dxdiag/network.c [new file with mode: 0644]
reactos/base/applications/dxdiag/precomp.h [new file with mode: 0644]
reactos/base/applications/dxdiag/res/dxdiag.ico [new file with mode: 0644]
reactos/base/applications/dxdiag/resource.h [new file with mode: 0644]
reactos/base/applications/dxdiag/rsrc.rc [new file with mode: 0644]
reactos/base/applications/dxdiag/sound.c [new file with mode: 0644]
reactos/base/applications/dxdiag/system.c [new file with mode: 0644]

index d12576a..5171e94 100644 (file)
@@ -16,6 +16,9 @@
        <directory name="control">
                <xi:include href="control/control.rbuild" />
        </directory>
+       <directory name="dxdiag">
+               <xi:include href="dxdiag/dxdiag.rbuild" />
+       </directory>
        <directory name="games">
                <xi:include href="games/games.rbuild" />
        </directory>
diff --git a/reactos/base/applications/dxdiag/display.c b/reactos/base/applications/dxdiag/display.c
new file mode 100644 (file)
index 0000000..e03678a
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * PROJECT:     ReactX Diagnosis Application
+ * LICENSE:     LGPL - See COPYING in the top level directory
+ * FILE:        base/applications/dxdiag/display.c
+ * PURPOSE:     ReactX diagnosis display page
+ * COPYRIGHT:   Copyright 2008 Johannes Anderwald
+ *
+ */
+
+#include "precomp.h"
+
+INT_PTR CALLBACK
+DisplayPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    UNREFERENCED_PARAMETER(lParam);
+    UNREFERENCED_PARAMETER(wParam);
+    switch (message) {
+        case WM_INITDIALOG:
+        {
+            SetWindowPos(hDlg, NULL, 10, 32, 0, 0, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
+            return TRUE;
+        }
+    }
+
+    return FALSE;
+}
diff --git a/reactos/base/applications/dxdiag/dxdiag.c b/reactos/base/applications/dxdiag/dxdiag.c
new file mode 100644 (file)
index 0000000..527174f
--- /dev/null
@@ -0,0 +1,201 @@
+/*
+ * PROJECT:     ReactX Diagnosis Application
+ * LICENSE:     LGPL - See COPYING in the top level directory
+ * FILE:        base/applications/dxdiag/dxdiag.c
+ * PURPOSE:     ReactX diagnosis application entry
+ * COPYRIGHT:   Copyright 2008 Johannes Anderwald
+ *
+ */
+
+#include "precomp.h"
+
+/* globals */
+HINSTANCE hInst = 0;
+HWND hTabCtrlWnd;
+
+//---------------------------------------------------------------
+VOID
+DestroyTabCtrlDialogs(PDXDIAG_CONTEXT pContext)
+{
+    UINT Index;
+
+    for(Index = 0; Index < 7; Index++)
+    {
+       if (pContext->hDialogs[Index])
+           DestroyWindow(pContext->hDialogs[Index]);
+    }
+}
+
+//---------------------------------------------------------------
+VOID
+InsertTabCtrlItem(HWND hDlgCtrl, INT Position, UINT uId)
+{
+    WCHAR szName[100];
+    TCITEMW item;
+
+    /* load item name */
+    szName[0] = L'\0';
+    if (!LoadStringW(hInst, uId, szName, 100))
+        return;
+    szName[99] = L'\0';
+
+    /* setup item info */
+    memset(&item, 0, sizeof(TCITEM));
+    item.mask = TCIF_TEXT;
+    item.pszText = szName;
+
+    (void)TabCtrl_InsertItemW(hDlgCtrl, Position, &item);
+}
+
+VOID
+TabCtrl_OnSelChange(PDXDIAG_CONTEXT pContext)
+{
+    INT Index;
+    INT CurSel;
+
+    /* retrieve new page */
+    CurSel = TabCtrl_GetCurSel(hTabCtrlWnd);
+    if (CurSel < 0 || CurSel > 7)
+        return;
+
+    /* show active page */
+    for(Index = 0; Index < 7; Index++)
+    {
+         if (Index == CurSel)
+             ShowWindow(pContext->hDialogs[Index], SW_SHOW);
+         else
+             ShowWindow(pContext->hDialogs[Index], SW_HIDE);
+    }
+
+    /* make sure its displayed */
+    BringWindowToTop(pContext->hDialogs[CurSel]);
+}
+
+
+VOID
+InitializeTabCtrl(HWND hwndDlg, PDXDIAG_CONTEXT pContext)
+{
+    /* create the dialogs */
+    pContext->hDialogs[0] = CreateDialogParamW(hInst, MAKEINTRESOURCEW(IDD_SYSTEM_DIALOG), hwndDlg, SystemPageWndProc, (LPARAM)pContext);
+    pContext->hDialogs[1] = CreateDialogParamW(hInst, MAKEINTRESOURCEW(IDD_DISPLAY_DIALOG), hwndDlg, DisplayPageWndProc, (LPARAM)pContext);
+    pContext->hDialogs[2] = CreateDialogParamW(hInst, MAKEINTRESOURCEW(IDD_SOUND_DIALOG), hwndDlg, SoundPageWndProc, (LPARAM)pContext);
+    pContext->hDialogs[3] = CreateDialogParamW(hInst, MAKEINTRESOURCEW(IDD_MUSIC_DIALOG), hwndDlg, MusicPageWndProc, (LPARAM)pContext);
+    pContext->hDialogs[4] = CreateDialogParamW(hInst, MAKEINTRESOURCEW(IDD_INPUT_DIALOG), hwndDlg, InputPageWndProc, (LPARAM)pContext);
+    pContext->hDialogs[5] = CreateDialogParamW(hInst, MAKEINTRESOURCEW(IDD_NETWORK_DIALOG), hwndDlg, NetworkPageWndProc, (LPARAM)pContext);
+    pContext->hDialogs[6] = CreateDialogParamW(hInst, MAKEINTRESOURCEW(IDD_HELP_DIALOG), hwndDlg, HelpPageWndProc, (LPARAM)pContext);
+
+    /* insert tab ctrl items */
+    hTabCtrlWnd = GetDlgItem(hwndDlg, IDC_TAB_CONTROL);
+    InsertTabCtrlItem(hTabCtrlWnd, 0, IDS_SYSTEM_DIALOG);
+    InsertTabCtrlItem(hTabCtrlWnd, 1, IDS_DISPLAY_DIALOG);
+    InsertTabCtrlItem(hTabCtrlWnd, 2, IDS_SOUND_DIALOG);
+    InsertTabCtrlItem(hTabCtrlWnd, 3, IDS_MUSIC_DIALOG);
+    InsertTabCtrlItem(hTabCtrlWnd, 4, IDS_INPUT_DIALOG);
+    InsertTabCtrlItem(hTabCtrlWnd, 5, IDS_NETWORK_DIALOG);
+    InsertTabCtrlItem(hTabCtrlWnd, 6, IDS_HELP_DIALOG);
+
+    TabCtrl_OnSelChange(pContext);
+}
+
+VOID
+InitializeDxDiagDialog(HWND hwndDlg)
+{
+    PDXDIAG_CONTEXT pContext;
+    HICON hIcon;
+
+    pContext = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DXDIAG_CONTEXT));
+    if (!pContext)
+        return;
+
+    /* store the context */
+    SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pContext);
+
+    /* initialize the tab ctrl */
+    InitializeTabCtrl(hwndDlg, pContext);
+
+    /* load application icon */
+    hIcon = LoadImageW(hInst, MAKEINTRESOURCEW(IDI_APPICON), IMAGE_ICON, 16, 16, 0);
+    if (!hIcon)
+        return;
+    /* display icon */
+    SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)hIcon);
+}
+
+
+INT_PTR CALLBACK
+DxDiagWndProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    LPNMHDR         pnmh;
+    PDXDIAG_CONTEXT pContext;
+
+    pContext = (PDXDIAG_CONTEXT)GetWindowLongPtr(hwndDlg, DWLP_USER);
+
+    switch (message)
+    {
+        case WM_INITDIALOG:
+            InitializeDxDiagDialog(hwndDlg);
+            return TRUE;
+        case WM_COMMAND:
+            if (LOWORD(wParam) == IDC_BUTTON_SAVE_INFO)
+            {
+               //TODO
+               /* handle save information */
+               return TRUE;
+            }
+
+            if (LOWORD(wParam) == IDC_BUTTON_NEXT)
+            {
+               //TODO
+               /* handle next button */
+               return TRUE;
+            }
+
+            if (LOWORD(wParam) == IDC_BUTTON_HELP)
+            {
+               //TODO
+               /* handle help button */
+               return TRUE;
+            }
+
+            if (LOWORD(wParam) == IDCANCEL || LOWORD(wParam) == IDC_BUTTON_EXIT) {
+                EndDialog(hwndDlg, LOWORD(wParam));
+                return TRUE;
+            }
+            break;
+
+        case WM_NOTIFY:
+            pnmh = (LPNMHDR)lParam;
+            if ((pnmh->hwndFrom == hTabCtrlWnd) && (pnmh->idFrom == IDC_TAB_CONTROL) && (pnmh->code == TCN_SELCHANGE))
+            {
+                TabCtrl_OnSelChange(pContext);
+            }
+            break;
+        case WM_DESTROY:
+            DestroyTabCtrlDialogs(pContext);
+            return DefWindowProc(hwndDlg, message, wParam, lParam);
+    }
+    return 0;
+}
+
+int APIENTRY WinMain(HINSTANCE hInstance,
+                     HINSTANCE hPrevInstance,
+                     LPSTR     lpCmdLine,
+                     int       nCmdShow)
+{
+
+    INITCOMMONCONTROLSEX InitControls;
+
+    UNREFERENCED_PARAMETER(hPrevInstance);
+    UNREFERENCED_PARAMETER(lpCmdLine);
+    UNREFERENCED_PARAMETER(nCmdShow);
+
+    InitControls.dwSize = sizeof(INITCOMMONCONTROLSEX);
+    InitControls.dwICC = ICC_TAB_CLASSES | ICC_LISTVIEW_CLASSES;
+    InitCommonControlsEx(&InitControls);
+
+    hInst = hInstance;
+    DialogBox(hInst, MAKEINTRESOURCE(IDD_MAIN_DIALOG), NULL, (DLGPROC) DxDiagWndProc);
+  
+    return 0;
+}
diff --git a/reactos/base/applications/dxdiag/dxdiag.rbuild b/reactos/base/applications/dxdiag/dxdiag.rbuild
new file mode 100644 (file)
index 0000000..7f481fb
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
+<module name="dxdiag" type="win32gui" installbase="system32" installname="dxdiag.exe">
+       <include base="dxdiag">.</include>
+       <define name="UNICODE" />
+       <define name="_UNICODE" />
+       <define name="_WIN32_IE">0x600</define>
+       <define name="_WIN32_WINNT">0x501</define>
+       <library>kernel32</library>
+       <library>user32</library>
+       <library>advapi32</library>
+       <library>comctl32</library>
+       <library>shell32</library>
+       <file>system.c</file>
+       <file>display.c</file>
+       <file>sound.c</file>
+       <file>music.c</file>
+       <file>input.c</file>
+       <file>network.c</file>
+       <file>help.c</file>
+       <file>dxdiag.c</file>
+       <file>dxdiag.rc</file>
+       <pch>precomp.h</pch>
+</module>
diff --git a/reactos/base/applications/dxdiag/dxdiag.rc b/reactos/base/applications/dxdiag/dxdiag.rc
new file mode 100644 (file)
index 0000000..f82fd23
--- /dev/null
@@ -0,0 +1,16 @@
+#include <windows.h>
+#include <commctrl.h>
+
+#include "resource.h"
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+
+#define REACTOS_VERSION_DLL
+#define REACTOS_STR_FILE_DESCRIPTION   "ReactX Diagnosis Tool\0"
+#define REACTOS_STR_INTERNAL_NAME      "dxdiag\0"
+#define REACTOS_STR_ORIGINAL_FILENAME  "dxdiag.exe\0"
+#include <reactos/version.rc>
+
+IDI_APPICON   ICON "res/dxdiag.ico"
+
+#include "rsrc.rc"
diff --git a/reactos/base/applications/dxdiag/help.c b/reactos/base/applications/dxdiag/help.c
new file mode 100644 (file)
index 0000000..08d09f7
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * PROJECT:     ReactX Diagnosis Application
+ * LICENSE:     LGPL - See COPYING in the top level directory
+ * FILE:        base/applications/dxdiag/dxdiag.c
+ * PURPOSE:     ReactX diagnosis help page
+ * COPYRIGHT:   Copyright 2008 Johannes Anderwald
+ *
+ */
+
+#include "precomp.h"
+
+INT_PTR CALLBACK
+HelpPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    UNREFERENCED_PARAMETER(lParam);
+    UNREFERENCED_PARAMETER(wParam);
+    switch (message) {
+        case WM_INITDIALOG:
+        {
+            SetWindowPos(hDlg, NULL, 10, 32, 0, 0, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
+            return TRUE;
+        }
+    }
+
+    return FALSE;
+}
diff --git a/reactos/base/applications/dxdiag/input.c b/reactos/base/applications/dxdiag/input.c
new file mode 100644 (file)
index 0000000..8eb5a6b
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * PROJECT:     ReactX Diagnosis Application
+ * LICENSE:     LGPL - See COPYING in the top level directory
+ * FILE:        base/applications/dxdiag/input.c
+ * PURPOSE:     ReactX diagnosis input page
+ * COPYRIGHT:   Copyright 2008 Johannes Anderwald
+ *
+ */
+
+#include "precomp.h"
+
+INT_PTR CALLBACK
+InputPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    UNREFERENCED_PARAMETER(lParam);
+    UNREFERENCED_PARAMETER(wParam);
+    switch (message) {
+        case WM_INITDIALOG:
+        {
+            SetWindowPos(hDlg, NULL, 10, 32, 0, 0, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
+            return TRUE;
+        }
+    }
+
+    return FALSE;
+}
diff --git a/reactos/base/applications/dxdiag/lang/de-DE.rc b/reactos/base/applications/dxdiag/lang/de-DE.rc
new file mode 100644 (file)
index 0000000..97580fc
--- /dev/null
@@ -0,0 +1,71 @@
+LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
+
+IDD_MAIN_DIALOG DIALOGEX DISCARDABLE  0, 0, 378, 220
+STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP |
+    WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
+    WS_THICKFRAME
+CAPTION "ReactX-Diagnoseprogramm"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CONTROL "Tab1",IDC_TAB_CONTROL,"SysTabControl32",WS_TABSTOP,2,2,374,195
+    PUSHBUTTON "&Hilfe", IDC_BUTTON_HELP, 2, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+    DEFPUSHBUTTON "&Nächste Seite", IDC_BUTTON_NEXT, 137, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+    PUSHBUTTON "Alle &Informationen speichern...", IDC_BUTTON_SAVE_INFO, 200, 201, 110, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+    PUSHBUTTON "&Beenden", IDC_BUTTON_EXIT, 323, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+END
+
+IDD_SYSTEM_DIALOG DIALOGEX DISCARDABLE  0, 0, 362, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+IDD_DISPLAY_DIALOG DIALOGEX DISCARDABLE  0, 0, 362, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+
+IDD_SOUND_DIALOG DIALOGEX DISCARDABLE  0, 0, 362, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+IDD_MUSIC_DIALOG DIALOGEX DISCARDABLE  0, 0, 362, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+
+IDD_INPUT_DIALOG DIALOGEX DISCARDABLE  0, 0, 362, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+IDD_NETWORK_DIALOG DIALOGEX DISCARDABLE  0, 0, 362, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+IDD_HELP_DIALOG DIALOGEX DISCARDABLE  0, 0, 362, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+       IDS_MAIN_DIALOG "ReactX Diagnoseprogramm"
+       IDS_SYSTEM_DIALOG "System"
+       IDS_DISPLAY_DIALOG "Anzeige"
+       IDS_SOUND_DIALOG "Sound"
+       IDS_MUSIC_DIALOG "Musik"
+       IDS_INPUT_DIALOG "Eingabe"
+       IDS_NETWORK_DIALOG "Netzwerk"
+       IDS_HELP_DIALOG "Hilfe"
+END
diff --git a/reactos/base/applications/dxdiag/lang/en-US.rc b/reactos/base/applications/dxdiag/lang/en-US.rc
new file mode 100644 (file)
index 0000000..ea3849e
--- /dev/null
@@ -0,0 +1,71 @@
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+IDD_MAIN_DIALOG DIALOGEX DISCARDABLE  0, 0, 378, 220
+STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP |
+    WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
+    WS_THICKFRAME
+CAPTION "ReactX-Diagnoseprogramm"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CONTROL "Tab1",IDC_TAB_CONTROL,"SysTabControl32",WS_TABSTOP,2,2,374,195
+    PUSHBUTTON "&Help", IDC_BUTTON_HELP, 2, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+    DEFPUSHBUTTON "&Next Page", IDC_BUTTON_NEXT, 137, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+    PUSHBUTTON "&Save All Information...", IDC_BUTTON_SAVE_INFO, 201, 201, 110, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+    PUSHBUTTON "&Exit", IDC_BUTTON_EXIT, 323, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+END
+
+IDD_SYSTEM_DIALOG DIALOGEX DISCARDABLE  0, 0, 362, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+IDD_DISPLAY_DIALOG DIALOGEX DISCARDABLE  0, 0, 362, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+
+IDD_SOUND_DIALOG DIALOGEX DISCARDABLE  0, 0, 362, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+IDD_MUSIC_DIALOG DIALOGEX DISCARDABLE  0, 0, 362, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+
+IDD_INPUT_DIALOG DIALOGEX DISCARDABLE  0, 0, 362, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+IDD_NETWORK_DIALOG DIALOGEX DISCARDABLE  0, 0, 362, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+IDD_HELP_DIALOG DIALOGEX DISCARDABLE  0, 0, 362, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+       IDS_MAIN_DIALOG "ReactX Diagnostic Tool"
+       IDS_SYSTEM_DIALOG "System"
+       IDS_DISPLAY_DIALOG "Display"
+       IDS_SOUND_DIALOG "Sound"
+       IDS_MUSIC_DIALOG "Music"
+       IDS_INPUT_DIALOG "Input"
+       IDS_NETWORK_DIALOG "Network"
+       IDS_HELP_DIALOG "Help"
+END
diff --git a/reactos/base/applications/dxdiag/music.c b/reactos/base/applications/dxdiag/music.c
new file mode 100644 (file)
index 0000000..8bf6731
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * PROJECT:     ReactX Diagnosis Application
+ * LICENSE:     LGPL - See COPYING in the top level directory
+ * FILE:        base/applications/dxdiag/music.c
+ * PURPOSE:     ReactX diagnosis music page
+ * COPYRIGHT:   Copyright 2008 Johannes Anderwald
+ *
+ */
+
+#include "precomp.h"
+
+INT_PTR CALLBACK
+MusicPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    UNREFERENCED_PARAMETER(lParam);
+    UNREFERENCED_PARAMETER(wParam);
+    switch (message) {
+        case WM_INITDIALOG:
+        {
+            SetWindowPos(hDlg, NULL, 10, 32, 0, 0, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
+            return TRUE;
+        }
+    }
+
+    return FALSE;
+}
diff --git a/reactos/base/applications/dxdiag/network.c b/reactos/base/applications/dxdiag/network.c
new file mode 100644 (file)
index 0000000..24d5f82
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * PROJECT:     ReactX Diagnosis Application
+ * LICENSE:     LGPL - See COPYING in the top level directory
+ * FILE:        base/applications/dxdiag/dxdiag.c
+ * PURPOSE:     ReactX diagnosis network page
+ * COPYRIGHT:   Copyright 2008 Johannes Anderwald
+ *
+ */
+
+#include "precomp.h"
+
+INT_PTR CALLBACK
+NetworkPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    UNREFERENCED_PARAMETER(lParam);
+    UNREFERENCED_PARAMETER(wParam);
+    switch (message) {
+        case WM_INITDIALOG:
+        {
+            SetWindowPos(hDlg, NULL, 10, 32, 0, 0, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
+            return TRUE;
+        }
+    }
+
+    return FALSE;
+}
diff --git a/reactos/base/applications/dxdiag/precomp.h b/reactos/base/applications/dxdiag/precomp.h
new file mode 100644 (file)
index 0000000..b71f1ab
--- /dev/null
@@ -0,0 +1,29 @@
+#ifndef PRECOMP_H__
+#define PRECOMP_H__
+
+#include <windows.h>
+#include <commctrl.h>
+
+#include "resource.h"
+
+typedef struct
+{
+       HWND hDialogs[7];
+
+}DXDIAG_CONTEXT, *PDXDIAG_CONTEXT;
+
+
+/* globals */
+extern HINSTANCE hInst;
+
+/* dialog wnd proc */
+INT_PTR CALLBACK SystemPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK DisplayPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK SoundPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK MusicPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK InputPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK NetworkPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK HelpPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
+
+
+#endif
diff --git a/reactos/base/applications/dxdiag/res/dxdiag.ico b/reactos/base/applications/dxdiag/res/dxdiag.ico
new file mode 100644 (file)
index 0000000..6ac4137
Binary files /dev/null and b/reactos/base/applications/dxdiag/res/dxdiag.ico differ
diff --git a/reactos/base/applications/dxdiag/resource.h b/reactos/base/applications/dxdiag/resource.h
new file mode 100644 (file)
index 0000000..fdd1af3
--- /dev/null
@@ -0,0 +1,39 @@
+#ifndef RESOURCE_H__
+#define RESOURCE_H__
+
+/* dialog constants */
+#define IDD_MAIN_DIALOG          100
+#define IDD_SYSTEM_DIALOG 101
+#define IDD_DISPLAY_DIALOG 102
+#define IDD_SOUND_DIALOG   103
+#define IDD_MUSIC_DIALOG   104
+#define IDD_INPUT_DIALOG   105
+#define IDD_NETWORK_DIALOG 106
+#define IDD_HELP_DIALOG    107
+
+/* control constants */
+
+#define IDC_TAB_CONTROL           1000
+#define IDC_BUTTON_HELP           1001
+#define IDC_BUTTON_NEXT           1002
+#define IDC_BUTTON_SAVE_INFO      1003
+#define IDC_BUTTON_EXIT           1004
+
+
+
+
+/* string resource constants */
+#define IDS_MAIN_DIALOG           10000
+#define IDS_SYSTEM_DIALOG  10001
+#define IDS_DISPLAY_DIALOG 10002
+#define IDS_SOUND_DIALOG   10003
+#define IDS_MUSIC_DIALOG   10004
+#define IDS_INPUT_DIALOG   10005
+#define IDS_NETWORK_DIALOG 10006
+#define IDS_HELP_DIALOG    10007
+
+/* icon resource constants */
+#define IDI_APPICON        20000
+
+
+#endif
diff --git a/reactos/base/applications/dxdiag/rsrc.rc b/reactos/base/applications/dxdiag/rsrc.rc
new file mode 100644 (file)
index 0000000..3a4a466
--- /dev/null
@@ -0,0 +1,8 @@
+
+#include <windows.h>
+#include "resource.h"
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+
+#include "lang/de-DE.rc"
+#include "lang/en-US.rc"
diff --git a/reactos/base/applications/dxdiag/sound.c b/reactos/base/applications/dxdiag/sound.c
new file mode 100644 (file)
index 0000000..83db305
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * PROJECT:     ReactX Diagnosis Application
+ * LICENSE:     LGPL - See COPYING in the top level directory
+ * FILE:        base/applications/dxdiag/sound.c
+ * PURPOSE:     ReactX diagnosis sound page
+ * COPYRIGHT:   Copyright 2008 Johannes Anderwald
+ *
+ */
+
+#include "precomp.h"
+
+INT_PTR CALLBACK
+SoundPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    UNREFERENCED_PARAMETER(lParam);
+    UNREFERENCED_PARAMETER(wParam);
+    switch (message) {
+        case WM_INITDIALOG:
+        {
+            SetWindowPos(hDlg, NULL, 10, 32, 0, 0, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
+            return TRUE;
+        }
+    }
+
+    return FALSE;
+}
diff --git a/reactos/base/applications/dxdiag/system.c b/reactos/base/applications/dxdiag/system.c
new file mode 100644 (file)
index 0000000..5c2bbc0
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * PROJECT:     ReactX Diagnosis Application
+ * LICENSE:     LGPL - See COPYING in the top level directory
+ * FILE:        base/applications/dxdiag/system.c
+ * PURPOSE:     ReactX diagnosis system page
+ * COPYRIGHT:   Copyright 2008 Johannes Anderwald
+ *
+ */
+
+#include "precomp.h"
+
+INT_PTR CALLBACK
+SystemPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    UNREFERENCED_PARAMETER(lParam);
+    UNREFERENCED_PARAMETER(wParam);
+    switch (message) {
+        case WM_INITDIALOG:
+        {
+            SetWindowPos(hDlg, NULL, 10, 32, 0, 0, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
+            return TRUE;
+        }
+    }
+
+    return FALSE;
+}