#if !defined(AFX_DATASOCKET_H__38ADA982_DD96_4607_B7D2_982011F162FE__INCLUDED_) #define AFX_DATASOCKET_H__38ADA982_DD96_4607_B7D2_982011F162FE__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class CConnectSocket; #define XFERMODE_IDLE 0 #define XFERMODE_LIST 1 #define XFERMODE_SEND 2 #define XFERMODE_RECEIVE 3 #define XFERMODE_ERROR 4 class CDataSocket : public CAsyncSocket { public: CDataSocket(CConnectSocket *pSocket, int nTransferType = 0); virtual ~CDataSocket(); public: void SetRestartOffset(DWORD dwOffset); void SetTransferType(int nType, BOOL bWaitForAccept = FALSE); void SetData(LPCTSTR lpszData); CFile m_File; int GetStatus(); //{{AFX_VIRTUAL(CDataSocket) public: virtual void OnSend(int nErrorCode); virtual void OnConnect(int nErrorCode); virtual void OnClose(int nErrorCode); virtual void OnReceive(int nErrorCode); virtual void OnAccept(int nErrorCode); //}}AFX_VIRTUAL //{{AFX_MSG(CDataSocket) //}}AFX_MSG protected: DWORD m_dwRestartOffset; BOOL m_bConnected; BOOL m_bInitialized; int Receive(); BOOL PrepareReceiveFile(LPCTSTR lpszFilename); BOOL PrepareSendFile(LPCTSTR lpszFilename); DWORD m_nTotalBytesTransfered; DWORD m_nTotalBytesReceive; DWORD m_nTotalBytesSend; int m_nTransferType; CString m_strData; int m_nStatus; CConnectSocket *m_pConnectSocket; }; //{{AFX_INSERT_LOCATION}} #endif // AFX_DATASOCKET_H__38ADA982_DD96_4607_B7D2_982011F162FE__INCLUDED_