- 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;