#if !defined(AFX_PROCESSSOCKET_H__DA328461_864B_4C42_9F2C_024819E95360__INCLUDED_) #define AFX_PROCESSSOCKET_H__DA328461_864B_4C42_9F2C_024819E95360__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // processsocket.h : header file // #include "..\public\ProxySocket\AsyncProxySocket.h" #ifdef _M_X64 #include "..\public\lzo_64\lzo.h" #else #include "..\public\lzo\lzo.h" #endif ///////////////////////////////////////////////////////////////////////////// // CProcessSocket command target #define PROCESSSOCKET_ERROR WM_USER + 200 //socket的错误通知 #define PROCESSSOCKET_FRAME WM_USER + 201 //socket收到帧的通知 #define PROCESSSOCKET_ERROR_CONNECT 1 //socket连接错误 #define PROCESSSOCKET_ERROR_PROXY 2 //socket代理错误 typedef CTypedPtrList CFrameList; class CProcessSocket : public CAsyncProxySocket { protected: SM_Setup m_Setup; CWnd * m_pWnd; //通知消息的Wnd BOOL m_bSend; //是否已可以登录 BOOL m_bConnect;//是否已连接 CLzo lzo; CFrameList m_Frame; ULONG m_lID; long m_lUserID; unsigned char m_ucUserType; unsigned long m_ulVer; Socket_Head m_RecvHead; //用于接收Head ULONG m_lRecvHead; //已收到的Head字节数 BOOL m_bRecvFrame; //是否正在收Frame; ULONG m_lRecvFrame; //已收到的Frame字节数 BYTE * m_pRecvFrame; //收到的Frame //超透网关用到 HINTERNET m_hInternet; HINTERNET m_hConnection; int m_lCompress; HANDLE m_hHttp; // Attributes public: // Operations public: CProcessSocket(); virtual ~CProcessSocket(); // Overrides public: void SetCompressType(int lCompressType); static int CharHex(TCHAR ch); static void HexToAscii( char *pszOrgRandom , char *pszDesRandom ); static void AsciiToHex( char *pszOrgRandom , char *pszDesRandom , long lLen); static DWORD WINAPI Http_Socket( LPVOID lParam ); void SetUserID(long lUserID); void NotifyMainWnd( UINT nMsg , WPARAM wParam , LPARAM lParam ); BOOL SendFrame( unsigned char lFuncType , unsigned char * pFrame , unsigned long lFrameLen ); BOOL SendFrameEx( DWORD lFuncType , unsigned char * pFrame , unsigned long lFrameLen ); void Close(); BOOL ConnectToServer( SM_Setup setup,BOOL bReConnect=false); void SetParent( CWnd * pWnd ); void SetUserType(unsigned char ucUserType); void SetVer(unsigned long ulVer); // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CProcessSocket) public: virtual void OnConnect(int nErrorCode); virtual void OnSend(int nErrorCode); virtual void OnClose(int nErrorCode); virtual void OnReceive(int nErrorCode); virtual void OnProxyOperationFailed(int nOpID); virtual void OnListenFinished(unsigned long &retProxyIp,int &retProxyPort); virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0); //}}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__DA328461_864B_4C42_9F2C_024819E95360__INCLUDED_)