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; }
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 }