mirror of
https://github.com/reactos/reactos.git
synced 2024-07-07 13:15:07 +00:00
initial checkin of the non-shell-namespace-based control panel and software add/remove cpl
svn path=/trunk/; revision=9715
This commit is contained in:
parent
86c4140124
commit
038cca4d58
|
@ -6,7 +6,7 @@ PATH_TO_TOP = ../..
|
|||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
CONTROL_PANELS = sysdm
|
||||
CONTROL_PANELS = sysdm appwiz control
|
||||
|
||||
all: $(CONTROL_PANELS)
|
||||
|
||||
|
|
14
reactos/lib/cpl/appwiz/.cvsignore
Normal file
14
reactos/lib/cpl/appwiz/.cvsignore
Normal file
|
@ -0,0 +1,14 @@
|
|||
*.coff
|
||||
*.cpl
|
||||
*.d
|
||||
*.a
|
||||
*.o
|
||||
*.sym
|
||||
*.map
|
||||
*.tmp
|
||||
|
||||
*.ncb
|
||||
*.opt
|
||||
*.plg
|
||||
Debug
|
||||
Release
|
47
reactos/lib/cpl/appwiz/Makefile
Normal file
47
reactos/lib/cpl/appwiz/Makefile
Normal file
|
@ -0,0 +1,47 @@
|
|||
# $Id: Makefile,v 1.1 2004/06/18 20:43:44 kuehng Exp $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_TYPE = dynlink
|
||||
|
||||
TARGET_EXTENSION = .cpl
|
||||
|
||||
TARGET_NAME = appwiz
|
||||
|
||||
TARGET_INSTALLDIR = system32
|
||||
|
||||
TARGET_BASE = $(TARGET_BASE_LIB_CPL_SYSDM)
|
||||
|
||||
TARGET_CFLAGS = \
|
||||
-I./include \
|
||||
-DUNICODE \
|
||||
-D_UNICODE \
|
||||
-D__REACTOS__ \
|
||||
-Wall \
|
||||
-Werror \
|
||||
-fno-builtin
|
||||
|
||||
TARGET_LFLAGS = -nostartfiles
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a user32.a comctl32.a
|
||||
|
||||
TARGET_GCCLIBS = gcc
|
||||
|
||||
TARGET_PCH =
|
||||
|
||||
TARGET_CLEAN =
|
||||
|
||||
TARGET_OBJECTS = appwiz.o
|
||||
|
||||
DEP_OBJECTS = $(TARGET_OBJECTS)
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
include $(TOOLS_PATH)/depend.mk
|
||||
|
||||
%/TAGS:
|
||||
etags -o $(@D)/TAGS $(@D)/\*.c
|
||||
|
||||
etags: ./TAGS
|
263
reactos/lib/cpl/appwiz/appwiz.c
Normal file
263
reactos/lib/cpl/appwiz/appwiz.c
Normal file
|
@ -0,0 +1,263 @@
|
|||
/*
|
||||
* ReactOS
|
||||
* Copyright (C) 2004 ReactOS Team
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id: appwiz.c,v 1.1 2004/06/18 20:43:44 kuehng Exp $
|
||||
*
|
||||
* PROJECT: ReactOS Software Control Panel
|
||||
* FILE: lib/cpl/system/appwiz.c
|
||||
* PURPOSE: ReactOS Software Control Panel
|
||||
* PROGRAMMER: Gero Kuehn (reactos.filter@gkware.com)
|
||||
* UPDATE HISTORY:
|
||||
* 06-17-2004 Created
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <tchar.h>
|
||||
#include <windows.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include <commctrl.h>
|
||||
#include <cpl.h>
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <tchar.h>
|
||||
#include <process.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "resource.h"
|
||||
#include "appwiz.h"
|
||||
|
||||
#define NUM_APPLETS (1)
|
||||
|
||||
LONG CALLBACK SystemApplet(VOID);
|
||||
BOOL CALLBACK GeneralPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
BOOL CALLBACK ComputerPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
HINSTANCE hApplet = 0;
|
||||
|
||||
/* Applets */
|
||||
APPLET Applets[NUM_APPLETS] =
|
||||
{
|
||||
{IDI_CPLSYSTEM, IDS_CPLSYSTEMNAME, IDS_CPLSYSTEMDESCRIPTION, SystemApplet}
|
||||
};
|
||||
|
||||
void CallUninstall(HWND hwndDlg)
|
||||
{
|
||||
int nIndex;
|
||||
nIndex = SendDlgItemMessage(hwndDlg,IDC_SOFTWARELIST,LB_GETCURSEL,0,0);
|
||||
if(nIndex == -1)
|
||||
MessageBox(hwndDlg,L"No item selected",L"Error",MB_ICONSTOP);
|
||||
else {
|
||||
HKEY hKey;
|
||||
DWORD dwType = REG_SZ;
|
||||
TCHAR pszUninstallString[MAX_PATH];
|
||||
DWORD dwSize = MAX_PATH;
|
||||
hKey = (HKEY)SendDlgItemMessage(hwndDlg,IDC_SOFTWARELIST,LB_GETITEMDATA,(WPARAM)nIndex,0);
|
||||
if(RegQueryValueEx(hKey,L"UninstallString",NULL,&dwType,(BYTE*)pszUninstallString,&dwSize)==ERROR_SUCCESS)
|
||||
{
|
||||
STARTUPINFO si;
|
||||
PROCESS_INFORMATION pi;
|
||||
memset(&si,0x00,sizeof(si));
|
||||
si.cb = sizeof(si);
|
||||
si.wShowWindow = SW_SHOW;
|
||||
if(CreateProcess(NULL,pszUninstallString,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))
|
||||
{
|
||||
CloseHandle(pi.hProcess);
|
||||
CloseHandle(pi.hThread);
|
||||
}
|
||||
} else {
|
||||
MessageBox(hwndDlg,L"Unable to read UninstallString. This entry is invalid or has been created by an MSI installer.",L"Error",MB_ICONSTOP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Property page dialog callback */
|
||||
BOOL CALLBACK InstallPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
|
||||
{
|
||||
switch(uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
HKEY hKey;
|
||||
int i=0;
|
||||
TCHAR pszName[MAX_PATH];
|
||||
FILETIME FileTime;
|
||||
DWORD dwSize = MAX_PATH;
|
||||
EnableWindow(GetDlgItem(hwndDlg,IDC_INSTALL),FALSE);
|
||||
if(RegOpenKey(HKEY_LOCAL_MACHINE,L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall",&hKey)!=ERROR_SUCCESS) {
|
||||
MessageBox(hwndDlg,L"Unable to open Uninstall Key",L"Error",MB_ICONSTOP);
|
||||
return FALSE;
|
||||
}
|
||||
while(RegEnumKeyEx(hKey,i,pszName,&dwSize,NULL,NULL,NULL,&FileTime)==ERROR_SUCCESS)
|
||||
{
|
||||
HKEY hSubKey;
|
||||
if(RegOpenKey(hKey,pszName,&hSubKey)==ERROR_SUCCESS)
|
||||
{
|
||||
DWORD dwType = REG_SZ;
|
||||
TCHAR pszDisplayName[MAX_PATH];
|
||||
DWORD dwSize = MAX_PATH;
|
||||
ULONG index;
|
||||
if(RegQueryValueEx(hSubKey,L"DisplayName",NULL,&dwType,(BYTE*)pszDisplayName,&dwSize)==ERROR_SUCCESS)
|
||||
{
|
||||
index = SendDlgItemMessage(hwndDlg,IDC_SOFTWARELIST,LB_ADDSTRING,0,(LPARAM)pszDisplayName);
|
||||
SendDlgItemMessage(hwndDlg,IDC_SOFTWARELIST,LB_SETITEMDATA,index,(LPARAM)hSubKey);
|
||||
}
|
||||
}
|
||||
|
||||
dwSize = MAX_PATH;
|
||||
i++;
|
||||
}
|
||||
RegCloseKey(hKey);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
switch(LOWORD(wParam))
|
||||
{
|
||||
case IDC_SOFTWARELIST:
|
||||
if(HIWORD(wParam)==LBN_DBLCLK)
|
||||
{
|
||||
CallUninstall(hwndDlg);
|
||||
}
|
||||
break;
|
||||
|
||||
case IDC_ADDREMOVE:
|
||||
CallUninstall(hwndDlg);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Property page dialog callback */
|
||||
BOOL CALLBACK RosPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
|
||||
{
|
||||
switch(uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc)
|
||||
{
|
||||
ZeroMemory(psp, sizeof(PROPSHEETPAGE));
|
||||
psp->dwSize = sizeof(PROPSHEETPAGE);
|
||||
psp->dwFlags = PSP_DEFAULT;
|
||||
psp->hInstance = hApplet;
|
||||
#ifdef _MSC_VER
|
||||
psp->pszTemplate = MAKEINTRESOURCE(idDlg);
|
||||
#else
|
||||
psp->u1.pszTemplate = MAKEINTRESOURCE(idDlg);
|
||||
#endif
|
||||
psp->pfnDlgProc = DlgProc;
|
||||
}
|
||||
|
||||
|
||||
/* First Applet */
|
||||
|
||||
LONG CALLBACK
|
||||
SystemApplet(VOID)
|
||||
{
|
||||
PROPSHEETPAGE psp[2];
|
||||
PROPSHEETHEADER psh;
|
||||
TCHAR Caption[1024];
|
||||
|
||||
LoadString(hApplet, IDS_CPLSYSTEMNAME, Caption, sizeof(Caption) / sizeof(TCHAR));
|
||||
|
||||
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
|
||||
psh.dwSize = sizeof(PROPSHEETHEADER);
|
||||
psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE;
|
||||
psh.hwndParent = NULL;
|
||||
psh.hInstance = hApplet;
|
||||
#ifdef _MSC_VER
|
||||
psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLSYSTEM));
|
||||
#else
|
||||
psh.u1.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLSYSTEM));
|
||||
#endif
|
||||
psh.pszCaption = Caption;
|
||||
psh.nPages = sizeof(psp) / sizeof(PROPSHEETHEADER);
|
||||
#ifdef _MSC_VER
|
||||
psh.nStartPage = 0;
|
||||
psh.ppsp = psp;
|
||||
#else
|
||||
psh.u2.nStartPage = 0;
|
||||
psh.u3.ppsp = psp;
|
||||
#endif
|
||||
psh.pfnCallback = NULL;
|
||||
|
||||
|
||||
InitPropSheetPage(&psp[0], IDD_PROPPAGEINSTALL, InstallPageProc);
|
||||
InitPropSheetPage(&psp[1], IDD_PROPPAGEROSSETUP, RosPageProc);
|
||||
|
||||
return (LONG)(PropertySheet(&psh) != -1);
|
||||
}
|
||||
|
||||
/* 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 NUM_APPLETS;
|
||||
}
|
||||
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();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
|
||||
{
|
||||
switch(dwReason)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
case DLL_THREAD_ATTACH:
|
||||
hApplet = hinstDLL;
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
6
reactos/lib/cpl/appwiz/appwiz.def
Normal file
6
reactos/lib/cpl/appwiz/appwiz.def
Normal file
|
@ -0,0 +1,6 @@
|
|||
LIBRARY appwiz.cpl
|
||||
|
||||
EXPORTS
|
||||
CPlApplet
|
||||
|
||||
; EOF
|
124
reactos/lib/cpl/appwiz/appwiz.dsp
Normal file
124
reactos/lib/cpl/appwiz/appwiz.dsp
Normal file
|
@ -0,0 +1,124 @@
|
|||
# Microsoft Developer Studio Project File - Name="appwiz" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
|
||||
|
||||
CFG=appwiz - 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 "appwiz.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 "appwiz.mak" CFG="appwiz - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "appwiz - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE "appwiz - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "appwiz - 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 1
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "APPWIZ_EXPORTS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_USRDLL" /D "APPWIZ_EXPORTS" /D "_UNICODE" /D "UNICODE" /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 0x409 /d "NDEBUG" /d "_MSC_VER"
|
||||
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 /dll /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 /dll /machine:I386 /out:"Release/appwiz.cpl"
|
||||
|
||||
!ELSEIF "$(CFG)" == "appwiz - 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 1
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "APPWIZ_EXPORTS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_USRDLL" /D "APPWIZ_EXPORTS" /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 0x409 /d "_DEBUG" /d "_MSC_VER"
|
||||
# SUBTRACT RSC /x
|
||||
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 /dll /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 /dll /debug /machine:I386 /out:"Debug/appwiz.cpl" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "appwiz - Win32 Release"
|
||||
# Name "appwiz - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\appwiz.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\appwiz.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\resource.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\appwiz.def
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\appwiz.rc
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
29
reactos/lib/cpl/appwiz/appwiz.dsw
Normal file
29
reactos/lib/cpl/appwiz/appwiz.dsw
Normal file
|
@ -0,0 +1,29 @@
|
|||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "appwiz"=.\appwiz.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
6
reactos/lib/cpl/appwiz/appwiz.edf
Normal file
6
reactos/lib/cpl/appwiz/appwiz.edf
Normal file
|
@ -0,0 +1,6 @@
|
|||
LIBRARY appwiz.cpl
|
||||
|
||||
EXPORTS
|
||||
CPlApplet=CPlApplet@16
|
||||
|
||||
; EOF
|
20
reactos/lib/cpl/appwiz/appwiz.h
Normal file
20
reactos/lib/cpl/appwiz/appwiz.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
#ifndef __CPL_APPWIZ_H
|
||||
#define __CPL_APPWIZ_H
|
||||
|
||||
typedef LONG (CALLBACK *CPLAPPLET_PROC)(VOID);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int idIcon;
|
||||
int idName;
|
||||
int idDescription;
|
||||
CPLAPPLET_PROC AppletProc;
|
||||
} APPLET, *PAPPLET;
|
||||
|
||||
extern HINSTANCE hApplet;
|
||||
|
||||
void ShowLastWin32Error(HWND hWndOwner);
|
||||
|
||||
#endif /* __CPL_APPWIZ_H */
|
||||
|
||||
/* EOF */
|
77
reactos/lib/cpl/appwiz/appwiz.rc
Normal file
77
reactos/lib/cpl/appwiz/appwiz.rc
Normal file
|
@ -0,0 +1,77 @@
|
|||
#include "resource.h"
|
||||
#ifdef _MSC_VER
|
||||
#include <../../../include/reactos/resource.h>
|
||||
#include <../../../include/defines.h>
|
||||
#else
|
||||
#include <reactos/resource.h>
|
||||
#include <defines.h>
|
||||
#endif
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
|
||||
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", RES_STR_COMPANY_NAME
|
||||
VALUE "FileDescription", "ReactOS Software Control Panel\0"
|
||||
VALUE "FileVersion", RES_STR_FILE_VERSION
|
||||
VALUE "InternalName", "appwiz\0"
|
||||
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
|
||||
VALUE "OriginalFilename", "appwiz.cpl\0"
|
||||
VALUE "ProductName", RES_STR_PRODUCT_NAME
|
||||
VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
IDI_CPLSYSTEM ICON "resources/applet.ico"
|
||||
|
||||
IDD_PROPPAGEINSTALL DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Install/Uninstall"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||
BEGIN
|
||||
|
||||
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,18,16,16
|
||||
LTEXT "To install a new program, click Install",-1,36,18,PROPSHEETWIDTH-48,8
|
||||
PUSHBUTTON "&Install...", IDC_INSTALL, PROPSHEETWIDTH-(72), 36, 60, 14
|
||||
LTEXT "", -1, PROPSHEETPADDING, 63, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN
|
||||
|
||||
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,76,16,16
|
||||
LTEXT "The following Software can be automatically removed. To remove a program or to modify its installed components, select it from the list and click Add/Remove.",-1,36,72,PROPSHEETWIDTH-48,32
|
||||
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 105, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
|
||||
PUSHBUTTON "Add/&Remove", IDC_ADDREMOVE, PROPSHEETWIDTH-72, 198, 60, 14
|
||||
END
|
||||
|
||||
IDD_PROPPAGEROSSETUP DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Reactos Setup"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||
BEGIN
|
||||
|
||||
END
|
||||
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CPLSYSTEMNAME "Add/Remove Programs"
|
||||
IDS_CPLSYSTEMDESCRIPTION "Sets up programs and creates shortcuts."
|
||||
END
|
31
reactos/lib/cpl/appwiz/resource.h
Normal file
31
reactos/lib/cpl/appwiz/resource.h
Normal file
|
@ -0,0 +1,31 @@
|
|||
#ifndef __CPL_RESOURCE_H
|
||||
#define __CPL_RESOURCE_H
|
||||
|
||||
/* metrics */
|
||||
#define PROPSHEETWIDTH 246
|
||||
#define PROPSHEETHEIGHT 228
|
||||
#define PROPSHEETPADDING 6
|
||||
#define SYSTEM_COLUMN (0 * PROPSHEETPADDING)
|
||||
// this is not supported by the MS Resource compiler:
|
||||
//#define LABELLINE(x) 0 //(((PROPSHEETPADDING + 2) * x) + (x + 2))
|
||||
|
||||
#define ICONSIZE 16
|
||||
|
||||
/* ids */
|
||||
|
||||
#define IDI_CPLSYSTEM 100
|
||||
|
||||
#define IDD_PROPPAGEINSTALL 100
|
||||
#define IDD_PROPPAGEROSSETUP 101
|
||||
|
||||
#define IDS_CPLSYSTEMNAME 1001
|
||||
#define IDS_CPLSYSTEMDESCRIPTION 2001
|
||||
|
||||
/* controls */
|
||||
#define IDC_INSTALL 101
|
||||
#define IDC_SOFTWARELIST 102
|
||||
#define IDC_ADDREMOVE 103
|
||||
|
||||
#endif /* __CPL_RESOURCE_H */
|
||||
|
||||
/* EOF */
|
BIN
reactos/lib/cpl/appwiz/resources/applet.ico
Normal file
BIN
reactos/lib/cpl/appwiz/resources/applet.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
15
reactos/lib/cpl/control/.cvsignore
Normal file
15
reactos/lib/cpl/control/.cvsignore
Normal file
|
@ -0,0 +1,15 @@
|
|||
*.coff
|
||||
*.exe
|
||||
*.d
|
||||
*.a
|
||||
*.o
|
||||
*.sym
|
||||
*.map
|
||||
*.tmp
|
||||
|
||||
*.ncb
|
||||
*.opt
|
||||
*.plg
|
||||
*.aps
|
||||
Debug
|
||||
Release
|
38
reactos/lib/cpl/control/Makefile
Normal file
38
reactos/lib/cpl/control/Makefile
Normal file
|
@ -0,0 +1,38 @@
|
|||
# $Id: Makefile,v 1.1 2004/06/18 20:43:44 kuehng Exp $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_NAME = control
|
||||
|
||||
TARGET_INSTALLDIR = system32
|
||||
|
||||
TARGET_APPTYPE = windows
|
||||
|
||||
MK_CFLAGS = -D_UNICODE -DUNICODE
|
||||
MK_CPPFLAGS = -D_UNICODE -DUNICODE
|
||||
MK_RCFLAGS = -D_UNICODE -DUNICODE
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a user32.a comctl32.a
|
||||
|
||||
# TARGET_GCCLIBS = gcc
|
||||
|
||||
TARGET_PCH =
|
||||
|
||||
TARGET_CLEAN =
|
||||
|
||||
TARGET_OBJECTS = control.o
|
||||
|
||||
DEP_OBJECTS = $(TARGET_OBJECTS)
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
include $(TOOLS_PATH)/depend.mk
|
||||
|
||||
%/TAGS:
|
||||
etags -o $(@D)/TAGS $(@D)/\*.c
|
||||
|
||||
etags: ./TAGS
|
267
reactos/lib/cpl/control/control.cpp
Normal file
267
reactos/lib/cpl/control/control.cpp
Normal file
|
@ -0,0 +1,267 @@
|
|||
/*
|
||||
* ReactOS
|
||||
* Copyright (C) 2004 ReactOS Team
|
||||
* Copyright (C) 2004 GkWare e.K.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id: control.cpp,v 1.1 2004/06/18 20:43:44 kuehng Exp $
|
||||
*
|
||||
* PROJECT: ReactOS System Control Panel
|
||||
* FILE: lib/cpl/system/control.cpp
|
||||
* PURPOSE: ReactOS System Control Panel
|
||||
* PROGRAMMER: Gero Kuehn (reactos.filter@gkware.com)
|
||||
* UPDATE HISTORY:
|
||||
* 06-13-2004 Created
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <tchar.h>
|
||||
#include <windows.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include <commctrl.h>
|
||||
#include <cpl.h>
|
||||
#endif
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
//#define CONTROL_DEBUG_ENABLE
|
||||
|
||||
#ifdef CONTROL_DEBUG_ENABLE
|
||||
#define CTL_DEBUG(x) dbgprint x
|
||||
#else
|
||||
#define CTL_DEBUG(x)
|
||||
#endif
|
||||
|
||||
HINSTANCE hInst;
|
||||
HWND hMainWnd;
|
||||
|
||||
void dbgprint(TCHAR *format,...)
|
||||
{
|
||||
TCHAR buf[1000];
|
||||
va_list va;
|
||||
va_start(va,format);
|
||||
_vstprintf(buf,format,va);
|
||||
OutputDebugString(buf);
|
||||
va_end(va);
|
||||
}
|
||||
|
||||
#define MYWNDCLASS _T("CTLPANELCLASS")
|
||||
HWND hListView;
|
||||
|
||||
typedef LONG (CALLBACK *CPLAPPLETFUNC)(HWND hwndCPL, UINT uMsg, LPARAM lParam1, LPARAM lParam2);
|
||||
|
||||
typedef struct CPLLISTENTRY{
|
||||
TCHAR pszPath[MAX_PATH];
|
||||
HMODULE hDLL;
|
||||
CPLAPPLETFUNC pFunc;
|
||||
CPLINFO CPLInfo;
|
||||
int nIndex;
|
||||
} CPLLISTENTRY;
|
||||
|
||||
void PopulateCPLList(HWND hLisCtrl)
|
||||
{
|
||||
WIN32_FIND_DATA fd;
|
||||
HANDLE hFind;
|
||||
TCHAR pszSearchPath[MAX_PATH];
|
||||
GetSystemDirectory(pszSearchPath,MAX_PATH);
|
||||
_tcscat(pszSearchPath,_T("\\*.cpl"));
|
||||
hFind = FindFirstFile(pszSearchPath,&fd);
|
||||
HIMAGELIST hImgListSmall;
|
||||
HIMAGELIST hImgListLarge;
|
||||
hImgListSmall = ImageList_Create(16,16,ILC_COLOR,256,1000);
|
||||
hImgListLarge = ImageList_Create(32,32,ILC_COLOR,256,1000);
|
||||
while(hFind != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
CTL_DEBUG((_T("Found %s\r\n"),fd.cFileName));
|
||||
CPLLISTENTRY *pEntry;
|
||||
pEntry = (CPLLISTENTRY*)malloc(sizeof(CPLLISTENTRY));
|
||||
if(!pEntry)
|
||||
break;
|
||||
_tcscpy(pEntry->pszPath,pszSearchPath);
|
||||
*_tcsrchr(pEntry->pszPath,'\\')=0;
|
||||
_tcscat(pEntry->pszPath,_T("\\"));
|
||||
_tcscat(pEntry->pszPath,fd.cFileName);
|
||||
|
||||
pEntry->hDLL = LoadLibrary(pEntry->pszPath);
|
||||
CTL_DEBUG((_T("Handle %08X\r\n"),pEntry->hDLL));
|
||||
pEntry->pFunc = (CPLAPPLETFUNC)GetProcAddress(pEntry->hDLL,_T("CPlApplet"));
|
||||
CTL_DEBUG((_T("CPLFunc %08X\r\n"),pEntry->pFunc));
|
||||
if(pEntry->pFunc && pEntry->pFunc(hLisCtrl,CPL_INIT,0,0))
|
||||
{
|
||||
for(int i=0;i<pEntry->pFunc(hLisCtrl,CPL_GETCOUNT,0,0);i++)
|
||||
{
|
||||
pEntry->pFunc(hLisCtrl,CPL_INQUIRE,0,(LPARAM)&pEntry->CPLInfo);
|
||||
|
||||
HICON hIcon = LoadIcon(pEntry->hDLL,MAKEINTRESOURCE(pEntry->CPLInfo.idIcon));
|
||||
int index;
|
||||
index = ImageList_AddIcon(hImgListSmall,hIcon);
|
||||
ImageList_AddIcon(hImgListLarge,hIcon);
|
||||
|
||||
|
||||
TCHAR Name[MAX_PATH];
|
||||
LoadString(pEntry->hDLL,pEntry->CPLInfo.idName,Name,MAX_PATH);
|
||||
if(_tcslen(Name))
|
||||
{
|
||||
|
||||
LV_ITEM lvi;
|
||||
|
||||
memset(&lvi,0x00,sizeof(lvi));
|
||||
lvi.mask=LVIF_TEXT|LVIF_PARAM|LVIF_STATE|LVIF_IMAGE;
|
||||
lvi.pszText = Name;
|
||||
lvi.state=0;
|
||||
lvi.iImage=index;
|
||||
lvi.lParam = (LPARAM)pEntry;
|
||||
pEntry->nIndex = ListView_InsertItem(hLisCtrl,&lvi);
|
||||
|
||||
LoadString(pEntry->hDLL,pEntry->CPLInfo.idInfo,Name,MAX_PATH);
|
||||
ListView_SetItemText(hLisCtrl,pEntry->nIndex,1,Name);
|
||||
|
||||
ListView_SetImageList(hLisCtrl,hImgListSmall,LVSIL_SMALL);
|
||||
ListView_SetImageList(hLisCtrl,hImgListLarge,LVSIL_NORMAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!FindNextFile(hFind,&fd))
|
||||
hFind = INVALID_HANDLE_VALUE;
|
||||
}
|
||||
}
|
||||
|
||||
LRESULT CALLBACK MyWindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
|
||||
{
|
||||
switch(uMsg)
|
||||
{
|
||||
case WM_CREATE:
|
||||
RECT rect;
|
||||
GetClientRect(hWnd,&rect);
|
||||
hListView = CreateWindow(WC_LISTVIEW,_T(""),LVS_REPORT | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_VISIBLE | WS_CHILD|WS_BORDER|WS_TABSTOP,0,0,rect.right ,rect.bottom,hWnd,NULL,hInst,0);
|
||||
CTL_DEBUG((_T("Listview Window %08X\r\n"),hListView));
|
||||
|
||||
LV_COLUMN column;
|
||||
memset(&column,0x00,sizeof(column));
|
||||
column.mask=LVCF_FMT | LVCF_WIDTH | LVCF_SUBITEM|LVCF_TEXT;
|
||||
column.fmt=LVCFMT_LEFT;
|
||||
column.cx = 200;
|
||||
column.iSubItem = 0;
|
||||
column.pszText = _T("Name");
|
||||
ListView_InsertColumn(hListView,0,&column);
|
||||
column.cx = 200;
|
||||
column.iSubItem = 1;
|
||||
column.pszText = _T("Comment");
|
||||
ListView_InsertColumn(hListView,1,&column);
|
||||
PopulateCPLList(hListView);
|
||||
ListView_SetColumnWidth(hListView,2,LVSCW_AUTOSIZE_USEHEADER);
|
||||
ListView_Update(hListView,0);
|
||||
break;
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
case WM_SIZE:
|
||||
GetClientRect(hWnd,&rect);
|
||||
MoveWindow(hListView,0,0,rect.right,rect.bottom,TRUE);
|
||||
break;
|
||||
case WM_NOTIFY:
|
||||
NMHDR *phdr;
|
||||
phdr = (NMHDR*)lParam;
|
||||
switch(phdr->code)
|
||||
{
|
||||
case NM_DBLCLK:
|
||||
int nSelect;
|
||||
nSelect=SendMessage(hListView,LVM_GETNEXTITEM,(WPARAM)-1,LVNI_FOCUSED);
|
||||
|
||||
if(nSelect==-1) // no items
|
||||
{
|
||||
MessageBox(hWnd,_T("No Items in ListView"),_T("Error"),MB_OK|MB_ICONINFORMATION);
|
||||
break;
|
||||
}
|
||||
CTL_DEBUG((_T("Select %d\r\n"),nSelect));
|
||||
LV_ITEM lvi;
|
||||
memset(&lvi,0x00,sizeof(lvi));
|
||||
lvi.iItem = nSelect;
|
||||
lvi.mask = LVIF_PARAM;
|
||||
ListView_GetItem(hListView,&lvi);
|
||||
CPLLISTENTRY *pEntry;
|
||||
pEntry = (CPLLISTENTRY *)lvi.lParam;
|
||||
CTL_DEBUG((_T("Listview DblClk Entry %08X\r\n"),pEntry));
|
||||
if(pEntry) {
|
||||
CTL_DEBUG((_T("Listview DblClk Entry Func %08X\r\n"),pEntry->pFunc));
|
||||
}
|
||||
if(pEntry && pEntry->pFunc)
|
||||
pEntry->pFunc(hListView,CPL_DBLCLK,pEntry->CPLInfo.lData,0);
|
||||
}
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
switch(LOWORD(wParam))
|
||||
{
|
||||
case CM_LARGEICONS:
|
||||
SetWindowLong(hListView,GWL_STYLE,LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_VISIBLE | WS_CHILD|WS_BORDER|WS_TABSTOP);
|
||||
break;
|
||||
case CM_SMALLICONS:
|
||||
SetWindowLong(hListView,GWL_STYLE,LVS_SMALLICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_VISIBLE | WS_CHILD|WS_BORDER|WS_TABSTOP);
|
||||
break;
|
||||
case CM_LIST:
|
||||
SetWindowLong(hListView,GWL_STYLE,LVS_LIST | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_VISIBLE | WS_CHILD|WS_BORDER|WS_TABSTOP);
|
||||
break;
|
||||
case CM_DETAILS:
|
||||
SetWindowLong(hListView,GWL_STYLE,LVS_REPORT | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_VISIBLE | WS_CHILD|WS_BORDER|WS_TABSTOP);
|
||||
break;
|
||||
case CM_CLOSE:
|
||||
DestroyWindow(hWnd);
|
||||
break;
|
||||
case CM_ABOUT:
|
||||
MessageBox(hWnd,_T("Simple Control Panel (not Shell-namespace based)\rCopyright 2004 GkWare e.K.\rhttp://www.gkware.com\rReleased under the GPL"),_T("About the Control Panel"),MB_OK | MB_ICONINFORMATION);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return DefWindowProc(hWnd,uMsg,wParam,lParam);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef _MSVC
|
||||
int WINAPI wWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,WCHAR *lpCmdLine,int nCmdShow)
|
||||
#else
|
||||
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,char *lpCmdLine,int nCmdShow)
|
||||
#endif
|
||||
{
|
||||
MSG msg;
|
||||
hInst = hInstance;
|
||||
CTL_DEBUG((_T("My Control Panel\r\n")));
|
||||
WNDCLASS wc;
|
||||
memset(&wc,0x00,sizeof(wc));
|
||||
wc.hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_MAINICON));
|
||||
wc.lpszClassName = MYWNDCLASS;
|
||||
wc.lpszMenuName = _T("MAINMENU");
|
||||
wc.lpfnWndProc = MyWindowProc;
|
||||
RegisterClass(&wc);
|
||||
InitCommonControls();
|
||||
hMainWnd = CreateWindow(MYWNDCLASS,_T("Control Panel"),WS_OVERLAPPEDWINDOW,300,300,500,300,NULL,LoadMenu(hInst,MAKEINTRESOURCE(IDM_MAINMENU)),hInst,0);
|
||||
if(!hMainWnd) {
|
||||
CTL_DEBUG((_T("Unable to create window\r\n")));
|
||||
return -1;
|
||||
}
|
||||
ShowWindow(hMainWnd,nCmdShow);
|
||||
while(GetMessage(&msg,0,0,0))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
137
reactos/lib/cpl/control/control.dsp
Normal file
137
reactos/lib/cpl/control/control.dsp
Normal file
|
@ -0,0 +1,137 @@
|
|||
# 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.cpp
|
||||
# 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
|
29
reactos/lib/cpl/control/control.dsw
Normal file
29
reactos/lib/cpl/control/control.dsw
Normal file
|
@ -0,0 +1,29 @@
|
|||
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>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
86
reactos/lib/cpl/control/control.rc
Normal file
86
reactos/lib/cpl/control/control.rc
Normal file
|
@ -0,0 +1,86 @@
|
|||
//Microsoft Developer Studio generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
#ifndef MS_COMPILER
|
||||
#include <reactos/resource.h>
|
||||
#include <defines.h>
|
||||
#else
|
||||
#include <../../../include/reactos/resource.h>
|
||||
#include <../../../include/defines.h>
|
||||
#endif
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Menu
|
||||
//
|
||||
|
||||
IDM_MAINMENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
POPUP "&File"
|
||||
BEGIN
|
||||
MENUITEM "&Close", CM_CLOSE
|
||||
END
|
||||
POPUP "&View"
|
||||
BEGIN
|
||||
MENUITEM "Large Icons", CM_LARGEICONS
|
||||
MENUITEM "Small Icons", CM_SMALLICONS
|
||||
MENUITEM "List", CM_LIST
|
||||
MENUITEM "Details", CM_DETAILS
|
||||
END
|
||||
POPUP "Help"
|
||||
BEGIN
|
||||
MENUITEM "About", CM_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_MAINICON ICON DISCARDABLE "resources\config.ico"
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
|
||||
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", RES_STR_COMPANY_NAME
|
||||
VALUE "FileDescription", "ReactOS System Control Panel\0"
|
||||
VALUE "FileVersion", RES_STR_FILE_VERSION
|
||||
VALUE "InternalName", "control\0"
|
||||
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
|
||||
VALUE "OriginalFilename", "control.exe\0"
|
||||
VALUE "ProductName", RES_STR_PRODUCT_NAME
|
||||
VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
27
reactos/lib/cpl/control/resource.h
Normal file
27
reactos/lib/cpl/control/resource.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Developer Studio generated include file.
|
||||
// Used by control.rc
|
||||
//
|
||||
#define IDR_MENU1 101
|
||||
#define IDM_MAINMENU 101
|
||||
#define IDI_MAINICON 104
|
||||
#define ID_VIEW_LARGEICONS 40002
|
||||
#define CM_LARGEICONS 40002
|
||||
#define ID_VIEW_SMALLICONS 40003
|
||||
#define CM_SMALLICONS 40003
|
||||
#define ID_HELP_ABOUT 40007
|
||||
#define CM_ABOUT 40007
|
||||
#define CM_CLOSE 40008
|
||||
#define CM_LIST 40009
|
||||
#define CM_DETAILS 40010
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 105
|
||||
#define _APS_NEXT_COMMAND_VALUE 40011
|
||||
#define _APS_NEXT_CONTROL_VALUE 1000
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
BIN
reactos/lib/cpl/control/resources/config.ico
Normal file
BIN
reactos/lib/cpl/control/resources/config.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.8 KiB |
Loading…
Reference in a new issue