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

📄 comservice.h

📁 游戏框架
💻 H
字号:
// ***************************************************************
//  ComService   version:  1.0
//  -------------------------------------------------------------
//	File Name:	ComService.h
//	Created:	2007/07/18
//	Modified:	2007/07/18   15:08
//	Author:		William.Liang
//  Msn:		lwq49@msn.com
//  Email:		lwq49@21cn.com, lwq49@msn.com
//	Description:ComService组件是一些独立工具的集合,负责为框架
//				提供功能支持。目前,只有XML分析器,日后会扩展其
//				它的工具,如:加密、网站游览、HTML文件游览等。
//
//	Purpose:	
//  -------------------------------------------------------------
//  license:
//
//  The contents of this file are subject to the Mozilla Public
//  License Version 1.1 (the "License"); you may not use this file
//  except in compliance with the License. You may obtain a copy
//  of the License at http://www.mozilla.org/MPL/ Software dis-
//  tributed under the License is distributed on an "AS IS" 
//  basis, WITHOUT WARRANTY OF ANY KIND, either express or im-
//  plied. See the License for the specific language governing
//  rights and limitations under the License.
//
//  The Initial Developer of the Original Code is William.Liang .
//  Copyright (C) 2007 - All Rights Reserved.
// ***************************************************************
#ifndef COM_SERVICE_HEAD_FILE
#define COM_SERVICE_HEAD_FILE

//////////////////////////////////////////////////////////////////////////

//平台头文件
#include "..\Common\Common.h"

//////////////////////////////////////////////////////////////////////////
//公共宏定义

//导出定义
#ifndef COM_SERVICE_CLASS
	#ifdef  COM_SERVICE_DLL
		#define COM_SERVICE_CLASS _declspec(dllexport)
	#else
		#define COM_SERVICE_CLASS _declspec(dllimport)
	#endif
#endif

//模块定义
#ifdef _DEBUG
	#define COM_SERVICE_DLL_NAME	TEXT("ComServiceD.dll")			//组件 DLL 名字
#else
	#define COM_SERVICE_DLL_NAME	TEXT("ComService.dll")			//组件 DLL 名字
#endif


//网络数据定义
#define SOCKET_VER						3									//数据包版本
#define SOCKET_PACKAGE					4080								//最大网络包
#define SOCKET_BUFFER					(sizeof(CMD_Head)+SOCKET_PACKAGE+2*sizeof(DWORD))

//内核命令码
#define MDM_KN_COMMAND					0									//内核命令
#define SUB_KN_DETECT_SOCKET			1									//检测命令

//检测结构信息
struct CMD_KN_DetectSocket
{
	DWORD								dwSendTickCount;					//发送时间
	DWORD								dwRecvTickCount;					//接收时间
};

//数据包结构信息
struct CMD_Info
{
	WORD								wDataSize;							//数据大小
	BYTE								cbCheckCode;						//效验字段
	BYTE								cbMessageVer;						//版本标识
};

//数据包命令信息
struct CMD_Command
{
	WORD								wMainCmdID;							//主命令码
	WORD								wSubCmdID;							//子命令码
};

//数据包传递包头
struct CMD_Head
{
	CMD_Info							CmdInfo;							//基础结构
	CMD_Command							CommandInfo;						//命令信息
};

//网络数据包缓冲
struct CMD_Buffer
{
	CMD_Head							Head;								//数据包头
	BYTE								cbBuffer[SOCKET_PACKAGE];			//数据缓冲
};
//////////////////////////////////////////////////////////////////////////

//数据队列头
struct tagDataHead
{
	WORD							wDataSize;							//数据大小
	WORD							wIdentifier;						//类型标识
	DWORD							dwInsertTime;						//插入时间
};

//负荷信息
struct tagBurthenInfo
{
	DWORD							dwDataSize;							//数据大小
	DWORD							dwBufferSize;						//缓冲区长度
	DWORD							dwDataPacketCount;					//数据包数目
};

//////////////////////////////////////////////////////////////////////////
//公共宏定义
//
////代理类型
//#define PROXY_NONE					0									//没有代理
//#define PROXY_SOCKS4				1									//SOCKS4 代理
//#define PROXY_SOCKS5				2									//SOCKS5 代理
//#define PROXY_HTTP					3									//HTTP 代理
//
////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////
////枚举定义
//
////连接状态定义
//enum enSocketState
//{
//	SocketState_NoConnect,			//没有连接
//	SocketState_Connecting,			//正在连接
//	SocketState_Connected,			//成功连接
//};
//
////////////////////////////////////////////////////////////////////////////
////结构定义
//
////代理信息结构
//struct tagProxyInfo
//{
//	BYTE							cbProxyType;						//代理类型
//	WORD							wProxyPort;							//代理端口
//	CString							strProxyName;						//代理用户名
//	CString							strProxyPass;						//代理密码
//	CString							strProxyServer;						//代理地址
//	CString							strHttpDomain;						//代理域名
//};
//
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
//
////网络数据定义
//#define SOCKET_VER						3									//数据包版本
//#define SOCKET_PACKAGE					4080								//最大网络包
//#define SOCKET_BUFFER					(sizeof(CMD_Head)+SOCKET_PACKAGE+2*sizeof(DWORD))
//
////事件标识
//#define EVENT_CONTROL				0x0001								//控制消息
//#define EVENT_TIMER					0x0002								//定时器引擎
//#define EVENT_ACTION				0x0007								//动作引擎
//#define EVENT_DATABASE				0x0003								//数据库请求
//#define EVENT_SOCKET_ACCEPT			0x0004								//网络应答
//#define EVENT_SOCKET_READ			0x0005								//网络读取
//#define EVENT_SOCKET_CLOSE			0x0006								//网络关闭
//
////数据包结构信息
//struct CMD_Info
//{
//	WORD								wDataSize;							//数据大小
//	BYTE								cbCheckCode;						//效验字段
//	BYTE								cbMessageVer;						//版本标识
//};
//
////数据包命令信息
//struct CMD_Command
//{
//	WORD								wMainCmdID;							//主命令码
//	WORD								wSubCmdID;							//子命令码
//};
//
////数据包传递包头
//struct CMD_Head
//{
//	CMD_Info							CmdInfo;							//基础结构
//	CMD_Command							CommandInfo;						//命令信息
//};
//
////网络数据包缓冲
//struct CMD_Buffer
//{
//	CMD_Head							Head;								//数据包头
//	BYTE								cbBuffer[SOCKET_PACKAGE];			//数据缓冲
//};
//
////内核命令码
//#define MDM_KN_COMMAND					0									//内核命令
//#define SUB_KN_DETECT_SOCKET			1									//检测命令
//
////检测结构信息
//struct CMD_KN_DetectSocket
//{
//	DWORD								dwSendTickCount;					//发送时间
//	DWORD								dwRecvTickCount;					//接收时间
//};
//
////////////////////////////////////////////////////////////////////////////
//
//#define VER_IClientSocket INTERFACE_VERSION(1,1)
//static const GUID IID_IClientSocket={0x8b0e3918,0x5139,0x48da,0xbf,0x40,0xba,0x95,0xad,0xce,0x59,0x64};
//
////网络组件接口
//interface IClientSocket : public IUnknownEx
//{
//	//取消代理
//	virtual void __cdecl CancelProxyServer()=NULL;
//	//代理服务器
//	virtual void __cdecl SetProxyServer(tagProxyInfo & ProxyInfo)=NULL;
//	//设置接口
//	virtual bool __cdecl SetSocketSink(IUnknownEx * pIUnknownEx)=NULL;
//	//获取接口
//	virtual void  * __cdecl GetSocketSink(const IID & Guid, DWORD dwQueryVer)=NULL;
//	//获取发送间隔
//	virtual DWORD __cdecl GetLastSendTick()=NULL;
//	//获取接收间隔
//	virtual DWORD __cdecl GetLastRecvTick()=NULL;
//	//获取发送数目
//	virtual DWORD __cdecl GetSendPacketCount()=NULL;
//	//获取接收数目
//	virtual DWORD __cdecl GetRecvPacketCount()=NULL;
//	//获取状态
//	virtual enSocketState __cdecl GetConnectState()=NULL;
//	//连接服务器
//	virtual bool __cdecl Connect(DWORD dwServerIP, WORD wPort)=NULL;
//	//连接服务器
//	virtual bool __cdecl Connect(const LPCTSTR szServerIP, WORD wPort)=NULL;
//	//发送函数
//	virtual bool __cdecl SendData(WORD wMainCmdID, WORD wSubCmdID)=NULL;
//	//发送函数
//	virtual bool __cdecl SendData(WORD wMainCmdID, WORD wSubCmdID, void * pData, WORD wDataSize)=NULL;
//	//关闭连接
//	virtual bool __cdecl CloseSocket(bool bNotify)=NULL;
//};
//
////////////////////////////////////////////////////////////////////////////
//
//#define VER_IClientSocketSink INTERFACE_VERSION(1,1)
//static const GUID IID_IClientSocketSink={0x55fcf8aa,0x526a,0x44c2,0x9a,0xd1,0x4,0xe,0x7,0xd6,0x8a,0x2a};
//
////网络钩子接口
//interface IClientSocketSink : public IUnknownEx
//{
//	//网络连接消息
//	virtual bool __cdecl OnSocketConnect(int iErrorCode, LPCTSTR pszErrorDesc, IClientSocket * pIClientSocke)=NULL;
//	//网络读取消息
//	virtual bool __cdecl OnSocketRead(CMD_Command Command, void * pBuffer, WORD wDataSize, IClientSocket * pIClientSocke)=NULL;
//	//网络关闭消息
//	virtual bool __cdecl OnSocketClose(IClientSocket * pIClientSocke, bool bCloseByServer)=NULL;
//};

//////////////////////////////////////////////////////////////////////////

#ifndef  COM_SERVICE_DLL
	//导出类头文件
	#include "Encrypt.h"
	//#include "WebBrowser.h"
	//#include "HtmlBrowser.h"
	//#include "WinFileInfo.h"
	#include "DataStorage.h"
	#include "ServiceThread.h"
	//#include "ClientSocket.h"
	//#include "XMLParser.h"
#endif

//////////////////////////////////////////////////////////////////////////

#endif

⌨️ 快捷键说明

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