Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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
}
Ejemplo n.º 3
0
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 ;
}