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

📄 chatroom.h

📁 网络游戏魔域源代码 测试可以完整变异
💻 H
字号:
// ChatRoom.h: interface for the CChatRoom class.
//
//////////////////////////////////////////////////////////////////////

//Create By:	Wen Yiku
//Create Date:	2005-6-29
#if !defined(AFX_CHATROOM_H__E61FC286_64C3_404C_8322_7C335C42406A__INCLUDED_)
#define AFX_CHATROOM_H__E61FC286_64C3_404C_8322_7C335C42406A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "basefunc.h"

#include "IMSdk.h"

#include <deque>

using namespace std;

typedef deque<CGroupSummary* >  DEQUE_GROUPLIST;

typedef struct  
{
	DWORD dwUin;
	DWORD dwStatus;
	DWORD dwEntryTime;
	char  szNick[16];
	char  szDomain[16];
	char  szIdiograph[256];
}GroupMember;
typedef deque<GroupMember* >  DEQUE_GROUPMEMBER;

class CChatRoom  
{
public:
	void DeInit();
	void Init();
	void Logout();
	void Login();
	void SendMsg(UINT dwFriendID=0);
	UINT GetMyUin(){ return im_GetMyUin();}
	void ChangeRoomInfo();
	void ChangeMyInfo();
	void AbandonManger();
	void ApplyManager();
	void KickMember();
	void GetRoomInfo();
	void GetRoomList();
	void EnterRoom(int nIndex);		//
	void EnterRoomByID(UINT GroupID);	//进入xx聊天室
	void LeaveRoom();	//退出当前聊天室
	CChatRoom();
	virtual ~CChatRoom();

	//
	void Reset();
	//聊天室列表
	void SetRoomListInfo(CGroupSummary* pGroupSummary,int iCount);
	CGroupSummary* GetRoomInfoList(int nIndex);
	CGroupSummary* GetRoomInfoListByID(UINT GroupID);	
	int	 GetRoomInfoAmount() {return m_setGroupList.size();}

	//当前聊天室信息
	void SetCurRoomInfo(IGroupInfo* pGroup) {m_curGroup = pGroup;}
	IGroupInfo* GetCurRoomInfo() {return m_curGroup;}
	//当前聊天室成员列表
	BOOL AddRoomMember(IGroupInfo* pGroupInfo, IGroupMember* pGroupMember);
	BOOL DelRoomMember(IGroupInfo* pGroupInfo, IGroupMember* pGroupMember);
	BOOL UpdateRoomMember(IGroupMember* pGroupMember);
	int  GetRoomMemberAmount() {return m_setGroupMember.size();}
	GroupMember* GetRoomMemberByIndex(int nIndex);
	GroupMember* GetRoomMemberByUin(int nUin);

	void ClearRoomMembers() ;

private:
	void ClearRoomListInfo();
private:
	DEQUE_GROUPLIST m_setGroupList;				//聊天室列表
	DEQUE_GROUPMEMBER m_setGroupMember;			//当前聊天室成员列表
	IGroupInfo* m_curGroup;						//当前聊天室
	char m_strMsg[256];							
	UINT m_dwUin;
	char m_strGroupDomain[64];
	char m_strValue[64];
	UINT m_dwAttrib;
	char m_strGameCode[64];
	char m_strPasswd[32];
	char m_strAccount[32];
	UINT m_dwMyUin;
public:
	UINT m_dwGroupID;
	
public:
	void SetMsg(char*strMsg){strcpy(m_strMsg,strMsg);}
	
};


#ifndef WM_91U_MESSAGE
#define WM_91U_MESSAGE (WM_USER+1000)

	const int CMD_91U_LOGIN									= 1000;					//登陆成功
	const int CMD_91U_EXIST_UIN								= CMD_91U_LOGIN + 1;	//Uin在别处登录了!
	const int CMD_91U_LOGINFAILED							= CMD_91U_LOGIN + 2;	//登录失败
	const int CMD_91U_STATUSCHANGED							= CMD_91U_LOGIN + 3; 	//在线状态改变了
	const int CMD_91U_OFFLINEERROR							= CMD_91U_LOGIN + 4;	//不正常掉线了
	const int CMD_91U_OFFLINE								= CMD_91U_LOGIN + 5;	//正常下线了
		
	const int CMD_91U_SEARCHROOMBACK						= CMD_91U_LOGIN + 6;	//查询聊天室列表返回

	const int CMD_91U_ENTERROOMOK							= CMD_91U_LOGIN + 7;	//进入聊天室
	const int CMD_91U_ROOMOUTAMOUNT							= CMD_91U_LOGIN + 8;	//超出群允许的最大成员数!
	const int CMD_91U_HASENTERED							= CMD_91U_LOGIN + 9;	//该成员已经在群的列表之中
	const int CMD_91U_NOTALLOW								= CMD_91U_LOGIN + 10;	//不允许添加群管理员到群中
	const int CMD_91U_ENTEROUTTIME							= CMD_91U_LOGIN + 11;	//网络超时
	const int CMD_91U_ENTERFAILED							= CMD_91U_LOGIN + 12;	//进入群失败
	const int CMD_91U_KICKOUT								= CMD_91U_LOGIN + 15;    //被踢出聊天室
	
	const int CMD_91U_GETROOMINFOBACK						= CMD_91U_LOGIN + 13;	//从服务端取群信息
	const int CMD_91U_MODIFYROOMNAME						= CMD_91U_LOGIN + 14;	//修改群信息 -名称
	const int CMD_91U_MODIFYROOMBULLETIN					= CMD_91U_LOGIN + 15;	//修改群信息 -改公告
	const int CMD_91U_MODIFYROOMSYNOPSIS					= CMD_91U_LOGIN + 16;	//修改群信息 -群简介
	

	const int CMD_91U_MEMBERIN								= CMD_91U_LOGIN + 16;	//成员进入聊天室
	const int CMD_91U_MEMBEROUT								= CMD_91U_LOGIN + 18;	//成员退出聊天室
	const int CMD_91U_MEMBERKICKOUT							= CMD_91U_LOGIN + 19;	//成员被踢出聊天室
	const int CMD_91U_MEMBEROFFLINE							= CMD_91U_LOGIN + 20;   //成员掉线
	const int CMD_91U_MEMBERONLINE							= CMD_91U_LOGIN + 21;   //成员上线
	const int CMD_91U_MODIFYMEMBERNAME						= CMD_91U_LOGIN + 20;	//修改群成员name
	const int CMD_91U_MODIFYMEMBERIDIOGRAPH					= CMD_91U_LOGIN + 21;	//修改群成员签名

	const int CMD_91U_CHANGEGROUPMANAGER					= CMD_91U_LOGIN + 21;   //改变群管理员
	const int CMD_91U_ABANDONGROUPMANAGER					= CMD_91U_LOGIN + 22;	//放弃群管理员

	
	void Post91UCmd(DWORD dwCommand, int nData= 0);
#endif
extern CChatRoom g_obj91Sdk;
#endif // !defined(AFX_CHATROOM_H__E61FC286_64C3_404C_8322_7C335C42406A__INCLUDED_)

⌨️ 快捷键说明

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