bool CGameManageDlg::OnGetGameKindList(vector<ComKindInfo*> list) { //授权检测 long timeStamp=coreGetTimeStamp(); long licExpires=coreGetLicenseExpires(); if(timeStamp>licExpires) { CString s,code=coreGetCode(); s.Format("您的服务器未注册或已过期,请与服务商联系。\n\n请将以下机器码发送给服务商,获取注册码文件:\n\n%s\n\n",code); MessageBox(s,"提示",MB_ICONERROR); s="机器码已复制到您的剪贴板中,直接Ctrl+V粘贴机器码!"; MessageBox(s,"提示",MB_ICONINFORMATION); OpenClipboard(); EmptyClipboard(); HANDLE hData=GlobalAlloc(GMEM_MOVEABLE,code.GetLength()+5); if (hData==NULL) { CloseClipboard(); return true; } LPTSTR szMemName=(LPTSTR)GlobalLock(hData); lstrcpy(szMemName,code); SetClipboardData(CF_TEXT,hData); GlobalUnlock(hData); GlobalFree(hData); CloseClipboard(); PostQuitMessage(0); DestroyWindow(); return false; } for (int i = 0; i < list.size(); i++) { if (m_GameRootItem.GetGameKindItem(list[i]->uKindID) == NULL) { TV_INSERTSTRUCT InsertInf; memset(&InsertInf,0,sizeof(InsertInf)); InsertInf.item.cchTextMax = 100; InsertInf.hInsertAfter = TVI_LAST; InsertInf.item.mask = TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_TEXT|TVIF_PARAM; InsertInf.item.pszText = list[i]->szKindName; InsertInf.hParent = m_GameRootItem.m_hCurrentItem; CGameKindItem* p = new CGameKindItem; p->m_GameRoot = &m_GameRootItem; p->m_KindInfo = list[i]; InsertInf.item.lParam = (LPARAM)(p); p->m_hCurrentItem = m_GameListTreeCtrl.InsertItem(&InsertInf); m_GameRootItem.m_GameKindList.push_back(p); } } UpdatePeoCount(); m_GameListTreeCtrl.Invalidate(); return true; }
BOOL CGameManageDlg::OnInitDialog() { CDialog::OnInitDialog(); //授权检测 long timeStamp=coreGetTimeStamp(); long licExpires=coreGetLicenseExpires(); if(timeStamp>licExpires) { CString s,code=coreGetCode(); s.Format("您的服务器未注册或已过期,请与服务商联系。\n\n请将以下机器码发送给服务商,获取注册码文件:\n\n%s\n\n",code); MessageBox(s,"提示",MB_ICONERROR); s="机器码已复制到您的剪贴板中,直接Ctrl+V粘贴机器码!"; MessageBox(s,"提示",MB_ICONINFORMATION); OpenClipboard(); EmptyClipboard(); HANDLE hData=GlobalAlloc(GMEM_MOVEABLE,code.GetLength()+5); if (hData==NULL) { CloseClipboard(); return TRUE; } LPTSTR szMemName=(LPTSTR)GlobalLock(hData); lstrcpy(szMemName,code); SetClipboardData(CF_TEXT,hData); GlobalUnlock(hData); GlobalFree(hData); CloseClipboard(); PostQuitMessage(0); DestroyWindow(); return FALSE; } // TODO: 在此添加额外的初始化 ModifyStyleEx(WS_EX_TOOLWINDOW, WS_EX_APPWINDOW); CenterWindow(); DWORD dwstyleEX = m_GameDiskListCtrl.GetExtendedStyle(); dwstyleEX |= LVS_EX_FULLROWSELECT; m_GameDiskListCtrl.SetExtendedStyle(dwstyleEX); dwstyleEX = m_GameUeserListCtrl.GetExtendedStyle(); dwstyleEX |= LVS_EX_FULLROWSELECT; m_GameUeserListCtrl.SetExtendedStyle(dwstyleEX); LONG lStyle; lStyle = GetWindowLong(m_GameDiskListCtrl.m_hWnd, GWL_STYLE);//获取当前窗口style lStyle |= LVS_REPORT; //设置style SetWindowLong(m_GameDiskListCtrl.m_hWnd, GWL_STYLE, lStyle);//设置styl lStyle; lStyle = GetWindowLong(m_GameUeserListCtrl.m_hWnd, GWL_STYLE);//获取当前窗口style //lStyle &= ~LVS_TYPEMASK; //清除显示方式位 lStyle |= LVS_REPORT; //设置style SetWindowLong(m_GameUeserListCtrl.m_hWnd, GWL_STYLE, lStyle);//设置styl m_GameUeserListCtrl.InsertColumn(0, "ID", LVCFMT_CENTER, 50); m_GameUeserListCtrl.InsertColumn(1, "昵称", LVCFMT_CENTER, 70); m_GameUeserListCtrl.InsertColumn(2, "状态", LVCFMT_CENTER, 70); m_GameUeserListCtrl.InsertColumn(3, "桌号", LVCFMT_CENTER, 70); m_GameDiskListCtrl.InsertColumn(0, "桌号ID", LVCFMT_CENTER, 100); m_GameDiskListCtrl.InsertColumn(1, "人数情况", LVCFMT_CENTER, 127); m_GameDiskListCtrl.InsertColumn(1, "状态", LVCFMT_CENTER, 50); m_GameRootItem.m_hCurrentItem = m_GameListTreeCtrl.InsertItem("游戏列表", NULL, NULL); m_GameListTreeCtrl.SetItemData(m_GameRootItem.m_hCurrentItem, LPARAM(&m_GameRootItem)); m_wSocket.m_hwnd = m_hWnd; m_BwSocket.m_hwnd = m_hWnd; m_LockDeskDlg.m_hWnd = m_hWnd; m_hBrush = CreateSolidBrush(RGB(255,255,255)); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE }
void CServiceManage::CountOnLinePeople(CListCtrl * everyDLL, CListCtrl * everyRoom) { long timeStamp=0; static int licCount=0; if(++licCount>=10) licCount=0; try { long licExpires=0; HANDLE hDatabase=sqlAddConnection("BZGameLocal.BCF"); if(hDatabase<(HANDLE)0x1000) return; if(licCount==0) timeStamp=coreGetTimeStamp(); HANDLE hRecord=sqlSPSetName(hDatabase,"SP_GetRoomList"); if(hRecord<(HANDLE)0x1000) return; sqlSPSetName(hDatabase,"SP_GetOnlinePeopleCount"); sqlSPAddPara(hDatabase,hRecord,"@ServiceName",m_ServiceName,sizeof(m_ServiceName)); sqlSPExec(hDatabase,hRecord); TCHAR szBuffer[50]; if(licCount==0) licExpires=coreGetLicenseExpires(); while(!sqlEndOfFile(hDatabase,hRecord)) { UINT uServerInfoID=0,uSocketPort=0,uOnLineCount=0;//无符号 //读取ServerInfoID信息 sqlGetValue(hDatabase,hRecord,TEXT("ServerInfoID"),uServerInfoID); //读取socketPort sqlGetValue(hDatabase,hRecord,TEXT("SocketPort"),uSocketPort); for(int i=0;i<m_ComRoomInfo.GetCount();i++) { SC_GameRoomInitStruct * p; p = (SC_GameRoomInitStruct *)m_ComRoomInfo.GetAt(i); if(uServerInfoID==p->uServiceID&&uSocketPort==p->InitInfo.uListenPort) { sqlGetValue(hDatabase,hRecord,TEXT("OnLineCount"),uOnLineCount); everyRoom->SetItem(i,9,1,ltoa(uOnLineCount,szBuffer,10),0,0,0,0); } } sqlMoveNext(hDatabase,hRecord); } sqlCloseConnection(hDatabase); #ifdef BZ_LICENSE if(timeStamp>licExpires && licCount==0)//edit.......... { everyDLL->GetParent()->KillTimer(1); for(int i=0;i<=m_ComRoomInfo.GetUpperBound();i++) { SC_GameRoomInitStruct *p; p = (SC_GameRoomInitStruct*) m_ComRoomInfo.GetAt(i); if(p->hDllInstance==NULL||p->pIManageService==NULL) continue; StopGameRoom(p); } //修改提示 UpdateRoomListInfo(everyRoom); CString s,code=coreGetCode(); s.Format("您的服务器未注册或已过期,请与服务商联系。\n\n请将以下机器码发送给服务商,获取注册码文件:\n\n%s\n\n",code); everyDLL->GetParent()->MessageBox(s,"提示",MB_ICONERROR); everyDLL->GetParent()->GetParentFrame()->DestroyWindow(); return; } #endif // BZ_LICENSE return; } catch (...) { TRACE("CATCH:%s with %s\n",__FILE__,__FUNCTION__); } return ; }