]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/gsockmsw.c
wxNavigationKeyEvent doesn't derive from wxCommandEvent (but from wxEvent)
[wxWidgets.git] / src / msw / gsockmsw.c
index c966cfffc1ad8d1dc416df0fb13c67b17573f1ab..7bc845bed020ced2ace1c191aa6a0db6faf47808 100644 (file)
@@ -7,6 +7,14 @@
  * -------------------------------------------------------------------------
  */
 
+/*
+ * TODO: for WinCE we need to replace WSAAsyncSelect
+ * (Windows message-based notification of network events for a socket)
+ * with another mechanism.
+ * We may need to have a separate thread that polls for socket events
+ * using select() and sends a message to the main thread.
+ */
+
 /*
  * PLEASE don't put C++ comments here - this is a C source file.
  */
 #  pragma warning(disable:4115) /* named type definition in parentheses */
 #endif
 
+/* This needs to be before the wx/defs/h inclusion
+ * for some reason
+ */
+
+#ifdef __WXWINCE__
+#include <windows.h>
+#endif
+
 #ifndef __GSOCKET_STANDALONE__
 #include "wx/defs.h"
 #include "wx/setup.h"
@@ -31,6 +47,7 @@
 #include "wx/msw/gsockmsw.h"
 #include "wx/gsocket.h"
 
+HINSTANCE wxGetInstance(void);
 #define INSTANCE wxGetInstance()
 
 #else
 
 #endif /* __GSOCKET_STANDALONE__ */
 
+#ifndef __WXWINCE__
 #include <assert.h>
+#else
+#define assert(x)
+#include <winsock.h>
+#include "wx/msw/wince/net.h"
+#endif
+
 #include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -83,9 +107,8 @@ static int firstAvailable;
 
 /* Global initializers */
 
-int GSocket_Init(void)
+int _GSocket_GUI_Init(void)
 {
-  WSADATA wsaData;
   WNDCLASS winClass;
   int i;
 
@@ -118,11 +141,10 @@ int GSocket_Init(void)
   }
   firstAvailable = 0;
 
-  /* Initialize WinSocket */
-  return (WSAStartup((1 << 8) | 1, &wsaData) == 0);
+  return 1;
 }
 
-void GSocket_Cleanup(void)
+void _GSocket_GUI_Cleanup(void)
 {
   /* Destroy internal window */
   DestroyWindow(hWin);
@@ -130,14 +152,11 @@ void GSocket_Cleanup(void)
 
   /* Delete critical section */
   DeleteCriticalSection(&critical);
-
-  /* Cleanup WinSocket */
-  WSACleanup();
 }
 
 /* Per-socket GUI initialization / cleanup */
 
-int _GSocket_GUI_Init(GSocket *socket)
+int _GSocket_GUI_Init_Socket(GSocket *socket)
 {
   int i;
 
@@ -164,7 +183,7 @@ int _GSocket_GUI_Init(GSocket *socket)
   return TRUE;
 }
 
-void _GSocket_GUI_Destroy(GSocket *socket)
+void _GSocket_GUI_Destroy_Socket(GSocket *socket)
 {
   /* Remove the socket from the list */
   EnterCriticalSection(&critical);
@@ -188,7 +207,7 @@ LRESULT CALLBACK _GSocket_Internal_WinProc(HWND hWnd,
   {
     EnterCriticalSection(&critical);
     socket = socketList[(uMsg - WM_USER)];
-    event = -1;
+    event = (GSocketEvent) -1;
     cback = NULL;
     data = NULL;