int Run(LPTSTR lpstrCmdLine = NULL, int nCmdShow = SW_SHOWDEFAULT) { CMessageLoop theLoop; _Module.AddMessageLoop(&theLoop); wstring strConfigFile(L""); wstring strWindowTitle(L""); vector<wstring> startupTabs; vector<wstring> startupDirs; vector<wstring> startupCmds; int nMultiStartSleep = 0; wstring strDbgCmdLine(L""); ParseCommandLine( lpstrCmdLine, strConfigFile, strWindowTitle, startupTabs, startupDirs, startupCmds, nMultiStartSleep, strDbgCmdLine); if (strConfigFile.length() == 0) { strConfigFile = wstring(L"console.xml"); // strConfigFile = Helpers::GetModulePath(NULL) + wstring(L"console.xml"); // strConfigFile = wstring(::_wgetenv(L"APPDATA")) + wstring(L"\\Console\\console.xml"); } if (!g_settingsHandler->LoadSettings(Helpers::ExpandEnvironmentStrings(strConfigFile))) { //TODO: error handling return 1; } // create main window NoTaskbarParent noTaskbarParent; MainFrame wndMain(strWindowTitle, startupTabs, startupDirs, startupCmds, nMultiStartSleep, strDbgCmdLine); if (!g_settingsHandler->GetAppearanceSettings().stylesSettings.bTaskbarButton) { noTaskbarParent.Create(NULL); } if(wndMain.CreateEx(noTaskbarParent.m_hWnd) == NULL) { ATLTRACE(_T("Main window creation failed!\n")); return 1; } wndMain.ShowWindow(nCmdShow); int nRet = theLoop.Run(); if (noTaskbarParent.m_hWnd != NULL) noTaskbarParent.DestroyWindow(); _Module.RemoveMessageLoop(); return nRet; }