]> git.saurik.com Git - wxWidgets.git/commitdiff
rename gsockmsw files to sockmsw
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 25 Dec 2008 18:41:13 +0000 (18:41 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 25 Dec 2008 18:41:13 +0000 (18:41 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57549 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

14 files changed:
Makefile.in
build/bakefiles/files.bkl
build/msw/makefile.bcc
build/msw/makefile.gcc
build/msw/makefile.vc
build/msw/makefile.wat
build/msw/wx_net.dsp
build/msw/wx_vc7_net.vcproj
build/msw/wx_vc8_net.vcproj
build/msw/wx_vc9_net.vcproj
include/wx/msw/gsockmsw.h [deleted file]
include/wx/msw/private/sockmsw.h [new file with mode: 0644]
src/msw/gsockmsw.cpp [deleted file]
src/msw/sockmsw.cpp [new file with mode: 0644]

index a8aafa287af4b77ce5ab7455802ae7c99ad0a244..2a059954abfffc1c31288fc38048a5f1ee5cd820 100644 (file)
@@ -807,7 +807,7 @@ ALL_BASE_SOURCES =  \
        src/unix/sockunix.cpp \
        src/osx/core/sockosx.cpp \
        src/msw/gsocket.cpp \
-       src/msw/gsockmsw.cpp \
+       src/msw/sockmsw.cpp \
        src/msw/urlmsw.cpp \
        $(NET_WINCE_SRC) \
        src/xml/xml.cpp \
@@ -4046,7 +4046,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS =  \
 @COND_PLATFORM_UNIX_1@ monodll_socketiohandler.o monodll_sockunix.o
 COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS =  \
        monodll_gsocket.o \
-       monodll_gsockmsw.o \
+       monodll_sockmsw.o \
        monodll_urlmsw.o \
        $(__NET_WINCE_SRC_OBJECTS)
 @COND_PLATFORM_WIN32_1@__NET_PLATFORM_SRC_OBJECTS = $(COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS)
@@ -5868,7 +5868,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_1 =  \
 @COND_PLATFORM_UNIX_1@ monolib_socketiohandler.o monolib_sockunix.o
 COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_1 =  \
        monolib_gsocket.o \
-       monolib_gsockmsw.o \
+       monolib_sockmsw.o \
        monolib_urlmsw.o \
        $(__NET_WINCE_SRC_OBJECTS_1)
 @COND_PLATFORM_WIN32_1@__NET_PLATFORM_SRC_OBJECTS_1 = $(COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_1)
@@ -7871,7 +7871,7 @@ COND_USE_SOSYMLINKS_1___netdll___so_symlinks_uninst_cmd = rm -f \
 @COND_PLATFORM_UNIX_1@ netdll_socketiohandler.o netdll_sockunix.o
 COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_2 =  \
        netdll_gsocket.o \
-       netdll_gsockmsw.o \
+       netdll_sockmsw.o \
        netdll_urlmsw.o \
        $(__NET_WINCE_SRC_OBJECTS_2)
 @COND_PLATFORM_WIN32_1@__NET_PLATFORM_SRC_OBJECTS_2 = $(COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_2)
@@ -7894,7 +7894,7 @@ COND_MONOLITHIC_0_SHARED_0___netlib___depname = \
 @COND_PLATFORM_UNIX_1@ netlib_socketiohandler.o netlib_sockunix.o
 COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_3 =  \
        netlib_gsocket.o \
-       netlib_gsockmsw.o \
+       netlib_sockmsw.o \
        netlib_urlmsw.o \
        $(__NET_WINCE_SRC_OBJECTS_3)
 @COND_PLATFORM_WIN32_1@__NET_PLATFORM_SRC_OBJECTS_3 = $(COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_3)
@@ -14552,8 +14552,8 @@ monodll_url.o: $(srcdir)/src/common/url.cpp $(MONODLL_ODEP)
 monodll_gsocket.o: $(srcdir)/src/msw/gsocket.cpp $(MONODLL_ODEP)
        $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/gsocket.cpp
 
-monodll_gsockmsw.o: $(srcdir)/src/msw/gsockmsw.cpp $(MONODLL_ODEP)
-       $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/gsockmsw.cpp
+monodll_sockmsw.o: $(srcdir)/src/msw/sockmsw.cpp $(MONODLL_ODEP)
+       $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/sockmsw.cpp
 
 monodll_urlmsw.o: $(srcdir)/src/msw/urlmsw.cpp $(MONODLL_ODEP)
        $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/urlmsw.cpp
@@ -19250,8 +19250,8 @@ monolib_url.o: $(srcdir)/src/common/url.cpp $(MONOLIB_ODEP)
 monolib_gsocket.o: $(srcdir)/src/msw/gsocket.cpp $(MONOLIB_ODEP)
        $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/gsocket.cpp
 
-monolib_gsockmsw.o: $(srcdir)/src/msw/gsockmsw.cpp $(MONOLIB_ODEP)
-       $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/gsockmsw.cpp
+monolib_sockmsw.o: $(srcdir)/src/msw/sockmsw.cpp $(MONOLIB_ODEP)
+       $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/sockmsw.cpp
 
 monolib_urlmsw.o: $(srcdir)/src/msw/urlmsw.cpp $(MONOLIB_ODEP)
        $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/urlmsw.cpp
@@ -24500,8 +24500,8 @@ netdll_url.o: $(srcdir)/src/common/url.cpp $(NETDLL_ODEP)
 netdll_gsocket.o: $(srcdir)/src/msw/gsocket.cpp $(NETDLL_ODEP)
        $(CXXC) -c -o $@ $(NETDLL_CXXFLAGS) $(srcdir)/src/msw/gsocket.cpp
 
-netdll_gsockmsw.o: $(srcdir)/src/msw/gsockmsw.cpp $(NETDLL_ODEP)
-       $(CXXC) -c -o $@ $(NETDLL_CXXFLAGS) $(srcdir)/src/msw/gsockmsw.cpp
+netdll_sockmsw.o: $(srcdir)/src/msw/sockmsw.cpp $(NETDLL_ODEP)
+       $(CXXC) -c -o $@ $(NETDLL_CXXFLAGS) $(srcdir)/src/msw/sockmsw.cpp
 
 netdll_urlmsw.o: $(srcdir)/src/msw/urlmsw.cpp $(NETDLL_ODEP)
        $(CXXC) -c -o $@ $(NETDLL_CXXFLAGS) $(srcdir)/src/msw/urlmsw.cpp
@@ -24560,8 +24560,8 @@ netlib_url.o: $(srcdir)/src/common/url.cpp $(NETLIB_ODEP)
 netlib_gsocket.o: $(srcdir)/src/msw/gsocket.cpp $(NETLIB_ODEP)
        $(CXXC) -c -o $@ $(NETLIB_CXXFLAGS) $(srcdir)/src/msw/gsocket.cpp
 
-netlib_gsockmsw.o: $(srcdir)/src/msw/gsockmsw.cpp $(NETLIB_ODEP)
-       $(CXXC) -c -o $@ $(NETLIB_CXXFLAGS) $(srcdir)/src/msw/gsockmsw.cpp
+netlib_sockmsw.o: $(srcdir)/src/msw/sockmsw.cpp $(NETLIB_ODEP)
+       $(CXXC) -c -o $@ $(NETLIB_CXXFLAGS) $(srcdir)/src/msw/sockmsw.cpp
 
 netlib_urlmsw.o: $(srcdir)/src/msw/urlmsw.cpp $(NETLIB_ODEP)
        $(CXXC) -c -o $@ $(NETLIB_CXXFLAGS) $(srcdir)/src/msw/urlmsw.cpp
index 99bc346a9915abd8558a0967a6ea05741ef2aa07..0523381741e75ad31994b074529f3f4bd724524d 100644 (file)
@@ -543,11 +543,11 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
 
 <set var="NET_WIN32_SRC" hints="files">
     src/msw/gsocket.cpp
-    src/msw/gsockmsw.cpp
+    src/msw/sockmsw.cpp
     src/msw/urlmsw.cpp
 </set>
 <set var="NET_WIN32_HDR" hints="files">
-    wx/msw/gsockmsw.h
+    wx/msw/private/sockmsw.h
 </set>
 
 <set var="NET_WINCE_SRC" hints="files">
index dab153b0147d2354cbcd7f2569d2b8ac6163fb30..882962fec8cacfdb12cf5def043be102465e4fa5 100644 (file)
@@ -420,7 +420,7 @@ MONODLL_OBJECTS =  \
        $(OBJS)\monodll_socket.obj \
        $(OBJS)\monodll_url.obj \
        $(OBJS)\monodll_gsocket.obj \
-       $(OBJS)\monodll_gsockmsw.obj \
+       $(OBJS)\monodll_sockmsw.obj \
        $(OBJS)\monodll_urlmsw.obj \
        $(____MONOLIB_GUI_SRC_FILENAMES_OBJECTS) \
        $(OBJS)\monodll_xml.obj \
@@ -559,7 +559,7 @@ MONOLIB_OBJECTS =  \
        $(OBJS)\monolib_socket.obj \
        $(OBJS)\monolib_url.obj \
        $(OBJS)\monolib_gsocket.obj \
-       $(OBJS)\monolib_gsockmsw.obj \
+       $(OBJS)\monolib_sockmsw.obj \
        $(OBJS)\monolib_urlmsw.obj \
        $(____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS) \
        $(OBJS)\monolib_xml.obj \
@@ -825,7 +825,7 @@ NETDLL_OBJECTS =  \
        $(OBJS)\netdll_socket.obj \
        $(OBJS)\netdll_url.obj \
        $(OBJS)\netdll_gsocket.obj \
-       $(OBJS)\netdll_gsockmsw.obj \
+       $(OBJS)\netdll_sockmsw.obj \
        $(OBJS)\netdll_urlmsw.obj
 NETLIB_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
        $(__OPTIMIZEFLAG) $(__THREADSFLAG) -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
@@ -848,7 +848,7 @@ NETLIB_OBJECTS =  \
        $(OBJS)\netlib_socket.obj \
        $(OBJS)\netlib_url.obj \
        $(OBJS)\netlib_gsocket.obj \
-       $(OBJS)\netlib_gsockmsw.obj \
+       $(OBJS)\netlib_sockmsw.obj \
        $(OBJS)\netlib_urlmsw.obj
 COREDLL_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
        $(__OPTIMIZEFLAG) $(__THREADSFLAG) -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
@@ -5720,8 +5720,8 @@ $(OBJS)\monodll_url.obj: ..\..\src\common\url.cpp
 $(OBJS)\monodll_gsocket.obj: ..\..\src\msw\gsocket.cpp
        $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\gsocket.cpp
 
-$(OBJS)\monodll_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp
-       $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp
+$(OBJS)\monodll_sockmsw.obj: ..\..\src\msw\sockmsw.cpp
+       $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\sockmsw.cpp
 
 $(OBJS)\monodll_urlmsw.obj: ..\..\src\msw\urlmsw.cpp
        $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\urlmsw.cpp
@@ -7934,8 +7934,8 @@ $(OBJS)\monolib_url.obj: ..\..\src\common\url.cpp
 $(OBJS)\monolib_gsocket.obj: ..\..\src\msw\gsocket.cpp
        $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\gsocket.cpp
 
-$(OBJS)\monolib_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp
-       $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp
+$(OBJS)\monolib_sockmsw.obj: ..\..\src\msw\sockmsw.cpp
+       $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\sockmsw.cpp
 
 $(OBJS)\monolib_urlmsw.obj: ..\..\src\msw\urlmsw.cpp
        $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\urlmsw.cpp
@@ -10463,8 +10463,8 @@ $(OBJS)\netdll_url.obj: ..\..\src\common\url.cpp
 $(OBJS)\netdll_gsocket.obj: ..\..\src\msw\gsocket.cpp
        $(CXX) -q -c -P -o$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\gsocket.cpp
 
-$(OBJS)\netdll_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp
-       $(CXX) -q -c -P -o$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp
+$(OBJS)\netdll_sockmsw.obj: ..\..\src\msw\sockmsw.cpp
+       $(CXX) -q -c -P -o$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\sockmsw.cpp
 
 $(OBJS)\netdll_urlmsw.obj: ..\..\src\msw\urlmsw.cpp
        $(CXX) -q -c -P -o$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\urlmsw.cpp
@@ -10505,8 +10505,8 @@ $(OBJS)\netlib_url.obj: ..\..\src\common\url.cpp
 $(OBJS)\netlib_gsocket.obj: ..\..\src\msw\gsocket.cpp
        $(CXX) -q -c -P -o$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\gsocket.cpp
 
-$(OBJS)\netlib_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp
-       $(CXX) -q -c -P -o$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp
+$(OBJS)\netlib_sockmsw.obj: ..\..\src\msw\sockmsw.cpp
+       $(CXX) -q -c -P -o$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\sockmsw.cpp
 
 $(OBJS)\netlib_urlmsw.obj: ..\..\src\msw\urlmsw.cpp
        $(CXX) -q -c -P -o$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\urlmsw.cpp
index e0c7300937b98e018f855211dae81719a76a1bbe..4794378412d67e90f36a4f811ef10135f56213fb 100644 (file)
@@ -406,7 +406,7 @@ MONODLL_OBJECTS =  \
        $(OBJS)\monodll_socket.o \
        $(OBJS)\monodll_url.o \
        $(OBJS)\monodll_gsocket.o \
-       $(OBJS)\monodll_gsockmsw.o \
+       $(OBJS)\monodll_sockmsw.o \
        $(OBJS)\monodll_urlmsw.o \
        $(____MONOLIB_GUI_SRC_FILENAMES_OBJECTS) \
        $(OBJS)\monodll_xml.o \
@@ -546,7 +546,7 @@ MONOLIB_OBJECTS =  \
        $(OBJS)\monolib_socket.o \
        $(OBJS)\monolib_url.o \
        $(OBJS)\monolib_gsocket.o \
-       $(OBJS)\monolib_gsockmsw.o \
+       $(OBJS)\monolib_sockmsw.o \
        $(OBJS)\monolib_urlmsw.o \
        $(____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS) \
        $(OBJS)\monolib_xml.o \
@@ -816,7 +816,7 @@ NETDLL_OBJECTS =  \
        $(OBJS)\netdll_socket.o \
        $(OBJS)\netdll_url.o \
        $(OBJS)\netdll_gsocket.o \
-       $(OBJS)\netdll_gsockmsw.o \
+       $(OBJS)\netdll_sockmsw.o \
        $(OBJS)\netdll_urlmsw.o
 NETLIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) $(GCCFLAGS) \
        -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) \
@@ -839,7 +839,7 @@ NETLIB_OBJECTS =  \
        $(OBJS)\netlib_socket.o \
        $(OBJS)\netlib_url.o \
        $(OBJS)\netlib_gsocket.o \
-       $(OBJS)\netlib_gsockmsw.o \
+       $(OBJS)\netlib_sockmsw.o \
        $(OBJS)\netlib_urlmsw.o
 COREDLL_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
        $(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
@@ -5872,7 +5872,7 @@ $(OBJS)\monodll_url.o: ../../src/common/url.cpp
 $(OBJS)\monodll_gsocket.o: ../../src/msw/gsocket.cpp
        $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
 
-$(OBJS)\monodll_gsockmsw.o: ../../src/msw/gsockmsw.cpp
+$(OBJS)\monodll_sockmsw.o: ../../src/msw/sockmsw.cpp
        $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
 
 $(OBJS)\monodll_urlmsw.o: ../../src/msw/urlmsw.cpp
@@ -8200,7 +8200,7 @@ $(OBJS)\monolib_url.o: ../../src/common/url.cpp
 $(OBJS)\monolib_gsocket.o: ../../src/msw/gsocket.cpp
        $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
 
-$(OBJS)\monolib_gsockmsw.o: ../../src/msw/gsockmsw.cpp
+$(OBJS)\monolib_sockmsw.o: ../../src/msw/sockmsw.cpp
        $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
 
 $(OBJS)\monolib_urlmsw.o: ../../src/msw/urlmsw.cpp
@@ -10843,7 +10843,7 @@ $(OBJS)\netdll_url.o: ../../src/common/url.cpp
 $(OBJS)\netdll_gsocket.o: ../../src/msw/gsocket.cpp
        $(CXX) -c -o $@ $(NETDLL_CXXFLAGS) $(CPPDEPS) $<
 
-$(OBJS)\netdll_gsockmsw.o: ../../src/msw/gsockmsw.cpp
+$(OBJS)\netdll_sockmsw.o: ../../src/msw/sockmsw.cpp
        $(CXX) -c -o $@ $(NETDLL_CXXFLAGS) $(CPPDEPS) $<
 
 $(OBJS)\netdll_urlmsw.o: ../../src/msw/urlmsw.cpp
@@ -10885,7 +10885,7 @@ $(OBJS)\netlib_url.o: ../../src/common/url.cpp
 $(OBJS)\netlib_gsocket.o: ../../src/msw/gsocket.cpp
        $(CXX) -c -o $@ $(NETLIB_CXXFLAGS) $(CPPDEPS) $<
 
-$(OBJS)\netlib_gsockmsw.o: ../../src/msw/gsockmsw.cpp
+$(OBJS)\netlib_sockmsw.o: ../../src/msw/sockmsw.cpp
        $(CXX) -c -o $@ $(NETLIB_CXXFLAGS) $(CPPDEPS) $<
 
 $(OBJS)\netlib_urlmsw.o: ../../src/msw/urlmsw.cpp
index 626d440eecbd9cbb1e3d0208b9d55ea8ac9226db..e9d76d70bbcadd05fb2f6d807760c5be1617e307 100644 (file)
@@ -421,7 +421,7 @@ MONODLL_OBJECTS =  \
        $(OBJS)\monodll_socket.obj \
        $(OBJS)\monodll_url.obj \
        $(OBJS)\monodll_gsocket.obj \
-       $(OBJS)\monodll_gsockmsw.obj \
+       $(OBJS)\monodll_sockmsw.obj \
        $(OBJS)\monodll_urlmsw.obj \
        $(____MONOLIB_GUI_SRC_FILENAMES_OBJECTS) \
        $(OBJS)\monodll_xml.obj \
@@ -565,7 +565,7 @@ MONOLIB_OBJECTS =  \
        $(OBJS)\monolib_socket.obj \
        $(OBJS)\monolib_url.obj \
        $(OBJS)\monolib_gsocket.obj \
-       $(OBJS)\monolib_gsockmsw.obj \
+       $(OBJS)\monolib_sockmsw.obj \
        $(OBJS)\monolib_urlmsw.obj \
        $(____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS) \
        $(OBJS)\monolib_xml.obj \
@@ -846,7 +846,7 @@ NETDLL_OBJECTS =  \
        $(OBJS)\netdll_socket.obj \
        $(OBJS)\netdll_url.obj \
        $(OBJS)\netdll_gsocket.obj \
-       $(OBJS)\netdll_gsockmsw.obj \
+       $(OBJS)\netdll_sockmsw.obj \
        $(OBJS)\netdll_urlmsw.obj
 NETLIB_CXXFLAGS = /M$(__RUNTIME_LIBS_167)$(__DEBUGRUNTIME) /DWIN32 \
        $(__DEBUGINFO) \
@@ -872,7 +872,7 @@ NETLIB_OBJECTS =  \
        $(OBJS)\netlib_socket.obj \
        $(OBJS)\netlib_url.obj \
        $(OBJS)\netlib_gsocket.obj \
-       $(OBJS)\netlib_gsockmsw.obj \
+       $(OBJS)\netlib_sockmsw.obj \
        $(OBJS)\netlib_urlmsw.obj
 COREDLL_CXXFLAGS = /M$(__RUNTIME_LIBS_181)$(__DEBUGRUNTIME) /DWIN32 \
        $(__DEBUGINFO) \
@@ -6066,8 +6066,8 @@ $(OBJS)\monodll_url.obj: ..\..\src\common\url.cpp
 $(OBJS)\monodll_gsocket.obj: ..\..\src\msw\gsocket.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\gsocket.cpp
 
-$(OBJS)\monodll_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp
-       $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp
+$(OBJS)\monodll_sockmsw.obj: ..\..\src\msw\sockmsw.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\sockmsw.cpp
 
 $(OBJS)\monodll_urlmsw.obj: ..\..\src\msw\urlmsw.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\urlmsw.cpp
@@ -8280,8 +8280,8 @@ $(OBJS)\monolib_url.obj: ..\..\src\common\url.cpp
 $(OBJS)\monolib_gsocket.obj: ..\..\src\msw\gsocket.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\gsocket.cpp
 
-$(OBJS)\monolib_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp
-       $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp
+$(OBJS)\monolib_sockmsw.obj: ..\..\src\msw\sockmsw.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\sockmsw.cpp
 
 $(OBJS)\monolib_urlmsw.obj: ..\..\src\msw\urlmsw.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\urlmsw.cpp
@@ -10809,8 +10809,8 @@ $(OBJS)\netdll_url.obj: ..\..\src\common\url.cpp
 $(OBJS)\netdll_gsocket.obj: ..\..\src\msw\gsocket.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\gsocket.cpp
 
-$(OBJS)\netdll_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp
-       $(CXX) /c /nologo /TP /Fo$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp
+$(OBJS)\netdll_sockmsw.obj: ..\..\src\msw\sockmsw.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\sockmsw.cpp
 
 $(OBJS)\netdll_urlmsw.obj: ..\..\src\msw\urlmsw.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\urlmsw.cpp
@@ -10851,8 +10851,8 @@ $(OBJS)\netlib_url.obj: ..\..\src\common\url.cpp
 $(OBJS)\netlib_gsocket.obj: ..\..\src\msw\gsocket.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\gsocket.cpp
 
-$(OBJS)\netlib_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp
-       $(CXX) /c /nologo /TP /Fo$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp
+$(OBJS)\netlib_sockmsw.obj: ..\..\src\msw\sockmsw.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\sockmsw.cpp
 
 $(OBJS)\netlib_urlmsw.obj: ..\..\src\msw\urlmsw.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\urlmsw.cpp
index 7801cbb6eb2ef4808b29d5bdd233ac6667be18ca..f7a869151a0c7aa5067b3d05020f57a26ed81e78 100644 (file)
@@ -3498,7 +3498,7 @@ MONODLL_OBJECTS =  &
        $(OBJS)\monodll_socket.obj &
        $(OBJS)\monodll_url.obj &
        $(OBJS)\monodll_gsocket.obj &
-       $(OBJS)\monodll_gsockmsw.obj &
+       $(OBJS)\monodll_sockmsw.obj &
        $(OBJS)\monodll_urlmsw.obj &
        $(____MONOLIB_GUI_SRC_FILENAMES_OBJECTS) &
        $(OBJS)\monodll_xml.obj &
@@ -3637,7 +3637,7 @@ MONOLIB_OBJECTS =  &
        $(OBJS)\monolib_socket.obj &
        $(OBJS)\monolib_url.obj &
        $(OBJS)\monolib_gsocket.obj &
-       $(OBJS)\monolib_gsockmsw.obj &
+       $(OBJS)\monolib_sockmsw.obj &
        $(OBJS)\monolib_urlmsw.obj &
        $(____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS) &
        $(OBJS)\monolib_xml.obj &
@@ -3905,7 +3905,7 @@ NETDLL_OBJECTS =  &
        $(OBJS)\netdll_socket.obj &
        $(OBJS)\netdll_url.obj &
        $(OBJS)\netdll_gsocket.obj &
-       $(OBJS)\netdll_gsockmsw.obj &
+       $(OBJS)\netdll_sockmsw.obj &
        $(OBJS)\netdll_urlmsw.obj
 NETLIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) &
        $(__RUNTIME_LIBS) -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) &
@@ -3928,7 +3928,7 @@ NETLIB_OBJECTS =  &
        $(OBJS)\netlib_socket.obj &
        $(OBJS)\netlib_url.obj &
        $(OBJS)\netlib_gsocket.obj &
-       $(OBJS)\netlib_gsockmsw.obj &
+       $(OBJS)\netlib_sockmsw.obj &
        $(OBJS)\netlib_urlmsw.obj
 COREDLL_CXXFLAGS = -bd $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) &
        $(__RUNTIME_LIBS) -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) &
@@ -6117,7 +6117,7 @@ $(OBJS)\monodll_url.obj :  .AUTODEPEND ..\..\src\common\url.cpp
 $(OBJS)\monodll_gsocket.obj :  .AUTODEPEND ..\..\src\msw\gsocket.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
 
-$(OBJS)\monodll_gsockmsw.obj :  .AUTODEPEND ..\..\src\msw\gsockmsw.cpp
+$(OBJS)\monodll_sockmsw.obj :  .AUTODEPEND ..\..\src\msw\sockmsw.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
 
 $(OBJS)\monodll_urlmsw.obj :  .AUTODEPEND ..\..\src\msw\urlmsw.cpp
@@ -8445,7 +8445,7 @@ $(OBJS)\monolib_url.obj :  .AUTODEPEND ..\..\src\common\url.cpp
 $(OBJS)\monolib_gsocket.obj :  .AUTODEPEND ..\..\src\msw\gsocket.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
 
-$(OBJS)\monolib_gsockmsw.obj :  .AUTODEPEND ..\..\src\msw\gsockmsw.cpp
+$(OBJS)\monolib_sockmsw.obj :  .AUTODEPEND ..\..\src\msw\sockmsw.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
 
 $(OBJS)\monolib_urlmsw.obj :  .AUTODEPEND ..\..\src\msw\urlmsw.cpp
@@ -11088,7 +11088,7 @@ $(OBJS)\netdll_url.obj :  .AUTODEPEND ..\..\src\common\url.cpp
 $(OBJS)\netdll_gsocket.obj :  .AUTODEPEND ..\..\src\msw\gsocket.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(NETDLL_CXXFLAGS) $<
 
-$(OBJS)\netdll_gsockmsw.obj :  .AUTODEPEND ..\..\src\msw\gsockmsw.cpp
+$(OBJS)\netdll_sockmsw.obj :  .AUTODEPEND ..\..\src\msw\sockmsw.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(NETDLL_CXXFLAGS) $<
 
 $(OBJS)\netdll_urlmsw.obj :  .AUTODEPEND ..\..\src\msw\urlmsw.cpp
@@ -11130,7 +11130,7 @@ $(OBJS)\netlib_url.obj :  .AUTODEPEND ..\..\src\common\url.cpp
 $(OBJS)\netlib_gsocket.obj :  .AUTODEPEND ..\..\src\msw\gsocket.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(NETLIB_CXXFLAGS) $<
 
-$(OBJS)\netlib_gsockmsw.obj :  .AUTODEPEND ..\..\src\msw\gsockmsw.cpp
+$(OBJS)\netlib_sockmsw.obj :  .AUTODEPEND ..\..\src\msw\sockmsw.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(NETLIB_CXXFLAGS) $<
 
 $(OBJS)\netlib_urlmsw.obj :  .AUTODEPEND ..\..\src\msw\urlmsw.cpp
index 243f70b8d5d9c4ea8846d5100cff9e7a50387d72..bbd3a4e987bf80fb33131d6ad9dadf69ed75de3f 100644 (file)
@@ -298,7 +298,7 @@ SOURCE=..\..\src\msw\gsocket.cpp
 # End Source File\r
 # Begin Source File\r
 \r
-SOURCE=..\..\src\msw\gsockmsw.cpp\r
+SOURCE=..\..\src\msw\sockmsw.cpp\r
 # End Source File\r
 # Begin Source File\r
 \r
@@ -578,7 +578,7 @@ InputPath=..\..\include\wx\msw\genrcdefs.h
 # End Source File\r
 # Begin Source File\r
 \r
-SOURCE=..\..\include\wx\msw\gsockmsw.h\r
+SOURCE=..\..\include\wx\msw\private\sockmsw.h\r
 # End Source File\r
 # End Group\r
 # Begin Group "Common Headers"\r
index d3f9892b808a057e4682e4d7bda8a8a33ceb535e..d7456016a360756ebcef7476ca8c40fa499b0c21 100644 (file)
                                RelativePath="..\..\src\msw\gsocket.cpp">\r
                        </File>\r
                        <File\r
-                               RelativePath="..\..\src\msw\gsockmsw.cpp">\r
+                               RelativePath="..\..\src\msw\sockmsw.cpp">\r
                        </File>\r
                        <File\r
                                RelativePath="..\..\src\msw\urlmsw.cpp">\r
                                </FileConfiguration>\r
                        </File>\r
                        <File\r
-                               RelativePath="..\..\include\wx\msw\gsockmsw.h">\r
+                               RelativePath="..\..\include\wx\msw\private\sockmsw.h">\r
                        </File>\r
                </Filter>\r
                <Filter\r
index 6f10daaebfa1344d80f5107659e010f5782865d5..13ab8f0022968bec4cf6f4bd77ba2eea17da0a10 100644 (file)
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath="..\..\src\msw\gsockmsw.cpp"\r
+                               RelativePath="..\..\src\msw\sockmsw.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                </FileConfiguration>\r
                        </File>\r
                        <File\r
-                               RelativePath="..\..\include\wx\msw\gsockmsw.h"\r
+                               RelativePath="..\..\include\wx\msw\private\sockmsw.h"\r
                                >\r
                        </File>\r
                </Filter>\r
index f4ba10e6dc16decdfadc68d09c3337d6125f4625..29d0606915decee95d1ab7baa54f607bab0743b5 100644 (file)
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath="..\..\src\msw\gsockmsw.cpp"\r
+                               RelativePath="..\..\src\msw\sockmsw.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                </FileConfiguration>\r
                        </File>\r
                        <File\r
-                               RelativePath="..\..\include\wx\msw\gsockmsw.h"\r
+                               RelativePath="..\..\include\wx\msw\private\sockmsw.h"\r
                                >\r
                        </File>\r
                </Filter>\r
diff --git a/include/wx/msw/gsockmsw.h b/include/wx/msw/gsockmsw.h
deleted file mode 100644 (file)
index d65e493..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// Name:       wx/msw/gsockmsw.h
-// Purpose:    MSW-specific socket implementation
-// Authors:    Guilhem Lavaux, Guillermo Rodriguez Garcia, Vadim Zeitlin
-// Created:    April 1997
-// Copyright:  (C) 1999-1997, Guilhem Lavaux
-//             (C) 1999-2000, Guillermo Rodriguez Garcia
-//             (C) 2008 Vadim Zeitlin
-// RCS_ID:     $Id$
-// License:    wxWindows licence
-/////////////////////////////////////////////////////////////////////////////
-
-
-#ifndef _WX_MSW_GSOCKMSW_H_
-#define _WX_MSW_GSOCKMSW_H_
-
-#include "wx/msw/wrapwin.h"
-
-#if defined(__CYGWIN__)
-    //CYGWIN gives annoying warning about runtime stuff if we don't do this
-#   define USE_SYS_TYPES_FD_SET
-#   include <sys/types.h>
-#endif
-
-#if defined(__WXWINCE__) || defined(__CYGWIN__)
-    #include <winsock.h>
-#endif
-
-// ----------------------------------------------------------------------------
-// MSW-specific socket implementation
-// ----------------------------------------------------------------------------
-
-class wxSocketImplMSW : public wxSocketImpl
-{
-public:
-    wxSocketImplMSW(wxSocketBase& wxsocket);
-
-    virtual ~wxSocketImplMSW();
-
-    virtual wxSocketImpl *WaitConnection(wxSocketBase& wxsocket);
-
-
-    int Read(void *buffer, int size);
-    int Write(const void *buffer, int size);
-
-private:
-    virtual wxSocketError DoHandleConnect(int ret);
-    virtual void DoClose();
-
-    virtual void UnblockAndRegisterWithEventLoop()
-    {
-        // no need to make the socket non-blocking, Install_Callback() will do
-        // it
-        wxSocketManager::Get()->Install_Callback(this);
-    }
-
-    wxSocketError Input_Timeout();
-    wxSocketError Output_Timeout();
-    wxSocketError Connect_Timeout();
-    int Recv_Stream(void *buffer, int size);
-    int Recv_Dgram(void *buffer, int size);
-    int Send_Stream(const void *buffer, int size);
-    int Send_Dgram(const void *buffer, int size);
-
-    int m_msgnumber;
-
-    friend class wxSocketMSWManager;
-
-    DECLARE_NO_COPY_CLASS(wxSocketImplMSW)
-};
-
-#endif  /* _WX_MSW_GSOCKMSW_H_ */
diff --git a/include/wx/msw/private/sockmsw.h b/include/wx/msw/private/sockmsw.h
new file mode 100644 (file)
index 0000000..d65e493
--- /dev/null
@@ -0,0 +1,72 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:       wx/msw/gsockmsw.h
+// Purpose:    MSW-specific socket implementation
+// Authors:    Guilhem Lavaux, Guillermo Rodriguez Garcia, Vadim Zeitlin
+// Created:    April 1997
+// Copyright:  (C) 1999-1997, Guilhem Lavaux
+//             (C) 1999-2000, Guillermo Rodriguez Garcia
+//             (C) 2008 Vadim Zeitlin
+// RCS_ID:     $Id$
+// License:    wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+
+#ifndef _WX_MSW_GSOCKMSW_H_
+#define _WX_MSW_GSOCKMSW_H_
+
+#include "wx/msw/wrapwin.h"
+
+#if defined(__CYGWIN__)
+    //CYGWIN gives annoying warning about runtime stuff if we don't do this
+#   define USE_SYS_TYPES_FD_SET
+#   include <sys/types.h>
+#endif
+
+#if defined(__WXWINCE__) || defined(__CYGWIN__)
+    #include <winsock.h>
+#endif
+
+// ----------------------------------------------------------------------------
+// MSW-specific socket implementation
+// ----------------------------------------------------------------------------
+
+class wxSocketImplMSW : public wxSocketImpl
+{
+public:
+    wxSocketImplMSW(wxSocketBase& wxsocket);
+
+    virtual ~wxSocketImplMSW();
+
+    virtual wxSocketImpl *WaitConnection(wxSocketBase& wxsocket);
+
+
+    int Read(void *buffer, int size);
+    int Write(const void *buffer, int size);
+
+private:
+    virtual wxSocketError DoHandleConnect(int ret);
+    virtual void DoClose();
+
+    virtual void UnblockAndRegisterWithEventLoop()
+    {
+        // no need to make the socket non-blocking, Install_Callback() will do
+        // it
+        wxSocketManager::Get()->Install_Callback(this);
+    }
+
+    wxSocketError Input_Timeout();
+    wxSocketError Output_Timeout();
+    wxSocketError Connect_Timeout();
+    int Recv_Stream(void *buffer, int size);
+    int Recv_Dgram(void *buffer, int size);
+    int Send_Stream(const void *buffer, int size);
+    int Send_Dgram(const void *buffer, int size);
+
+    int m_msgnumber;
+
+    friend class wxSocketMSWManager;
+
+    DECLARE_NO_COPY_CLASS(wxSocketImplMSW)
+};
+
+#endif  /* _WX_MSW_GSOCKMSW_H_ */
diff --git a/src/msw/gsockmsw.cpp b/src/msw/gsockmsw.cpp
deleted file mode 100644 (file)
index 4215428..0000000
+++ /dev/null
@@ -1,461 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// Name:       src/msw/gsockmsw.cpp
-// Purpose:    MSW-specific socket support
-// Authors:    Guilhem Lavaux, Guillermo Rodriguez Garcia
-// Created:    April 1997
-// Copyright:  (C) 1999-1997, Guilhem Lavaux
-//             (C) 1999-2000, Guillermo Rodriguez Garcia
-//             (C) 2008 Vadim Zeitlin
-// RCS_ID:     $Id$
-// License:    wxWindows licence
-/////////////////////////////////////////////////////////////////////////////
-
-
-// For compilers that support precompilation, includes "wx.h".
-#include "wx/wxprec.h"
-
-#ifdef __BORLANDC__
-    #pragma hdrstop
-#endif
-
-#if wxUSE_SOCKETS
-
-/*
- * DONE: for WinCE we need to replace WSAAsyncSelect
- * (Windows message-based notification of network events for a socket)
- * with another mechanism.
- * As WSAAsyncSelect is not present on WinCE, it now uses
- * WSACreateEvent, WSAEventSelect, WSAWaitForMultipleEvents and WSAEnumNetworkEvents.
- * When enabling eventhandling for a socket a new thread it created that keeps track of the events
- * and posts a messageto the hidden window to use the standard message loop.
- */
-
-/* including rasasync.h (included from windows.h itself included from
- * wx/setup.h and/or winsock.h results in this warning for
- * RPCNOTIFICATION_ROUTINE
- */
-#ifdef _MSC_VER
-#   pragma warning(disable:4115) /* named type definition in parentheses */
-#endif
-
-#include "wx/private/socket.h"
-#include "wx/apptrait.h"
-#include "wx/link.h"
-
-wxFORCE_LINK_THIS_MODULE(gsockmsw)
-
-extern "C" WXDLLIMPEXP_BASE HINSTANCE wxGetInstance();
-#define INSTANCE wxGetInstance()
-
-#ifdef __WXWINCE__
-#include <winsock.h>
-#include "wx/msw/wince/net.h"
-#include "wx/hashmap.h"
-WX_DECLARE_HASH_MAP(int,bool,wxIntegerHash,wxIntegerEqual,SocketHash);
-#endif
-
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <ctype.h>
-
-#include <winsock.h>
-
-#ifdef _MSC_VER
-#  pragma warning(default:4115) /* named type definition in parentheses */
-#endif
-
-#define CLASSNAME  TEXT("_wxSocket_Internal_Window_Class")
-
-/* implemented in utils.cpp */
-extern "C" WXDLLIMPEXP_BASE HWND
-wxCreateHiddenWindow(LPCTSTR *pclassname, LPCTSTR classname, WNDPROC wndproc);
-
-/* Maximum number of different wxSocket objects at a given time.
- * This value can be modified at will, but it CANNOT be greater
- * than (0x7FFF - WM_USER + 1)
- */
-#define MAXSOCKETS 1024
-
-#if (MAXSOCKETS > (0x7FFF - WM_USER + 1))
-#error "MAXSOCKETS is too big!"
-#endif
-
-#ifndef __WXWINCE__
-typedef int (PASCAL *WSAAsyncSelectFunc)(SOCKET,HWND,u_int,long);
-#else
-/* Typedef the needed function prototypes and the WSANETWORKEVENTS structure
-*/
-typedef struct _WSANETWORKEVENTS {
-       long lNetworkEvents;
-       int iErrorCode[10];
-} WSANETWORKEVENTS, FAR * LPWSANETWORKEVENTS;
-typedef HANDLE (PASCAL *WSACreateEventFunc)();
-typedef int (PASCAL *WSAEventSelectFunc)(SOCKET,HANDLE,long);
-typedef int (PASCAL *WSAWaitForMultipleEventsFunc)(long,HANDLE,BOOL,long,BOOL);
-typedef int (PASCAL *WSAEnumNetworkEventsFunc)(SOCKET,HANDLE,LPWSANETWORKEVENTS);
-#endif //__WXWINCE__
-
-LRESULT CALLBACK wxSocket_Internal_WinProc(HWND, UINT, WPARAM, LPARAM);
-
-/* Global variables */
-
-static HWND hWin;
-static CRITICAL_SECTION critical;
-static wxSocketImplMSW *socketList[MAXSOCKETS];
-static int firstAvailable;
-
-#ifndef __WXWINCE__
-static WSAAsyncSelectFunc gs_WSAAsyncSelect = NULL;
-#else
-static SocketHash socketHash;
-static unsigned int currSocket;
-HANDLE hThread[MAXSOCKETS];
-static WSACreateEventFunc gs_WSACreateEvent = NULL;
-static WSAEventSelectFunc gs_WSAEventSelect = NULL;
-static WSAWaitForMultipleEventsFunc gs_WSAWaitForMultipleEvents = NULL;
-static WSAEnumNetworkEventsFunc gs_WSAEnumNetworkEvents = NULL;
-/* This structure will be used to pass data on to the thread that handles socket events.
-*/
-typedef struct thread_data{
-    HWND hEvtWin;
-    unsigned long msgnumber;
-    unsigned long fd;
-    unsigned long lEvent;
-}thread_data;
-#endif
-
-static HMODULE gs_wsock32dll = 0;
-
-
-#ifdef __WXWINCE__
-/* This thread handles socket events on WinCE using WSAEventSelect() as WSAAsyncSelect is not supported.
-*  When an event occures for the socket, it is checked what kind of event happend and the correct message gets posted
-*  so that the hidden window can handle it as it would in other MSW builds.
-*/
-DWORD WINAPI SocketThread(LPVOID data)
-{
-    WSANETWORKEVENTS NetworkEvents;
-    thread_data* d = (thread_data *)data;
-
-    HANDLE NetworkEvent = gs_WSACreateEvent();
-    gs_WSAEventSelect(d->fd, NetworkEvent, d->lEvent);
-
-    while(socketHash[d->fd] == true)
-    {
-        if ((gs_WSAWaitForMultipleEvents(1, &NetworkEvent, FALSE,INFINITE, FALSE)) == WAIT_FAILED)
-        {
-            printf("WSAWaitForMultipleEvents failed with error %d\n", WSAGetLastError());
-            return 0;
-        }
-        if (gs_WSAEnumNetworkEvents(d->fd ,NetworkEvent, &NetworkEvents) == SOCKET_ERROR)
-        {
-            printf("WSAEnumNetworkEvents failed with error %d\n", WSAGetLastError());
-            return 0;
-        }
-
-        long flags = NetworkEvents.lNetworkEvents;
-        if (flags & FD_READ)
-            ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_READ);
-        if (flags & FD_WRITE)
-            ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_WRITE);
-        if (flags & FD_OOB)
-            ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_OOB);
-        if (flags & FD_ACCEPT)
-            ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_ACCEPT);
-        if (flags & FD_CONNECT)
-            ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_CONNECT);
-        if (flags & FD_CLOSE)
-            ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_CLOSE);
-
-    }
-    gs_WSAEventSelect(d->fd, NetworkEvent, 0);
-    ExitThread(0);
-    return 0;
-}
-#endif
-
-// ----------------------------------------------------------------------------
-// MSW implementation of wxSocketManager
-// ----------------------------------------------------------------------------
-
-class wxSocketMSWManager : public wxSocketManager
-{
-public:
-    virtual bool OnInit();
-    virtual void OnExit();
-
-    virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket)
-    {
-        return new wxSocketImplMSW(wxsocket);
-    }
-    virtual void Install_Callback(wxSocketImpl *socket, wxSocketNotify event);
-    virtual void Uninstall_Callback(wxSocketImpl *socket, wxSocketNotify event);
-};
-
-/* Global initializers */
-
-bool wxSocketMSWManager::OnInit()
-{
-  static LPCTSTR pclassname = NULL;
-  int i;
-
-  /* Create internal window for event notifications */
-  hWin = wxCreateHiddenWindow(&pclassname, CLASSNAME, wxSocket_Internal_WinProc);
-  if (!hWin)
-      return false;
-
-  /* Initialize socket list */
-  InitializeCriticalSection(&critical);
-
-  for (i = 0; i < MAXSOCKETS; i++)
-  {
-    socketList[i] = NULL;
-  }
-  firstAvailable = 0;
-
-  /* Load WSAAsyncSelect from wsock32.dll (we don't link against it
-     statically to avoid dependency on wsock32.dll for apps that don't use
-     sockets): */
-#ifndef __WXWINCE__
-  gs_wsock32dll = LoadLibrary(wxT("wsock32.dll"));
-  if (!gs_wsock32dll)
-      return false;
-  gs_WSAAsyncSelect =(WSAAsyncSelectFunc)GetProcAddress(gs_wsock32dll,
-                                                        "WSAAsyncSelect");
-  if (!gs_WSAAsyncSelect)
-      return false;
-#else
-/*  On WinCE we load ws2.dll which will provide the needed functions.
-*/
-  gs_wsock32dll = LoadLibrary(wxT("ws2.dll"));
-  if (!gs_wsock32dll)
-      return false;
-  gs_WSAEventSelect =(WSAEventSelectFunc)GetProcAddress(gs_wsock32dll,
-                                                        wxT("WSAEventSelect"));
-  if (!gs_WSAEventSelect)
-      return false;
-
-  gs_WSACreateEvent =(WSACreateEventFunc)GetProcAddress(gs_wsock32dll,
-                                                        wxT("WSACreateEvent"));
-  if (!gs_WSACreateEvent)
-      return false;
-
-  gs_WSAWaitForMultipleEvents =(WSAWaitForMultipleEventsFunc)GetProcAddress(gs_wsock32dll,
-                                                                            wxT("WSAWaitForMultipleEvents"));
-  if (!gs_WSAWaitForMultipleEvents)
-      return false;
-
-  gs_WSAEnumNetworkEvents =(WSAEnumNetworkEventsFunc)GetProcAddress(gs_wsock32dll,
-                                                                    wxT("WSAEnumNetworkEvents"));
-  if (!gs_WSAEnumNetworkEvents)
-      return false;
-
-  currSocket = 0;
-#endif
-
-  // finally initialize WinSock
-  WSADATA wsaData;
-  return WSAStartup((1 << 8) | 1, &wsaData) == 0;
-}
-
-void wxSocketMSWManager::OnExit()
-{
-#ifdef __WXWINCE__
-/* Delete the threads here */
-    for(unsigned int i=0; i < currSocket; i++)
-        CloseHandle(hThread[i]);
-#endif
-  /* Destroy internal window */
-  DestroyWindow(hWin);
-  UnregisterClass(CLASSNAME, INSTANCE);
-
-  /* Unlock wsock32.dll */
-  if (gs_wsock32dll)
-  {
-      FreeLibrary(gs_wsock32dll);
-      gs_wsock32dll = 0;
-  }
-
-  /* Delete critical section */
-  DeleteCriticalSection(&critical);
-
-  WSACleanup();
-}
-
-/* Per-socket GUI initialization / cleanup */
-
-wxSocketImplMSW::wxSocketImplMSW(wxSocketBase& wxsocket)
-    : wxSocketImpl(wxsocket)
-{
-  /* Allocate a new message number for this socket */
-  EnterCriticalSection(&critical);
-
-  int i = firstAvailable;
-  while (socketList[i] != NULL)
-  {
-    i = (i + 1) % MAXSOCKETS;
-
-    if (i == firstAvailable)    /* abort! */
-    {
-      LeaveCriticalSection(&critical);
-      m_msgnumber = 0; // invalid
-      return;
-    }
-  }
-  socketList[i] = this;
-  firstAvailable = (i + 1) % MAXSOCKETS;
-  m_msgnumber = (i + WM_USER);
-
-  LeaveCriticalSection(&critical);
-}
-
-wxSocketImplMSW::~wxSocketImplMSW()
-{
-  /* Remove the socket from the list */
-  EnterCriticalSection(&critical);
-
-  if ( m_msgnumber )
-  {
-      // we need to remove any pending messages for this socket to avoid having
-      // them sent to a new socket which could reuse the same message number as
-      // soon as we destroy this one
-      MSG msg;
-      while ( ::PeekMessage(&msg, hWin, m_msgnumber, m_msgnumber, PM_REMOVE) )
-          ;
-
-      socketList[m_msgnumber - WM_USER] = NULL;
-  }
-  //else: the socket has never been created successfully
-
-  LeaveCriticalSection(&critical);
-}
-
-/* Windows proc for asynchronous event handling */
-
-LRESULT CALLBACK wxSocket_Internal_WinProc(HWND hWnd,
-                                           UINT uMsg,
-                                           WPARAM wParam,
-                                           LPARAM lParam)
-{
-  wxSocketImplMSW *socket;
-  wxSocketNotify event;
-
-  if (uMsg >= WM_USER && uMsg <= (WM_USER + MAXSOCKETS - 1))
-  {
-    EnterCriticalSection(&critical);
-    socket = socketList[(uMsg - WM_USER)];
-    event = (wxSocketNotify) -1;
-
-    /* Check that the socket still exists (it has not been
-     * destroyed) and for safety, check that the m_fd field
-     * is what we expect it to be.
-     */
-    if ((socket != NULL) && ((WPARAM)socket->m_fd == wParam))
-    {
-      switch WSAGETSELECTEVENT(lParam)
-      {
-        case FD_READ:    event = wxSOCKET_INPUT; break;
-        case FD_WRITE:   event = wxSOCKET_OUTPUT; break;
-        case FD_ACCEPT:  event = wxSOCKET_CONNECTION; break;
-        case FD_CONNECT:
-        {
-          if (WSAGETSELECTERROR(lParam) != 0)
-            event = wxSOCKET_LOST;
-          else
-            event = wxSOCKET_CONNECTION;
-          break;
-        }
-        case FD_CLOSE:   event = wxSOCKET_LOST; break;
-      }
-
-      if (event != -1)
-      {
-        if (event == wxSOCKET_LOST)
-          socket->m_detected = wxSOCKET_LOST_FLAG;
-        else
-          socket->m_detected |= (1 << event);
-      }
-    }
-
-    LeaveCriticalSection(&critical);
-
-    if ( socket )
-        socket->NotifyOnStateChange(event);
-
-    return (LRESULT) 0;
-  }
-  else
-    return DefWindowProc(hWnd, uMsg, wParam, lParam);
-}
-
-/*
- *  Enable all event notifications; we need to be notified of all
- *  events for internal processing, but we will only notify users
- *  when an appropriate callback function has been installed.
- */
-void wxSocketMSWManager::Install_Callback(wxSocketImpl *socket_,
-                                         wxSocketNotify WXUNUSED(event))
-{
-    wxSocketImplMSW * const socket = static_cast<wxSocketImplMSW *>(socket_);
-
-  if (socket->m_fd != INVALID_SOCKET)
-  {
-    /* We could probably just subscribe to all events regardless
-     * of the socket type, but MS recommends to do it this way.
-     */
-    long lEvent = socket->m_server?
-                  FD_ACCEPT : (FD_READ | FD_WRITE | FD_CONNECT | FD_CLOSE);
-#ifndef __WXWINCE__
-    gs_WSAAsyncSelect(socket->m_fd, hWin, socket->m_msgnumber, lEvent);
-#else
-/*
-*  WinCE creates a thread for socket event handling.
-*  All needed parameters get passed through the thread_data structure.
-*/
-
-    thread_data* d = new thread_data;
-    d->lEvent = lEvent;
-    d->hEvtWin = hWin;
-    d->msgnumber = socket->m_msgnumber;
-    d->fd = socket->m_fd;
-    socketHash[socket->m_fd] = true;
-    hThread[currSocket++] = CreateThread(NULL, 0, &SocketThread,(LPVOID)d, 0, NULL);
-#endif
-  }
-}
-
-/*
- *  Disable event notifications (used when shutting down the socket)
- */
-void wxSocketMSWManager::Uninstall_Callback(wxSocketImpl *socket_,
-                                           wxSocketNotify WXUNUSED(event))
-{
-    wxSocketImplMSW * const socket = static_cast<wxSocketImplMSW *>(socket_);
-
-  if (socket->m_fd != INVALID_SOCKET)
-  {
-#ifndef __WXWINCE__
-    gs_WSAAsyncSelect(socket->m_fd, hWin, socket->m_msgnumber, 0);
-#else
-    //Destroy the thread
-    socketHash[socket->m_fd] = false;
-#endif
-  }
-}
-
-// set the wxBase variable to point to our wxSocketManager implementation
-//
-// see comments in wx/apptrait.h for the explanation of why do we do it
-// like this
-static struct ManagerSetter
-{
-    ManagerSetter()
-    {
-        static wxSocketMSWManager s_manager;
-        wxAppTraits::SetDefaultSocketManager(&s_manager);
-    }
-} gs_managerSetter;
-
-#endif  // wxUSE_SOCKETS
diff --git a/src/msw/sockmsw.cpp b/src/msw/sockmsw.cpp
new file mode 100644 (file)
index 0000000..4215428
--- /dev/null
@@ -0,0 +1,461 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:       src/msw/gsockmsw.cpp
+// Purpose:    MSW-specific socket support
+// Authors:    Guilhem Lavaux, Guillermo Rodriguez Garcia
+// Created:    April 1997
+// Copyright:  (C) 1999-1997, Guilhem Lavaux
+//             (C) 1999-2000, Guillermo Rodriguez Garcia
+//             (C) 2008 Vadim Zeitlin
+// RCS_ID:     $Id$
+// License:    wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_SOCKETS
+
+/*
+ * DONE: for WinCE we need to replace WSAAsyncSelect
+ * (Windows message-based notification of network events for a socket)
+ * with another mechanism.
+ * As WSAAsyncSelect is not present on WinCE, it now uses
+ * WSACreateEvent, WSAEventSelect, WSAWaitForMultipleEvents and WSAEnumNetworkEvents.
+ * When enabling eventhandling for a socket a new thread it created that keeps track of the events
+ * and posts a messageto the hidden window to use the standard message loop.
+ */
+
+/* including rasasync.h (included from windows.h itself included from
+ * wx/setup.h and/or winsock.h results in this warning for
+ * RPCNOTIFICATION_ROUTINE
+ */
+#ifdef _MSC_VER
+#   pragma warning(disable:4115) /* named type definition in parentheses */
+#endif
+
+#include "wx/private/socket.h"
+#include "wx/apptrait.h"
+#include "wx/link.h"
+
+wxFORCE_LINK_THIS_MODULE(gsockmsw)
+
+extern "C" WXDLLIMPEXP_BASE HINSTANCE wxGetInstance();
+#define INSTANCE wxGetInstance()
+
+#ifdef __WXWINCE__
+#include <winsock.h>
+#include "wx/msw/wince/net.h"
+#include "wx/hashmap.h"
+WX_DECLARE_HASH_MAP(int,bool,wxIntegerHash,wxIntegerEqual,SocketHash);
+#endif
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <ctype.h>
+
+#include <winsock.h>
+
+#ifdef _MSC_VER
+#  pragma warning(default:4115) /* named type definition in parentheses */
+#endif
+
+#define CLASSNAME  TEXT("_wxSocket_Internal_Window_Class")
+
+/* implemented in utils.cpp */
+extern "C" WXDLLIMPEXP_BASE HWND
+wxCreateHiddenWindow(LPCTSTR *pclassname, LPCTSTR classname, WNDPROC wndproc);
+
+/* Maximum number of different wxSocket objects at a given time.
+ * This value can be modified at will, but it CANNOT be greater
+ * than (0x7FFF - WM_USER + 1)
+ */
+#define MAXSOCKETS 1024
+
+#if (MAXSOCKETS > (0x7FFF - WM_USER + 1))
+#error "MAXSOCKETS is too big!"
+#endif
+
+#ifndef __WXWINCE__
+typedef int (PASCAL *WSAAsyncSelectFunc)(SOCKET,HWND,u_int,long);
+#else
+/* Typedef the needed function prototypes and the WSANETWORKEVENTS structure
+*/
+typedef struct _WSANETWORKEVENTS {
+       long lNetworkEvents;
+       int iErrorCode[10];
+} WSANETWORKEVENTS, FAR * LPWSANETWORKEVENTS;
+typedef HANDLE (PASCAL *WSACreateEventFunc)();
+typedef int (PASCAL *WSAEventSelectFunc)(SOCKET,HANDLE,long);
+typedef int (PASCAL *WSAWaitForMultipleEventsFunc)(long,HANDLE,BOOL,long,BOOL);
+typedef int (PASCAL *WSAEnumNetworkEventsFunc)(SOCKET,HANDLE,LPWSANETWORKEVENTS);
+#endif //__WXWINCE__
+
+LRESULT CALLBACK wxSocket_Internal_WinProc(HWND, UINT, WPARAM, LPARAM);
+
+/* Global variables */
+
+static HWND hWin;
+static CRITICAL_SECTION critical;
+static wxSocketImplMSW *socketList[MAXSOCKETS];
+static int firstAvailable;
+
+#ifndef __WXWINCE__
+static WSAAsyncSelectFunc gs_WSAAsyncSelect = NULL;
+#else
+static SocketHash socketHash;
+static unsigned int currSocket;
+HANDLE hThread[MAXSOCKETS];
+static WSACreateEventFunc gs_WSACreateEvent = NULL;
+static WSAEventSelectFunc gs_WSAEventSelect = NULL;
+static WSAWaitForMultipleEventsFunc gs_WSAWaitForMultipleEvents = NULL;
+static WSAEnumNetworkEventsFunc gs_WSAEnumNetworkEvents = NULL;
+/* This structure will be used to pass data on to the thread that handles socket events.
+*/
+typedef struct thread_data{
+    HWND hEvtWin;
+    unsigned long msgnumber;
+    unsigned long fd;
+    unsigned long lEvent;
+}thread_data;
+#endif
+
+static HMODULE gs_wsock32dll = 0;
+
+
+#ifdef __WXWINCE__
+/* This thread handles socket events on WinCE using WSAEventSelect() as WSAAsyncSelect is not supported.
+*  When an event occures for the socket, it is checked what kind of event happend and the correct message gets posted
+*  so that the hidden window can handle it as it would in other MSW builds.
+*/
+DWORD WINAPI SocketThread(LPVOID data)
+{
+    WSANETWORKEVENTS NetworkEvents;
+    thread_data* d = (thread_data *)data;
+
+    HANDLE NetworkEvent = gs_WSACreateEvent();
+    gs_WSAEventSelect(d->fd, NetworkEvent, d->lEvent);
+
+    while(socketHash[d->fd] == true)
+    {
+        if ((gs_WSAWaitForMultipleEvents(1, &NetworkEvent, FALSE,INFINITE, FALSE)) == WAIT_FAILED)
+        {
+            printf("WSAWaitForMultipleEvents failed with error %d\n", WSAGetLastError());
+            return 0;
+        }
+        if (gs_WSAEnumNetworkEvents(d->fd ,NetworkEvent, &NetworkEvents) == SOCKET_ERROR)
+        {
+            printf("WSAEnumNetworkEvents failed with error %d\n", WSAGetLastError());
+            return 0;
+        }
+
+        long flags = NetworkEvents.lNetworkEvents;
+        if (flags & FD_READ)
+            ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_READ);
+        if (flags & FD_WRITE)
+            ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_WRITE);
+        if (flags & FD_OOB)
+            ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_OOB);
+        if (flags & FD_ACCEPT)
+            ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_ACCEPT);
+        if (flags & FD_CONNECT)
+            ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_CONNECT);
+        if (flags & FD_CLOSE)
+            ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_CLOSE);
+
+    }
+    gs_WSAEventSelect(d->fd, NetworkEvent, 0);
+    ExitThread(0);
+    return 0;
+}
+#endif
+
+// ----------------------------------------------------------------------------
+// MSW implementation of wxSocketManager
+// ----------------------------------------------------------------------------
+
+class wxSocketMSWManager : public wxSocketManager
+{
+public:
+    virtual bool OnInit();
+    virtual void OnExit();
+
+    virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket)
+    {
+        return new wxSocketImplMSW(wxsocket);
+    }
+    virtual void Install_Callback(wxSocketImpl *socket, wxSocketNotify event);
+    virtual void Uninstall_Callback(wxSocketImpl *socket, wxSocketNotify event);
+};
+
+/* Global initializers */
+
+bool wxSocketMSWManager::OnInit()
+{
+  static LPCTSTR pclassname = NULL;
+  int i;
+
+  /* Create internal window for event notifications */
+  hWin = wxCreateHiddenWindow(&pclassname, CLASSNAME, wxSocket_Internal_WinProc);
+  if (!hWin)
+      return false;
+
+  /* Initialize socket list */
+  InitializeCriticalSection(&critical);
+
+  for (i = 0; i < MAXSOCKETS; i++)
+  {
+    socketList[i] = NULL;
+  }
+  firstAvailable = 0;
+
+  /* Load WSAAsyncSelect from wsock32.dll (we don't link against it
+     statically to avoid dependency on wsock32.dll for apps that don't use
+     sockets): */
+#ifndef __WXWINCE__
+  gs_wsock32dll = LoadLibrary(wxT("wsock32.dll"));
+  if (!gs_wsock32dll)
+      return false;
+  gs_WSAAsyncSelect =(WSAAsyncSelectFunc)GetProcAddress(gs_wsock32dll,
+                                                        "WSAAsyncSelect");
+  if (!gs_WSAAsyncSelect)
+      return false;
+#else
+/*  On WinCE we load ws2.dll which will provide the needed functions.
+*/
+  gs_wsock32dll = LoadLibrary(wxT("ws2.dll"));
+  if (!gs_wsock32dll)
+      return false;
+  gs_WSAEventSelect =(WSAEventSelectFunc)GetProcAddress(gs_wsock32dll,
+                                                        wxT("WSAEventSelect"));
+  if (!gs_WSAEventSelect)
+      return false;
+
+  gs_WSACreateEvent =(WSACreateEventFunc)GetProcAddress(gs_wsock32dll,
+                                                        wxT("WSACreateEvent"));
+  if (!gs_WSACreateEvent)
+      return false;
+
+  gs_WSAWaitForMultipleEvents =(WSAWaitForMultipleEventsFunc)GetProcAddress(gs_wsock32dll,
+                                                                            wxT("WSAWaitForMultipleEvents"));
+  if (!gs_WSAWaitForMultipleEvents)
+      return false;
+
+  gs_WSAEnumNetworkEvents =(WSAEnumNetworkEventsFunc)GetProcAddress(gs_wsock32dll,
+                                                                    wxT("WSAEnumNetworkEvents"));
+  if (!gs_WSAEnumNetworkEvents)
+      return false;
+
+  currSocket = 0;
+#endif
+
+  // finally initialize WinSock
+  WSADATA wsaData;
+  return WSAStartup((1 << 8) | 1, &wsaData) == 0;
+}
+
+void wxSocketMSWManager::OnExit()
+{
+#ifdef __WXWINCE__
+/* Delete the threads here */
+    for(unsigned int i=0; i < currSocket; i++)
+        CloseHandle(hThread[i]);
+#endif
+  /* Destroy internal window */
+  DestroyWindow(hWin);
+  UnregisterClass(CLASSNAME, INSTANCE);
+
+  /* Unlock wsock32.dll */
+  if (gs_wsock32dll)
+  {
+      FreeLibrary(gs_wsock32dll);
+      gs_wsock32dll = 0;
+  }
+
+  /* Delete critical section */
+  DeleteCriticalSection(&critical);
+
+  WSACleanup();
+}
+
+/* Per-socket GUI initialization / cleanup */
+
+wxSocketImplMSW::wxSocketImplMSW(wxSocketBase& wxsocket)
+    : wxSocketImpl(wxsocket)
+{
+  /* Allocate a new message number for this socket */
+  EnterCriticalSection(&critical);
+
+  int i = firstAvailable;
+  while (socketList[i] != NULL)
+  {
+    i = (i + 1) % MAXSOCKETS;
+
+    if (i == firstAvailable)    /* abort! */
+    {
+      LeaveCriticalSection(&critical);
+      m_msgnumber = 0; // invalid
+      return;
+    }
+  }
+  socketList[i] = this;
+  firstAvailable = (i + 1) % MAXSOCKETS;
+  m_msgnumber = (i + WM_USER);
+
+  LeaveCriticalSection(&critical);
+}
+
+wxSocketImplMSW::~wxSocketImplMSW()
+{
+  /* Remove the socket from the list */
+  EnterCriticalSection(&critical);
+
+  if ( m_msgnumber )
+  {
+      // we need to remove any pending messages for this socket to avoid having
+      // them sent to a new socket which could reuse the same message number as
+      // soon as we destroy this one
+      MSG msg;
+      while ( ::PeekMessage(&msg, hWin, m_msgnumber, m_msgnumber, PM_REMOVE) )
+          ;
+
+      socketList[m_msgnumber - WM_USER] = NULL;
+  }
+  //else: the socket has never been created successfully
+
+  LeaveCriticalSection(&critical);
+}
+
+/* Windows proc for asynchronous event handling */
+
+LRESULT CALLBACK wxSocket_Internal_WinProc(HWND hWnd,
+                                           UINT uMsg,
+                                           WPARAM wParam,
+                                           LPARAM lParam)
+{
+  wxSocketImplMSW *socket;
+  wxSocketNotify event;
+
+  if (uMsg >= WM_USER && uMsg <= (WM_USER + MAXSOCKETS - 1))
+  {
+    EnterCriticalSection(&critical);
+    socket = socketList[(uMsg - WM_USER)];
+    event = (wxSocketNotify) -1;
+
+    /* Check that the socket still exists (it has not been
+     * destroyed) and for safety, check that the m_fd field
+     * is what we expect it to be.
+     */
+    if ((socket != NULL) && ((WPARAM)socket->m_fd == wParam))
+    {
+      switch WSAGETSELECTEVENT(lParam)
+      {
+        case FD_READ:    event = wxSOCKET_INPUT; break;
+        case FD_WRITE:   event = wxSOCKET_OUTPUT; break;
+        case FD_ACCEPT:  event = wxSOCKET_CONNECTION; break;
+        case FD_CONNECT:
+        {
+          if (WSAGETSELECTERROR(lParam) != 0)
+            event = wxSOCKET_LOST;
+          else
+            event = wxSOCKET_CONNECTION;
+          break;
+        }
+        case FD_CLOSE:   event = wxSOCKET_LOST; break;
+      }
+
+      if (event != -1)
+      {
+        if (event == wxSOCKET_LOST)
+          socket->m_detected = wxSOCKET_LOST_FLAG;
+        else
+          socket->m_detected |= (1 << event);
+      }
+    }
+
+    LeaveCriticalSection(&critical);
+
+    if ( socket )
+        socket->NotifyOnStateChange(event);
+
+    return (LRESULT) 0;
+  }
+  else
+    return DefWindowProc(hWnd, uMsg, wParam, lParam);
+}
+
+/*
+ *  Enable all event notifications; we need to be notified of all
+ *  events for internal processing, but we will only notify users
+ *  when an appropriate callback function has been installed.
+ */
+void wxSocketMSWManager::Install_Callback(wxSocketImpl *socket_,
+                                         wxSocketNotify WXUNUSED(event))
+{
+    wxSocketImplMSW * const socket = static_cast<wxSocketImplMSW *>(socket_);
+
+  if (socket->m_fd != INVALID_SOCKET)
+  {
+    /* We could probably just subscribe to all events regardless
+     * of the socket type, but MS recommends to do it this way.
+     */
+    long lEvent = socket->m_server?
+                  FD_ACCEPT : (FD_READ | FD_WRITE | FD_CONNECT | FD_CLOSE);
+#ifndef __WXWINCE__
+    gs_WSAAsyncSelect(socket->m_fd, hWin, socket->m_msgnumber, lEvent);
+#else
+/*
+*  WinCE creates a thread for socket event handling.
+*  All needed parameters get passed through the thread_data structure.
+*/
+
+    thread_data* d = new thread_data;
+    d->lEvent = lEvent;
+    d->hEvtWin = hWin;
+    d->msgnumber = socket->m_msgnumber;
+    d->fd = socket->m_fd;
+    socketHash[socket->m_fd] = true;
+    hThread[currSocket++] = CreateThread(NULL, 0, &SocketThread,(LPVOID)d, 0, NULL);
+#endif
+  }
+}
+
+/*
+ *  Disable event notifications (used when shutting down the socket)
+ */
+void wxSocketMSWManager::Uninstall_Callback(wxSocketImpl *socket_,
+                                           wxSocketNotify WXUNUSED(event))
+{
+    wxSocketImplMSW * const socket = static_cast<wxSocketImplMSW *>(socket_);
+
+  if (socket->m_fd != INVALID_SOCKET)
+  {
+#ifndef __WXWINCE__
+    gs_WSAAsyncSelect(socket->m_fd, hWin, socket->m_msgnumber, 0);
+#else
+    //Destroy the thread
+    socketHash[socket->m_fd] = false;
+#endif
+  }
+}
+
+// set the wxBase variable to point to our wxSocketManager implementation
+//
+// see comments in wx/apptrait.h for the explanation of why do we do it
+// like this
+static struct ManagerSetter
+{
+    ManagerSetter()
+    {
+        static wxSocketMSWManager s_manager;
+        wxAppTraits::SetDefaultSocketManager(&s_manager);
+    }
+} gs_managerSetter;
+
+#endif  // wxUSE_SOCKETS