#if !defined(AFX_PROCESSSOCKET_H__84178275_E1E4_49EE_921C_CB998897C109__INCLUDED_)
#define AFX_PROCESSSOCKET_H__84178275_E1E4_49EE_921C_CB998897C109__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ProcessSocket.h : header file
//

#define    FRAMEBUFFER_SIZE           600000

#include "SendThread.h"

/////////////////////////////////////////////////////////////////////////////
// CProcessSocket command target

#ifdef _M_X64
#include "..\public\lzo_64\lzo.h"
#else
#include "..\public\lzo\lzo.h"
#endif



typedef CList<ANS_YWY_YSData>  CYSData;

class CSmsCenterDlg;
class CProcessSocket
{
// Attributes
public:
	//以下用于IOCP
	BOOL        m_bUse;               //是否正在使用
	long        m_lRandID;            //随机使用的ID
	Socket_Head m_RecvHead;
	BOOL        m_bCmpp;              //是否CMPP协议
	Cmpp_Head   m_CmppHead;           //Cmpp协议头

	//IOCP_KEY_PTR m_key;
	IOCP_IO_PTR  m_io;
	IOCP_SQL_PTR m_Sql;

	BOOL           m_bConnectSQL;    //是否已连接SQLS erver
//	CAdoConnection m_adoConnection;
	CAdoRecordSet  m_AdoRS;
	CAdoRecordSet  m_AdoRS2;
	CAdoRecordSet  m_AdoRS3;

	DWORD          m_dwBeginUse;         //开始使用
	DWORD          m_dwEndUse;           //最后使用

	//以下为原ProcessSocket用到的变量
	ULONG       m_lID;
	TCHAR       m_szIP[32];         //对方的ip
	UINT       m_lPort;            //对方的端口
	UINT       m_lLocalPort;       //本地端口
	SYSTEMTIME m_LoginTime;        //登录时间
	TCHAR       m_szCorpName[96];   //企业名称
	TCHAR       m_szLoginName[32];  //登录名称
	long       m_lLoginCount;      //登录次数
	UCHAR      m_ucUserType;       //用户类型
	long       m_lCorpID;          //企业ID
	long       m_lUserID;          //用户ID
	long       m_lAgentID;         //此企业的代理商ID
	long       m_lYWYAgent;        //业务员所属的代理商ID
	long       m_lAgentType;       //代理类型
	ULONG      m_ulPurviewType;    //权限类型
	ULONG      m_ulPurview;        //权限
	long       m_lVer;
	long       m_lAccessGroup;     //用户对每个组的权限

	BOOL       m_bCheckTimeOut;    //是否允许检测TimeOut
	BOOL       m_bCheckup;

	BOOL       m_bCompress;        //发送数据时,是否压缩
	long       m_lFStep;           //敏感字级别

	long       m_lIndex;           //在Process数组中的位置
	long       m_lEndFuncType;

	DWORD      m_dwLastSend;       //最后一次提交短信的时间
	DWORD      m_dwSendCount;      //发送计数,用于控制优先级
	long       m_lSDK;            //SDK功能保存

	//BYTE        m_RecvFrame[FRAMEBUFFER_SIZE];
	CLzo       m_Lzo;
	BYTE  *    m_RecvFrame;
	char       m_szTemp[4096];
protected:


protected:
	CSmsCenterDlg * m_pSMSDlg;


// Operations
public:
	CProcessSocket();
	virtual ~CProcessSocket();

// Overrides
public:
	static long GetFPDetail(CAdoRecordSet* pAdoRS, long lCorpID, long lCorpType, CString& strFPDetail);
	BOOL GetPTConnect(long lPT,CAdoConnection* pOtherConnection, CAdoRecordSet* pOtherAdoRS, CAdoRecordSet* pOtherAdoRS2, CAdoRecordSet*& pGetAdoRS, CAdoRecordSet*& pGetAdoRS2, CString & strErrMsg);
	static CString GetCreateName(long lUserType, CString strLoginName);
	static BOOL SendEmail(CString strSender, CString strSendEmail, CString strToMail1, CString strToMail2, CString strSubject, CString strMsg);
	static long GetCorpYWYID_AgentID(CAdoRecordSet * pAdoRS, int lCorpID, int &lAgentID, int &lYWYID);
	static long GetCorpAgentID(CAdoRecordSet * pAdoRS, int lCorpID);
	static long GetCorpYWYIDName_AgentIDName(CAdoRecordSet* pAdoRS, int lCorpID, int& lYWYID, TCHAR* pYWYName, int& lAgentID, TCHAR* pAgentName);
	static long GetCorpYWYIDName(CAdoRecordSet* pAdoRS, int lCorpID, int& lYWYID, TCHAR* pYWYName);
	static long GetCorpLXR(CAdoRecordSet* pAdoRS, int llxrID,TCHAR * pLXRName);

	long Process_Corp_CustomSettings_Get(REQ_Corp_CustomSettings_Get* pGet);
	long Process_Corp_CustomSettings(REQ_Corp_CustomSettings* pSettings);
	long Process_Corp_Assist_ExpiryRecycling_Get(REQ_Corp_Assist_ExpiryRecycling_Get* pGet);
	long Process_Corp_Assist_ExpiryRecycling(REQ_Corp_Assist_ExpiryRecycling* pRecycling);
	long Process_Corp_Assist_Expiry(REQ_Corp_Assist_Expiry* pExpiry);
	long Process_Corp_Assist_GetCorp(REQ_Corp_Assist_GetCorp* pGet);
	long Process_Corp_Assist_Transfer(REQ_Corp_Assist_Transfer* pTransfer);
	long Process_Corp_Assist_ReturnQuantity_Get(REQ_Corp_Assist_ReturnQuantity_Get* pGet);
	long Process_Corp_Assist_ReturnQuantity(REQ_Corp_Assist_ReturnQuantity* pReturnQuantity);
	long Process_FPQuery(REQ_FPQuery *pSee);
	long Process_GZMsg_JL_GetYZKH(CAdoRecordSet *pAdoRSP1, CAdoRecordSet *pAdoRSP2, CAdoRecordSet *pAdoRSP3, long lYWYID, long lYear, long lMon, double & fTotalYZ, long & lTotalKH);
	long Process_GZMsg_JL_Para(REQ_GZMsg_JL_PARA* pPara);
	long Process_GZMsg_JL(REQ_GZMsg_JL* pJL);
	long Process_GAddress_Place(REQ_GAddress_Place* pPlace);
	long Process_YWY_Analyse(REQ_YWY_Analyse * pAnalyse);
	long Process_Corp_Analyse(REQ_Corp_Analyse * pAnalyse);
	long Process_Corp_HF_Frequency(REQ_Corp_HF_Frequency * pFrequency);
	static long Mms_SendWebReq(CString strUrl, BYTE * pSend, long lSendLen, char *pRetBuf, long lRetBufSize, CString strContentType, CString strSOAPAction);
	long Process_SF_See(REQ_Corp_SF_See * pSee);
	long Process_SF_Add(REQ_Corp_SF_Add * pAdd);
	long Process_SF_Cancel(REQ_Corp_SF_Cancel * pCancel);
	long Process_SF_Route(REQ_Corp_SF_Route * pRoute);

	static double Process_YWY_YS_Get(long lYWYID ,CString strYWYName ,CAdoRecordSet & Ado1,CAdoRecordSet & Ado2,CAdoRecordSet & Ado3,BOOL bOnlyHZ , CYSData *  pysData  );
	long Process_YWY_YS( REQ_YWY_YS* pYS );
	long Process_YWY_YSREFRESH( REQ_YWY_YSRefresh* pRefresh );
	static long Process_QueryLL_Query(CAdoRecordSet &AdoRS,ANS_QueryLL & RetLL,CString &strRet);

	long Process_White2_Get( REQ_White2_Get * pGet );
	long Process_White2_Oper(REQ_White2_Oper * pOper );
	long Process_White2_Upload(REQ_White2_Upload * pUpload);

	long Process_QqtRecv( REQ_QQTRecv * pRecv );
	long Process_QqtLogMobile(REQ_QqtLogMobile * pMobile );
	long Process_QqtStatus(REQ_QqtStatus * pStatus );
	long Process_QXBox_Group_Add(REQ_QXBox_Group_Add * pAdd);
	long Process_QXBox_Group_Del(REQ_QXBox_Group_Del * pDel);
	long Process_QXBox_Group_See(REQ_QXBox_Group_See * pSee);
	long Process_QXBox_Group_Modify(REQ_QXBox_Group_Modify * pModify);
	long Process_QXBox_Group_Mobile(REQ_QXBox_Group_Mobile * pMobile);
	long Process_QXBox_Group_Send(REQ_QXBox_Group_Send * pSend);
	long Process_QXBox_Group_SendImage(REQ_QXBox_Group_SendImage * pImage);

	long Process_DataTJErr_Process(REQ_DataTJErr_Process *pProcess);
	long Process_DataTJErr_Get(REQ_DataTJErr_Get *pGet);
	long Process_PLTaskMms_Modify( REQ_PLTaskMms_Modify * pMoidfy );
	long Process_PLTaskMms_Del( REQ_PLTaskMms_Del * pDel );
	long Process_PLTaskMms_See( REQ_PLTaskMms_See * pSee );
	long Process_PLTaskMms_Add( REQ_PLTaskMms_Add * pAdd );
	long Process_PLTaskSms_Modify( REQ_PLTaskSms_Modify * pMoidfy );
	long Process_PLTaskSms_PLModify(REQ_PLTaskSms_PLModify* pMoidfy);
	long Process_PLTaskSms_Del( REQ_PLTaskSms_Del * pDel );
	long Process_PLTaskSms_See( REQ_PLTaskSms_See * pSee );
	long Process_PLTaskSms_Add( REQ_PLTaskSms_Add * pAdd );
	long Process_PLFile_See( REQ_PLFile_See * pSee );
	long Process_PLFile_Del( REQ_PLFile_Del * pDel );
	long Process_PLFile_ID( REQ_PLFile_ID * pID );
	long Process_PLFile_Up( REQ_PLFile_Up * pUp );

	long Process_Template_Modify(REQ_Template_Modify * pMoidfy);
	long Process_Template_Del(REQ_Template_Del * pDel);
	long Process_Template_See(REQ_Template_See * pSee);
	long Process_Template_Add(REQ_Template_Add * pAdd);

	long Process_SignName_Modify(REQ_SignName_Modify * pMoidfy);
	long Process_SignName_Del(REQ_SignName_Del * pDel);
	long Process_SignName_See(REQ_SignName_See * pSee);
	long Process_SignName_Add(REQ_SignName_Add * pAdd);

	static long MobileNumType2(CSmsCenterDlg * pDlg , CAdoRecordSet * pMsSql , CString strMobile);
	long Process_MySqlApi( REQ_MySqlAPI * pApi );
	long Process_ListMms( REQ_ListMms * pList );
	long Process_Mms_GetFile( REQ_Mms_GetFile* pGet );
	long Process_Mms_GetFile2(REQ_Mms_GetFile2* pGet);
	long Process_CheckupMms( REQ_CheckupMms * pCheckup );
	long Process_CheckupMms_See( REQ_CheckupMms_See* pSee);
	long Process_CheckupMms_See2(REQ_CheckupMms_See2* pSee);
	long Process_MmsPay_See(REQ_MmsPay_See *pPay);
	long Process_Mms_PayModify(REQ_Mms_PayModify *pModify);
	long Process_Mms_Pay(REQ_Mms_Pay *pPay);
	long Process_MmsPro(REQ_MmsPro * pMms );
	long Process_WorkPro(REQ_WorkPro * pWork );
	long Process_Corp_File( REQ_Corp_File * pFile );
	long Process_Corp_MonPay( REQ_Corp_MONPAY * pPay );
	long Process_Corp_YYSPay( REQ_Corp_YYSPAY * pPay );
	long Process_PayToUser_See( REQ_PayToUser_See* pSee );
	long Process_PayToUser_Set( REQ_PayToUser_Set* pSet );
	long Process_GZMsg_GetLS(ANS_GZMsgData * pGZMsg ,ANS_GZMsg_LS * pLS , CAdoRecordSet  * pAdoRS , CAdoRecordSet *pAdoRS2, long lPTNum , ANS_GetYWYData  YWY , ANS_GetYWYGroupData Group , SYSTEMTIME tBegin , SYSTEMTIME tEnd);
	long Process_GZMsg_GetTC(ANS_GZMsgData * pGZMsg ,ANS_GZMsg_TC * pTC , CAdoRecordSet  * pAdoRS , CAdoRecordSet *pAdoRS2, long lPTNum , ANS_GetYWYData  YWY , ANS_GetYWYGroupData Group , SYSTEMTIME tBegin , SYSTEMTIME tEnd);
	long Process_GZMsg_GetKH(ANS_GZMsgData * pGZMsg ,ANS_GZMsg_KH * pKH , CAdoRecordSet  * pAdoRS , CAdoRecordSet *pAdoRS2, CAdoRecordSet *pAdoRSPT1, long lPTNum , ANS_GetYWYData  YWY , ANS_GetYWYGroupData Group , SYSTEMTIME tBegin , SYSTEMTIME tEnd);
	long Process_GZMsg_GetKHWH(ANS_GZMsgData * pGZMsg ,ANS_GZMsg_KH * pKH , CAdoRecordSet  * pAdoRS , CAdoRecordSet *pAdoRS2, long lPTNum , ANS_GetYWYData  YWY , ANS_GetYWYGroupData Group , SYSTEMTIME tBegin , SYSTEMTIME tEnd);
	long Process_GZMsg_GetFP_Award(ANS_GZMsgData* pGZMsg, ANS_GZMsg_TC* pTC, CAdoRecordSet* pAdoRS, CAdoRecordSet* pAdoRS2, long lPTNum, ANS_GetYWYData YWY, ANS_GetYWYGroupData Group, SYSTEMTIME tBegin, SYSTEMTIME tEnd);
	long Process_Corp_TS( REQ_Corp_TS * pTS );
	long Process_Corp_TSModify(REQ_Corp_TSModify * pModify );
	long Process_YWMsg( REQ_YWMsg * pYWMsg );
	long Process_GZMsg( REQ_GZMsg * pGZMsg );
	long Process_ADCHTHS( REQ_ADCHTHS * pHT );
	long Process_Agent_CJ( REQ_Agent_CJ * pCJ );
	long Process_Agent_TC( REQ_Agent_TC * pTC );
	long Process_Agent_CJFF( REQ_Agent_CJFF * pCJFF );
	long Process_CMCC_CJ( REQ_CMCC_CJ * pCJ );
	long Process_CMCC_TC( REQ_CMCC_TC * pTC );
	long Process_CMCC_CJFF( REQ_CMCC_CJFF * pCJFF );

	long Process_Pay_SetAdcAgentTC( REQ_Pay_SetAdcAgentTC* pAdc );
	long Process_HT_Del( REQ_HT_Del * pDel );
	long Process_HT_Out( REQ_HT_Out * pOut );
	long Process_HT_Add( REQ_HT_Add * pAdd );
	long Process_HT_See( REQ_HT_See * pSee );
	static BYTE toHex(const BYTE &x);
	static CString URLEncode(CString sIn);
#ifdef _UNICODE
	static CStringA URLEncode(CStringA sIn);
#endif 
	long Process_Pay_SetAdcStatus( REQ_Pay_SetAdcStatus * pAdc );
	long Process_Corp_RefreshSMSCount( REQ_Corp_RefreshADCSmsCount* pAdc );
	long Process_Corp_Oper_See( REQ_Corp_Oper_See * pSee );
	long Process_Corp_Oper_Add( REQ_Corp_Oper_Add * pAdd );
	long Process_Corp_BZ_See( REQ_Corp_BZ_See * pSee );
	long Process_Corp_BZ_Add( REQ_Corp_BZ_Add * pAdd );
	long Process_RtxSms_Get( ANS_RTXSms_Get * pRtxSms );
#ifndef UNICODE
	long Cmpp_Process_Terminate();
	long Cmpp_Process_Submit(Cmpp_Submit * pSubmit);
	long Cmpp_Process_ActiveTest();
	long Cmpp_Process_Connect(Cmpp_Connect * pConnect);
	BOOL Cmpp_ProcessRet(unsigned char lFuncType, unsigned char *pFrame, unsigned long lFrameLen);
#endif
	static long Process_Bill4_Query(CSmsCenterDlg * pSMSDlg,CAdoRecordSet & m_AdoRS,CAdoRecordSet & m_AdoRS2, REQ_Bill4 *pBill , ANS_Bill4 * pBillRet , ANS_BillData4 * pBillDataRet);
	long Process_Bill4( REQ_Bill4 * pBill  );
	long Process_CliSmsTD(REQ_CliSmsTD * pTD);
	static BOOL isZSDX_JFWord(const TCHAR *pMsg,CAdoRecordSet * pAdo,long lCorpID=0);
	static BOOL isMobileFJ(const TCHAR *pMobile,CAdoRecordSet * pAdo,long lCorpID=0);
	long Process_CenterTime( REQ_CenterTime * pTime );
	long Process_Corp_GetCM( REQ_Corp_GetCM * pGetCM );
	long Process_GAddress2_Group_Move(REQ_GAddress2_Group_Move *pMove);
	long Process_GAddress2_User_Move( REQ_GAddress2_User_Move * pMove );
	long Process_GAddress2_Group_Del( REQ_GAddress2_Group_Del * pDel );
	long Process_GAddress2_Group_Modify( REQ_GAddress2_Group_Modify * pModify );
	long Process_GAddress2_Group_Add( REQ_GAddress2_Group_Add* pAdd );
	long Process_GAddress2_Del( REQ_GAddress2_Del* pDel );
	long Process_GAddress2_Add( REQ_GAddress2_Add* pAdd );
	long Process_GAddress2_Modify( REQ_GAddress2_Modify* pModify);
	long Process_GAddress2_See( REQ_GAddress2_See* pSee );
	long Process_GAddress22_Add( REQ_GAddress22_Add* pAdd );
	long Process_GAddress22_Modify( REQ_GAddress22_Modify* pModify);
	long Process_GAddress22_See( REQ_GAddress22_See* pSee );

	long Process_GetTD( REQ_GetTD * pGet );
	long Process_DZ_Add2(REQ_DZ_Add2 *pAdd);
	long Process_DBB(  REQ_DBB  * pDBB );
	long Process_MsgList(  REQ_MsgList * pList );
	long Process_DZTab( REQ_DZTab * pTab );
	long Process_Corp_HSSms( REQ_Corp_HSSms * pHSSms );
	long Process_FuncPay_See(REQ_FuncPay_See *pPay);
	long Process_Corp_FuncPayModify( REQ_Corp_FuncPayModify * pModify );
	long Process_Corp_FuncPay( REQ_Corp_FuncPay * pPay );
	long Process_Corp_Pay_YS( REQ_Corp_Pay_YS * pYS);
	long Process_GetGG3(REQ_GetGG3 *pGG);
	long Process_SendList_Add( REQ_SendList_Add * pAdd );
	long Process_SendList_See( REQ_SendList_See * pSee );
	static void SendReportMsg( const TCHAR * szMsg , long lType,CAdoRecordSet * pAdoRS1,CAdoRecordSet * pAdoRS2,CAdoRecordSet * pAdoRS3,CSmsCenterDlg * pSMSDlg );
	long Process_CorpSmsB_SH( REQ_CorpSmsB_SH*  pSH );
	long Process_CorpSmsB_See( REQ_CorpSmsB_See *  pSee );
	long Process_KHCard_Submit( REQ_KHCard_Submit * pSubmit );
	long Process_KHCard_Check( REQ_KHCard_Check* pCheck );
	long Process_GAddress_See2( REQ_GAddress_See2 * pSee );
	void IOCP_setSQL(IOCP_SQL_PTR pSql);
	void SetIndex(long lIndex);
	long Process_SqlConnect( REQ_SqlConnect* pConnect );
	long Process_Bill3( REQ_Bill3 * pBill  );
	long Process_CloseClient( REQ_CloseClient * pClose );
	BOOL IOCP_CopyVar();
	BOOL ConnectSQLServer();
	static DWORD WINAPI IOCP_Process(LPVOID lpParam);
	BOOL IOCP_GetFrameData( IOCP_IO_PTR io , Socket_Head SHead ,Cmpp_Head CmppHead, BYTE * pFrame , long lLen );
	void SetDlg( CSmsCenterDlg * pDlg );
	long Process_QueryLL(REQ_QueryLL * pQueryLL);
	long Process_Corp_See2(  REQ_Corp_See2 * pSee );
	long Process_CorpOFF( REQ_CorpOFF * pCorp );
	long Process_BBS_CMSH(  REQ_BBS_CMSH * pCMSH);
	long Process_YJ2(REQ_YJ2 *pYJ);
	long Process_YYSTab( REQ_YYSTab * pTab );
	long Process_QZSmsTD( REQ_QZSmsTD * pSet );
	long Process_QZSmsTD_See( REQ_QZSmsTD_See* pSee );
	BOOL Process_Update_See2( REQ_Update_See2 * pSee );
	long Process_AgentPay_See(REQ_AgentPay_See *pPay);
	long Process_AgentMmsPay_See(REQ_AgentMmsPay_See *pPay);
	BOOL Process_GetYWY2(REQ_GetYWY2 *pYWY);
	long Process_Update( REQ_Update* pUpdate );
	long Process_Update_See( REQ_Update_See * pSee );
	static BOOL isTDBD(const TCHAR *pMobile,CAdoRecordSet * pAdo,long lCorpID,long & lYYSType,TCHAR * pTD,TCHAR * pOutAll);
	static BOOL isMobileGD2(const TCHAR *pMobile,CAdoRecordSet * pAdo);
	static BOOL Other_SendMobile(long lType,long lCorpID, CString strMobile1, CString strMobile2, ANS_Other_AutoSend_Data send,CSmsCenterDlg * pSMSDlg,CAdoRecordSet *pAdoRS1,CAdoRecordSet *pAdoRS2,CAdoRecordSet *pAdoRS3);
	static BOOL Other_SendSetPasswd(long lType, long lCorpID, CString strLoginName, CString strMobile1, CSmsCenterDlg* pSMSDlg, CAdoRecordSet* pAdoRS1, CAdoRecordSet* pAdoRS2, CAdoRecordSet* pAdoRS3);
	static BOOL Other_SendAgentSetPasswd(long lType, long lAgentID, CString strLoginName, CString strPasswd, CString strMobile1, CSmsCenterDlg* pSMSDlg, CAdoRecordSet* pAdoRS1, CAdoRecordSet* pAdoRS2, CAdoRecordSet* pAdoRS3);
	long Process_QueryLog_See( REQ_QueryLog_See * pSee );
	long Process_Query_Add(REQ_Query_Add *pAdd);
	long Process_Query_Modify(REQ_Query_Modify *pModify);
	long Process_Query_Del(REQ_Query_Del *pDel);
	long Process_Query_See(REQ_Query_See *pSee);
	long Process_QueryFilt_Add(REQ_QueryFilt_Add *pAdd);
	long Process_QueryFilt_Modify(REQ_QueryFilt_Modify *pModify);
	long Process_QueryFilt_Del(REQ_QueryFilt_Del *pDel);
	long Process_QueryFilt_See(REQ_QueryFilt_See *pSee);
	static BOOL Other_SendBill(long lCorpID,CString strEmail1,CString strEmail2,ANS_Other_AutoSend_Data send,CAdoRecordSet *pAdoRS1,CAdoRecordSet *pAdoRS2,SYSTEMTIME tB,SYSTEMTIME tE);
	long Process_Corp_SendBillNow( REQ_Corp_SendBillNow * pBill );
	long Process_Corp_SendSmsNow( REQ_Corp_SendSmsNow * pSms );
	long Process_YWYName(REQ_YWY_Name *pYWY);
	long Process_MsgSetup3( REQ_MsgSetup3 * pSetup );
	long Process_MsgSetup3_See( REQ_MsgSetup3_See * pSee );
	long Process_Agent_See2( REQ_Agent_See2 * pSee );
	long Process_Agent_See3( REQ_Agent_See3 * pSee );
	long Process_JCB_See( REQ_JCB_See * pJCB );
	long Process_Pay_See( REQ_Pay_See * pPay );
	long Process_Send(REQ_Send *pSend);
	static long MobileNumType( const TCHAR * pNum );
	static BOOL isNumSup( const TCHAR * pNum );
	long Process_SMSDS_Del( REQ_SMSDS_Del * pDel );
	long Process_SMSDS_See( REQ_SMSDS_See * pSee );
	long Process_SMSDS_See2(REQ_SMSDS_See2 *pSee);
	static BOOL isMobileWhite(CAdoRecordSet * pAdo,const TCHAR *pMobile,long lCorpID);
	static BOOL isMobileGD( const TCHAR * pMobile,CAdoRecordSet * pAdo,long lCorpID=0 );
	long Process_OtherAutoSend( ANS_Other_AutoSend_Data * pAutoSend );
	long Process_OtherAutoSend_See( REQ_Other_AutoSend_See * pSee );
	long Process_OtherAutoSend2(REQ_Other_AutoSend2* pAutoSend);
	long Process_OtherAutoSend2_See(REQ_Other_AutoSend2_See* pSee);
	long Process_OtherOver( ANS_Other_Over_Data * pOver );
	long Process_OtherOver_See( REQ_Other_Over_See * pSee );
	long Process_Back_See( REQ_Back_See * pSee );
	long Process_Back_Del( REQ_Back_Del * pDel );
	long Process_Back_Add( REQ_Back_Add  * pAdd );
	long Process_Back( REQ_Back * pBack );
	long Process_White_Del( REQ_White_Del * pDel );
	long Process_White_Add( REQ_White_Add  * pAdd );
	long Process_White( REQ_White * pWhite );
	long Process_HZB( REQ_HZB * pHZB );
	long Process_GetGG2( REQ_GetGG * pGG );
	long Process_Bill2( REQ_Bill2 * pBill );
	long Process_DZ_Test( REQ_DZ_Test * pTest );
	long Process_DZ2_See( REQ_DZ2_See * pSee );
	long Process_Msg_See( REQ_Msg_See * pSee );
	long Process_CJLog_See( REQ_CJLog_See * pSee );
	long Process_BBS_Del( REQ_BBS_Del * pDel );
	long Process_BBS_Send( REQ_BBS_Send * pSend);
	long Process_SWT_Modify( REQ_SWT_Modify * pModify );
	long Process_BBS_See( REQ_BBS_See * pSee );
	long Process_SWT_See( REQ_SWT_See * pSee );
	long Process_YJ( REQ_YJ * pYJ );
	long Process_SWT( REQ_SWT * pSWT );
	long Process_FiltStep( REQ_FiltStep * pStep);
	long Process_KHCard_Pro( REQ_KHCard_Pro * pPro);
	long Process_EmailFilt_See( REQ_EmailFilt_See * pSee );
	static void AdjustToken();
	static BOOL Reboot();
	long Process_Reboot( REQ_Reboot * pReboot );
	long Process_SendSms( REQ_SendSms * pSms );
	long Process_MsgSetup2( REQ_MsgSetup2 * pSetup);
	long Process_MsgSetup2_See( REQ_MsgSetup2_See * pSee);
	long Process_CJCard_Agent( REQ_CJCard_Agent * pAgent);
	long Process_KHCard_Agent( REQ_KHCard_Agent * pAgent);
	long Process_CJCard( REQ_CJCard * pCJ);
	long Card_isNewUser(long & lSmsCount, long lCorpID , const TCHAR * pUserName,const TCHAR * pIP,CString & strReMsg);
	long Process_CJCard_See( REQ_CJCard_See * pSee);
	long Process_CJCard_Add( REQ_CJCard_Add * pAdd );
	long Process_KHCard_See( REQ_KHCard_See * pSee);
	long Process_KHCard_Add( REQ_KHCard_Add * pAdd );
	long Process_AgentName(REQ_Agent_Name *pAgent);
	long Process_Agent_MmsPayModify(REQ_Agent_MmsPayModify *pModify);
	long Process_Agent_MmsPay(REQ_Agent_MmsPay *pPay);
	long Process_Agent_PayModify(REQ_Agent_PayModify *pModify);
	long Process_Agent_Pay(REQ_Agent_Pay *pPay);
	long Process_Agent_Del(REQ_Agent_Del *pDel);
	long Process_Agent_Add(REQ_Agent_Add *pAdd);
	long Process_Agent_Modify(REQ_Agent_Modify *pModify);
	long Process_Agent_See(REQ_Agent_See *pSee);
	long Process_TSCmd_Del( REQ_TSCmd_Del * pDel );
	long Process_TSCmd_Modify( REQ_TSCmd_Modify * pModify );
	long Process_TSCmd_Add( REQ_TSCmd_Add * pAdd );
	long Process_TSCmd_See( REQ_TSCmd_See* pSee );
	long Process_DZ_Del( REQ_DZ_Del * pDel );
	long Process_DZ_Add( REQ_DZ_Add * pAdd );
	long Process_DZ_See( REQ_DZ_See * pSee );
	long Process_SP_Del( REQ_SP_Del * pDel );
	long Process_SP_Modify( REQ_SP_Modify * pModify );
	long Process_SP_Add( REQ_SP_Add * pAdd );
	long Process_SP_See( REQ_SP_See* pSee );
	long Process_FiltWarning( REQ_FiltWarning * pWarning );
	long Process_GetGG( REQ_GetGG * pGG );
	long Process_OtherGif( REQ_Other_Gif * pGif );
	long Process_OtherGif_See( REQ_Other_Gif_See * pSee );
	long Process_OtherText( REQ_Other_Text* pText );
	long Process_OtherText_See( REQ_Other_Text_See* pSee );
	long Process_ReportNum_Del( REQ_ReportNum_Del * pDel);
	long Process_ReportNum_Modify( REQ_ReportNum_Modify * pModify);
	long Process_ReportNum_Add( REQ_ReportNum_Add * pAdd);
	long Process_ReportNum( REQ_ReportNum_See * pSee);
	long Process_SmsLog( REQ_SmsLog * pSmsLog);
	long Process_Succeed( REQ_Succeed * pSucceed);
	long Process_SWTMobile_Del( REQ_SWTMobile_Del * pDel );
	long Process_SWTMobile_Modify( REQ_SWTMobile_Modify * pModify );
	long Process_SWTMobile_Add( REQ_SWTMobile_Add * pAdd );
	long Process_SWTMobile_See( REQ_SWTMobile_See * pSee );
	long Process_Calendar_Del( REQ_Calendar_Del * pDel );
	long Process_Calendar_Modify( REQ_Calendar_Modify * pModify );
	long Process_Calendar_Add( REQ_Calendar_Add * pAdd );
	long Process_Calendar_See( REQ_Calendar_See * pSee );
	long Process_Calendar_Modify2( REQ_Calendar_Modify2 * pModify );
	long Process_Calendar_Add2( REQ_Calendar_Add2 * pAdd );
	long Process_Calendar_See2( REQ_Calendar_See2 * pSee );
	long Process_EmailFilt_Del( REQ_EmailFilt_Del * pDel );
	long Process_EmailFilt_Modify( REQ_EmailFilt_Modify * pModify );
	long Process_EmailFilt_Add( REQ_EmailFilt_Add * pAdd );
	long Process_Email_Del( REQ_Email_Del * pDel );
	long Process_Email_Modify( REQ_Email_Modify * pModify );
	long Process_Email_Add( REQ_Email_Add * pAdd );
	long Process_Email_See( REQ_Email_See * pSee );
	long Process_DataBack(REQ_DataBack *pBack);
	long GetUserNumLen( TCHAR * pSMSNum );
	long Process_Recv( REQ_Recv* pRecv );
	long Process_Recv2(REQ_Recv2*pRecv);
	long Process_Bill( REQ_Bill * pBill );
	long Process_List( REQ_List * pList );
	long Process_Tab( REQ_Tab * pTab );
	long Process_CorpName( REQ_Corp_Name * pCorp );
	void Log_Login( long Type1,long Type2);
	void Log_LoginFail(long lCorpID, CString strLoginName, long Type, CString strErrType);
	long Process_Checkup( REQ_Checkup * pCheckup );
	long Process_Checkup_See( REQ_Checkup_See* pSee);
	long Process_SendStatus( REQ_SendStatus* pStatus );
	long Process_Send3( REQ_Send3 * pSend );
	long Process_Send2( REQ_Send2 * pSend );
	long Process_Send2_B(REQ_Send2 *pSend);
	long Process_Filt_SeeU( REQ_Filt_SeeU * pSee );
	long Process_Filt2_SeeU( REQ_Filt2_SeeU * pSee );
	long Process_Filt_Del( REQ_Filt_Del * pDel );
	long Process_Filt_Modify( REQ_Filt_Modify * pModify );
	long Process_Filt_Add( REQ_Filt_Add * pAdd );
	long Process_Filt_See( REQ_Filt_See* pSee );
	long Process_Filt2_Modify( REQ_Filt2_Modify * pModify );
	long Process_Filt2_Add( REQ_Filt2_Add * pAdd );
	long Process_Filt2_See( REQ_Filt2_See* pSee );
	long Process_MsgSetup_See( REQ_MsgSetup_See* pSee );
	long Process_MsgSetup( REQ_MsgSetup* pSetup );
	long Process_GAddress_Group_Move(REQ_GAddress_Group_Move *pMove);
	long Process_GAddress_User_Move( REQ_GAddress_User_Move * pMove );
	long Process_GAddress_Group_Del( REQ_GAddress_Group_Del * pDel );
	long Process_GAddress_Group_Modify( REQ_GAddress_Group_Modify * pModify );
	long Process_GAddress_Group_ModifyUsed(REQ_GAddress_Group_ModifyUsed* pModify);
	long Process_GAddress_Group_Add( REQ_GAddress_Group_Add* pAdd );
	long Process_GAddress_Del( REQ_GAddress_Del* pDel );
	long Process_GAddress_Add( REQ_GAddress_Add* pAdd );
	long Process_GAddress_Modify( REQ_GAddress_Modify* pModify);
	long Process_GAddress_See( REQ_GAddress_See* pSee );
	long Process_Corp_UserModify( REQ_Corp_UserModify* pModify);
	long Process_Corp_User( REQ_Corp_User* pUser );
	long Process_Corp_UserModify2(REQ_Corp_UserModify2* pModify);
	long Process_Corp_User2(REQ_Corp_User2* pUser);
	long Process_Passwd( REQ_Passwd * pPasswd);
	long Process_User_PayModify( REQ_User_PayModify * pModify );
	long Process_User_Pay( REQ_User_Pay* pPay);
	long Process_Corp_PayModify( REQ_Corp_PayModify * pModify );
	long Process_Corp_Pay( REQ_Corp_Pay* pPay);
	long Process_Corp_QXTSetup( REQ_Corp_QXTSetup * pQXT );
	long Process_Corp_LXRModify( REQ_Corp_LXRModify* pModify );
	long Process_Corp_LXR( REQ_Corp_LXR* pLXR );
	long Process_Corp_FP( REQ_Corp_FP* pFP );
	long Process_Corp_FPModify( REQ_Corp_FPModify* pModify );
	long Process_Corp_HLH( REQ_Corp_HLH* pHLH );
	long Process_Corp_Del( REQ_Corp_Del* pDel );
	long Process_Corp_Add( REQ_Corp_Add* pAdd );
	long Process_Corp_Modify( REQ_Corp_Modify* pModify );
	long Process_Corp_See( REQ_Corp_See* pSee );
	long Process_Manager_Del( REQ_Manager_Del* pDel);
	long Process_Manager_Add( REQ_Manager_Add * pAdd);
	long Process_Manager_Modify( REQ_Manager_Modify * pModify );
	BOOL GetUserInfo(Socket_Head * pHead);
	BOOL Process_GetManager(REQ_GetManager * pManager);
	long Process_YWY_Del( REQ_YWY_Del* pDel);
	long Process_YWY_Add( REQ_YWY_Add * pAdd);
	long Process_YWY_Modify( REQ_YWY_Modify * pModify );
	BOOL Process_GetYWY(REQ_GetYWY * pManager);

	long Process_YWYGroup_Del( REQ_YWYGroup_Del* pDel);
	long Process_YWYGroup_Add( REQ_YWYGroup_Add * pAdd);
	long Process_YWYGroup_Modify( REQ_YWYGroup_Modify * pModify );
	BOOL Process_GetYWYGroup(REQ_GetYWYGroup * pManager);
	long Process_YWYGroupName(REQ_YWYGroup_Name *pYWY);

	long Process_KFName(REQ_KF_Name *pKF);
	long Process_KF_Del( REQ_KF_Del* pDel);
	long Process_KF_Add( REQ_KF_Add * pAdd);
	long Process_KF_Modify( REQ_KF_Modify * pModify );
	BOOL Process_GetKF(REQ_GetKF * pManager);

	long Process_Partner_Del( REQ_Partner_Del* pDel);
	long Process_Partner_Add( REQ_Partner_Add * pAdd);
	long Process_Partner_Modify( REQ_Partner_Modify * pModify );
	BOOL Process_GetPartner(REQ_GetPartner * pManager);
	long Process_PartnerName(REQ_Partner_Name *pPartner);

	long Process_TDSet_See(REQ_TDSet_See * pTD);
	long Process_TDSet_Get(REQ_TDSet_Get * pTD);
	long Process_TDSet_Del(REQ_TDSet_Del *pDel);
	long Process_TDSet_Ins(REQ_TDSet_Ins *pAdd);
	long Process_TDSet_Modify(REQ_TDSet_Modify *pModify);
	long Process_Commend_Del( REQ_Commend_Del* pDel);
	long Process_Commend_Add( REQ_Commend_Add * pAdd);
	long Process_Commend_Modify( REQ_Commend_Modify * pModify );
	long Process_Commend_Status( REQ_Commend_Status * pStatus );
	BOOL Process_GetCommend(REQ_GetCommend * pCommend);
	BOOL Process_GetCommend_LP(REQ_GetCommend_LP * pCommend);
	long Process_Commend_GetMy(REQ_Commend_GetMy * pCommend);
	long Process_Commend_GetVipInt(REQ_Commend_GetVipInt * pCommend);
	long Process_GetHD(REQ_GetHD * pHD);
	long Process_FaxNum_Get(REQ_FaxNum_Get * pGet );
	long Process_FaxNum_Set(REQ_FaxNum_Set * pSet );
	long Process_FaxSend(REQ_FaxSend * pSend );
	long Process_FaxSend_ID(REQ_FaxSend_ID * pID );
	long Process_FaxSend_Up(REQ_FaxSend_Up * pPu );
	long Process_FaxStatus(REQ_FaxStatus * pStatus );
	long Process_MmsSend(REQ_MmsSend * pSend );
	long Process_MmsSend_ID(REQ_MmsSend_ID * pID );
	long Process_MmsSend_Up(REQ_MmsSend_Up * pPu );
	long Process_MmsStatus(REQ_MmsStatus * pStatus );
	long Process_MmsDS_Del(REQ_MmsDS_Del *pDel);
	long Process_MmsDS_See(REQ_MmsDS_See *pSee);
	long Process_TD2_Bill(REQ_TD2Bill * pBill );
	long Process_TD2_Name(REQ_TD2Name * pTD2 );
	long Process_TD2_Del( REQ_TD2_Del* pDel);
	long Process_TD2_Add( REQ_TD2_Add * pAdd);
	long Process_TD2_Modify( REQ_TD2_Modify * pModify );
	BOOL Process_GetTD2(REQ_GetTD2 * pManager);

	long Process_TransCode_Del( REQ_TransCode_Del* pDel);
	long Process_TransCode_Add( REQ_TransCode_Add * pAdd);
	long Process_TransCode_Modify( REQ_TransCode_Modify * pModify );
	BOOL Process_GetTransCode(REQ_GetTransCode * pManager);

	long Process_NoSendTime_Del( REQ_NoSendTime_Del* pDel);
	long Process_NoSendTime_Add( REQ_NoSendTime_Add * pAdd);
	long Process_NoSendTime_Modify( REQ_NoSendTime_Modify * pModify );
	BOOL Process_GetNoSendTime(REQ_GetNoSendTime * pManager);

	long Process_UBox_Record_Up(REQ_UBox_Record_Up * pUp);
	long Process_UBox_Record_Down(REQ_UBox_Record_Down * pDown);
	long Process_UBox_GetUrl(REQ_UBox_GetUrl * pGetUrl);
	long Process_UBox_GetPro(REQ_UBox_GetPro * pGetPro);
	long Process_UBox_Upload(REQ_UBox_UpLoad * pUpload );
	long Process_UBox_GetLog(REQ_UBox_GetLog * pGetLog);
	long Process_UBox_GetType(long lFuncID,REQ_UBox_GetType * pGetType);
	long Process_UBox_Upload2(REQ_UBox_UpLoad2 * pUpload );
	long Process_UBox_LogDel(REQ_UBox_LogDel * pDel );
	long Process_UBox_GetLog2(REQ_UBox_GetLog2 * pDel );
	long Process_UBox_Type_Upload(REQ_UBox_Type_Upload * pDel );

	long Process_AllQuery_Client_See(REQ_AllQuery_Client_See* pSee);

	long Process_AllQuery_Report_See(REQ_AllQuery_Report_See* pSee);
	long Process_AllQuery_Report_Get(REQ_AllQuery_Report_Get* pGet);
	long Process_Pay_Oper_Add(REQ_Pay_Oper_Add* pAdd);

	long Process_Test( REQ_Test * pTest);
	long Process_GetInfo(REQ_GetInfo * pInfo);
	long Process_QqtPro( REQ_QqtPro * pQqt );
	long Process_SOS( REQ_Sos * pSos );
	long Process_WxWork_See(REQ_WxWork_See * pSee);
	long Process_WxWork_Setup(REQ_WxWork_Setup * pSetup);
	long SendFrame(DWORD lFuncType, unsigned char *pFrame, unsigned long lFrameLen);
	long Process_Login( REQ_Login * pLogin);
	UINT Cmpp_ProcessReq(BYTE * pFrame);
	UINT ProcessReq(BYTE * pFrame);
	UINT ProcessReq_Ex(unsigned int lFuncType,Socket_Head_Add * pAdd );
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CProcessSocket)
	public:
	//}}AFX_VIRTUAL

	// Generated message map functions
	//{{AFX_MSG(CProcessSocket)
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_MSG

// Implementation
protected:
};

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

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_PROCESSSOCKET_H__84178275_E1E4_49EE_921C_CB998897C109__INCLUDED_)