+
+ // remember the parameters Windows gave us
+ wxSetInstance(hInstance);
+ wxApp::m_nCmdShow = nCmdShow;
+
+ // parse the command line: we can't use pCmdLine in Unicode build so it is
+ // simpler to never use it at all (this also results in a more correct
+ // argv[0])
+
+ // break the command line in words
+ wxArrayString args;
+
+ const wxChar *cmdLine = ::GetCommandLine();
+ if ( cmdLine )
+ {
+ args = wxCmdLineParser::ConvertStringToArgs(cmdLine);
+ }
+
+#ifdef __WXWINCE__
+ // WinCE doesn't insert the program itself, so do it ourselves.
+ args.Insert(wxGetFullModuleName(), 0);
+#endif
+
+ wxArgs.Init(args);
+
+ return true;
+}
+
+WXDLLEXPORT bool wxEntryStart(HINSTANCE hInstance,
+ HINSTANCE WXUNUSED(hPrevInstance),
+ wxCmdLineArgType WXUNUSED(pCmdLine),
+ int nCmdShow)
+{
+ if ( !wxMSWEntryCommon(hInstance, nCmdShow) )
+ return false;
+
+ return wxEntryStart(wxArgs.argc, wxArgs.argv);
+}
+
+WXDLLEXPORT int wxEntry(HINSTANCE hInstance,
+ HINSTANCE WXUNUSED(hPrevInstance),
+ wxCmdLineArgType WXUNUSED(pCmdLine),
+ int nCmdShow)
+{
+ if ( !wxMSWEntryCommon(hInstance, nCmdShow) )
+ return -1;
+
+ wxON_BLOCK_EXIT_OBJ0(wxArgs, wxMSWCommandLineArguments::Free);
+
+ return wxEntry(wxArgs.argc, wxArgs.argv);
+}
+
+#endif // wxUSE_GUI && __WXMSW__