#include "stdafx.h" #include "resource.h" #include "StatServer.h" #include #include #include class CProcessCOMMAND : public CMsgProc { public: CProcessCOMMAND(CConsoleWindow& ConsoleWindow) : m_ConsoleWindow(ConsoleWindow) { } virtual ~CProcessCOMMAND() { } virtual LRESULT operator () (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { char* szCommand = 0; switch (LOWORD(wParam)) { case ID_MENU_OPENCONSOLE: m_ConsoleWindow.Initialize("Stat Server"); break; case ID_MENU_CLOSECONSOLE: m_ConsoleWindow.Destroy(); break; case ID_MENU_FLUSH: g_Log.Flush(); break; } if(LOWORD(wParam) == IDM_EXIT) { DETLOG0(g_Log, "Terminate StatServer System Tray."); PostMessage(hWnd, WM_QUIT, 0, 0); } return 0; } private: CConsoleWindow& m_ConsoleWindow; }; bool CStatServer::InitializeMsgProc() { int nErrorCount = 0; CMsgProcessMgr* lpMsgProcessMgr = GetMsgProcessMgr(); if(0 != lpMsgProcessMgr) { if(GetConsoleWindow()) { nErrorCount += lpMsgProcessMgr->Register(WM_COMMAND, new CProcessCOMMAND(*GetConsoleWindow())) ? 0 : 1; } } return (0 == nErrorCount); }