www.pudn.com > XYNetSocket.zip > ClientObj.h
// ClientObj.h : Declaration of the CClientObj #ifndef __CLIENTOBJ_H_ #define __CLIENTOBJ_H_ #include "resource.h" // main symbols ///////////////////////////////////////////////////////////////////////////// // CClientObj class ATL_NO_VTABLE CClientObj : public CComObjectRootEx, public CComCoClass , public IDispatchImpl { friend void WorkerProc(void* pParam); BOOL m_bReconnect; long m_nReadTimeout; long m_nMaxDataSize; long m_nSize; BOOL m_bIsBinary; BYTE* m_pData; BSTR m_sError; long m_nErrorCode; BSTR m_sRemoteAddress; long m_nRemotePort; SOCKET m_socket; BOOL SendRawData(BYTE *pData, long nSize); public: CClientObj() { m_bReconnect = TRUE; m_nReadTimeout = 30; m_nMaxDataSize = 4*1024*1024; m_pData = NULL; m_nSize = 0; m_bIsBinary = FALSE; m_sError = NULL; m_nErrorCode = 0; m_sRemoteAddress = NULL; m_nRemotePort = 0; m_socket = INVALID_SOCKET; } ~CClientObj() { Reset(); if(m_sRemoteAddress!=NULL) ::SysFreeString(m_sRemoteAddress); if(m_sError!=NULL) ::SysFreeString(m_sError); if(m_pData!=NULL) delete []m_pData; } DECLARE_REGISTRY_RESOURCEID(IDR_CLIENTOBJ) DECLARE_PROTECT_FINAL_CONSTRUCT() BEGIN_COM_MAP(CClientObj) COM_INTERFACE_ENTRY(IClientObj) COM_INTERFACE_ENTRY(IDispatch) END_COM_MAP() // IClientObj public: STDMETHOD(SetMaxDataSize)(/*[in]*/ long nMaxDataSize); STDMETHOD(SetReadTimeout)(/*[in]*/ long nReadTimeout); STDMETHOD(GetLastErrorCode)(/*[out, retval]*/ long* pOutput); STDMETHOD(GetBinaryData)(/*[out]*/ long* pSize, /*[out, retval]*/ long* pData); STDMETHOD(GetStringData)(/*[out, retval]*/ BSTR* pOutput); STDMETHOD(GetLastError)(/*[out, retval]*/ BSTR* pOutput); STDMETHOD(ReceiveData)(/*[out]*/ long* pSize, /*[out]*/ BOOL* pIsBinary, /*[out, retval]*/ BOOL* pOutput); STDMETHOD(SendStringData)(/*[in]*/ BSTR sData, /*[out, retval]*/ BOOL* pOutput); STDMETHOD(SendBinaryData)(/*[in]*/ BYTE* pData, /*[in]*/ long nSize, /*[out, retval]*/ BOOL* pOutput); STDMETHOD(Reset)(); STDMETHOD(Connect)(/*[in]*/ BSTR sRemoteAddress, /*[in]*/ long nRemotePort, /*[out, reval]*/ BOOL* pOutput); }; #endif //__CLIENTOBJ_H_