diff --git a/reactos/base/applications/applications.rbuild b/reactos/base/applications/applications.rbuild index d12576a6868..5171e945b45 100644 --- a/reactos/base/applications/applications.rbuild +++ b/reactos/base/applications/applications.rbuild @@ -16,6 +16,9 @@ + + + diff --git a/reactos/base/applications/dxdiag/display.c b/reactos/base/applications/dxdiag/display.c new file mode 100644 index 00000000000..e03678a0880 --- /dev/null +++ b/reactos/base/applications/dxdiag/display.c @@ -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 index 00000000000..527174f63b2 --- /dev/null +++ b/reactos/base/applications/dxdiag/dxdiag.c @@ -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 index 00000000000..7f481fbf8c0 --- /dev/null +++ b/reactos/base/applications/dxdiag/dxdiag.rbuild @@ -0,0 +1,24 @@ + + + + . + + + 0x600 + 0x501 + kernel32 + user32 + advapi32 + comctl32 + shell32 + system.c + display.c + sound.c + music.c + input.c + network.c + help.c + dxdiag.c + dxdiag.rc + precomp.h + diff --git a/reactos/base/applications/dxdiag/dxdiag.rc b/reactos/base/applications/dxdiag/dxdiag.rc new file mode 100644 index 00000000000..f82fd2375c4 --- /dev/null +++ b/reactos/base/applications/dxdiag/dxdiag.rc @@ -0,0 +1,16 @@ +#include +#include + +#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 + +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 index 00000000000..08d09f7a174 --- /dev/null +++ b/reactos/base/applications/dxdiag/help.c @@ -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 index 00000000000..8eb5a6bfbfe --- /dev/null +++ b/reactos/base/applications/dxdiag/input.c @@ -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 index 00000000000..97580fc90e9 --- /dev/null +++ b/reactos/base/applications/dxdiag/lang/de-DE.rc @@ -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 index 00000000000..ea3849e359b --- /dev/null +++ b/reactos/base/applications/dxdiag/lang/en-US.rc @@ -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 index 00000000000..8bf67314f9b --- /dev/null +++ b/reactos/base/applications/dxdiag/music.c @@ -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 index 00000000000..24d5f821a3b --- /dev/null +++ b/reactos/base/applications/dxdiag/network.c @@ -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 index 00000000000..b71f1abbe4b --- /dev/null +++ b/reactos/base/applications/dxdiag/precomp.h @@ -0,0 +1,29 @@ +#ifndef PRECOMP_H__ +#define PRECOMP_H__ + +#include +#include + +#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 index 00000000000..6ac41378e4d 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 index 00000000000..fdd1af3a7d4 --- /dev/null +++ b/reactos/base/applications/dxdiag/resource.h @@ -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 index 00000000000..3a4a4667f18 --- /dev/null +++ b/reactos/base/applications/dxdiag/rsrc.rc @@ -0,0 +1,8 @@ + +#include +#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 index 00000000000..83db305ce6e --- /dev/null +++ b/reactos/base/applications/dxdiag/sound.c @@ -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 index 00000000000..5c2bbc0d974 --- /dev/null +++ b/reactos/base/applications/dxdiag/system.c @@ -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; +}