mirror of
https://github.com/reactos/reactos.git
synced 2025-01-06 06:20:13 +00:00
[CONTROL]
- Remove undeeded files. - Fully convert the app to UNICODE. - Code cleanup. svn path=/trunk/; revision=62694
This commit is contained in:
parent
707b9ab918
commit
9ef6a8868b
5 changed files with 130 additions and 291 deletions
|
@ -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)
|
||||
|
|
|
@ -6,154 +6,182 @@
|
|||
* Colin Finck (mail@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)
|
||||
{
|
||||
TCHAR szParameters[MAX_PATH];
|
||||
#include "resource.h"
|
||||
|
||||
/* 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);
|
||||
#define MAX_VALUE_NAME 16383
|
||||
|
||||
return (INT_PTR)ShellExecute(NULL,
|
||||
_T("open"),
|
||||
_T("explorer.exe"),
|
||||
szParameters,
|
||||
NULL,
|
||||
SW_SHOWDEFAULT) > 32;
|
||||
}
|
||||
/*
|
||||
* 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)
|
||||
|
||||
static
|
||||
INT
|
||||
RunControlPanel(LPTSTR lpCmd)
|
||||
{
|
||||
TCHAR szParameters[MAX_PATH];
|
||||
|
||||
_tcscpy(szParameters, _T("shell32.dll,Control_RunDLL "));
|
||||
_tcscat(szParameters, lpCmd);
|
||||
|
||||
return RUNDLL(szParameters);
|
||||
}
|
||||
|
||||
int
|
||||
VOID
|
||||
WINAPI
|
||||
_tWinMain(HINSTANCE hInstance,
|
||||
HINSTANCE hPrevInstance,
|
||||
LPTSTR lpCmdLine,
|
||||
int nCmdShow)
|
||||
Control_RunDLLW(HWND hWnd, HINSTANCE hInst, LPCWSTR cmd, DWORD nCmdShow);
|
||||
|
||||
static INT
|
||||
OpenShellFolder(LPWSTR lpFolderCLSID)
|
||||
{
|
||||
WCHAR szParameters[MAX_PATH];
|
||||
|
||||
/*
|
||||
* 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)ShellExecuteW(NULL,
|
||||
L"open",
|
||||
L"explorer.exe",
|
||||
szParameters,
|
||||
NULL,
|
||||
SW_SHOWDEFAULT) > 32;
|
||||
}
|
||||
|
||||
static INT
|
||||
RunControlPanel(LPCWSTR lpCmd)
|
||||
{
|
||||
/*
|
||||
* Old method:
|
||||
*
|
||||
WCHAR szParameters[MAX_PATH];
|
||||
wcscpy(szParameters, L"shell32.dll,Control_RunDLL ");
|
||||
wcscat(szParameters, lpCmd);
|
||||
return RUNDLL(szParameters);
|
||||
*/
|
||||
|
||||
/* New method: */
|
||||
Control_RunDLLW(GetDesktopWindow(), 0, lpCmd, SW_SHOW);
|
||||
return 1;
|
||||
}
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -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
|
|
@ -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>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
|
@ -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@gkware.com)
|
||||
* Colin Finck (mail@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)
|
Loading…
Reference in a new issue