Use command line for initial directory selection.

Remove useless hwndParent variable.
This commit is contained in:
Martin Fuchs 2005-11-17 11:05:35 +00:00 committed by Alexandre Julliard
parent da29023d7a
commit f42fac5566
2 changed files with 24 additions and 16 deletions

View File

@ -2143,9 +2143,7 @@ static LRESULT CALLBACK FrameWndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM
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 hinstance)
}
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, int cmdshow)
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, int cmdshow)
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 classname)
#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 hinstance, HWND hwndParent, int cmdshow)
/*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 hinstance, HWND hwndParent, int cmdshow)
}
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;
}

View File

@ -113,7 +113,6 @@ typedef struct
HANDLE hInstance;
HACCEL haccel;
ATOM hframeClass;
HWND hwndParent;
HWND hMainWnd;
HMENU hMenuFrame;