2 * PROJECT: ReactOS System Control Panel Applet
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll/cpl/sysdm/hardware.c
5 * PURPOSE: Hardware devices
6 * COPYRIGHT: Copyright Thomas Weidenmueller <w3seek@reactos.org>
7 * Copyright 2006 Ged Murphy <gedmurphy@gmail.com>
13 typedef BOOL (WINAPI
*PDEVMGREXEC
)(HWND hWndParent
, HINSTANCE hInst
, PVOID Unknown
, int nCmdShow
);
16 LaunchDeviceManager(HWND hWndParent
)
18 /* Hack for ROS to start our devmgmt until we have MMC */
20 return ((INT_PTR
)ShellExecuteW(NULL
, L
"open", L
"devmgmt.exe", NULL
, NULL
, SW_SHOWNORMAL
) > 32);
23 PDEVMGREXEC DevMgrExec
;
26 hDll
= LoadLibrary(_TEXT("devmgr.dll"));
30 DevMgrExec
= (PDEVMGREXEC
)GetProcAddress(hDll
, "DeviceManager_ExecuteW");
37 /* Run the Device Manager */
38 Ret
= DevMgrExec(hWndParent
, hApplet
, NULL
/* ??? */, SW_SHOW
);
41 #endif /* __REACTOS__ */
45 LaunchHardwareWizard(HWND hWndParent
)
47 SHELLEXECUTEINFO shInputDll
;
49 memset(&shInputDll
, 0x0, sizeof(SHELLEXECUTEINFO
));
51 shInputDll
.cbSize
= sizeof(shInputDll
);
52 shInputDll
.hwnd
= hWndParent
;
53 shInputDll
.lpVerb
= _T("open");
54 shInputDll
.lpFile
= _T("rundll32.exe");
55 shInputDll
.lpParameters
= _T("shell32.dll,Control_RunDLL hdwwiz.cpl");
57 if (ShellExecuteEx(&shInputDll
) == 0)
60 _T("Can't start hdwwiz.cpl"),
62 MB_OK
| MB_ICONERROR
);
66 /* Property page dialog callback */
68 HardwarePageProc(HWND hwndDlg
,
73 UNREFERENCED_PARAMETER(lParam
);
81 switch (LOWORD(wParam
))
83 case IDC_HARDWARE_DEVICE_MANAGER
:
84 if (!LaunchDeviceManager(hwndDlg
))
90 case IDC_HARDWARE_WIZARD
:
91 LaunchHardwareWizard(hwndDlg
);
94 case IDC_HARDWARE_PROFILE
:
96 MAKEINTRESOURCE(IDD_HARDWAREPROFILES
),
98 (DLGPROC
)HardProfDlgProc
);