Author: hbelusca
Date: Wed Apr  9 12:29:57 2014
New Revision: 62694
URL: 
http://svn.reactos.org/svn/reactos?rev=62694&view=rev
Log:
[CONTROL]
- Remove undeeded files.
- Fully convert the app to UNICODE.
- Code cleanup.
Removed:
    trunk/reactos/base/applications/control/control.dsp
    trunk/reactos/base/applications/control/control.dsw
    trunk/reactos/base/applications/control/control.h
Modified:
    trunk/reactos/base/applications/control/CMakeLists.txt
    trunk/reactos/base/applications/control/control.c
Modified: trunk/reactos/base/applications/control/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/control/…
==============================================================================
--- trunk/reactos/base/applications/control/CMakeLists.txt      [iso-8859-1] (original)
+++ trunk/reactos/base/applications/control/CMakeLists.txt      [iso-8859-1] Wed Apr  9
12:29:57 2014
@@ -1,5 +1,5 @@
 add_executable(control control.c control.rc)
 set_module_type(control win32gui UNICODE)
-add_importlibs(control advapi32 shell32 msvcrt kernel32)
+add_importlibs(control advapi32 shell32 user32 msvcrt kernel32)
 add_cd_file(TARGET control DESTINATION reactos/system32 FOR all)
Modified: trunk/reactos/base/applications/control/control.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/control/…
==============================================================================
--- trunk/reactos/base/applications/control/control.c   [iso-8859-1] (original)
+++ trunk/reactos/base/applications/control/control.c   [iso-8859-1] Wed Apr  9 12:29:57
2014
@@ -6,154 +6,182 @@
  *                  Colin Finck (mail(a)colinfinck.de)
  */
-#include "control.h"
+#include <stdio.h>
-static const TCHAR szWindowClass[] = _T("DummyControlClass");
+#define WIN32_NO_STATUS
-HANDLE hProcessHeap;
-HINSTANCE hInst;
+#include <windef.h>
+#include <winbase.h>
+#include <winuser.h>
+#include <winreg.h>
+#include <shellapi.h>
-static
-INT
-OpenShellFolder(LPTSTR lpFolderCLSID)
+#include "resource.h"
+
+#define MAX_VALUE_NAME 16383
+
+/*
+ * Macro for calling "rundll32.exe"
+ * According to MSDN, ShellExecute returns a value greater than 32
+ * if the operation was successful.
+ */
+#define RUNDLL(param)   \
+    ((INT_PTR)ShellExecuteW(NULL, L"open", L"rundll32.exe", (param),
NULL, SW_SHOWDEFAULT) > 32)
+
+VOID
+WINAPI
+Control_RunDLLW(HWND hWnd, HINSTANCE hInst, LPCWSTR cmd, DWORD nCmdShow);
+
+static INT
+OpenShellFolder(LPWSTR lpFolderCLSID)
 {
-    TCHAR szParameters[MAX_PATH];
+    WCHAR szParameters[MAX_PATH];
-    /* Open a shell folder using "explorer.exe".
-       The passed CLSID's are all subfolders of the "Control Panel" shell
folder. */
-    _tcscpy(szParameters,
_T("/n,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{21EC2020-3AEA-1069-A2DD-08002B30309D}"));
-    _tcscat(szParameters, lpFolderCLSID);
+    /*
+     * Open a shell folder using "explorer.exe". The passed CLSIDs
+     * are all subfolders of the "Control Panel" shell folder.
+     */
+    wcscpy(szParameters,
L"/n,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{21EC2020-3AEA-1069-A2DD-08002B30309D}");
+    wcscat(szParameters, lpFolderCLSID);
-    return (INT_PTR)ShellExecute(NULL,
-                                 _T("open"),
-                                 _T("explorer.exe"),
-                                 szParameters,
-                                 NULL,
-                                 SW_SHOWDEFAULT) > 32;
+    return (INT_PTR)ShellExecuteW(NULL,
+                                  L"open",
+                                  L"explorer.exe",
+                                  szParameters,
+                                  NULL,
+                                  SW_SHOWDEFAULT) > 32;
 }
-static
-INT
-RunControlPanel(LPTSTR lpCmd)
+static INT
+RunControlPanel(LPCWSTR lpCmd)
 {
-    TCHAR szParameters[MAX_PATH];
+    /*
+     * Old method:
+     *
+    WCHAR szParameters[MAX_PATH];
+    wcscpy(szParameters, L"shell32.dll,Control_RunDLL ");
+    wcscat(szParameters, lpCmd);
+    return RUNDLL(szParameters);
+     */
-    _tcscpy(szParameters, _T("shell32.dll,Control_RunDLL "));
-    _tcscat(szParameters, lpCmd);
-
-    return RUNDLL(szParameters);
+    /* New method: */
+    Control_RunDLLW(GetDesktopWindow(), 0, lpCmd, SW_SHOW);
+    return 1;
 }
-int
+INT
 WINAPI
-_tWinMain(HINSTANCE hInstance,
-          HINSTANCE hPrevInstance,
-          LPTSTR lpCmdLine,
-          int nCmdShow)
+wWinMain(HINSTANCE hInstance,
+         HINSTANCE hPrevInstance,
+         LPWSTR lpCmdLine,
+         INT nCmdShow)
 {
     HKEY hKey;
-    hInst = hInstance;
-    hProcessHeap = GetProcessHeap();
-
     /* Show the control panel window if no argument or "panel" was passed */
-    if(lpCmdLine[0] == 0 || !_tcsicmp(lpCmdLine, _T("panel")))
-        return OpenShellFolder(_T(""));
+    if (*lpCmdLine == 0 || !_wcsicmp(lpCmdLine, L"panel"))
+        return OpenShellFolder(L"");
     /* Check one of the built-in control panel handlers */
-    if (!_tcsicmp(lpCmdLine, _T("admintools")))           return
OpenShellFolder(_T("\\::{D20EA4E1-3957-11d2-A40B-0C5020524153}"));
-    else if (!_tcsicmp(lpCmdLine, _T("color")))           return
RunControlPanel(_T("desk.cpl"));       /* TODO: Switch to the
"Apperance" tab */
-    else if (!_tcsicmp(lpCmdLine, _T("date/time")))       return
RunControlPanel(_T("timedate.cpl"));
-    else if (!_tcsicmp(lpCmdLine, _T("desktop")))         return
RunControlPanel(_T("desk.cpl"));
-    else if (!_tcsicmp(lpCmdLine, _T("folders")))         return
RUNDLL(_T("shell32.dll,Options_RunDLL"));
-    else if (!_tcsicmp(lpCmdLine, _T("fonts")))           return
OpenShellFolder(_T("\\::{D20EA4E1-3957-11d2-A40B-0C5020524152}"));
-    else if (!_tcsicmp(lpCmdLine, _T("infrared")))        return
RunControlPanel(_T("irprops.cpl"));
-    else if (!_tcsicmp(lpCmdLine, _T("international")))   return
RunControlPanel(_T("intl.cpl"));
-    else if (!_tcsicmp(lpCmdLine, _T("keyboard")))        return
RunControlPanel(_T("main.cpl @1"));
-    else if (!_tcsicmp(lpCmdLine, _T("mouse")))           return
RunControlPanel(_T("main.cpl @0"));
-    else if (!_tcsicmp(lpCmdLine, _T("netconnections")))  return
OpenShellFolder(_T("\\::{7007ACC7-3202-11D1-AAD2-00805FC1270E}"));
-    else if (!_tcsicmp(lpCmdLine, _T("netware")))         return
RunControlPanel(_T("nwc.cpl"));
-    else if (!_tcsicmp(lpCmdLine, _T("ports")))           return
RunControlPanel(_T("sysdm.cpl"));      /* TODO: Switch to the "Computer
Name" tab */
-    else if (!_tcsicmp(lpCmdLine, _T("printers")))        return
OpenShellFolder(_T("\\::{2227A280-3AEA-1069-A2DE-08002B30309D}"));
-    else if (!_tcsicmp(lpCmdLine, _T("scannercamera")))   return
OpenShellFolder(_T("\\::{E211B736-43FD-11D1-9EFB-0000F8757FCD}"));
-    else if (!_tcsicmp(lpCmdLine, _T("schedtasks")))      return
OpenShellFolder(_T("\\::{D6277990-4C6A-11CF-8D87-00AA0060F5BF}"));
-    else if (!_tcsicmp(lpCmdLine, _T("telephony")))       return
RunControlPanel(_T("telephon.cpl"));
-    else if (!_tcsicmp(lpCmdLine, _T("userpasswords")))   return
RunControlPanel(_T("nusrmgr.cpl"));       /* Graphical User Account Manager */
-    else if (!_tcsicmp(lpCmdLine, _T("userpasswords2")))  return
RUNDLL(_T("netplwiz.dll,UsersRunDll"));   /* Dialog based advanced User Account
Manager */
+    if (!_wcsicmp(lpCmdLine, L"admintools"))           return
OpenShellFolder(L"\\::{D20EA4E1-3957-11d2-A40B-0C5020524153}");
+    else if (!_wcsicmp(lpCmdLine, L"color"))           return
RunControlPanel(L"desk.cpl");       /* TODO: Switch to the "Apperance"
tab */
+    else if (!_wcsicmp(lpCmdLine, L"date/time"))       return
RunControlPanel(L"timedate.cpl");
+    else if (!_wcsicmp(lpCmdLine, L"desktop"))         return
RunControlPanel(L"desk.cpl");
+    else if (!_wcsicmp(lpCmdLine, L"folders"))         return
RUNDLL(L"shell32.dll,Options_RunDLL");
+    else if (!_wcsicmp(lpCmdLine, L"fonts"))           return
OpenShellFolder(L"\\::{D20EA4E1-3957-11d2-A40B-0C5020524152}");
+    else if (!_wcsicmp(lpCmdLine, L"infrared"))        return
RunControlPanel(L"irprops.cpl");
+    else if (!_wcsicmp(lpCmdLine, L"international"))   return
RunControlPanel(L"intl.cpl");
+    else if (!_wcsicmp(lpCmdLine, L"keyboard"))        return
RunControlPanel(L"main.cpl @1");
+    else if (!_wcsicmp(lpCmdLine, L"mouse"))           return
RunControlPanel(L"main.cpl @0");
+    else if (!_wcsicmp(lpCmdLine, L"netconnections"))  return
OpenShellFolder(L"\\::{7007ACC7-3202-11D1-AAD2-00805FC1270E}");
+    else if (!_wcsicmp(lpCmdLine, L"netware"))         return
RunControlPanel(L"nwc.cpl");
+    else if (!_wcsicmp(lpCmdLine, L"ports"))           return
RunControlPanel(L"sysdm.cpl");      /* TODO: Switch to the "Computer
Name" tab */
+    else if (!_wcsicmp(lpCmdLine, L"printers"))        return
OpenShellFolder(L"\\::{2227A280-3AEA-1069-A2DE-08002B30309D}");
+    else if (!_wcsicmp(lpCmdLine, L"scannercamera"))   return
OpenShellFolder(L"\\::{E211B736-43FD-11D1-9EFB-0000F8757FCD}");
+    else if (!_wcsicmp(lpCmdLine, L"schedtasks"))      return
OpenShellFolder(L"\\::{D6277990-4C6A-11CF-8D87-00AA0060F5BF}");
+    else if (!_wcsicmp(lpCmdLine, L"telephony"))       return
RunControlPanel(L"telephon.cpl");
+    else if (!_wcsicmp(lpCmdLine, L"userpasswords"))   return
RunControlPanel(L"nusrmgr.cpl");       /* Graphical User Account Manager */
+    else if (!_wcsicmp(lpCmdLine, L"userpasswords2"))  return
RUNDLL(L"netplwiz.dll,UsersRunDll");   /* Dialog based advanced User Account
Manager */
     /* It is none of them, so look for a handler in the registry */
-    if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                    _T("Software\\Microsoft\\Windows\\CurrentVersion\\Control
Panel\\Cpls"),
-                    0,
-                    KEY_QUERY_VALUE,
-                    &hKey) == ERROR_SUCCESS)
+    if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+                      L"Software\\Microsoft\\Windows\\CurrentVersion\\Control
Panel\\Cpls",
+                      0,
+                      KEY_QUERY_VALUE,
+                      &hKey) == ERROR_SUCCESS)
     {
         DWORD dwIndex;
-        for(dwIndex = 0; ; ++dwIndex)
+        for (dwIndex = 0; ; ++dwIndex)
         {
             DWORD dwDataSize;
             DWORD dwValueSize = MAX_VALUE_NAME;
-            TCHAR szValueName[MAX_VALUE_NAME];
+            WCHAR szValueName[MAX_VALUE_NAME];
             /* Get the value name and data size */
-            if(RegEnumValue(hKey,
-                            dwIndex,
-                            szValueName,
-                            &dwValueSize,
-                            0,
-                            NULL,
-                            NULL,
-                            &dwDataSize) != ERROR_SUCCESS)
+            if (RegEnumValueW(hKey,
+                              dwIndex,
+                              szValueName,
+                              &dwValueSize,
+                              0,
+                              NULL,
+                              NULL,
+                              &dwDataSize) != ERROR_SUCCESS)
+            {
                 break;
+            }
             /* Check if the parameter is the value name */
-            if(!_tcsicmp(lpCmdLine, szValueName))
+            if (!_wcsicmp(lpCmdLine, szValueName))
             {
-                LPTSTR pszData;
-
-                /* Allocate memory for the data plus two more characters, so we can quote
the file name if required */
-                pszData = (LPTSTR) HeapAlloc(hProcessHeap,
-                                             0,
-                                             dwDataSize + 2 * sizeof(TCHAR));
+                /*
+                 * Allocate memory for the data plus two more characters,
+                 * so we can quote the file name if required.
+                 */
+                LPWSTR pszData;
+                pszData = HeapAlloc(GetProcessHeap(),
+                                    0,
+                                    dwDataSize + 2 * sizeof(WCHAR));
                 ++pszData;
-                /* This value is the one we are looking for, so get the data. It is the
path to a .cpl file */
-                if(RegQueryValueEx(hKey,
-                                   szValueName,
-                                   0,
-                                   NULL,
-                                   (LPBYTE)pszData,
-                                   &dwDataSize) == ERROR_SUCCESS)
+                /*
+                 * This value is the one we are looking for, so get the data.
+                 * It is the path to a .cpl file.
+                 */
+                if (RegQueryValueExW(hKey,
+                                     szValueName,
+                                     0,
+                                     NULL,
+                                     (LPBYTE)pszData,
+                                     &dwDataSize) == ERROR_SUCCESS)
                 {
                     INT nReturnValue;
                     /* Quote the file name if required */
-                    if(*pszData != '\"')
+                    if (*pszData != L'\"')
                     {
-                        *(--pszData) = '\"';
-                        pszData[dwDataSize / sizeof(TCHAR)] = '\"';
-                        pszData[(dwDataSize / sizeof(TCHAR)) + 1] = 0;
+                        *(--pszData) = L'\"';
+                        pszData[dwDataSize / sizeof(WCHAR)] = L'\"';
+                        pszData[(dwDataSize / sizeof(WCHAR)) + 1] = 0;
                     }
                     nReturnValue = RunControlPanel(pszData);
-                    HeapFree(hProcessHeap,
-                             0,
-                             pszData);
+                    HeapFree(GetProcessHeap(), 0, pszData);
                     RegCloseKey(hKey);
                     return nReturnValue;
                 }
-                HeapFree(hProcessHeap,
-                         0,
-                         pszData);
+                HeapFree(GetProcessHeap(), 0, pszData);
             }
         }
         RegCloseKey(hKey);
     }
-    /* It's none of the known parameters, so interpret the parameter as the file name
of a control panel applet */
+    /*
+     * It's none of the known parameters, so interpret the parameter
+     * as the file name of a control panel applet.
+     */
     return RunControlPanel(lpCmdLine);
 }
Removed: trunk/reactos/base/applications/control/control.dsp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/control/…
==============================================================================
--- trunk/reactos/base/applications/control/control.dsp [iso-8859-1] (original)
+++ trunk/reactos/base/applications/control/control.dsp (removed)
@@ -1,137 +0,0 @@
-# Microsoft Developer Studio Project File - Name="control" - Package
Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Application" 0x0101
-
-CFG=control - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "control.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "control.mak" CFG="control - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "control - Win32 Release" (based on "Win32 (x86)
Application")
-!MESSAGE "control - Win32 Debug" (based on "Win32 (x86) Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "control - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D
"_WINDOWS" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "../../../" /D "WIN32" /D
"NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x407 /d "NDEBUG"
-# ADD RSC /l 0x407 /d "NDEBUG" /d "MS_COMPILER"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo
/subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib /nologo
/subsystem:windows /machine:I386
-# Begin Custom Build
-TargetDir=.\Release
-TargetName=control
-InputPath=.\Release\control.exe
-InputName=control
-SOURCE="$(InputPath)"
-
-"C:\reactos\reactos\$(InputName).EXE" : $(SOURCE) "$(INTDIR)"
"$(OUTDIR)"
-       copy $(TargetDir)\$(TargetName).EXE C:\reactos\reactos
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "control - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D
"_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../" /D "WIN32" /D
"_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE"
/YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x407 /d "_DEBUG"
-# ADD RSC /l 0x407 /d "_DEBUG" /d "MS_COMPILER"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo
/subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib /nologo
/subsystem:windows /debug /machine:I386 /pdbtype:sept
-# Begin Custom Build
-TargetDir=.\Debug
-TargetName=control
-InputPath=.\Debug\control.exe
-InputName=control
-SOURCE="$(InputPath)"
-
-"C:\reactos\reactos\$(InputName).EXE" : $(SOURCE) "$(INTDIR)"
"$(OUTDIR)"
-       copy $(TargetDir)\$(TargetName).EXE C:\reactos\reactos
-
-# End Custom Build
-
-!ENDIF
-
-# Begin Target
-
-# Name "control - Win32 Release"
-# Name "control - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\control.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# Begin Source File
-
-SOURCE=.\config.ico
-# End Source File
-# Begin Source File
-
-SOURCE=.\control.rc
-# End Source File
-# End Group
-# End Target
-# End Project
Removed: trunk/reactos/base/applications/control/control.dsw
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/control/…
==============================================================================
--- trunk/reactos/base/applications/control/control.dsw [iso-8859-1] (original)
+++ trunk/reactos/base/applications/control/control.dsw (removed)
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "control"=.\control.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
Removed: trunk/reactos/base/applications/control/control.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/control/…
==============================================================================
--- trunk/reactos/base/applications/control/control.h   [iso-8859-1] (original)
+++ trunk/reactos/base/applications/control/control.h   (removed)
@@ -1,23 +0,0 @@
-/*
- * PROJECT:         ReactOS System Control Panel
- * FILE:            base/applications/control/control.h
- * PURPOSE:         ReactOS System Control Panel
- * PROGRAMMERS:     Gero Kuehn (reactos.filter(a)gkware.com)
- *                  Colin Finck (mail(a)colinfinck.de)
- */
-
-#include <tchar.h>
-#include <windef.h>
-#include <winbase.h>
-#include <winuser.h>
-#include <winreg.h>
-#include <shellapi.h>
-
-#include "resource.h"
-
-#define CCH_UINT_MAX   11
-#define MAX_VALUE_NAME 16383
-
-/* Macro for calling "rundll32.exe"
-   According to MSDN, ShellExecute returns a value greater than 32 if the operation was
successful. */
-#define RUNDLL(param)   ((INT_PTR)ShellExecute(NULL, _T("open"),
_T("rundll32.exe"), (param), NULL, SW_SHOWDEFAULT) > 32)