Esempio n. 1
0
BOOL CSbmfcsampleDlg::CreateServerList()
{
	// only create the object once
	if(!m_serverBrowser)
	{
		// check for an empty gamename
		if(m_gamename.IsEmpty())
		{
			MessageBox("No game specified");
			GetDlgItem(IDC_GAMENAME)->SetFocus();
			return FALSE;
		}
		SBBool lanBrowsing = (SBBool)(IsDlgButtonChecked(IDC_LAN) == BST_CHECKED);
		if (m_startPort == 0 && lanBrowsing == SBTrue)
		{
			AfxMessageBox("Invalid start port!");
			GetDlgItem(IDC_STARTP)->SetFocus();
			return FALSE;
		}
		if (m_endPort == 0 && lanBrowsing == SBTrue)
		{
			AfxMessageBox("Invalid end port!");
			GetDlgItem(IDC_ENDP)->SetFocus();
			return FALSE;
		}
		
		// create it
		m_serverBrowser = ServerBrowserNew(m_gamename, "gmtest", "HA6zkS", 0, MAX_UPDATES, (IsDlgButtonChecked(IDC_GOA) == BST_CHECKED)?QVERSION_GOA:QVERSION_QR2, lanBrowsing,	SBCallback, this);
		if(!m_serverBrowser)
		{
			MessageBox("Unable to create the server browser object");
			return FALSE;
		}

		// don't let them change the gamename
		GetDlgItem(IDC_GAMENAME)->EnableWindow(FALSE);
	}

	return TRUE;
}
Esempio n. 2
0
BOOL CClientDlg::OnInitDialog()
{
	CSubDlg::OnInitDialog();

	m_pBtnJoin.EnableWindow(FALSE);
	m_pBtnRefresh.EnableWindow(TRUE);

	RECT wRect;
	m_pServerList.GetWindowRect(&wRect);
	int NumColumns = 5;
	m_pServerList.InsertColumn(0, "Server Name", LVCFMT_CENTER, (wRect.right - wRect.left)/NumColumns-1);
	m_pServerList.InsertColumn(1, "Map Name", LVCFMT_CENTER, (wRect.right - wRect.left)/NumColumns-1);
	m_pServerList.InsertColumn(2, "Game Mode", LVCFMT_CENTER, (wRect.right - wRect.left)/NumColumns-1);
	m_pServerList.InsertColumn(3, "Players", LVCFMT_CENTER, (wRect.right - wRect.left)/NumColumns-1);
	m_pServerList.InsertColumn(4, "Ping", LVCFMT_CENTER, (wRect.right - wRect.left)/NumColumns-1);
//	m_pServerList.InsertColumn(5, "Protected", LVCFMT_CENTER, (wRect.right - wRect.left)/NumColumns-1);

	m_pServerList.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT );
	//=============================================================================
	/*
	HICON hiconItem;     // icon for list view items 
	HIMAGELIST hSmall;   // image list for other views 
	hSmall = ImageList_Create(GetSystemMetrics(SM_CXSMICON), 
		GetSystemMetrics(SM_CYSMICON), ILC_COLOR24, 2, 1); 
	hiconItem = AfxGetApp()->LoadIcon(MAKEINTRESOURCE(IDB_BITMAP1)); 
	ImageList_AddIcon(hSmall, hiconItem); 
	DestroyIcon(hiconItem); 
	m_pServerList.SetImageList(hSmall, LVSIL_SMALL); 
	*/

	BOOL res = m_pNewImageList.Create((IDB_BITMAP1), 16, 1, RGB(255, 255, 255));
	m_pServerList.SetImageList(&m_pNewImageList, LVSIL_SMALL);



//	hiconItem = LoadIcon(MAKEINTRESOURCE(IDI_ITEM)); 

//	m_pServerList.SetIcon()
	//=============================================================================
	//.......................................................
	InitializeCriticalSection( &m_pCriticalSection );
	// Init COM so we can use CoCreateInstance
	CoInitialize( NULL);//, COINIT_MULTITHREADED );
	//.......................................................
	//=========== Game Spy =================================================
	m_timerID = 0;
	//SB - check that the game's backend is available
	qr2_register_key(GAMETYPE_NAME_KEY,   ("gametypename")  );
	qr2_register_key(DEDICATED_KEY,   ("dedicated")  );
	qr2_register_key(G_FRIENDLY_FIRE_KEY,   ("friendlyfire")  );
	


	GSIACResult result;
	GSIStartAvailableCheck(GAMESPY_GAMENAME);
	while((result = GSIAvailableCheckThink()) == GSIACWaiting)
		msleep(5);
	if(result != GSIACAvailable)
	{
		MessageBox("The backend is not available\n");
		return TRUE;
	}

	m_serverBrowser = ServerBrowserNew(GAMESPY_GAMENAME, GAMESPY_GAMENAME, SECRET_KEY, 0, MAX_UPDATES, QVERSION_QR2, SBFalse, SBCallback, this);
	if(!m_serverBrowser)
	{
		MessageBox("Unable to create the server browser object");
		return FALSE;
	}

	m_pGameSpyUpdateList.EnableWindow(TRUE);
	m_pGameSpyRefreshList.EnableWindow(TRUE);
	CheckRadioButton(IDC_INTERNET, IDC_LAN, IDC_LAN);
	//=====================================================================
	m_pFilter_Empty.SetCheck				(1);
	m_pFilter_Full.SetCheck					(1);
	m_pFilter_Password_With.SetCheck		(1);
	m_pFilter_Password_Without.SetCheck		(1);
	m_pFilter_Listen.SetCheck				(1);
	m_pFilter_NoFF.SetCheck					(1);
	m_pFilter_PunkBuster_Without.SetCheck	(1);

	CheckFilterButtons();
	//=====================================================================
	m_pBtnRefresh.EnableWindow(FALSE);
	//=====================================================================
	return TRUE;  // return TRUE  unless you set the focus to a control
}