📄 msg.cpp
字号:
// Msg.cpp: implementation of the CMsg1 class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "common.h"
#include "Msg.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMsg1::CMsg1()
{
Msg="";
}
CMsg1::~CMsg1()
{
}
void CMsg1::PackToBuf()
{
CData::PackToBuf();
*((DWORD*)(szBuf+BP))=FriendId;
BP+=sizeof(DWORD);
*((CTime*)(szBuf+BP))=Time;
BP+=sizeof(CTime);
WORD sLen=Msg.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,Msg.GetBuffer(Msg.GetLength()));
BP+=sLen;
}
num=BP;
}
BOOL CMsg1::LoadFromBuf()
{
if(!CData::LoadFromBuf())return FALSE;
FriendId=*((DWORD*)(szBuf+BP));
BP+=sizeof(DWORD);
Time=*((CTime*)(szBuf+BP));
BP+=sizeof(CTime);
WORD sLen=0;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString msg(szBuf+BP,sLen);
Msg=msg;
BP+=sLen;
}
else if(sLen==0)
{
Msg="";
}
else
{
return FALSE;
}
if(BP==num)return TRUE;
return FALSE;
}
//////////////////////////////////////////////////////////////////////
// CMsg2 Class
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMsg2::CMsg2()
{
Msg="";
}
CMsg2::~CMsg2()
{
}
void CMsg2::PackToBuf()
{
CData::PackToBuf();
WORD aNum=0;
aNum=aFriendId.GetSize();
*((WORD*)(szBuf+BP))=aNum;
BP+=sizeof(WORD);
for(int i=0;i<aNum;i++)
{
*((DWORD*)(szBuf+BP))=aFriendId.GetAt(i);
BP+=sizeof(DWORD);
}
*((CTime*)(szBuf+BP))=Time;
BP+=sizeof(CTime);
WORD sLen=Msg.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,Msg.GetBuffer(Msg.GetLength()));
BP+=sLen;
}
num=BP;
}
BOOL CMsg2::LoadFromBuf()
{
if(!CData::LoadFromBuf())return FALSE;
WORD aNum=0;
aNum=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(aNum>0)
{
aFriendId.RemoveAll();
for(int i=0;i<aNum;i++)
{
aFriendId.Add(*((DWORD*)(szBuf+BP)));
BP+=sizeof(DWORD);
}
}
else if(aNum<0)
{
return FALSE;
}
Time=*((CTime*)(szBuf+BP));
BP+=sizeof(CTime);
WORD sLen=0;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString msg(szBuf+BP,sLen);
Msg=msg;
BP+=sLen;
}
else if(sLen==0)
{
Msg="";
}
else
{
return FALSE;
}
if(BP==num)return TRUE;
return FALSE;
}
//////////////////////////////////////////////////////////////////////
// CMsg3 Class
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMsg3::CMsg3()
{
}
CMsg3::~CMsg3()
{
}
void CMsg3::PackToBuf()
{
CData::PackToBuf();
*((DWORD*)(szBuf+BP))=Value;
BP+=sizeof(DWORD);
num=BP;
}
BOOL CMsg3::LoadFromBuf()
{
if(!CData::LoadFromBuf())return FALSE;
Value=*((DWORD*)(szBuf+BP));
BP+=sizeof(DWORD);
if(BP==num)return TRUE;
return FALSE;
}
//////////////////////////////////////////////////////////////////////
// CMsg4 Class
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMsg4::CMsg4()
{
Msg="";
BroadcastPwd="";
}
CMsg4::~CMsg4()
{
}
void CMsg4::PackToBuf()
{
CData::PackToBuf();
WORD sLen=BroadcastPwd.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,BroadcastPwd.GetBuffer(BroadcastPwd.GetLength()));
BP+=sLen;
}
sLen=Msg.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,Msg.GetBuffer(Msg.GetLength()));
BP+=sLen;
}
num=BP;
}
BOOL CMsg4::LoadFromBuf()
{
if(!CData::LoadFromBuf())return FALSE;
WORD sLen=0;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString msg(szBuf+BP,sLen);
BroadcastPwd=msg;
BP+=sLen;
}
else if(sLen==0)
{
BroadcastPwd="";
}
else
{
return FALSE;
}
sLen=0;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString msg(szBuf+BP,sLen);
Msg=msg;
BP+=sLen;
}
else if(sLen==0)
{
Msg="";
}
else
{
return FALSE;
}
if(BP==num)return TRUE;
return FALSE;
}
//////////////////////////////////////////////////////////////////////
// CMsgModifyPwd Class
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMsgModifyPwd::CMsgModifyPwd()
{
}
CMsgModifyPwd::~CMsgModifyPwd()
{
}
void CMsgModifyPwd::PackToBuf()
{
CData::PackToBuf();
WORD sLen=OldPwd.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,OldPwd.GetBuffer(OldPwd.GetLength()));
BP+=sLen;
}
sLen=NewPwd.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,NewPwd.GetBuffer(NewPwd.GetLength()));
BP+=sLen;
}
num=BP;
}
BOOL CMsgModifyPwd::LoadFromBuf()
{
if(!CData::LoadFromBuf())return FALSE;
WORD sLen=0;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString msg(szBuf+BP,sLen);
OldPwd=msg;
BP+=sLen;
}
else if(sLen==0)
{
OldPwd="";
}
else
{
return FALSE;
}
sLen=0;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString msg(szBuf+BP,sLen);
NewPwd=msg;
BP+=sLen;
}
else if(sLen==0)
{
NewPwd="";
}
else
{
return FALSE;
}
if(BP==num)return TRUE;
return FALSE;
}
//////////////////////////////////////////////////////////////////////
// CMsgOnlineFriend Class
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMsgOnlineFriend::CMsgOnlineFriend()
{
}
CMsgOnlineFriend::~CMsgOnlineFriend()
{
}
BOOL CMsgOnlineFriend::LoadFromBuf()
{
if(!CData::LoadFromBuf())return FALSE;
WORD aNum=0;
aNum=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(aNum>0)
{
aFriendId.RemoveAll();
aFriendState.RemoveAll();
aFriendIP.RemoveAll();
aFriendPort.RemoveAll();
for(int i=0;i<aNum;i++)
{
aFriendId.Add(*((DWORD*)(szBuf+BP)));
BP+=sizeof(DWORD);
aFriendState.Add(*(szBuf+BP));
BP++;
aFriendIP.Add(*((DWORD*)(szBuf+BP)));
BP+=sizeof(DWORD);
aFriendPort.Add(*((DWORD*)(szBuf+BP)));
BP+=sizeof(DWORD);
}
}
else if(aNum<0) return FALSE;
if(BP==num)return TRUE;
return FALSE;
}
void CMsgOnlineFriend::PackToBuf()
{
CData::PackToBuf();
WORD aNum=aFriendId.GetSize();
*((WORD*)(szBuf+BP))=aNum;
BP+=sizeof(WORD);
for(int i=0;i<aNum;i++)
{
*((DWORD*)(szBuf+BP))=aFriendId.GetAt(i);
BP+=sizeof(DWORD);
*(szBuf+BP)=aFriendState.GetAt(i);
BP++;
*((DWORD*)(szBuf+BP))=aFriendIP.GetAt(i);
BP+=sizeof(DWORD);
*((DWORD*)(szBuf+BP))=aFriendPort.GetAt(i);
BP+=sizeof(DWORD);
}
num=BP;
}
//////////////////////////////////////////////////////////////////////
// CMsgChangePI Class
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMsgChangePI::CMsgChangePI()
{
Mask=0;
}
CMsgChangePI::~CMsgChangePI()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -