wine/programs/winefile winefile.h winefile.c

Alexandre Julliard julliard at wine.codeweavers.com
Thu Nov 17 05:05:35 CST 2005


ChangeSet ID:	21308
CVSROOT:	/opt/cvs-commit
Module name:	wine
Changes by:	julliard at winehq.org	2005/11/17 05:05:35

Modified files:
	programs/winefile: winefile.h winefile.c 

Log message:
	Martin Fuchs <martin-fuchs at gmx.net>
	Use command line for initial directory selection.
	Remove useless hwndParent variable.

Patch: http://cvs.winehq.org/patch.py?id=21308

Old revision  New revision  Changes     Path
 1.16          1.17          +0 -1       wine/programs/winefile/winefile.h
 1.62          1.63          +24 -15     wine/programs/winefile/winefile.c

Index: wine/programs/winefile/winefile.h
diff -u -p wine/programs/winefile/winefile.h:1.16 wine/programs/winefile/winefile.h:1.17
--- wine/programs/winefile/winefile.h:1.16	17 Nov 2005 11: 5:35 -0000
+++ wine/programs/winefile/winefile.h	17 Nov 2005 11: 5:35 -0000
@@ -113,7 +113,6 @@ typedef struct
   HANDLE    hInstance;
   HACCEL    haccel;
   ATOM      hframeClass;
-  HWND      hwndParent;
 
   HWND      hMainWnd;
   HMENU     hMenuFrame;
Index: wine/programs/winefile/winefile.c
diff -u -p wine/programs/winefile/winefile.c:1.62 wine/programs/winefile/winefile.c:1.63
--- wine/programs/winefile/winefile.c:1.62	17 Nov 2005 11: 5:35 -0000
+++ wine/programs/winefile/winefile.c	17 Nov 2005 11: 5:35 -0000
@@ -2143,9 +2143,7 @@ static LRESULT CALLBACK FrameWndProc(HWN
 			break;
 
 		case WM_DESTROY:
-			 /* don't exit desktop when closing file manager window */
-			if (!Globals.hwndParent)
-				PostQuitMessage(0);
+			PostQuitMessage(0);
 			break;
 
 		case WM_INITMENUPOPUP: {
@@ -4654,11 +4652,11 @@ static void InitInstance(HINSTANCE hinst
 }
 
 
-static void show_frame(HWND hwndParent, int cmdshow)
+static void show_frame(HWND hwndParent, int cmdshow, LPCTSTR path)
 {
 	static const 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;
 
@@ -4667,8 +4665,6 @@ static void show_frame(HWND hwndParent, 
 	if (Globals.hMainWnd)
 		return;
 
-	Globals.hwndParent = hwndParent;
-
 	hMenuFrame = LoadMenu(Globals.hInstance, MAKEINTRESOURCE(IDM_WINEFILE));
 	hMenuWindow = GetSubMenu(hMenuFrame, GetMenuItemCount(hMenuFrame)-2);
 
@@ -4723,7 +4719,11 @@ static void show_frame(HWND hwndParent, 
 					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);
 
@@ -4797,7 +4797,7 @@ static int find_window_class(LPCTSTR cla
 
 #endif
 
-static int winefile_main(HINSTANCE hinstance, HWND hwndParent, int cmdshow)
+static int winefile_main(HINSTANCE hinstance, int cmdshow, LPCTSTR path)
 {
 	MSG msg;
 
@@ -4807,7 +4807,7 @@ static int winefile_main(HINSTANCE hinst
 	        /*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))
@@ -4826,17 +4826,26 @@ static int winefile_main(HINSTANCE hinst
 }
 
 
-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;
 }



More information about the wine-cvs mailing list