| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- // Server.cpp : Defines the class behaviors for the application.
- //
- #include "stdafx.h"
- #include "Server.h"
- #include "ServerDlg.h"
- // CServerApp
- // 2021-02-04 移动到对话框初始化函数中
- LONG WINAPI AppUnhandledExceptionFilter(struct _EXCEPTION_POINTERS* ExceptionInfo)
- {
- RecordExceptionInfo(ExceptionInfo, "HttpServer");
- return EXCEPTION_EXECUTE_HANDLER;
- }
- BEGIN_MESSAGE_MAP(CServerApp, CWinApp)
- ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
- END_MESSAGE_MAP()
- // CServerApp construction
- CServerApp::CServerApp()
- {
- // TODO: add construction code here,
- // Place all significant initialization in InitInstance
- SetUnhandledExceptionFilter(AppUnhandledExceptionFilter);
- }
- // The one and only CServerApp object
- CServerApp theApp;
- // CServerApp initialization
- BOOL CServerApp::InitInstance()
- {
- // 禁止多个实例的同时运行
- HANDLE hMutexOneInstance = ::CreateMutex(NULL, TRUE, _T(AfxGetAppName()));
- if (::GetLastError() == ERROR_ALREADY_EXISTS)
- {
- if (hMutexOneInstance) // Release the mutex
- {
- ::ReleaseMutex(hMutexOneInstance);
- }
- HWND hWndPrevious = ::GetWindow(::GetDesktopWindow(), GW_CHILD);
- while (::IsWindow(hWndPrevious))
- {
- // 检查窗口是否有预设的标记? 有,则是我们寻找的主窗口
- if (::GetProp(hWndPrevious, m_pszAppName))
- {
- // 主窗口已最小化,则恢复其大小
- if (::IsIconic(hWndPrevious)) ::ShowWindow(hWndPrevious, SW_RESTORE);
- ::SetForegroundWindow(hWndPrevious); // 将主窗激活
- ::SetForegroundWindow(::GetLastActivePopup(hWndPrevious)); // 将主窗的对话框激活
- return FALSE;
- } // end if
- hWndPrevious = ::GetWindow(hWndPrevious, GW_HWNDNEXT); // 继续寻找下一个窗口
- } // end while
- } // end if
- // InitCommonControlsEx() is required on Windows XP if an application
- // manifest specifies use of ComCtl32.dll version 6 or later to enable
- // visual styles. Otherwise, any window creation will fail.
- INITCOMMONCONTROLSEX InitCtrls;
- InitCtrls.dwSize = sizeof(InitCtrls);
- // Set this to include all the common control classes you want to use
- // in your application.
- InitCtrls.dwICC = ICC_WIN95_CLASSES;
- InitCommonControlsEx(&InitCtrls);
- CWinApp::InitInstance();
- AfxEnableControlContainer();
- // Create the shell manager, in case the dialog contains
- // any shell tree view or shell list view controls.
- CShellManager *pShellManager = new CShellManager;
- // Standard initialization
- // If you are not using these features and wish to reduce the size
- // of your final executable, you should remove from the following
- // the specific initialization routines you do not need
- // Change the registry key under which our settings are stored
- // TODO: You should modify this string to be something appropriate
- // such as the name of your company or organization
- SetRegistryKey(_T("Local AppWizard-Generated Applications"));
- CServerDlg dlg;
- m_pMainWnd = &dlg;
- INT_PTR nResponse = dlg.DoModal();
- if (nResponse == IDOK)
- {
- // TODO: Place code here to handle when the dialog is
- // dismissed with OK
- }
- else if (nResponse == IDCANCEL)
- {
- // TODO: Place code here to handle when the dialog is
- // dismissed with Cancel
- }
- // Delete the shell manager created above.
- if (pShellManager != NULL)
- {
- delete pShellManager;
- }
- // Since the dialog has been closed, return FALSE so that we exit the
- // application, rather than start the application's message pump.
- return FALSE;
- }
|