Add "Add hardware" control panel applet.
Not added to the build, as InstallNewDevice in newdev.dll is not implemented
Modified: trunk/reactos/baseaddress.xml
Added: trunk/reactos/lib/cpl/hdwwiz/
Added: trunk/reactos/lib/cpl/hdwwiz/En.rc
Added: trunk/reactos/lib/cpl/hdwwiz/Fr.rc
Added: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.c
Added: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.def
Added: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.h
Added: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.rc
Added: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.xml
Added: trunk/reactos/lib/cpl/hdwwiz/resource.h
Added: trunk/reactos/lib/cpl/hdwwiz/resources/
Added: trunk/reactos/lib/cpl/hdwwiz/resources/applet.ico

Modified: trunk/reactos/baseaddress.xml
--- trunk/reactos/baseaddress.xml	2005-10-03 07:26:39 UTC (rev 18238)
+++ trunk/reactos/baseaddress.xml	2005-10-03 07:48:59 UTC (rev 18239)
@@ -5,6 +5,7 @@
 <property name="BASEADDRESS_UXTHEME" value="0x5AD70000" />
 <property name="BASEADDRESS_OBJSEL" value="0x5B400000" />
 <property name="BASEADDRESS_DINPUT" value="0x5F580000" />
+<property name="BASEADDRESS_HDWWIZ" value="0x64D40000" />
 <property name="BASEADDRESS_TIMEDATE" value="0x64DA0000" />
 <property name="BASEADDRESS_SYSDM" value="0x64DD0000" />
 <property name="BASEADDRESS_MAIN" value="0x64F40000" />
Property changes on: trunk/reactos/lib/cpl/hdwwiz
___________________________________________________________________
Name: svn:ignore
   + GNUmakefile

Added: trunk/reactos/lib/cpl/hdwwiz/En.rc
--- trunk/reactos/lib/cpl/hdwwiz/En.rc	2005-10-03 07:26:39 UTC (rev 18238)
+++ trunk/reactos/lib/cpl/hdwwiz/En.rc	2005-10-03 07:48:59 UTC (rev 18239)
@@ -0,0 +1,7 @@
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+STRINGTABLE
+BEGIN
+	IDS_CPLNAME "Add hardware"
+	IDS_CPLDESCRIPTION "Add hardware to your computer."
+END
Property changes on: trunk/reactos/lib/cpl/hdwwiz/En.rc
___________________________________________________________________
Name: svn:keywords
   + author date revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/cpl/hdwwiz/Fr.rc
--- trunk/reactos/lib/cpl/hdwwiz/Fr.rc	2005-10-03 07:26:39 UTC (rev 18238)
+++ trunk/reactos/lib/cpl/hdwwiz/Fr.rc	2005-10-03 07:48:59 UTC (rev 18239)
@@ -0,0 +1,7 @@
+LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+	IDS_CPLNAME "Ajout de matÚriel"
+	IDS_CPLDESCRIPTION "Ajoute un nouveau matÚriel Ó votre ordinateur."
+END
Property changes on: trunk/reactos/lib/cpl/hdwwiz/Fr.rc
___________________________________________________________________
Name: svn:keywords
   + author date revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.c
--- trunk/reactos/lib/cpl/hdwwiz/hdwwiz.c	2005-10-03 07:26:39 UTC (rev 18238)
+++ trunk/reactos/lib/cpl/hdwwiz/hdwwiz.c	2005-10-03 07:48:59 UTC (rev 18239)
@@ -0,0 +1,146 @@
+/*
+ * ReactOS New devices installation
+ * Copyright (C) 2005 ReactOS Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+/*
+ * PROJECT:         ReactOS Add hardware control panel
+ * FILE:            lib/cpl/hdwwiz/hdwwiz.c
+ * PURPOSE:         ReactOS Add hardware control panel
+ * PROGRAMMER:      HervÚ Poussineau (hpoussin@reactos.org)
+ */
+
+#include <windows.h>
+#include <commctrl.h>
+#include <setupapi.h>
+#include <cpl.h>
+#include <tchar.h>
+#include <stdio.h>
+
+#include "resource.h"
+#include "hdwwiz.h"
+
+LONG APIENTRY Applet(HWND hwnd, UINT uMsg, LONG wParam, LONG lParam);
+HINSTANCE hApplet = 0;
+
+/* Applets */
+APPLET Applets[] = 
+{
+	{IDI_CPLICON, IDS_CPLNAME, IDS_CPLDESCRIPTION, Applet}
+};
+
+typedef BOOL (*PINSTALL_NEW_DEVICE)(HWND, LPGUID, PDWORD);
+
+LONG APIENTRY
+Applet(HWND hwnd, UINT uMsg, LONG wParam, LONG lParam)
+{
+	HMODULE hNewDev = NULL;
+	PINSTALL_NEW_DEVICE InstallNewDevice;
+	DWORD Reboot;
+	BOOL ret;
+	LONG rc;
+
+	hNewDev = LoadLibrary(_T("newdev.dll"));
+	if (!hNewDev)
+	{
+		rc = 1;
+		goto cleanup;
+	}
+
+	InstallNewDevice = (PINSTALL_NEW_DEVICE)GetProcAddress(hNewDev, (LPCSTR)"InstallNewDevice");
+	if (!InstallNewDevice)
+	{
+		rc = 2;
+		goto cleanup;
+	}
+
+	ret = InstallNewDevice(hwnd, NULL, &Reboot);
+	if (!ret)
+	{
+		rc = 3;
+		goto cleanup;
+	}
+
+	if (Reboot != DI_NEEDRESTART && Reboot != DI_NEEDREBOOT)
+	{
+		/* We're done with installation */
+		rc = 0;
+		goto cleanup;
+	}
+
+	/* We need to reboot */
+	if (SetupPromptReboot(NULL, hwnd, FALSE) == -1)
+	{
+		/* User doesn't want to reboot, or an error occurred */
+		rc = 5;
+		goto cleanup;
+	}
+
+	rc = 0;
+
+cleanup:
+	if (hNewDev != NULL)
+		FreeLibrary(hNewDev);
+	return rc;
+}
+
+/* Control Panel Callback */
+LONG CALLBACK
+CPlApplet(HWND hwndCpl,
+	UINT uMsg,
+	LPARAM lParam1,
+	LPARAM lParam2)
+{
+	int i = (int)lParam1;
+
+	switch (uMsg)
+	{
+		case CPL_INIT:
+			return TRUE;
+
+		case CPL_GETCOUNT:
+			return sizeof(Applets)/sizeof(Applets[0]);
+
+		case CPL_INQUIRE:
+		{
+			CPLINFO *CPlInfo = (CPLINFO*)lParam2;
+			CPlInfo->lData = 0;
+			CPlInfo->idIcon = Applets[i].idIcon;
+			CPlInfo->idName = Applets[i].idName;
+			CPlInfo->idInfo = Applets[i].idDescription;
+			break;
+		}
+
+		case CPL_DBLCLK:
+		{
+			Applets[i].AppletProc(hwndCpl, uMsg, lParam1, lParam2);
+			break;
+		}
+	}
+	return FALSE;
+}
+
+BOOL WINAPI
+DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
+{
+	switch(dwReason)
+	{
+		case DLL_PROCESS_ATTACH:
+			hApplet = hinstDLL;
+			break;
+	}
+	return TRUE;
+}
Property changes on: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.c
___________________________________________________________________
Name: svn:keywords
   + author date revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.def
--- trunk/reactos/lib/cpl/hdwwiz/hdwwiz.def	2005-10-03 07:26:39 UTC (rev 18238)
+++ trunk/reactos/lib/cpl/hdwwiz/hdwwiz.def	2005-10-03 07:48:59 UTC (rev 18239)
@@ -0,0 +1,6 @@
+LIBRARY hdwwiz.cpl
+
+EXPORTS
+CPlApplet@16
+
+; EOF
Property changes on: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.def
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.h
--- trunk/reactos/lib/cpl/hdwwiz/hdwwiz.h	2005-10-03 07:26:39 UTC (rev 18238)
+++ trunk/reactos/lib/cpl/hdwwiz/hdwwiz.h	2005-10-03 07:48:59 UTC (rev 18239)
@@ -0,0 +1,16 @@
+#ifndef __CPL_HDWWIZ_H
+#define __CPL_HDWWIZ_H
+
+typedef struct
+{
+	int idIcon;
+	int idName;
+	int idDescription;
+	APPLET_PROC AppletProc;
+} APPLET, *PAPPLET;
+
+extern HINSTANCE hApplet;
+
+#endif /* __CPL_HDWWIZ_H */
+
+/* EOF */
Property changes on: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.h
___________________________________________________________________
Name: svn:keywords
   + author date revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.rc
--- trunk/reactos/lib/cpl/hdwwiz/hdwwiz.rc	2005-10-03 07:26:39 UTC (rev 18238)
+++ trunk/reactos/lib/cpl/hdwwiz/hdwwiz.rc	2005-10-03 07:48:59 UTC (rev 18239)
@@ -0,0 +1,21 @@
+#include <windows.h>
+
+#include "resource.h"
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+
+#define REACTOS_VERSION_DLL
+#define REACTOS_STR_FILE_DESCRIPTION	"ReactOS Software Control Panel\0"
+#define REACTOS_STR_INTERNAL_NAME	"hdwwiz\0"
+#define REACTOS_STR_ORIGINAL_FILENAME	"hdwwiz.cpl\0"
+
+#ifdef _MSC_VER
+#include <../../../reactos/version.rc>
+#else
+#include <reactos/version.rc>
+#endif
+
+IDI_CPLICON ICON "resources/applet.ico"
+
+#include "En.rc"
+#include "Fr.rc"
Property changes on: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.rc
___________________________________________________________________
Name: svn:keywords
   + author date revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.xml
--- trunk/reactos/lib/cpl/hdwwiz/hdwwiz.xml	2005-10-03 07:26:39 UTC (rev 18238)
+++ trunk/reactos/lib/cpl/hdwwiz/hdwwiz.xml	2005-10-03 07:48:59 UTC (rev 18239)
@@ -0,0 +1,13 @@
+<module name="hdwwiz" type="win32dll" extension=".cpl" baseaddress="${BASEADDRESS_HDWWIZ}" installbase="system32" installname="hdwwiz.cpl">
+	<importlibrary definition="hdwwiz.def" />
+	<include base="hdwwiz">.</include>
+	<define name="UNICODE" />
+	<define name="_UNICODE" />
+	<define name="__REACTOS__" />
+	<define name="__USE_W32API" />
+	<define name="_WIN32_IE">0x600</define>
+	<define name="_WIN32_WINNT">0x501</define>
+	<library>setupapi</library>
+	<file>hdwwiz.c</file>
+	<file>hdwwiz.rc</file>
+</module>
Property changes on: trunk/reactos/lib/cpl/hdwwiz/hdwwiz.xml
___________________________________________________________________
Name: svn:keywords
   + author date revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/cpl/hdwwiz/resource.h
--- trunk/reactos/lib/cpl/hdwwiz/resource.h	2005-10-03 07:26:39 UTC (rev 18238)
+++ trunk/reactos/lib/cpl/hdwwiz/resource.h	2005-10-03 07:48:59 UTC (rev 18239)
@@ -0,0 +1,12 @@
+#ifndef __CPL_RESOURCE_H
+#define __CPL_RESOURCE_H
+
+/* ids */
+
+#define IDI_CPLICON               1
+#define IDS_CPLNAME               2
+#define IDS_CPLDESCRIPTION        3
+
+#endif /* __CPL_RESOURCE_H */
+
+/* EOF */
Property changes on: trunk/reactos/lib/cpl/hdwwiz/resource.h
___________________________________________________________________
Name: svn:keywords
   + author date revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/cpl/hdwwiz/resources/applet.ico
(Binary files differ)
Property changes on: trunk/reactos/lib/cpl/hdwwiz/resources/applet.ico
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream