-WXDLLEXPORT int wxEntry(HINSTANCE hInstance,
- HINSTANCE WXUNUSED(hPrevInstance),
- wxCmdLineArgType WXUNUSED(pCmdLine),
- int nCmdShow)
+struct wxMSWCommandLineArguments
+{
+ wxMSWCommandLineArguments() { argc = 0; argv = NULL; }
+
+ void Init(const wxArrayString& args)
+ {
+ argc = args.size();
+
+ // +1 here for the terminating NULL
+ argv = new wxChar *[argc + 1];
+ for ( int i = 0; i < argc; i++ )
+ {
+ argv[i] = wxStrdup(args[i].wx_str());
+ }
+
+ // argv[] must be NULL-terminated
+ argv[argc] = NULL;
+ }
+
+ void Free()
+ {
+ if ( !argc )
+ return;
+
+ for ( int i = 0; i < argc; i++ )
+ {
+ free(argv[i]);
+ }
+
+ delete [] argv;
+ argv = NULL;
+ argc = 0;
+ }
+
+ int argc;
+ wxChar **argv;
+};
+
+static wxMSWCommandLineArguments wxArgs;
+
+// common part of wxMSW-specific wxEntryStart() and wxEntry() overloads
+static bool
+wxMSWEntryCommon(HINSTANCE hInstance, int nCmdShow)