From ae23c43fe81491ab9bc6658db6aea5d036291364 Mon Sep 17 00:00:00 2001 From: Ged Murphy Date: Mon, 19 Oct 2015 13:52:12 +0000 Subject: [PATCH] [DEVMGR] - Implement the add new hardware wizard - fix stray header CORE-10363 svn path=/trunk/; revision=69619 --- reactos/dll/win32/devmgr/api.cpp | 1 - .../dll/win32/devmgr/devmgmt/DeviceView.cpp | 61 ++++++++----------- reactos/dll/win32/devmgr/devmgmt/DeviceView.h | 3 + reactos/dll/win32/devmgr/precomp.h | 3 + .../dll/win32/devmgr/properties/advprop.cpp | 1 - .../dll/win32/devmgr/properties/devprblm.cpp | 1 - .../dll/win32/devmgr/properties/hwpage.cpp | 1 - .../win32/devmgr/properties/hwresource.cpp | 1 - reactos/dll/win32/devmgr/properties/misc.cpp | 1 - 9 files changed, 32 insertions(+), 41 deletions(-) diff --git a/reactos/dll/win32/devmgr/api.cpp b/reactos/dll/win32/devmgr/api.cpp index 1404d0aba2c..679e6b43b08 100644 --- a/reactos/dll/win32/devmgr/api.cpp +++ b/reactos/dll/win32/devmgr/api.cpp @@ -17,7 +17,6 @@ */ #include "precomp.h" -#include #include "devmgmt/MainWindow.h" #include "properties/properties.h" diff --git a/reactos/dll/win32/devmgr/devmgmt/DeviceView.cpp b/reactos/dll/win32/devmgr/devmgmt/DeviceView.cpp index 0119b0cee8b..ec9429147ac 100644 --- a/reactos/dll/win32/devmgr/devmgmt/DeviceView.cpp +++ b/reactos/dll/win32/devmgr/devmgmt/DeviceView.cpp @@ -19,18 +19,8 @@ #define CLASS_DESC_LEN 256 #define ROOT_NAME_SIZE MAX_COMPUTERNAME_LENGTH + 1 -extern "C" { -INT_PTR -WINAPI -DevicePropertiesExW( - IN HWND hWndParent OPTIONAL, - IN LPCWSTR lpMachineName OPTIONAL, - IN LPCWSTR lpDeviceID OPTIONAL, - IN DWORD dwFlags OPTIONAL, - IN BOOL bShowDevMgr -); -} -typedef INT_PTR(WINAPI *pDevicePropertiesExW)(HWND,LPCWSTR,LPCWSTR,DWORD,BOOL); + +typedef VOID(WINAPI *PADDHARDWAREWIZARD)(HWND hwnd, LPWSTR lpName); struct RefreshThreadData { @@ -284,7 +274,7 @@ CDeviceView::OnAction( case IDC_ADD_HARDWARE: { - MessageBox(m_hMainWnd, L"Not yet implemented", L"Add Hardware", MB_OK); + RunAddHardwareWizard(); break; } } @@ -295,24 +285,6 @@ CDeviceView::OnAction( void CDeviceView::DisplayPropertySheet() { - // - // In ReactOS we can link to DevicePropertiesEx but - // not in windows as it's not part of the SDK - -#ifndef __REACTOS__ - HMODULE hModule = LoadLibraryW(L"devmgr.dll"); - if (hModule == NULL) return; - - pDevicePropertiesExW DevicePropertiesExW; - DevicePropertiesExW = (pDevicePropertiesExW)GetProcAddress(hModule, - "DevicePropertiesExW"); - if (DevicePropertiesExW == NULL) - { - FreeLibrary(hModule); - return; - } -#endif - CNode *Node = GetSelectedNode(); if (Node && Node->HasProperties()) { @@ -322,10 +294,6 @@ CDeviceView::DisplayPropertySheet() 1,//DPF_EXTENDED, FALSE); } - -#ifndef __REACTOS__ - FreeLibrary(hModule); -#endif } void @@ -781,6 +749,29 @@ CDeviceView::UninstallSelectedDevice( return Node->UninstallDevice(); } +bool +CDeviceView::RunAddHardwareWizard() +{ + PADDHARDWAREWIZARD pAddHardwareWizard; + HMODULE hModule; + + hModule = LoadLibraryW(L"hdwwiz.cpl"); + if (hModule == NULL) return false; + + pAddHardwareWizard = (PADDHARDWAREWIZARD)GetProcAddress(hModule, + "AddHardwareWizard"); + if (pAddHardwareWizard == NULL) + { + FreeLibrary(hModule); + return false; + } + + pAddHardwareWizard(m_hMainWnd, NULL); + + FreeLibrary(hModule); + return true; +} + bool CDeviceView::GetChildDevice( _In_ DEVINST ParentDevInst, diff --git a/reactos/dll/win32/devmgr/devmgmt/DeviceView.h b/reactos/dll/win32/devmgr/devmgmt/DeviceView.h index f82d951bd7a..24973f05b75 100644 --- a/reactos/dll/win32/devmgr/devmgmt/DeviceView.h +++ b/reactos/dll/win32/devmgr/devmgmt/DeviceView.h @@ -122,6 +122,9 @@ private: bool UninstallSelectedDevice( ); + bool RunAddHardwareWizard( + ); + bool GetChildDevice( _In_ DEVINST ParentDevInst, _Out_ PDEVINST DevInst diff --git a/reactos/dll/win32/devmgr/precomp.h b/reactos/dll/win32/devmgr/precomp.h index eb165778275..2a3c6322d95 100644 --- a/reactos/dll/win32/devmgr/precomp.h +++ b/reactos/dll/win32/devmgr/precomp.h @@ -22,6 +22,8 @@ #include +#include + #define ERR printf #define FIXME printf #define UNIMPLEMENTED @@ -68,6 +70,7 @@ OUT LPDWORD lpReboot); #include #include +#include #include //WINE_DEFAULT_DEBUG_CHANNEL(devmgr); diff --git a/reactos/dll/win32/devmgr/properties/advprop.cpp b/reactos/dll/win32/devmgr/properties/advprop.cpp index fbe10399175..4386667bc0d 100644 --- a/reactos/dll/win32/devmgr/properties/advprop.cpp +++ b/reactos/dll/win32/devmgr/properties/advprop.cpp @@ -28,7 +28,6 @@ */ #include "precomp.h" -#include #include "properties.h" #include "resource.h" diff --git a/reactos/dll/win32/devmgr/properties/devprblm.cpp b/reactos/dll/win32/devmgr/properties/devprblm.cpp index ecac5b8e746..b2017003009 100644 --- a/reactos/dll/win32/devmgr/properties/devprblm.cpp +++ b/reactos/dll/win32/devmgr/properties/devprblm.cpp @@ -26,7 +26,6 @@ */ #include "precomp.h" -#include #include "properties.h" #include "resource.h" diff --git a/reactos/dll/win32/devmgr/properties/hwpage.cpp b/reactos/dll/win32/devmgr/properties/hwpage.cpp index da413fdaed6..8c1613cc5e8 100644 --- a/reactos/dll/win32/devmgr/properties/hwpage.cpp +++ b/reactos/dll/win32/devmgr/properties/hwpage.cpp @@ -26,7 +26,6 @@ */ #include "precomp.h" -#include #include "properties.h" #include "resource.h" diff --git a/reactos/dll/win32/devmgr/properties/hwresource.cpp b/reactos/dll/win32/devmgr/properties/hwresource.cpp index c2cb8e1e854..7fbf8589ff2 100644 --- a/reactos/dll/win32/devmgr/properties/hwresource.cpp +++ b/reactos/dll/win32/devmgr/properties/hwresource.cpp @@ -8,7 +8,6 @@ */ #include "precomp.h" -#include #include "properties.h" #include "resource.h" diff --git a/reactos/dll/win32/devmgr/properties/misc.cpp b/reactos/dll/win32/devmgr/properties/misc.cpp index d2e57d90b29..5dbe6a4ea0c 100644 --- a/reactos/dll/win32/devmgr/properties/misc.cpp +++ b/reactos/dll/win32/devmgr/properties/misc.cpp @@ -26,7 +26,6 @@ */ #include "precomp.h" -#include #include "properties.h" #include "resource.h"