- use Winefile command line for initial directory selection
- remove useless hwndParent variable
Modified: trunk/reactos/subsys/system/winefile/Makefile.MinGW
Modified: trunk/reactos/subsys/system/winefile/winefile.c
Modified: trunk/reactos/subsys/system/winefile/winefile.h
  _____
Modified: trunk/reactos/subsys/system/winefile/Makefile.MinGW
--- trunk/reactos/subsys/system/winefile/Makefile.MinGW 2005-11-16
22:28:05 UTC (rev 19285)
+++ trunk/reactos/subsys/system/winefile/Makefile.MinGW 2005-11-16
23:07:37 UTC (rev 19286)
@@ -25,7 +25,7 @@
 ifeq ($(UNICODE),1)
 CFLAGS += -DUNICODE
-# LFLAGS+= -Wl,--entry,_wWinMain@16
+#LFLAGS        += -Wl,--entry,_wWinMain@16
 RCFLAGS += -DUNICODE
 endif
  _____
Modified: trunk/reactos/subsys/system/winefile/winefile.c
--- trunk/reactos/subsys/system/winefile/winefile.c     2005-11-16
22:28:05 UTC (rev 19285)
+++ trunk/reactos/subsys/system/winefile/winefile.c     2005-11-16
23:07:37 UTC (rev 19286)
@@ -2146,9 +2146,7 @@
                        break;
                case WM_DESTROY:
-                        /* don't exit desktop when closing file manager
window */
-                       if (!Globals.hwndParent)
-                               PostQuitMessage(0);
+                       PostQuitMessage(0);
                        break;
                case WM_INITMENUPOPUP: {
@@ -4683,11 +4681,11 @@
 }
-static void show_frame(HWND hwndParent, int cmdshow)
+static void show_frame(HWND hwndParent, int cmdshow, LPCTSTR path)
 {
        const static TCHAR sMDICLIENT[] =
{'M','D','I','C','L','I','E','N','T','\0'};
-       TCHAR path[MAX_PATH], b1[BUFFER_LEN];
+       TCHAR buffer[MAX_PATH], b1[BUFFER_LEN];
        ChildWnd* child;
        HMENU hMenuFrame, hMenuWindow;
@@ -4696,8 +4694,6 @@
        if (Globals.hMainWnd)
                return;
-       Globals.hwndParent = hwndParent;
-
        hMenuFrame = LoadMenu(Globals.hInstance,
MAKEINTRESOURCE(IDM_WINEFILE));
        hMenuWindow = GetSubMenu(hMenuFrame,
GetMenuItemCount(hMenuFrame)-2);
@@ -4752,8 +4748,12 @@
                                        Globals.hMainWnd,
(HMENU)IDW_STATUSBAR, hinstance, 0);*/
        /*TODO: read paths and window placements from registry */
-       GetCurrentDirectory(MAX_PATH, path);
+       if (!path || !*path) {
+               GetCurrentDirectory(MAX_PATH, buffer);
+               path = buffer;
+       }
+
        ShowWindow(Globals.hMainWnd, cmdshow);
 //#if defined(_SHELL_FOLDERS) && !defined(__WINE__)
@@ -4826,7 +4826,7 @@
 #endif
-static int winefile_main(HINSTANCE hinstance, HWND hwndParent, int
cmdshow)
+static int winefile_main(HINSTANCE hinstance, int cmdshow, LPCTSTR
path)
 {
        MSG msg;
@@ -4836,7 +4836,7 @@
                /*TODO: read window placement from registry */
                cmdshow = SW_MAXIMIZE;
-       show_frame(hwndParent, cmdshow);
+       show_frame(0, cmdshow, path);
        while(GetMessage(&msg, 0, 0, 0)) {
                if (Globals.hmdiclient &&
TranslateMDISysAccel(Globals.hmdiclient, &msg))
@@ -4855,17 +4855,26 @@
 }
-int APIENTRY WinMain(HINSTANCE hinstance,
-                                        HINSTANCE previnstance,
-                                        LPSTR     cmdline,
-                                        int       cmdshow)
+#if defined(UNICODE) && defined(_MSC_VER)
+int APIENTRY wWinMain(HINSTANCE hinstance, HINSTANCE previnstance,
LPWSTR cmdline, int cmdshow)
+#else
+int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE previnstance, LPSTR
cmdline, int cmdshow)
+#endif
 {
 #ifdef _NO_EXTENSIONS
        if (find_window_class(sWINEFILEFRAME))
                return 1;
 #endif
-       winefile_main(hinstance, 0, cmdshow);
+#if defined(UNICODE) && !defined(_MSC_VER)
+       { /* convert ANSI cmdline into WCS path string */
+       TCHAR buffer[MAX_PATH];
+       MultiByteToWideChar(CP_ACP, 0, cmdline, -1, buffer, MAX_PATH);
+       winefile_main(hinstance, cmdshow, buffer);
+       }
+#else
+       winefile_main(hinstance, cmdshow, cmdline);
+#endif
        return 0;
 }
  _____
Modified: trunk/reactos/subsys/system/winefile/winefile.h
--- trunk/reactos/subsys/system/winefile/winefile.h     2005-11-16
22:28:05 UTC (rev 19285)
+++ trunk/reactos/subsys/system/winefile/winefile.h     2005-11-16
23:07:37 UTC (rev 19286)
@@ -118,7 +118,6 @@
   HANDLE    hInstance;
   HACCEL    haccel;
   ATOM      hframeClass;
-  HWND      hwndParent;
   HWND      hMainWnd;
   HMENU     hMenuFrame;