⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parsemessage.cpp

📁 QQ示例源码
💻 CPP
字号:
#include "Stdafx.h"
#include "ParseMessage.h"
#include "ClientSocket.h"
#include "CChatServer.h"
extern CCChatServerApp theApp;

CParseMessage::~CParseMessage()
{
}
CParseMessage::CParseMessage(const CMyTreeView * pWnd,const Message & Value)
{
	pView = const_cast < CMyTreeView *>(pWnd);
	Msg = Value;
}

BOOL CParseMessage::SWitchMessage()
{
	ASSERT(pView != NULL);
	ASSERT_VALID(pView);
	switch(Msg.iType)
	{
	case USERLOG:
		switch(Msg.iSubType)
		{
		case USERLOGIN:
			
			pView ->OnNewClientIn(Msg,0);
			break;
		default:
			break;
		}
		break;
	case USERSESSION:
		switch(Msg.iSubType)
		{
		default:
			break;
		case CHANGEROOM:
			pView ->OnChangeRoom(Msg,0);
			break;
		case SAYINPRIVATE:
			pView ->OnSendInPrivate(Msg,0);
			break;
		case USERQUIT:
			{
				g_cs.Lock();
				CString strUserName = Msg.strName;
				CString strRoomName = Msg.strRoom;
				CPtrList * m_pClientList = theApp.m_pClientSocketList;
				int iCount = m_pClientList->GetCount();
				POSITION pos = m_pClientList ->GetHeadPosition();
				POSITION tempos = pos;
				if(pos)
				{	 
					for(int i = 0; i < m_pClientList ->GetCount(); i++)
					{
						tempos = pos;
						CClientSocket *m_pClientSocket = static_cast < CClientSocket *>(m_pClientList->GetNext(pos));
						if(m_pClientSocket ->GetRoomName() == strRoomName && m_pClientSocket ->GetUserName() == strUserName)
						{
							m_pClientSocket ->ShutDown();
							m_pClientSocket ->Close();
							delete m_pClientSocket;
							m_pClientList->RemoveAt(tempos);
							break;
						}
						
					}
					g_cs.Unlock();
				}
				pView ->OnClientOut(Msg,0);
			}
			break;
		}
		break;


	default:
			break;
		
	}
	return TRUE;
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -