* created a Makefile for compiling as standalone project using MinGW
authorMartin Fuchs <fuchs.martin@gmail.com>
Sat, 27 Sep 2003 17:21:03 +0000 (17:21 +0000)
committerMartin Fuchs <fuchs.martin@gmail.com>
Sat, 27 Sep 2003 17:21:03 +0000 (17:21 +0000)
* eliminated all warnings displayed when using -Wall
* activated option for compiling as UNICODE version

svn path=/trunk/; revision=6166

18 files changed:
reactos/subsys/system/explorer/Makefile.MinGW [new file with mode: 0644]
reactos/subsys/system/explorer/doc/changes.txt
reactos/subsys/system/explorer/explorer.cpp
reactos/subsys/system/explorer/explorer_intres.rc
reactos/subsys/system/explorer/make_explorer.dsp
reactos/subsys/system/explorer/makefile_rex
reactos/subsys/system/explorer/shell/entries.cpp
reactos/subsys/system/explorer/shell/pane.cpp
reactos/subsys/system/explorer/shell/pane.h
reactos/subsys/system/explorer/shell/shellfs.cpp
reactos/subsys/system/explorer/shell/startup.c
reactos/subsys/system/explorer/taskbar/startmenu.h
reactos/subsys/system/explorer/taskbar/taskbar.cpp
reactos/subsys/system/explorer/taskbar/traynotify.cpp
reactos/subsys/system/explorer/utility/dragdropimpl.cpp
reactos/subsys/system/explorer/utility/dragdropimpl.h
reactos/subsys/system/explorer/utility/shellclasses.cpp
reactos/subsys/system/explorer/utility/shellclasses.h

diff --git a/reactos/subsys/system/explorer/Makefile.MinGW b/reactos/subsys/system/explorer/Makefile.MinGW
new file mode 100644 (file)
index 0000000..ccb9196
--- /dev/null
@@ -0,0 +1,75 @@
+#
+#  ReactOS explorer
+#
+#  Makefile.MinGW
+#
+
+
+CC = gcc
+CXX = g++
+LINK = g++
+
+CFLAGS = -DWIN32 -D_ROS_ -D_WIN32_IE=0x0501 -D_WIN32_WINNT=0x0501 -fexceptions -Wall
+CXXFLAGS= $(CFLAGS)
+RCFLAGS        = -DWIN32 -D_ROS_
+LFLAGS = -Wl,--subsystem,windows
+
+ifdef DEBUG
+CFLAGS += -D_DEBUG -g
+RCFLAGS        += -D_DEBUG
+LFLAGS += -g
+else
+CFLAGS += -DNDEBUG -Os
+RCFLAGS        += -DNDEBUG
+LFLAGS += -s
+endif
+
+ifdef UNICODE
+CFLAGS += -DUNICODE
+# LFLAGS+= -Wl,--entry,_wWinMain@16
+endif
+
+EXEC_SUFFIX = .exe
+RES_SUFFIX = .coff
+
+VPATH = shell utility taskbar desktop
+
+PROGRAM = explorer
+
+TARGET = $(PROGRAM)$(EXEC_SUFFIX)
+
+OBJECTS = \
+       startup.o \
+       shellclasses.o \
+       utility.o \
+       window.o \
+       dragdropimpl.o \
+       explorer.o \
+       entries.o \
+       winfs.o \
+       unixfs.o \
+       shellfs.o \
+       mainframe.o \
+       filechild.o \
+       pane.o \
+       shellbrowser.o \
+       desktop.o \
+       desktopbar.o \
+       taskbar.o \
+       startmenu.o \
+       traynotify.o \
+       quicklaunch.o
+
+LIBS = gdi32 comctl32 ole32 uuid
+
+all: $(TARGET)
+
+$(TARGET): $(OBJECTS) $(PROGRAM)$(RES_SUFFIX)
+       $(LINK) $(LFLAGS) -o $@ $^ $(addprefix -l,$(LIBS))
+
+explorer$(RES_SUFFIX): $(PROGRAM)_intres.rc
+       windres $(RCFLAGS) -o $@ $^
+
+clean:
+       rm -f $(TARGET) *.o *$(RES_SUFFIX)
+
index 81f4846..ae54047 100644 (file)
@@ -35,3 +35,6 @@
 10.09.2003     m. fuchs        compatibility changes for correct desktop windows size on Windows NT
 19.09.2003     m. fuchs        compatibility changes for correct start menu subentries on Windows 9x
 27.09.2003     m. fuchs        moved start menu entries for control panel, etc. into new settings submenu
+                                               created a Makefile for compiling as standalone project using MinGW
+                                               eliminated all warnings displayed when using -Wall
+                                               activated option for compiling as UNICODE version
index 70b083e..1fabfe9 100644 (file)
@@ -153,6 +153,24 @@ int explorer_main(HINSTANCE hInstance, HWND hwndDesktop, int cmdshow)
 }
 
 
+ // MinGW does not provide a Unicode startup routine, so we have to implement an own.
+#if defined(__MINGW32__) && defined(UNICODE)
+
+#define _tWinMain wWinMain
+int WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int);
+
+int main(int argc, char* argv[])
+{
+       STARTUPINFO startupinfo;
+
+       GetStartupInfo(&startupinfo);
+
+       return wWinMain(GetModuleHandle(NULL), 0, GetCommandLine(), startupinfo.wShowWindow);
+}
+
+#endif // __MINGW && UNICODE
+
+
 int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nShowCmd)
 {
         // create desktop window and task bar only, if there is no other shell and we are
index 8e2008f..86e9d63 100644 (file)
@@ -7,9 +7,8 @@
 //
 // Generated from the TEXTINCLUDE 2 resource.
 //
-#ifndef _ROS_
-#include "afxres.h"
-#endif
+#include <windows.h>
+
 /////////////////////////////////////////////////////////////////////////////
 #undef APSTUDIO_READONLY_SYMBOLS
 
@@ -50,8 +49,8 @@ BEGIN
     END
     POPUP "&Ajutor"
     BEGIN
-        MENUITEM "&Despre Explorer...",         ID_ABOUT
         MENUITEM "Explorer &FAQ...",            ID_EXPLORER_FAQ
+        MENUITEM "&Despre Explorer...",         ID_ABOUT
     END
 END
 
@@ -109,8 +108,8 @@ BEGIN
     IDS_DRIVES              "Discuri"
     IDS_SEARCH_COMPUTER     "Search Computer..."
     IDS_SETTINGS_MENU       "Settings Menu"
-    IDS_PRINTERS            "Printers"
     IDS_CONTROL_PANEL       "Control Panel"
+    IDS_PRINTERS            "Printers"
 END
 
 #endif    // Romanian resources
@@ -311,9 +310,8 @@ END
 
 2 TEXTINCLUDE DISCARDABLE 
 BEGIN
-    "#ifndef _ROS_\r\n"
-    "#include ""afxres.h""\r\n"
-    "#endif\0"
+    "#include <windows.h>\r\n"
+    "\0"
 END
 
 3 TEXTINCLUDE DISCARDABLE 
@@ -370,8 +368,8 @@ BEGIN
     IDS_DRIVES              "Verzeichnisse"
     IDS_SEARCH_COMPUTER     "Suche Computer..."
     IDS_SETTINGS_MENU       "Einstellungen-Menu"
-    IDS_PRINTERS            "Drucker"
     IDS_CONTROL_PANEL       "Systemsteuerung"
+    IDS_PRINTERS            "Drucker"
 END
 
 #endif    // German (Germany) resources
@@ -415,8 +413,8 @@ BEGIN
     END
     POPUP "&Help"
     BEGIN
-        MENUITEM "&About Explorer...",          ID_ABOUT
         MENUITEM "Explorer &FAQ...",            ID_EXPLORER_FAQ
+        MENUITEM "&About Explorer...",          ID_ABOUT
     END
 END
 
@@ -583,8 +581,8 @@ BEGIN
     IDS_DRIVES              "Drives"
     IDS_SEARCH_COMPUTER     "Search Computer..."
     IDS_SETTINGS_MENU       "Settings Menu"
-    IDS_PRINTERS            "Printers"
     IDS_CONTROL_PANEL       "Control Panel"
+    IDS_PRINTERS            "Printers"
 END
 
 #endif    // English (U.S.) resources
index bd378e1..7a726a3 100644 (file)
@@ -41,7 +41,7 @@ CFG=make_explorer - Win32 Debug
 # PROP Use_Debug_Libraries 0
 # PROP Output_Dir "Release"
 # PROP Intermediate_Dir "Release"
-# PROP Cmd_Line "msdevfilt -gcc make"
+# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=1"
 # PROP Rebuild_Opt "clean all"
 # PROP Target_File "explorer.exe"
 # PROP Bsc_Name ""
@@ -62,7 +62,7 @@ CFG=make_explorer - Win32 Debug
 # 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 DEBUG=1"
+# 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 "explorer.exe"
 # PROP Bsc_Name ""
@@ -89,5 +89,9 @@ SOURCE=..\..\..\ChangeLog
 
 SOURCE=.\makefile
 # End Source File
+# Begin Source File
+
+SOURCE=.\Makefile.MinGW
+# End Source File
 # End Target
 # End Project
index c66f4df..2bd51b7 100644 (file)
@@ -12,17 +12,16 @@ TARGET_APPTYPE = windows
 
 TARGET_NAME = explorer
 
-TARGET_CFLAGS = -fexceptions -Os -DNDEBUG -DWIN32 -D_ROS_ -W -D_WIN32_IE=0x0501 -D_WIN32_WINNT=0x0501
+TARGET_CFLAGS = -fexceptions -Os -DNDEBUG -DWIN32 -D_ROS_ -Wall -D_WIN32_IE=0x0501 -D_WIN32_WINNT=0x0501
        
-TARGET_CPPFLAGS = -fexceptions -Os -DNDEBUG -DWIN32 -D_ROS_ -W -D_WIN32_IE=0x0501 -D_WIN32_WINNT=0x0501
+TARGET_CPPFLAGS = -fexceptions -Os -DNDEBUG -DWIN32 -D_ROS_ -Wall -D_WIN32_IE=0x0501 -D_WIN32_WINNT=0x0501
 
 TARGET_RCFLAGS = -DNDEBUG -DWIN32 -D_ROS_
 
 ifdef UNICODE
 TARGET_CFLAGS += -DUNICODE
 TARGET_CPPFLAGS += -DUNICODE
-TARGET_RCFLAGS += -DUNICODE 
-MK_DEFENTRY = _wWinMain@16
+# MK_DEFENTRY = _wWinMain@16
 endif
 
 VPATH += shell
index fcaae68..53ba186 100644 (file)
@@ -48,8 +48,8 @@ Entry::Entry(ENTRY_TYPE etype)
 }
 
 Entry::Entry(Entry* parent)
- :     _etype(parent->_etype),
-       _up(parent)
+ :     _up(parent),
+       _etype(parent->_etype)
 {
        _next = NULL;
        _down = NULL;
index a1d9bbe..603b9c3 100644 (file)
@@ -113,8 +113,8 @@ Pane::Pane(HWND hparent, int id, int id_header, Entry* root, bool treePane, int
                        LBS_DISABLENOSCROLL|LBS_NOINTEGRALHEIGHT|LBS_OWNERDRAWFIXED|LBS_NOTIFY,
                        0, 0, 0, 0, hparent, (HMENU)id, g_Globals._hInstance, 0)),
        _root(root),
-       _treePane(treePane),
-       _visible_cols(visible_cols)
+       _visible_cols(visible_cols),
+       _treePane(treePane)
 {
         // insert entries into listbox
        Entry* entry = _root;
index fe811e5..6735359 100644 (file)
@@ -71,13 +71,14 @@ struct Pane : public SubclassedWindow
                
        WindowHandle _hwndHeader;
 
-       bool    _treePane;
-       int     _visible_cols;
        Entry*  _root;
        Entry*  _cur;
 
        COLORREF _clrCompressed;
 
+       int     _visible_cols;
+       bool    _treePane;
+
        void    init();
        void    set_header();
        bool    create_header(HWND parent, int id);
index d3a566c..be02f4d 100644 (file)
@@ -119,7 +119,7 @@ void ShellEntry::get_path(PTSTR path) const
 {
        path[0] = TEXT('\0');
 
-       HRESULT hr = path_from_pidl(get_parent_folder(), &*_pidl, path, MAX_PATH);
+       /*HRESULT hr = */path_from_pidl(get_parent_folder(), &*_pidl, path, MAX_PATH);
 }
 
 
@@ -243,7 +243,7 @@ void ShellDirectory::read_directory()
                        HRESULT hr = _folder->GetAttributesOf(1, (LPCITEMIDLIST*)&pidls[n], &attribs);
 
                        if (SUCCEEDED(hr)) {
-                               if (attribs != ~SFGAO_FILESYSTEM)
+                               if (attribs != (SFGAOF)~SFGAO_FILESYSTEM)
                                        bhfi_valid = fill_w32fdata_shell(pidls[n], attribs, &w32fd, &bhfi);
                                else
                                        attribs = 0;
index 9498e0b..cd5b7d1 100644 (file)
 
 #include <stdio.h>
 #include <windows.h>
-
-#define MAX_LINE_LENGTH (2*MAX_PATH+2)
-
-static BOOL GetLine( HANDLE hFile, char *buf, size_t buflen )
-{
-    size_t i=0;
-    buf[0]='\0';
-
-    do
-    {
-        DWORD read;
-        if( !ReadFile( hFile, buf, 1, &read, NULL ) || read!=1 )
-        {
-            return FALSE;
-        }
-
-    } while( isspace( *buf ) );
-
-    while( buf[i]!='\n' && i<=buflen &&
-            ReadFile( hFile, buf+i+1, 1, NULL, NULL ) )
-    {
-        ++i;
-    }
-
-
-    if( buf[i]!='\n' )
-    {
-       return FALSE;
-    }
-
-    if( i>0 && buf[i-1]=='\r' )
-        --i;
-
-    buf[i]='\0';
-
-    return TRUE;
-}
+#include <ctype.h>
 
 /* Performs the rename operations dictated in %SystemRoot%\Wininit.ini.
  * Returns FALSE if there was an error, or otherwise if all is ok.
@@ -116,27 +80,27 @@ static BOOL pendingRename()
 
     printf("Entered\n");
 
-    if( (res=RegOpenKeyExW( HKEY_LOCAL_MACHINE, SessionW, 0, KEY_ALL_ACCESS, &hSession ))
-            !=ERROR_SUCCESS )
+    if ((res=RegOpenKeyExW(HKEY_LOCAL_MACHINE, SessionW, 0, KEY_ALL_ACCESS, &hSession))
+            !=ERROR_SUCCESS)
     {
-        if( res==ERROR_FILE_NOT_FOUND )
+        if (res==ERROR_FILE_NOT_FOUND)
         {
             printf("The key was not found - skipping\n");
             res=TRUE;
         }
         else
         {
-            printf("Couldn't open key, error %ld\n", res );
+            printf("Couldn't open key, error %ld\n", res);
             res=FALSE;
         }
 
         goto end;
     }
 
-    res=RegQueryValueExW( hSession, ValueName, NULL, NULL /* The value type does not really interest us, as it is not
+    res=RegQueryValueExW(hSession, ValueName, NULL, NULL /* The value type does not really interest us, as it is not
                                                              truely a REG_MULTI_SZ anyways */,
-            NULL, &dataLength );
-    if( res==ERROR_FILE_NOT_FOUND )
+            NULL, &dataLength);
+    if (res==ERROR_FILE_NOT_FOUND)
     {
         /* No value - nothing to do. Great! */
         printf("Value not present - nothing to rename\n");
@@ -144,23 +108,23 @@ static BOOL pendingRename()
         goto end;
     }
 
-    if( res!=ERROR_SUCCESS )
+    if (res!=ERROR_SUCCESS)
     {
-        printf("Couldn't query value's length (%ld)\n", res );
+        printf("Couldn't query value's length (%ld)\n", res);
         res=FALSE;
         goto end;
     }
 
-    buffer=malloc( dataLength );
-    if( buffer==NULL )
+    buffer=malloc(dataLength);
+    if (buffer==NULL)
     {
-        printf("Couldn't allocate %lu bytes for the value\n", dataLength );
+        printf("Couldn't allocate %lu bytes for the value\n", dataLength);
         res=FALSE;
         goto end;
     }
 
-    res=RegQueryValueExW( hSession, ValueName, NULL, NULL, (LPBYTE)buffer, &dataLength );
-    if( res!=ERROR_SUCCESS )
+    res=RegQueryValueExW(hSession, ValueName, NULL, NULL, (LPBYTE)buffer, &dataLength);
+    if (res!=ERROR_SUCCESS)
     {
         printf("Couldn't query value after successfully querying before (%lu),\n"
                 "please report to wine-devel@winehq.org\n", res);
@@ -171,17 +135,17 @@ static BOOL pendingRename()
     /* Make sure that the data is long enough and ends with two NULLs. This
      * simplifies the code later on.
      */
-    ifdataLength<2*sizeof(buffer[0]) ||
+    if (dataLength<2*sizeof(buffer[0]) ||
             buffer[dataLength/sizeof(buffer[0])-1]!='\0' ||
-            buffer[dataLength/sizeof(buffer[0])-2]!='\0' )
+            buffer[dataLength/sizeof(buffer[0])-2]!='\0')
     {
         printf("Improper value format - doesn't end with NULL\n");
         res=FALSE;
         goto end;
     }
 
-    for( src=buffer; (src-buffer)*sizeof(src[0])<dataLength && *src!='\0';
-            src=dst+lstrlenW(dst)+1 )
+    for(src=buffer; (src-buffer)*sizeof(src[0])<dataLength && *src!='\0';
+            src=dst+lstrlenW(dst)+1)
     {
         DWORD dwFlags=0;
 
@@ -190,29 +154,29 @@ static BOOL pendingRename()
         dst=src+lstrlenW(src)+1;
 
         /* We need to skip the \??\ header */
-        if( src[0]=='\\' && src[1]=='?' && src[2]=='?' && src[3]=='\\' )
+        if (src[0]=='\\' && src[1]=='?' && src[2]=='?' && src[3]=='\\')
             src+=4;
 
-        if( dst[0]=='!' )
+        if (dst[0]=='!')
         {
             dwFlags|=MOVEFILE_REPLACE_EXISTING;
             dst++;
         }
 
-        if( dst[0]=='\\' && dst[1]=='?' && dst[2]=='?' && dst[3]=='\\' )
+        if (dst[0]=='\\' && dst[1]=='?' && dst[2]=='?' && dst[3]=='\\')
             dst+=4;
 
-        if( *dst!='\0' )
+        if (*dst!='\0')
         {
             /* Rename the file */
-            MoveFileExW( src, dst, dwFlags );
+            MoveFileExW(src, dst, dwFlags);
         } else
         {
             /* Delete the file or directory */
-                       res = GetFileAttributesW ( src );
-            if ( res != (DWORD)-1 )
+                       res = GetFileAttributesW (src);
+            if (res != (DWORD)-1)
             {
-                if( (res&FILE_ATTRIBUTE_DIRECTORY)==0 )
+                if ((res&FILE_ATTRIBUTE_DIRECTORY)==0)
                 {
                     /* It's a file */
                     DeleteFileW(src);
@@ -223,24 +187,24 @@ static BOOL pendingRename()
                 }
             } else
             {
-                printf("couldn't get file attributes (%ld)\n", GetLastError() );
+                printf("couldn't get file attributes (%ld)\n", GetLastError());
             }
         }
     }
 
-    if((res=RegDeleteValueW(hSession, ValueName))!=ERROR_SUCCESS )
+    if ((res=RegDeleteValueW(hSession, ValueName))!=ERROR_SUCCESS)
     {
-        printf("Error deleting the value (%lu)\n", GetLastError() );
+        printf("Error deleting the value (%lu)\n", GetLastError());
         res=FALSE;
     } else
         res=TRUE;
     
 end:
-    if( buffer!=NULL )
+    if (buffer!=NULL)
         free(buffer);
 
-    if( hSession!=NULL )
-        RegCloseKey( hSession );
+    if (hSession!=NULL)
+        RegCloseKey(hSession);
 
     return res;
 }
@@ -278,30 +242,30 @@ static int runCmd(LPWSTR cmdline, LPCWSTR dir, BOOL wait, BOOL minimized)
 
     memset(&si, 0, sizeof(si));
     si.cb=sizeof(si);
-    if( minimized )
+    if (minimized)
     {
         si.dwFlags=STARTF_USESHOWWINDOW;
         si.wShowWindow=SW_MINIMIZE;
     }
     memset(&info, 0, sizeof(info));
 
-    if( !CreateProcessW(NULL, cmdline, NULL, NULL, FALSE, 0, NULL, dir, &si, &info) )
+    if (!CreateProcessW(NULL, cmdline, NULL, NULL, FALSE, 0, NULL, dir, &si, &info))
     {
-        printf("Failed to run command (%ld)\n", GetLastError() );
+        printf("Failed to run command (%ld)\n", GetLastError());
 
         return INVALID_RUNCMD_RETURN;
     }
 
     printf("Successfully ran command\n"); //%s - Created process handle %p\n",
-               //wine_dbgstr_w(cmdline), info.hProcess );
+               //wine_dbgstr_w(cmdline), info.hProcess);
 
-    if(wait)
+    if (wait)
     {   /* wait for the process to exit */
         WaitForSingleObject(info.hProcess, INFINITE);
         GetExitCodeProcess(info.hProcess, &exit_code);
     }
 
-    CloseHandle( info.hProcess );
+    CloseHandle(info.hProcess);
 
     return exit_code;
 }
@@ -315,8 +279,8 @@ static int runCmd(LPWSTR cmdline, LPCWSTR dir, BOOL wait, BOOL minimized)
  * bSynchronous tells whether we should wait for the prog to complete before
  *      going on to the next prog.
  */
-static BOOL ProcessRunKeys( HKEY hkRoot, LPCWSTR szKeyName, BOOL bDelete,
-        BOOL bSynchronous )
+static BOOL ProcessRunKeys(HKEY hkRoot, LPCWSTR szKeyName, BOOL bDelete,
+        BOOL bSynchronous)
 {
     static const WCHAR WINKEY_NAME[]={'S','o','f','t','w','a','r','e','\\',
         'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\',
@@ -332,7 +296,7 @@ static BOOL ProcessRunKeys( HKEY hkRoot, LPCWSTR szKeyName, BOOL bDelete,
     else
         wprintf(L"processing %s entries under HKCU\n", szKeyName);
 
-    if( (res=RegOpenKeyExW( hkRoot, WINKEY_NAME, 0, KEY_READ, &hkWin ))!=ERROR_SUCCESS )
+    if ((res=RegOpenKeyExW(hkRoot, WINKEY_NAME, 0, KEY_READ, &hkWin))!=ERROR_SUCCESS)
     {
         printf("RegOpenKey failed on Software\\Microsoft\\Windows\\CurrentVersion (%ld)\n",
                 res);
@@ -340,10 +304,10 @@ static BOOL ProcessRunKeys( HKEY hkRoot, LPCWSTR szKeyName, BOOL bDelete,
         goto end;
     }
 
-    if( (res=RegOpenKeyExW( hkWin, szKeyName, 0, bDelete?KEY_ALL_ACCESS:KEY_READ, &hkRun ))!=
+    if ((res=RegOpenKeyExW(hkWin, szKeyName, 0, bDelete?KEY_ALL_ACCESS:KEY_READ, &hkRun))!=
             ERROR_SUCCESS)
     {
-        if( res==ERROR_FILE_NOT_FOUND )
+        if (res==ERROR_FILE_NOT_FOUND)
         {
             printf("Key doesn't exist - nothing to be done\n");
 
@@ -355,15 +319,15 @@ static BOOL ProcessRunKeys( HKEY hkRoot, LPCWSTR szKeyName, BOOL bDelete,
         goto end;
     }
     
-    if( (res=RegQueryInfoKeyW( hkRun, NULL, NULL, NULL, NULL, NULL, NULL, &i, &nMaxValue,
-                    &nMaxCmdLine, NULL, NULL ))!=ERROR_SUCCESS )
+    if ((res=RegQueryInfoKeyW(hkRun, NULL, NULL, NULL, NULL, NULL, NULL, &i, &nMaxValue,
+                    &nMaxCmdLine, NULL, NULL))!=ERROR_SUCCESS)
     {
-        printf("Couldn't query key info (%ld)\n", res );
+        printf("Couldn't query key info (%ld)\n", res);
 
         goto end;
     }
 
-    if( i==0 )
+    if (i==0)
     {
         printf("No commands to execute.\n");
 
@@ -371,7 +335,7 @@ static BOOL ProcessRunKeys( HKEY hkRoot, LPCWSTR szKeyName, BOOL bDelete,
         goto end;
     }
     
-    if( (szCmdLine=malloc(nMaxCmdLine))==NULL )
+    if ((szCmdLine=malloc(nMaxCmdLine))==NULL)
     {
         printf("Couldn't allocate memory for the commands to be executed\n");
 
@@ -379,7 +343,7 @@ static BOOL ProcessRunKeys( HKEY hkRoot, LPCWSTR szKeyName, BOOL bDelete,
         goto end;
     }
 
-    if( (szValue=malloc((++nMaxValue)*sizeof(*szValue)))==NULL )
+    if ((szValue=malloc((++nMaxValue)*sizeof(*szValue)))==NULL)
     {
         printf("Couldn't allocate memory for the value names\n");
 
@@ -387,36 +351,36 @@ static BOOL ProcessRunKeys( HKEY hkRoot, LPCWSTR szKeyName, BOOL bDelete,
         goto end;
     }
     
-    while( i>0 )
+    while(i>0)
     {
         DWORD nValLength=nMaxValue, nDataLength=nMaxCmdLine;
         DWORD type;
 
         --i;
 
-        if( (res=RegEnumValueW( hkRun, i, szValue, &nValLength, 0, &type,
-                        (LPBYTE)szCmdLine, &nDataLength ))!=ERROR_SUCCESS )
+        if ((res=RegEnumValueW(hkRun, i, szValue, &nValLength, 0, &type,
+                        (LPBYTE)szCmdLine, &nDataLength))!=ERROR_SUCCESS)
         {
-            printf("Couldn't read in value %ld - %ld\n", i, res );
+            printf("Couldn't read in value %ld - %ld\n", i, res);
 
             continue;
         }
 
-        if( bDelete && (res=RegDeleteValueW( hkRun, szValue ))!=ERROR_SUCCESS )
+        if (bDelete && (res=RegDeleteValueW(hkRun, szValue))!=ERROR_SUCCESS)
         {
-            printf("Couldn't delete value - %ld, %ld. Running command anyways.\n", i, res );
+            printf("Couldn't delete value - %ld, %ld. Running command anyways.\n", i, res);
         }
         
-        if( type!=REG_SZ )
+        if (type!=REG_SZ)
         {
-            printf("Incorrect type of value #%ld (%ld)\n", i, type );
+            printf("Incorrect type of value #%ld (%ld)\n", i, type);
 
             continue;
         }
 
-        if( (res=runCmd(szCmdLine, NULL, bSynchronous, FALSE ))==INVALID_RUNCMD_RETURN )
+        if ((res=runCmd(szCmdLine, NULL, bSynchronous, FALSE))==INVALID_RUNCMD_RETURN)
         {
-            printf("Error running cmd #%ld (%ld)\n", i, GetLastError() );
+            printf("Error running cmd #%ld (%ld)\n", i, GetLastError());
         }
 
         printf("Done processing cmd #%ld\n", i);
@@ -425,10 +389,10 @@ static BOOL ProcessRunKeys( HKEY hkRoot, LPCWSTR szKeyName, BOOL bDelete,
     res=ERROR_SUCCESS;
 
 end:
-    if( hkRun!=NULL )
-        RegCloseKey( hkRun );
-    if( hkWin!=NULL )
-        RegCloseKey( hkWin );
+    if (hkRun!=NULL)
+        RegCloseKey(hkRun);
+    if (hkWin!=NULL)
+        RegCloseKey(hkWin);
 
     printf("done\n");
 
@@ -448,40 +412,40 @@ static const struct op_mask SESSION_START={FALSE, FALSE, TRUE, TRUE, TRUE, TRUE}
     SETUP={FALSE, FALSE, FALSE, TRUE, TRUE, TRUE};
 #define DEFAULT SESSION_START
 
-int startup( int argc, char *argv[] )
+int startup(int argc, char *argv[])
 {
     struct op_mask ops; /* Which of the ops do we want to perform? */
     /* First, set the current directory to SystemRoot */
     TCHAR gen_path[MAX_PATH];
     DWORD res;
 
-    res=GetWindowsDirectory( gen_path, sizeof(gen_path) );
+    res = GetWindowsDirectory(gen_path, sizeof(gen_path));
     
-    if( res==0 )
+    if (res==0)
     {
-       printf("Couldn't get the windows directory - error %ld\n",
-               GetLastError() );
+               printf("Couldn't get the windows directory - error %ld\n",
+                       GetLastError());
 
-       return 100;
+               return 100;
     }
 
-    if( res>=sizeof(gen_path) )
+    if (res>=sizeof(gen_path))
     {
-       printf("Windows path too long (%ld)\n", res );
+               printf("Windows path too long (%ld)\n", res);
 
-       return 100;
+               return 100;
     }
 
-    if( !SetCurrentDirectory( gen_path ) )
+    if (!SetCurrentDirectory(gen_path))
     {
-        printf("Cannot set the dir to %s (%ld)\n", gen_path, GetLastError() );
+        wprintf(L"Cannot set the dir to %s (%ld)\n", gen_path, GetLastError());
 
         return 100;
     }
 
-    if( argc>1 )
+    if (argc>1)
     {
-        switch( argv[1][0] )
+        switch(argv[1][0])
         {
         case 'r': /* Restart */
             ops=SETUP;
@@ -501,15 +465,15 @@ int startup( int argc, char *argv[] )
     res=(ops.ntonly || !ops.preboot || wininit()) &&
         (ops.w9xonly || !ops.preboot || pendingRename()) &&
         (ops.ntonly || !ops.prelogin ||
-         ProcessRunKeys( HKEY_LOCAL_MACHINE, runkeys_names[RUNKEY_RUNSERVICESONCE], TRUE, FALSE )) &&
+         ProcessRunKeys(HKEY_LOCAL_MACHINE, runkeys_names[RUNKEY_RUNSERVICESONCE], TRUE, FALSE)) &&
         (ops.ntonly || !ops.prelogin || !ops.startup ||
-         ProcessRunKeys( HKEY_LOCAL_MACHINE, runkeys_names[RUNKEY_RUNSERVICES], FALSE, FALSE )) &&
+         ProcessRunKeys(HKEY_LOCAL_MACHINE, runkeys_names[RUNKEY_RUNSERVICES], FALSE, FALSE)) &&
         (!ops.postlogin ||
-         ProcessRunKeys( HKEY_LOCAL_MACHINE, runkeys_names[RUNKEY_RUNONCE], TRUE, TRUE )) &&
+         ProcessRunKeys(HKEY_LOCAL_MACHINE, runkeys_names[RUNKEY_RUNONCE], TRUE, TRUE)) &&
         (!ops.postlogin || !ops.startup ||
-         ProcessRunKeys( HKEY_LOCAL_MACHINE, runkeys_names[RUNKEY_RUN], FALSE, FALSE )) &&
+         ProcessRunKeys(HKEY_LOCAL_MACHINE, runkeys_names[RUNKEY_RUN], FALSE, FALSE)) &&
         (!ops.postlogin || !ops.startup ||
-         ProcessRunKeys( HKEY_CURRENT_USER, runkeys_names[RUNKEY_RUN], FALSE, FALSE ));
+         ProcessRunKeys(HKEY_CURRENT_USER, runkeys_names[RUNKEY_RUN], FALSE, FALSE));
 
     printf("Operation done\n");
 
index b5b99db..b62b49a 100644 (file)
@@ -61,7 +61,7 @@ typedef list<StartMenuDirectory> StartMenuShellDirs;
 
 struct StartMenuEntry
 {
-       StartMenuEntry() : _entry(NULL), _hIcon(0) {}
+       StartMenuEntry() : _hIcon(0), _entry(NULL) {}
 
        String  _title;
        HICON   _hIcon;
@@ -150,7 +150,7 @@ protected:
        ShellEntryMap _entries;
        StartMenuShellDirs _dirs;
 
-       UINT    _submenu_id;
+       int             _submenu_id;
        WindowHandle _submenu;
 
        int             _border_left;   // left border in pixels
index 59acc90..306d976 100644 (file)
@@ -165,7 +165,7 @@ int TaskBar::Notify(int id, NMHDR* pnmh)
                        if (idx>=0 &&
                                SendMessage(_htoolbar, TB_GETBUTTONINFO, idx, (LPARAM)&btninfo)!=-1 &&
                                (it=_map.find_id(btninfo.idCommand))!=_map.end()) {
-                               TaskBarEntry& entry = it->second;
+                               //TaskBarEntry& entry = it->second;
 
                                ActivateApp(it, false);
                                ShowAppSystemMenu(it);
index a4d3b41..ef3fe70 100644 (file)
@@ -267,7 +267,7 @@ NotifyIconSet::iterator NotifyArea::IconHitTest(const POINT& pos)
        int x = 2;
 
        for(; it!=_sorted_icons.end(); ++it) {
-               NotifyInfo& entry = const_cast<NotifyInfo&>(*it);       // Why does GCC 3.3 need this additional const_cast ?!
+               //NotifyInfo& entry = const_cast<NotifyInfo&>(*it);     // Why does GCC 3.3 need this additional const_cast ?!
 
                if (pos.x>=x && pos.x<x+16)
                        break;
index 28107ab..683bd9b 100644 (file)
@@ -18,9 +18,9 @@
 // IDataObjectImpl Class
 //////////////////////////////////////////////////////////////////////
 
-IDataObjectImpl::IDataObjectImpl(IDropSourceImpl* pDropSource):
      m_cRefCount(0),
-       m_pDropSource(pDropSource)
+IDataObjectImpl::IDataObjectImpl(IDropSourceImpl* pDropSource)
:     m_pDropSource(pDropSource),
+       m_cRefCount(0)
 {
 }
 
@@ -415,10 +415,12 @@ STDMETHODIMP EnumFormatEtcImpl::Clone(IEnumFORMATETC** ppCloneEnumFormatEtc)
 //////////////////////////////////////////////////////////////////////
 // IDropTargetImpl Class
 //////////////////////////////////////////////////////////////////////
-IDropTargetImpl::IDropTargetImpl(HWND hTargetWnd): 
-       m_hTargetWnd(hTargetWnd),
-       m_cRefCount(0), m_bAllowDrop(false),
-       m_pDropTargetHelper(NULL), m_pSupportedFrmt(NULL)
+IDropTargetImpl::IDropTargetImpl(HWND hTargetWnd)
+ :     m_cRefCount(0),
+       m_bAllowDrop(false),
+       m_pDropTargetHelper(NULL),
+       m_pSupportedFrmt(NULL),
+       m_hTargetWnd(hTargetWnd)
 { 
        assert(m_hTargetWnd != NULL);
 
index 249d65e..fdc87c9 100644 (file)
@@ -32,6 +32,7 @@ class EnumFormatEtcImpl : public IEnumFORMATETC
    public:
      EnumFormatEtcImpl(const FormatArray& ArrFE);
         EnumFormatEtcImpl(const StorageArray& ArrFE);
+        virtual ~EnumFormatEtcImpl() {}
 
      //IUnknown members
      STDMETHOD(QueryInterface)(REFIID, void**);
@@ -80,7 +81,7 @@ class IDataObjectImpl : public IDataObject//,public IAsyncOperation
 
 public:
        IDataObjectImpl(IDropSourceImpl* pDropSource);
-       ~IDataObjectImpl();
+       virtual ~IDataObjectImpl();
 
        void CopyMedium(STGMEDIUM* pMedDest, STGMEDIUM* pMedSrc, FORMATETC* pFmtSrc);
 
index f0ea01a..e576437 100644 (file)
@@ -32,7 +32,9 @@
 #include "shellclasses.h"
 
 
+#ifdef _MS_VER
 #pragma comment(lib, "shell32")        // link to shell32.dll
+#endif
 
 
  // helper functions for string copying
index fc92ef1..ebecaf8 100644 (file)
@@ -72,7 +72,7 @@ struct COMException
                        LPTSTR pBuf;
 
                        if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
-                               0, _hr, MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT), (LPSTR)&pBuf, 0, NULL)) {
+                               0, _hr, MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT), (LPTSTR)&pBuf, 0, NULL)) {
                                _msg = pBuf;
                                LocalFree(pBuf);
                         } else {