📄 iocppacketheader.h
字号:
// IocpPacketHeader.h: interface for the CIocpPacketHeader class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_IOCPPACKETHEADER_H__4721B39C_D056_44B3_A27B_C7063A67BA94__INCLUDED_)
#define AFX_IOCPPACKETHEADER_H__4721B39C_D056_44B3_A27B_C7063A67BA94__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//消息标识定义
#define PACKET_LOTAG 'Z'
#define PACKET_HITAG 'h'
//版本定义
enum PACKET_VERSION
{
PACKET_VERSION_00=0
};
#define PACKET_VERSION_CURRENT PACKET_VERSION_00 //当前版本
class AFX_EXT_CLASS CMemFileEx : public CMemFile
{
public:
CMemFileEx() {}
virtual ~CMemFileEx() {}
public:
void GrowBuf(DWORD dwNewLen) {GrowFile(dwNewLen);SetLength(dwNewLen);}
BYTE* GetDataBuf() {return (BYTE*)m_lpBuffer;}
DWORD GetDataBufLen() {return m_nPosition;}
};
class AFX_EXT_CLASS CIocpPacketHeader : public CObject
{
friend class CIocpPacket;
public:
DECLARE_SERIAL(CIocpPacketHeader)
CIocpPacketHeader();
virtual ~CIocpPacketHeader();
private:
WORD m_wTag; //ZNet标识
WORD m_nVer; //版本号
public:
GUID m_gdHeader; //命令的唯一标识
UINT m_nCmd; // command
UINT m_wParam; // parameter 1
UINT m_lParam; // parameter 2
int m_nErrCode; // error code
UINT m_nDataLen; // data length
UINT m_nReserved; // Reserved
//序列化控制
public:
void Serialize(CArchive& ar);
void operator=(const CIocpPacketHeader& srcHeader);
void ResetHeader();
//文件控制
private:
CStringArray m_aFullName; //文件全路径名称数组
CStringArray m_aFileName; //文件名称数组
CIntArray m_aFileLength; //文件长度数组
private:
int AddPacketFile(CString strFullName); //添加文件
int RemovePacketFile(CString strFullName); //删除文件
int DeleteAllFile(WORD wType, BOOL bDeleteAfterSend); //删除所有文件
BOOL GetPacketFile(int nIndex, CString& strFullName); //接收端获取文件
};
#endif // !defined(AFX_IOCPPACKETHEADER_H__4721B39C_D056_44B3_A27B_C7063A67BA94__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -