diff --git a/reactos/dll/cpl/sysdm/hardware.c b/reactos/dll/cpl/sysdm/hardware.c index f94897e638a..16701fd2f83 100644 --- a/reactos/dll/cpl/sysdm/hardware.c +++ b/reactos/dll/cpl/sysdm/hardware.c @@ -41,6 +41,28 @@ LaunchDeviceManager(HWND hWndParent) #endif /* __REACTOS__ */ } +static VOID +LaunchHardwareWizard(HWND hWndParent) +{ + SHELLEXECUTEINFO shInputDll; + + memset(&shInputDll, 0x0, sizeof(SHELLEXECUTEINFO)); + + shInputDll.cbSize = sizeof(shInputDll); + shInputDll.hwnd = hWndParent; + shInputDll.lpVerb = _T("open"); + shInputDll.lpFile = _T("rundll32.exe"); + shInputDll.lpParameters = _T("shell32.dll,Control_RunDLL hdwwiz.cpl"); + + if (ShellExecuteEx(&shInputDll) == 0) + { + MessageBox(NULL, + _T("Can't start hdwwiz.cpl"), + NULL, + MB_OK | MB_ICONERROR); + } +} + /* Property page dialog callback */ INT_PTR CALLBACK HardwarePageProc(HWND hwndDlg, @@ -65,6 +87,10 @@ HardwarePageProc(HWND hwndDlg, } return TRUE; + case IDC_HARDWARE_WIZARD: + LaunchHardwareWizard(hwndDlg); + return TRUE; + case IDC_HARDWARE_PROFILE: DialogBox(hApplet, MAKEINTRESOURCE(IDD_HARDWAREPROFILES),