www.pudn.com > 组态软件的通信.rar > XSockClientCtl.h


#if !defined(AFX_XSOCKCLIENTCTL_H__2328F2A2_DD85_11D3_B4AF_00C04F2B300E__INCLUDED_) 
#define AFX_XSOCKCLIENTCTL_H__2328F2A2_DD85_11D3_B4AF_00C04F2B300E__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#include "ConnectS.h" 
 
 
// XSockClientCtl.h : Declaration of the CXSockClientCtrl ActiveX Control class. 
 
///////////////////////////////////////////////////////////////////////////// 
// CXSockClientCtrl : See XSockClientCtl.cpp for implementation. 
 
class CXSockClientCtrl : public COleControl 
{ 
	DECLARE_DYNCREATE(CXSockClientCtrl) 
 
	friend class CConnectS; 
// Constructor 
public: 
	CXSockClientCtrl(); 
 
// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CXSockClientCtrl) 
	public: 
	virtual void OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid); 
	virtual void DoPropExchange(CPropExchange* pPX); 
	virtual void OnResetState(); 
	//}}AFX_VIRTUAL 
 
// Implementation 
protected: 
	~CXSockClientCtrl(); 
 
	DECLARE_OLECREATE_EX(CXSockClientCtrl)    // Class factory and guid 
	DECLARE_OLETYPELIB(CXSockClientCtrl)      // GetTypeInfo 
	DECLARE_PROPPAGEIDS(CXSockClientCtrl)     // Property page IDs 
	DECLARE_OLECTLTYPE(CXSockClientCtrl)		// Type name and misc status 
 
// Message maps 
	//{{AFX_MSG(CXSockClientCtrl) 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
 
// Dispatch maps 
	//{{AFX_DISPATCH(CXSockClientCtrl) 
	afx_msg BSTR GetLocalAddress(); 
	afx_msg void SetLocalAddress(LPCTSTR lpszNewValue); 
	afx_msg long GetLocalPort(); 
	afx_msg void SetLocalPort(long nNewValue); 
	afx_msg long GetReceiveBufferCount(); 
	afx_msg void SetReceiveBufferCount(long nNewValue); 
	afx_msg BOOL GetNullTerminate(); 
	afx_msg void SetNullTerminate(BOOL bNewValue); 
	afx_msg BOOL Connect(LPCTSTR lpRemoteAddress, long nRemotePort); 
	afx_msg BOOL Send(LPCTSTR lpData, long nDataLen); 
	afx_msg void Close(); 
	//}}AFX_DISPATCH 
	DECLARE_DISPATCH_MAP() 
 
	afx_msg void AboutBox(); 
 
// Event maps 
	//{{AFX_EVENT(CXSockClientCtrl) 
	void FireOnConnect() 
		{FireEvent(eventidOnConnect,EVENT_PARAM(VTS_NONE));} 
	void FireOnClose() 
		{FireEvent(eventidOnClose,EVENT_PARAM(VTS_NONE));} 
	void FireOnSend() 
		{FireEvent(eventidOnSend,EVENT_PARAM(VTS_NONE));} 
	void FireOnError(LPCTSTR lpErrorDescription) 
		{FireEvent(eventidOnError,EVENT_PARAM(VTS_BSTR), lpErrorDescription);} 
	void FireOnReceive(LPCTSTR lpData, long nDataLen) 
		{FireEvent(eventidOnReceive,EVENT_PARAM(VTS_BSTR  VTS_I4), lpData, nDataLen);} 
	//}}AFX_EVENT 
	DECLARE_EVENT_MAP() 
 
// Dispatch and event IDs 
public: 
	enum { 
	//{{AFX_DISP_ID(CXSockClientCtrl) 
	dispidLocalAddress = 1L, 
	dispidLocalPort = 2L, 
	dispidReceiveBufferCount = 3L, 
	dispidNullTerminate = 4L, 
	dispidConnect = 5L, 
	dispidSend = 6L, 
	dispidClose = 7L, 
	eventidOnConnect = 1L, 
	eventidOnClose = 2L, 
	eventidOnSend = 3L, 
	eventidOnError = 4L, 
	eventidOnReceive = 5L, 
	//}}AFX_DISP_ID 
	}; 
 
protected: 
	CConnectS m_ConnectS; 
	BOOL SocketError(); 
	void SocketError(int nErrorCode); 
 
	BOOL m_bConnect, m_bNullTerminate; 
	char* m_lpBuff; 
	long m_nBuffLen; 
 
	CString m_RemoteAddress,m_LocalAddress; 
	long m_RemotePort,m_LocalPort; 
	CBitmap m_bitmap; 
}; 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_XSOCKCLIENTCTL_H__2328F2A2_DD85_11D3_B4AF_00C04F2B300E__INCLUDED)