//Message handlers
#define WM_BASE WM_USER
#define WM_SOCKET_GENERAL WM_BASE+1
#define WM_SOCKET_ACCEPT WM_BASE+2
#define WM_SOCKET_CONNECT WM_BASE+3
#define WM_SOCKET_TIMEOUT WM_BASE+4
#define WM_SOCKET_DELETE WM_BASE+5
#define WM_SOCKET_FORCED WM_BASE+6
//Definitions for no messaging
#define NO_OnSocketTimeout virtual BOOL OnSocketTimeout() {return TRUE;}
#define NO_OnSocketConnect virtual BOOL OnSocketConnect(int iErrorCode) {return TRUE;}
#define NO_OnSocketAccept virtual BOOL OnSocketAccept(int iErrorCode) {return TRUE;}
#define NO_OnSocketClose virtual BOOL OnSocketClose(int iErrorCode) {return TRUE;}
#define NO_OnSocketOOB virtual BOOL OnSocketOOB(int iErrorCode) {return TRUE;}
#define NO_OnSocketWrite virtual BOOL OnSocketWrite(int iErrorCode) {return TRUE;}
#define NO_OnSocketReceive virtual BOOL OnSocketReceive(int iErrorCode) {return TRUE;}
//Window class name
#define CAsyncSocket_Class "CAsyncSocketClass"
#define CAsyncShutdown_Class "CAsyncShutdown"
KOMODIA_NAMESPACE_START
class CGenericCriticalSection;