X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3ac59f211b7b167e49327add5a5d9a25135c0171..8e92ccef9ce18df8c67d6105ac553dba93cf0e43:/src/msw/app.cpp diff --git a/src/msw/app.cpp b/src/msw/app.cpp index fd8d8e723a..4bbbd7f651 100644 --- a/src/msw/app.cpp +++ b/src/msw/app.cpp @@ -49,6 +49,7 @@ #endif #include "wx/cmdline.h" +#include "wx/filename.h" #include "wx/module.h" #include "wx/msw/private.h" @@ -192,9 +193,9 @@ END_EVENT_TABLE() bool wxApp::Initialize() { // the first thing to do is to check if we're trying to run an Unicode - // program under Win9x - if so, abort right now as it has no chance to - // work -#if wxUSE_UNICODE + // program under Win9x w/o MSLU emulation layer - if so, abort right now + // as it has no chance to work +#if wxUSE_UNICODE && !wxUSE_UNICODE_MSLU if ( wxGetOsVersion() != wxWINDOWS_NT ) { // note that we can use MessageBoxW() as it's implemented even under @@ -203,14 +204,14 @@ bool wxApp::Initialize() ::MessageBox ( NULL, - _T("This program uses Unicode and requires Windows NT/2000.\nProgram aborted."), + _T("This program uses Unicode and requires Windows NT/2000/XP.\nProgram aborted."), _T("wxWindows Fatal Error"), MB_ICONERROR | MB_OK ); return FALSE; } -#endif // wxUSE_UNICODE +#endif // wxUSE_UNICODE && !wxUSE_UNICODE_MSLU // Some people may wish to use this, but // probably it shouldn't be here by default. @@ -251,9 +252,11 @@ bool wxApp::Initialize() ; #endif // Win16 +#if wxUSE_OLE // we need to initialize OLE library if ( FAILED(::OleInitialize(NULL)) ) wxLogError(_("Cannot initialize OLE")); +#endif #endif // wxUSE_OLE @@ -566,6 +569,13 @@ void wxApp::ConvertToStandardCommandArgs(const char* lpCmdLine) argv[0] = new wxChar[260]; // 260 is MAX_PATH value from windef.h ::GetModuleFileName(wxhInstance, argv[0], 260); + // also set the app name from argv[0] + wxString name; + wxFileName::SplitPath(argv[0], NULL, &name, NULL); + + SetAppName(name); + + // copy all the other arguments to wxApp::argv[] for ( int i = 1; i < argc; i++ ) { argv[i] = copystring(args[i - 1]); @@ -779,7 +789,7 @@ int wxEntry(WXHINSTANCE hInstance, wxCHECK_MSG( wxTheApp, 0, wxT("You have to define an instance of wxApp!") ); // save the WinMain() parameters - if (lpCmdLine) // MicroWindows pass NULL for this + if (lpCmdLine) // MicroWindows passes NULL wxTheApp->ConvertToStandardCommandArgs(lpCmdLine); wxTheApp->m_nCmdShow = nCmdShow;