//------------------------------------------------------------------------ // // File: shell\themes\test\ctlperf\CtlPerf.cpp // // Contents: Main source file for CtlPerf.exe // This file was generated by the WTL app wizard. // // Classes: None // //------------------------------------------------------------------------ #include "stdafx.h" #include #include "resource.h" #include "CtlPerfView.h" #include "aboutdlg.h" #include "MainFrm.h" CAppModule _Module; //------------------------------------------------------------------------ // // Function: Run // // Synopsis: Create main window and start message loop // //------------------------------------------------------------------------ int Run(LPTSTR lpstrCmdLine = NULL, int /*nCmdShow*/ = SW_SHOWDEFAULT) { CMessageLoop theLoop; _Module.AddMessageLoop(&theLoop); CMainFrame wndMain; if(wndMain.CreateEx() == NULL) { ATLTRACE(_T("Main window creation failed!\n")); return 0; } wndMain.ShowWindow(SW_MAXIMIZE); //** Parse command line if (lpstrCmdLine) { ::CharLower(lpstrCmdLine); LPTSTR p = _tcsstr(lpstrCmdLine, _T("/l")); TCHAR pszLogFileName[_MAX_PATH + 1]; if(p) // Copy the log file name { _tcscpy(pszLogFileName, p + 2); p = pszLogFileName; while (*p && *p != _T(' ')) { p++; } if (*p) { *p = _T('\0'); } } // We communicate by messages with the main frame (the only thing we know from here) // that will forward to the view if (_tcsstr(lpstrCmdLine, _T("1pass"))) { wndMain.PostMessage(WM_COMMAND, IDM_BATCH1, p ? (LPARAM) pszLogFileName : 0); } else if (_tcsstr(lpstrCmdLine, _T("2pass"))) { if(_tcsstr(lpstrCmdLine, _T("/s"))) { wndMain.PostMessage(WM_COMMAND, IDM_BATCH3, p ? (LPARAM) pszLogFileName : 0); } else { wndMain.PostMessage(WM_COMMAND, IDM_BATCH2, p ? (LPARAM) pszLogFileName : 0); } } } int nRet = theLoop.Run(); _Module.RemoveMessageLoop(); return nRet; } //------------------------------------------------------------------------ // // Function: _tWinMain // // Synopsis: Main entry point // //------------------------------------------------------------------------ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLine, int nCmdShow) { HRESULT hRes = ::CoInitialize(NULL); // If you are running on NT 4.0 or higher you can use the following call instead to // make the EXE free threaded. This means that calls come in on a random RPC thread. // HRESULT hRes = ::CoInitializeEx(NULL, COINIT_MULTITHREADED); ATLASSERT(SUCCEEDED(hRes)); #if (_WIN32_IE >= 0x0300) INITCOMMONCONTROLSEX iccx; iccx.dwSize = sizeof(iccx); //iccx.dwICC = ICC_COOL_CLASSES | ICC_BAR_CLASSES; iccx.dwICC = 0x3FFF; BOOL bRet = ::InitCommonControlsEx(&iccx); bRet; ATLASSERT(bRet); #else ::InitCommonControls(); #endif hRes = _Module.Init(NULL, hInstance); ATLASSERT(SUCCEEDED(hRes)); int nRet = Run(lpstrCmdLine, nCmdShow); _Module.Term(); ::CoUninitialize(); return nRet; }