static INT_PTR CALLBACK LoggedOnWindowProc( IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam) { PGINA_CONTEXT pgContext; pgContext = (PGINA_CONTEXT)GetWindowLongPtr(hwndDlg, GWL_USERDATA); switch (uMsg) { case WM_INITDIALOG: { pgContext = (PGINA_CONTEXT)lParam; SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pgContext); OnInitSecurityDlg(hwndDlg, (PGINA_CONTEXT)lParam); SetFocus(GetDlgItem(hwndDlg, IDNO)); return TRUE; } case WM_COMMAND: { switch (LOWORD(wParam)) { case IDC_LOCK: EndDialog(hwndDlg, WLX_SAS_ACTION_LOCK_WKSTA); return TRUE; case IDC_LOGOFF: if (OnLogOff(hwndDlg, pgContext) == IDYES) EndDialog(hwndDlg, WLX_SAS_ACTION_LOGOFF); return TRUE; case IDC_SHUTDOWN: if (OnShutDown(hwndDlg, pgContext) == IDOK) EndDialog(hwndDlg, pgContext->nShutdownAction); return TRUE; case IDC_CHANGEPWD: if (OnChangePassword(hwndDlg, pgContext)) EndDialog(hwndDlg, WLX_SAS_ACTION_PWD_CHANGED); return TRUE; case IDC_TASKMGR: EndDialog(hwndDlg, WLX_SAS_ACTION_TASKLIST); return TRUE; case IDCANCEL: EndDialog(hwndDlg, WLX_SAS_ACTION_NONE); return TRUE; } break; } case WM_CLOSE: { EndDialog(hwndDlg, WLX_SAS_ACTION_NONE); return TRUE; } } return FALSE; }
void CNetServer::OnTerminate() { if( m_pIOCPThreads ) { for( int i = 0;i < m_IOCPThreadCount;i ++ ) { m_pIOCPThreads[i].SafeTerminate(); } delete[] m_pIOCPThreads; m_pIOCPThreads = NULL; } OnShutDown(); CloseHandle( m_hIOCP ); m_hIOCP = NULL; if(m_OverLappedObjectPool.GetObjectCount()) { PrintNetLog(0xffffffff,_T("(%d)关闭,开始统计OverLappedObject使用状况!"),GetID()); PrintObjectStatus(); } m_OverLappedObjectPool.Destory(); m_EventRouterPool.Destory(); CNetSocket::NetCleanup(); }
void CEngine::Run() { FKeepRunning = true; OnStartup(); while(FKeepRunning) { OnFrame(); } OnShutDown(); }
//-------------------------------------------------------------------------------- bool Game::ShutDown() { if (!OnShutDown()) return false; if (m_pkWindows) { delete m_pkWindows; m_pkWindows = NULL; } return true; }
static INT_PTR CALLBACK LoggedOutWindowProc( IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam) { PGINA_CONTEXT pgContext; pgContext = (PGINA_CONTEXT)GetWindowLongPtr(hwndDlg, GWL_USERDATA); switch (uMsg) { case WM_INITDIALOG: /* FIXME: take care of NoDomainUI */ pgContext = (PGINA_CONTEXT)lParam; SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pgContext); if (pgContext->bDontDisplayLastUserName == FALSE) SetDlgItemTextW(hwndDlg, IDC_USERNAME, pgContext->UserName); if (pgContext->bDisableCAD == TRUE) EnableWindow(GetDlgItem(hwndDlg, IDCANCEL), FALSE); if (pgContext->bShutdownWithoutLogon == FALSE) EnableWindow(GetDlgItem(hwndDlg, IDC_SHUTDOWN), FALSE); SetDomainComboBox(GetDlgItem(hwndDlg, IDC_LOGON_TO), pgContext); SetFocus(GetDlgItem(hwndDlg, pgContext->bDontDisplayLastUserName ? IDC_USERNAME : IDC_PASSWORD)); pgContext->hBitmap = LoadImage(hDllInstance, MAKEINTRESOURCE(IDI_ROSLOGO), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR); return TRUE; case WM_PAINT: { PAINTSTRUCT ps; HDC hdc; if (pgContext->hBitmap) { hdc = BeginPaint(hwndDlg, &ps); DrawStateW(hdc, NULL, NULL, (LPARAM)pgContext->hBitmap, (WPARAM)0, 0, 0, 0, 0, DST_BITMAP); EndPaint(hwndDlg, &ps); } return TRUE; } case WM_DESTROY: DeleteObject(pgContext->hBitmap); return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: if (DoLogon(hwndDlg, pgContext)) EndDialog(hwndDlg, WLX_SAS_ACTION_LOGON); return TRUE; case IDCANCEL: EndDialog(hwndDlg, WLX_SAS_ACTION_NONE); return TRUE; case IDC_SHUTDOWN: if (OnShutDown(hwndDlg, pgContext) == IDOK) EndDialog(hwndDlg, pgContext->nShutdownAction); return TRUE; } break; } return FALSE; }