merge ROS Shell without integrated explorer part into trunk

svn path=/trunk/; revision=14932
This commit is contained in:
Martin Fuchs 2005-05-01 21:22:13 +00:00
commit 8441c8115e
15 changed files with 1067 additions and 15 deletions

View file

@ -0,0 +1,92 @@
#
# ReactOS shell
#
# Makefile.PCH
#
# MinGW Makefile with precompiled header support
#
CC = gcc
CXX = g++
LINK = g++
CFLAGS = -DWIN32 -DROSSHELL -D_WIN32_IE=0x0600 -D_WIN32_WINNT=0x0501 -DWINVER=0x0500 -fexceptions -Wall -I. -I$(EXPAT_INC)
RCFLAGS = -DWIN32 -DROSSHELL -D__WINDRES__
LFLAGS = -Wl,--subsystem,windows
ifdef DEBUG
CFLAGS += -D_DEBUG -g
RCFLAGS += -D_DEBUG
LFLAGS += -g
else
CFLAGS += -DNDEBUG -Os -march=pentium4
RCFLAGS += -DNDEBUG
LFLAGS += -s
endif
ifndef UNICODE
UNICODE = 1
endif
ifeq ($(UNICODE),1)
CFLAGS += -DUNICODE
# LFLAGS+= -Wl,--entry,_wWinMain@16
RCFLAGS += -DUNICODE
endif
CXXFLAGS = $(CFLAGS)
EXEC_SUFFIX = .exe
RES_SUFFIX = .coff
VPATH = shell utility taskbar desktop dialogs services
PROGRAM = rosshell
TARGET = $(PROGRAM)$(EXEC_SUFFIX)
OBJECTS = \
startup.o \
shellclasses.o \
utility.o \
window.o \
dragdropimpl.o \
shellbrowserimpl.o \
explorer.o \
entries.o \
winfs.o \
shellfs.o \
pane.o \
desktop.o \
desktopbar.o \
taskbar.o \
startmenu.o \
shellservices.o \
traynotify.o \
quicklaunch.o \
favorites.o \
searchprogram.o \
settings.o \
i386-stub-win32.o \
xmlstorage.o
LIBS = gdi32 comctl32 msimg32 ole32 uuid
DELAYIMPORTS = oleaut32 wsock32
all: precomp.h.gch $(TARGET)
precomp.h.gch: *.h utility/*.h shell/*.h desktop/*.h
$(CXX) $(CFLAGS) precomp.h
$(TARGET): $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) notifyhook.dll libexpat.dll
$(LINK) $(LFLAGS) -o $@ $^ $(addprefix -l,$(LIBS)) $(addprefix -l,$(DELAYIMPORTS))
$(PROGRAM)$(RES_SUFFIX): explorer_intres.rc res/*.bmp res/*.ico
windres $(RCFLAGS) -o $@ explorer_intres.rc
notifyhook.dll: notifyhook/notifyhook.c notifyhook/notifyhook.h
$(CC) -D_WIN32_IE=0x0600 -Wall -D_NOTIFYHOOK_IMPL -Os -s notifyhook/notifyhook.c -shared -o $@
clean:
rm -f $(TARGET) $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) precomp.h.gch \
desktop/*.o dialogs/*.o shell/*.o taskbar/*.o utility/*.o

View file

@ -0,0 +1,68 @@
#
# ReactOS shell
#
# Makefile
#
PATH_TO_TOP := ../../..
TARGET_TYPE := program
TARGET_APPTYPE := windows
TARGET_NAME := rosshell
TARGET_INSTALLDIR := .
TARGET_CFLAGS := \
-D__USE_W32API -DWIN32 -D_ROS_ \
-D_WIN32_IE=0x0600 -D_WIN32_WINNT=0x0501 -DWINVER=0x0500 \
-DUNICODE -fexceptions -Wall -g \
-I../../../include/expat
TARGET_CPPFLAGS := $(TARGET_CFLAGS)
TARGET_RCFLAGS := -D__USE_W32API -DWIN32 -D_ROS_ -D__WINDRES__
TARGET_SDKLIBS := \
gdi32.a user32.a comctl32.a ole32.a oleaut32.a shell32.a expat.a \
notifyhook.a ws2_32.a msimg32.a
TARGET_GCCLIBS := stdc++ uuid
TARGET_OBJECTS := \
explorer.o \
i386-stub-win32.o \
desktop/desktop.o \
dialogs/searchprogram.o \
dialogs/settings.o \
shell/entries.o \
shell/shellfs.o \
shell/pane.o \
shell/winfs.o \
services/startup.o \
services/shellservices.o \
taskbar/desktopbar.o \
taskbar/taskbar.o \
taskbar/startmenu.o \
taskbar/traynotify.o \
taskbar/quicklaunch.o \
taskbar/favorites.o \
utility/shellclasses.o \
utility/utility.o \
utility/window.o \
utility/dragdropimpl.o \
utility/shellbrowserimpl.o \
utility/xmlstorage.o
TARGET_CPPAPP := yes
TARGET_PCH := precomp.h
SUBDIRS := notifyhook
DEP_OBJECTS := $(TARGET_OBJECTS)
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
include $(TOOLS_PATH)/depend.mk

View file

@ -85,7 +85,7 @@ all: $(TARGET)
$(TARGET): $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) notifyhook.dll libexpat.dll
$(LINK) $(LFLAGS) -o $@ $^ $(addprefix -l,$(LIBS)) $(addprefix -l,$(DELAYIMPORTS))
explorer$(RES_SUFFIX): $(PROGRAM)_intres.rc res/*.bmp res/*.ico
$(PROGRAM)$(RES_SUFFIX): $(PROGRAM)_intres.rc res/*.bmp res/*.ico
windres $(RCFLAGS) -o $@ $(PROGRAM)_intres.rc
notifyhook.dll: notifyhook/notifyhook.c notifyhook/notifyhook.h

View file

@ -89,8 +89,8 @@ precomp.h.gch: *.h utility/*.h shell/*.h desktop/*.h
$(TARGET): $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) notifyhook.dll libexpat.dll
$(LINK) $(LFLAGS) -o $@ $^ $(addprefix -l,$(LIBS)) $(addprefix -l,$(DELAYIMPORTS))
explorer$(RES_SUFFIX): $(PROGRAM)_intres.rc res/*.bmp res/*.ico
windres $(RCFLAGS) -o $@ $(PROGRAM)_intres.rc
$(PROGRAM)$(RES_SUFFIX): explorer_intres.rc res/*.bmp res/*.ico
windres $(RCFLAGS) -o $@ explorer_intres.rc
notifyhook.dll: notifyhook/notifyhook.c notifyhook/notifyhook.h
$(CC) -D_WIN32_IE=0x0600 -Wall -D_NOTIFYHOOK_IMPL -Os -s notifyhook/notifyhook.c -shared -o $@

View file

@ -467,8 +467,10 @@ LRESULT DesktopWindow::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
HRESULT DesktopWindow::OnDefaultCommand(LPIDA pida)
{
#ifndef ROSSHELL // in shell-only-mode fall through and let shell32 handle the command
if (MainFrameBase::OpenShellFolders(pida, 0))
return S_OK;
#endif
return E_NOTIMPL;
}

View file

@ -56,11 +56,15 @@ ExplorerGlobals g_Globals;
ExplorerGlobals::ExplorerGlobals()
{
_hInstance = 0;
_hframeClass = 0;
_cfStrFName = 0;
#ifndef ROSSHELL
_hframeClass = 0;
_hMainWnd = 0;
_prescan_nodes = false;
_desktop_mode = false;
_prescan_nodes = false;
#endif
_log = NULL;
#ifndef __MINGW32__ // SHRestricted() missing in MinGW (as of 29.10.2003)
_SHRestricted = 0;
@ -528,6 +532,8 @@ ResBitmap::ResBitmap(UINT nid)
}
#ifndef ROSSHELL
void explorer_show_frame(int cmdshow, LPTSTR lpCmdLine)
{
if (g_Globals._hMainWnd) {
@ -553,6 +559,18 @@ void explorer_show_frame(int cmdshow, LPTSTR lpCmdLine)
MainFrameBase::Create(lpCmdLine, mdi, cmdshow);
}
#else
void explorer_show_frame(int cmdshow, LPTSTR lpCmdLine)
{
if (!lpCmdLine)
lpCmdLine = TEXT("explorer.exe");
launch_file(GetDesktopWindow(), lpCmdLine, cmdshow);
}
#endif
PopupMenu::PopupMenu(UINT nid)
{
@ -637,6 +655,7 @@ static void InitInstance(HINSTANCE hInstance)
setlocale(LC_COLLATE, ""); // set collating rules to local settings for compareName
#ifndef ROSSHELL
// register frame window class
g_Globals._hframeClass = IconWindowClass(CLASSNAME_FRAME,IDI_EXPLORER);
@ -645,6 +664,7 @@ static void InitInstance(HINSTANCE hInstance)
// register tree window class
WindowClass(CLASSNAME_WINEFILETREE, CS_CLASSDC|CS_DBLCLKS|CS_VREDRAW).Register();
#endif
g_Globals._cfStrFName = RegisterClipboardFormat(CFSTR_FILENAME);
}
@ -664,6 +684,7 @@ int explorer_main(HINSTANCE hInstance, LPTSTR lpCmdLine, int cmdshow)
return -1;
}
#ifndef ROSSHELL
if (cmdshow != SW_HIDE) {
/* // don't maximize if being called from the ROS desktop
if (cmdshow == SW_SHOWNORMAL)
@ -673,6 +694,7 @@ int explorer_main(HINSTANCE hInstance, LPTSTR lpCmdLine, int cmdshow)
explorer_show_frame(cmdshow, lpCmdLine);
}
#endif
return Window::MessageLoop();
}
@ -798,12 +820,14 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
// If there is given the command line option "-desktop", create desktop window anyways
if (_tcsstr(lpCmdLine,TEXT("-desktop")))
startup_desktop = TRUE;
#ifndef ROSSHELL
else if (_tcsstr(lpCmdLine,TEXT("-nodesktop")))
startup_desktop = FALSE;
// Don't display cabinet window in desktop mode
if (startup_desktop && !_tcsstr(lpCmdLine,TEXT("-explorer")))
nShowCmd = SW_HIDE;
#endif
if (_tcsstr(lpCmdLine,TEXT("-noautostart")))
autostart = false;
@ -832,6 +856,11 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
if (!SetShellReadyEvent(TEXT("msgina: ShellReadyEvent")))
SetShellReadyEvent(TEXT("Global\\msgina: ShellReadyEvent"));
}
#ifdef ROSSHELL
else
return 0; // no shell to launch, so exit immediatelly
#endif
if (!any_desktop_running) {
// launch the shell DDE server
@ -882,9 +911,6 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
#endif
}
if (g_Globals._hwndDesktop)
g_Globals._desktop_mode = true;
Thread* pSSOThread = NULL;
if (startup_desktop) {
@ -899,11 +925,17 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
startup(2, argv);
}
#ifndef ROSSHELL
if (g_Globals._hwndDesktop)
g_Globals._desktop_mode = true;
/**TODO fix command line handling */
if (*lpCmdLine=='"' && lpCmdLine[_tcslen(lpCmdLine)-1]=='"') {
++lpCmdLine;
lpCmdLine[_tcslen(lpCmdLine)-1] = '\0';
}
#endif
int ret = explorer_main(hInstance, lpCmdLine, nShowCmd);

View file

@ -31,9 +31,12 @@
#include "shell/entries.h"
#include "shell/winfs.h"
#include "shell/unixfs.h"
#include "shell/shellfs.h"
#ifndef ROSSHELL
#include "shell/unixfs.h"
#endif
#include "utility/window.h"
@ -68,4 +71,7 @@
#include "shell/pane.h"
#include "shell/filechild.h"
#include "shell/shellbrowser.h"
#ifndef ROSSHELL
#include "shell/mainframe.h"
#endif

View file

@ -197,8 +197,6 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
// Bitmap
//
IDB_IMAGES BITMAP DISCARDABLE "res/images.bmp"
IDB_TOOLBAR BITMAP DISCARDABLE "res/toolbar.bmp"
IDB_DRIVEBAR BITMAP DISCARDABLE "res/drivebar.bmp"
IDB_LOGOV BITMAP DISCARDABLE "res/logov.bmp"
IDB_LOGOV256 BITMAP DISCARDABLE "res/logov256.bmp"
@ -494,6 +492,10 @@ END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#ifndef ROSSHELL\r\n"
"IDB_IMAGES BITMAP DISCARDABLE ""res/images.bmp""\r\n"
"IDB_TOOLBAR BITMAP DISCARDABLE ""res/toolbar.bmp""\r\n"
"#endif\r\n"
"#ifndef _ROS_\r\n"
"LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL\r\n"
"STRINGTABLE DISCARDABLE \r\n"

View file

@ -239,11 +239,14 @@ extern struct ExplorerGlobals
XMLPos get_cfg(const char* path);
HINSTANCE _hInstance;
ATOM _hframeClass;
UINT _cfStrFName;
#ifndef ROSSHELL
ATOM _hframeClass;
HWND _hMainWnd;
bool _prescan_nodes;
bool _desktop_mode;
bool _prescan_nodes;
#endif
FILE* _log;

View file

@ -0,0 +1,155 @@
# Microsoft Developer Studio Project File - Name="make_rosshell" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) External Target" 0x0106
CFG=make_rosshell - Win32 Release
!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 "make_rosshell.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 "make_rosshell.mak" CFG="make_rosshell - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "make_rosshell - Win32 Release" (based on "Win32 (x86) External Target")
!MESSAGE "make_rosshell - Win32 Debug" (based on "Win32 (x86) External Target")
!MESSAGE "make_rosshell - Win32 Unicode Debug" (based on "Win32 (x86) External Target")
!MESSAGE "make_rosshell - Win32 Unicode Release" (based on "Win32 (x86) External Target")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
!IF "$(CFG)" == "make_rosshell - 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 Cmd_Line "NMAKE /f make_rosshell.mak"
# PROP BASE Rebuild_Opt "/a"
# PROP BASE Target_File "make_rosshell.exe"
# PROP BASE Bsc_Name "make_rosshell.bsc"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Make-rosshell.MinGW UNICODE=0"
# PROP Rebuild_Opt "clean all"
# PROP Target_File "rosshell.exe"
# PROP Bsc_Name ""
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "make_rosshell - 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 Cmd_Line "NMAKE /f make_rosshell.mak"
# PROP BASE Rebuild_Opt "/a"
# PROP BASE Target_File "make_rosshell.exe"
# PROP BASE Bsc_Name "make_rosshell.bsc"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Make-rosshell.MinGW UNICODE=0 DEBUG=1"
# PROP Rebuild_Opt "clean all"
# PROP Target_File "rosshell.exe"
# PROP Bsc_Name "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=0 DEBUG=1"
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "make_rosshell - Win32 Unicode Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "UDebug"
# PROP BASE Intermediate_Dir "UDebug"
# PROP BASE Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=1 DEBUG=1"
# PROP BASE Rebuild_Opt "clean all"
# PROP BASE Target_File "rosshell.exe"
# PROP BASE Bsc_Name ""
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "UDebug"
# PROP Intermediate_Dir "UDebug"
# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=1 DEBUG=1"
# PROP Rebuild_Opt "clean all"
# PROP Target_File "rosshell.exe"
# PROP Bsc_Name ""
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "make_rosshell - Win32 Unicode Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "URelease"
# PROP BASE Intermediate_Dir "URelease"
# PROP BASE Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=1"
# PROP BASE Rebuild_Opt "clean all"
# PROP BASE Target_File "rosshell.exe"
# PROP BASE Bsc_Name ""
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "URelease"
# PROP Intermediate_Dir "URelease"
# PROP Cmd_Line "msdevfilt -gcc make -f Make-rosshell.MinGW UNICODE=1"
# PROP Rebuild_Opt "clean all"
# PROP Target_File "rosshell.exe"
# PROP Bsc_Name ""
# PROP Target_Dir ""
!ENDIF
# Begin Target
# Name "make_rosshell - Win32 Release"
# Name "make_rosshell - Win32 Debug"
# Name "make_rosshell - Win32 Unicode Debug"
# Name "make_rosshell - Win32 Unicode Release"
!IF "$(CFG)" == "make_rosshell - Win32 Release"
!ELSEIF "$(CFG)" == "make_rosshell - Win32 Debug"
!ELSEIF "$(CFG)" == "make_rosshell - Win32 Unicode Debug"
!ELSEIF "$(CFG)" == "make_rosshell - Win32 Unicode Release"
!ENDIF
# Begin Source File
SOURCE=.\Jamfile
# End Source File
# Begin Source File
SOURCE=".\Make-rosshell.MinGW"
# End Source File
# Begin Source File
SOURCE=.\Makefile
# End Source File
# Begin Source File
SOURCE=.\Makefile.MinGW
# End Source File
# Begin Source File
SOURCE=.\Makefile.Wine
# End Source File
# End Target
# End Project

View file

@ -0,0 +1,608 @@
# Microsoft Developer Studio Project File - Name="rosshell" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=rosshell - 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 "rosshell.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 "rosshell.mak" CFG="rosshell - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "rosshell - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "rosshell - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "rosshell - Win32 Debug Release" (based on "Win32 (x86) Console Application")
!MESSAGE "rosshell - Win32 Unicode Release" (based on "Win32 (x86) Console Application")
!MESSAGE "rosshell - Win32 Unicode Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "rosshell - 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 "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O1 /D "NDEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /D "ROSSHELL" /Yu"precomp.h" /FD /c
# ADD BASE RSC /l 0x407 /d "NDEBUG"
# ADD RSC /l 0x407 /d "NDEBUG"
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:console /machine:I386
# ADD LINK32 shell32.lib comctl32.lib gdi32.lib user32.lib advapi32.lib ole32.lib delayimp.lib /nologo /subsystem:windows /machine:I386 /libpath:"Release" /delayload:oleaut32.dll /delayload:wsock32.dll
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "rosshell - 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 "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /D "ROSSHELL" /FR /Yu"precomp.h" /FD /GZ /c
# ADD BASE RSC /l 0x407 /d "_DEBUG"
# ADD RSC /l 0x407 /d "_DEBUG"
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:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib shell32.lib comctl32.lib gdi32.lib user32.lib advapi32.lib ole32.lib delayimp.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"Debug" /delayload:oleaut32.dll /delayload:wsock32.dll
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "rosshell - Win32 Debug Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "DRelease"
# PROP BASE Intermediate_Dir "DRelease"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "DRelease"
# PROP Intermediate_Dir "DRelease"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_ROS_" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /Zi /O2 /D "NDEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /D "ROSSHELL" /FR /Yu"precomp.h" /FD /c
# ADD BASE RSC /l 0x407 /d "NDEBUG"
# ADD RSC /l 0x407 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib comctl32.lib shell32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 shell32.lib comctl32.lib gdi32.lib user32.lib advapi32.lib ole32.lib delayimp.lib /nologo /subsystem:windows /debug /machine:I386 /delayload:oleaut32.dll /delayload:wsock32.dll
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "rosshell - Win32 Unicode Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "URelease"
# PROP BASE Intermediate_Dir "URelease"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "URelease"
# PROP Intermediate_Dir "URelease"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "UNICODE" /D "_ROS_" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /D "NDEBUG" /D "UNICODE" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /D "ROSSHELL" /Yu"precomp.h" /FD /c
# ADD BASE RSC /l 0x407 /d "NDEBUG"
# ADD RSC /l 0x407 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib comctl32.lib shell32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 shell32.lib comctl32.lib gdi32.lib user32.lib advapi32.lib ole32.lib delayimp.lib /nologo /subsystem:windows /machine:I386 /libpath:"Release" /delayload:oleaut32.dll /delayload:wsock32.dll
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "rosshell - Win32 Unicode Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "UDebug"
# PROP BASE Intermediate_Dir "UDebug"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "UDebug"
# PROP Intermediate_Dir "UDebug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "UNICODE" /D "_ROS_" /FR /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "_DEBUG" /D "UNICODE" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /D "ROSSHELL" /FR /Yu"precomp.h" /FD /GZ /c
# ADD BASE RSC /l 0x407 /d "_DEBUG"
# ADD RSC /l 0x407 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib comctl32.lib shell32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 shell32.lib comctl32.lib gdi32.lib user32.lib advapi32.lib ole32.lib delayimp.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"Debug" /delayload:oleaut32.dll /delayload:wsock32.dll
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "rosshell - Win32 Release"
# Name "rosshell - Win32 Debug"
# Name "rosshell - Win32 Debug Release"
# Name "rosshell - Win32 Unicode Release"
# Name "rosshell - Win32 Unicode Debug"
# Begin Group "utility"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\utility\dragdropimpl.cpp
# End Source File
# Begin Source File
SOURCE=.\utility\dragdropimpl.h
# End Source File
# Begin Source File
SOURCE=.\utility\shellbrowserimpl.cpp
# End Source File
# Begin Source File
SOURCE=.\utility\shellbrowserimpl.h
# End Source File
# Begin Source File
SOURCE=.\utility\shellclasses.cpp
# End Source File
# Begin Source File
SOURCE=.\utility\shellclasses.h
# End Source File
# Begin Source File
SOURCE=.\utility\treedroptarget.h
# End Source File
# Begin Source File
SOURCE=.\utility\utility.cpp
# End Source File
# Begin Source File
SOURCE=.\utility\utility.h
# End Source File
# Begin Source File
SOURCE=.\utility\window.cpp
# End Source File
# Begin Source File
SOURCE=.\utility\window.h
# End Source File
# Begin Source File
SOURCE=.\utility\xmlstorage.cpp
# End Source File
# Begin Source File
SOURCE=.\utility\xmlstorage.h
# End Source File
# End Group
# Begin Group "resources"
# PROP Default_Filter "bmp,ico"
# Begin Source File
SOURCE=.\res\action.ico
# End Source File
# Begin Source File
SOURCE=.\res\appicon.ico
# End Source File
# Begin Source File
SOURCE=.\res\apps.ico
# End Source File
# Begin Source File
SOURCE=.\res\arrow.ico
# End Source File
# Begin Source File
SOURCE=.\res\arrow_dwn.ico
# End Source File
# Begin Source File
SOURCE=.\res\arrow_up.ico
# End Source File
# Begin Source File
SOURCE=.\res\arrowsel.ico
# End Source File
# Begin Source File
SOURCE=.\res\computer.ico
# End Source File
# Begin Source File
SOURCE=.\res\config.ico
# End Source File
# Begin Source File
SOURCE=.\res\documents.ico
# End Source File
# Begin Source File
SOURCE=.\res\dot.ico
# End Source File
# Begin Source File
SOURCE=.\res\dot_red.ico
# End Source File
# Begin Source File
SOURCE=.\res\dot_trans.ico
# End Source File
# Begin Source File
SOURCE=.\res\drivebar.bmp
# End Source File
# Begin Source File
SOURCE=".\explorer-jp.rc"
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\res\explorer.ico
# End Source File
# Begin Source File
SOURCE=.\explorer_intres.h
# End Source File
# Begin Source File
SOURCE=.\explorer_intres.rc
# End Source File
# Begin Source File
SOURCE=.\res\favorites.ico
# End Source File
# Begin Source File
SOURCE=.\res\floating.ico
# End Source File
# Begin Source File
SOURCE=.\res\folder.ico
# End Source File
# Begin Source File
SOURCE=.\res\icoali10.bmp
# End Source File
# Begin Source File
SOURCE=.\res\icoalig0.bmp
# End Source File
# Begin Source File
SOURCE=.\res\icoalig1.bmp
# End Source File
# Begin Source File
SOURCE=.\res\icoalig2.bmp
# End Source File
# Begin Source File
SOURCE=.\res\icoalig3.bmp
# End Source File
# Begin Source File
SOURCE=.\res\icoalig4.bmp
# End Source File
# Begin Source File
SOURCE=.\res\icoalig5.bmp
# End Source File
# Begin Source File
SOURCE=.\res\icoalig6.bmp
# End Source File
# Begin Source File
SOURCE=.\res\icoalig7.bmp
# End Source File
# Begin Source File
SOURCE=.\res\icoalig8.bmp
# End Source File
# Begin Source File
SOURCE=.\res\icoalig9.bmp
# End Source File
# Begin Source File
SOURCE=.\res\images.bmp
# End Source File
# Begin Source File
SOURCE=.\res\info.ico
# End Source File
# Begin Source File
SOURCE=.\res\logoff.ico
# End Source File
# Begin Source File
SOURCE=.\res\logov.bmp
# End Source File
# Begin Source File
SOURCE=.\res\logov16.bmp
# End Source File
# Begin Source File
SOURCE=.\res\logov256.bmp
# End Source File
# Begin Source File
SOURCE=.\res\network.ico
# End Source File
# Begin Source File
SOURCE=.\res\notify_l.ico
# End Source File
# Begin Source File
SOURCE=.\res\notify_r.ico
# End Source File
# Begin Source File
SOURCE=.\res\printer.ico
# End Source File
# Begin Source File
SOURCE=.\res\reactos.ico
# End Source File
# Begin Source File
SOURCE=".\res\ros-big.ico"
# End Source File
# Begin Source File
SOURCE=".\res\search-doc.ico"
# End Source File
# Begin Source File
SOURCE=.\res\search.ico
# End Source File
# Begin Source File
SOURCE=.\res\speaker.ico
# End Source File
# Begin Source File
SOURCE=.\res\startmenu.ico
# End Source File
# End Group
# Begin Group "taskbar"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\taskbar\desktopbar.cpp
# End Source File
# Begin Source File
SOURCE=.\taskbar\desktopbar.h
# End Source File
# Begin Source File
SOURCE=.\taskbar\favorites.cpp
# End Source File
# Begin Source File
SOURCE=.\taskbar\favorites.h
# End Source File
# Begin Source File
SOURCE=.\notifyhook\notifyhook.h
# End Source File
# Begin Source File
SOURCE=.\taskbar\quicklaunch.cpp
# End Source File
# Begin Source File
SOURCE=.\taskbar\quicklaunch.h
# End Source File
# Begin Source File
SOURCE=.\taskbar\startmenu.cpp
# End Source File
# Begin Source File
SOURCE=.\taskbar\startmenu.h
# End Source File
# Begin Source File
SOURCE=.\taskbar\taskbar.cpp
# End Source File
# Begin Source File
SOURCE=.\taskbar\taskbar.h
# End Source File
# Begin Source File
SOURCE=.\taskbar\traynotify.cpp
# End Source File
# Begin Source File
SOURCE=.\taskbar\traynotify.h
# End Source File
# End Group
# Begin Group "desktop"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\desktop\desktop.cpp
# End Source File
# Begin Source File
SOURCE=.\desktop\desktop.h
# End Source File
# End Group
# Begin Group "shell"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\shell\entries.cpp
# End Source File
# Begin Source File
SOURCE=.\shell\entries.h
# End Source File
# Begin Source File
SOURCE=.\shell\filechild.h
# End Source File
# Begin Source File
SOURCE=.\shell\pane.cpp
# End Source File
# Begin Source File
SOURCE=.\shell\pane.h
# End Source File
# Begin Source File
SOURCE=.\shell\shellbrowser.h
# End Source File
# Begin Source File
SOURCE=.\shell\shellfs.cpp
# End Source File
# Begin Source File
SOURCE=.\shell\shellfs.h
# End Source File
# Begin Source File
SOURCE=.\shell\winfs.cpp
# End Source File
# Begin Source File
SOURCE=.\shell\winfs.h
# End Source File
# End Group
# Begin Group "dialogs"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\dialogs\searchprogram.cpp
# End Source File
# Begin Source File
SOURCE=.\dialogs\searchprogram.h
# End Source File
# Begin Source File
SOURCE=.\dialogs\settings.cpp
# End Source File
# Begin Source File
SOURCE=.\dialogs\settings.h
# End Source File
# End Group
# Begin Group "main"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\explorer.cpp
# End Source File
# Begin Source File
SOURCE=.\explorer.h
# End Source File
# Begin Source File
SOURCE=.\externals.h
# End Source File
# Begin Source File
SOURCE=.\globals.h
# End Source File
# Begin Source File
SOURCE=".\i386-stub-win32.c"
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=.\precomp.cpp
# ADD CPP /Yc"precomp.h"
# End Source File
# Begin Source File
SOURCE=.\precomp.h
# End Source File
# End Group
# Begin Group "services"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\services\shellservices.cpp
# End Source File
# Begin Source File
SOURCE=.\services\shellservices.h
# End Source File
# Begin Source File
SOURCE=.\services\startup.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# End Group
# End Target
# End Project

View file

@ -0,0 +1,56 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "rosshell"=.\rosshell.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name notifyhook
End Project Dependency
}}}
###############################################################################
Project: "make_rosshell"=.\make_rosshell.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "notifyhook"=.\notifyhook\notifyhook.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

View file

@ -141,6 +141,7 @@ void Entry::read_directory_base(SORT_ORDER sortOrder, int scan_flags)
// call into subclass
read_directory(scan_flags);
#ifndef ROSSHELL
if (g_Globals._prescan_nodes) { //@todo _prescan_nodes should not be used for reading the start menu.
for(Entry*entry=_down; entry; entry=entry->_next)
if (entry->_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
@ -148,6 +149,7 @@ void Entry::read_directory_base(SORT_ORDER sortOrder, int scan_flags)
entry->sort_directory(sortOrder);
}
}
#endif
sort_directory(sortOrder);
}

View file

@ -41,6 +41,11 @@
#include "../dialogs/settings.h"
#define SHELLPATH_CONTROL_PANEL TEXT("::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{21EC2020-3AEA-1069-A2DD-08002B30309D}")
#define SHELLPATH_PRINTERS TEXT("::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{2227A280-3AEA-1069-A2DE-08002B30309D}")
#define SHELLPATH_NET_CONNECTIONS TEXT("::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\\::{7007ACC7-3202-11D1-AAD2-00805FC1270E}")
StartMenu::StartMenu(HWND hwnd)
: super(hwnd)
{
@ -1856,6 +1861,7 @@ int StartMenuHandler::Command(int id, int code)
case IDC_CONTROL_PANEL: {
CloseStartMenu(id);
#ifndef ROSSHELL
#ifndef _NO_MDI
XMLPos explorer_options = g_Globals.get_cfg("general/explorer");
bool mdi = XMLBool(explorer_options, "mdi", true);
@ -1865,6 +1871,9 @@ int StartMenuHandler::Command(int id, int code)
else
#endif
SDIMainFrame::Create(TEXT("::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{21EC2020-3AEA-1069-A2DD-08002B30309D}"), 0);
#else
launch_file(_hwnd, SHELLPATH_CONTROL_PANEL);
#endif
break;}
case IDC_SETTINGS_MENU:
@ -1873,6 +1882,8 @@ int StartMenuHandler::Command(int id, int code)
case IDC_PRINTERS: {
CloseStartMenu(id);
#ifndef ROSSHELL
#ifdef _ROS_ // to be removed when printer folder will be implemented
MessageBox(0, TEXT("printer folder not yet implemented in SHELL32"), ResString(IDS_TITLE), MB_OK);
#else
@ -1885,6 +1896,9 @@ int StartMenuHandler::Command(int id, int code)
else
#endif
SDIMainFrame::Create(TEXT("::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\\::{2227A280-3AEA-1069-A2DE-08002B30309D}"), 0);
#endif
#else
launch_file(_hwnd, SHELLPATH_PRINTERS);
#endif
break;}
@ -1901,14 +1915,26 @@ int StartMenuHandler::Command(int id, int code)
break;
case IDC_ADMIN:
#ifndef ROSSHELL
CreateSubmenu(id, CSIDL_COMMON_ADMINTOOLS, CSIDL_ADMINTOOLS, ResString(IDS_ADMIN));
//CloseStartMenu(id);
//MainFrame::Create(SpecialFolderPath(CSIDL_COMMON_ADMINTOOLS, _hwnd), OWM_PIDL);
#else
launch_file(_hwnd, SpecialFolderFSPath(CSIDL_COMMON_ADMINTOOLS, _hwnd));
#endif
break;
case IDC_CONNECTIONS:
#ifndef ROSSHELL
#ifdef _ROS_ // to be removed when RAS will be implemented
MessageBox(0, TEXT("RAS folder not yet implemented in SHELL32"), ResString(IDS_TITLE), MB_OK);
#else
CreateSubmenu(id, CSIDL_CONNECTIONS, ResString(IDS_CONNECTIONS));
//CloseStartMenu(id);
//MainFrame::Create(SpecialFolderPath(CSIDL_CONNECTIONS, _hwnd), OWM_PIDL);
#endif
#else
launch_file(_hwnd, SHELLPATH_NET_CONNECTIONS);
#endif
break;

View file

@ -199,9 +199,9 @@ using namespace _com_util;
// launch a program or document file
extern BOOL launch_file(HWND hwnd, LPCTSTR cmd, UINT nCmdShow, LPCTSTR parameters=NULL);
extern BOOL launch_file(HWND hwnd, LPCTSTR cmd, UINT nCmdShow=SW_SHOWNORMAL, LPCTSTR parameters=NULL);
#ifdef UNICODE
extern BOOL launch_fileA(HWND hwnd, LPSTR cmd, UINT nCmdShow, LPCSTR parameters=NULL);
extern BOOL launch_fileA(HWND hwnd, LPSTR cmd, UINT nCmdShow=SW_SHOWNORMAL, LPCSTR parameters=NULL);
#else
#define launch_fileA launch_file
#endif