* PLEASE don't put C++ comments here - this is a C source file.
*/
+/* 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
+
#ifndef __GSOCKET_STANDALONE__
+#include "wx/defs.h"
#include "wx/setup.h"
#endif
#include "gsocket.h"
/* If not using wxWindows, a global var called hInst must
- * be available and it must containt the app's instance
+ * be available and it must contain the app's instance
* handle.
*/
#define INSTANCE hInst
#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 "_GSocket_Internal_Window_Class"
#define WINDOWNAME "_GSocket_Internal_Window_Name"
/* Global initializers */
-bool GSocket_Init()
+int GSocket_Init(void)
{
WSADATA wsaData;
WNDCLASS winClass;
return (WSAStartup((1 << 8) | 1, &wsaData) == 0);
}
-void GSocket_Cleanup()
+void GSocket_Cleanup(void)
{
/* Destroy internal window */
DestroyWindow(hWin);
if (socket->m_fd != INVALID_SOCKET)
{
- WSAAsyncSelect(socket->m_fd, hWin, socket->m_msgnumber,
- FD_READ | FD_WRITE | FD_ACCEPT | FD_CONNECT | FD_CLOSE);
+ /* 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);
+
+ WSAAsyncSelect(socket->m_fd, hWin, socket->m_msgnumber, lEvent);
}
}
#else /* !wxUSE_SOCKETS */
-/*
+/*
* Translation unit shouldn't be empty, so include this typedef to make the
* compiler (VC++ 6.0, for example) happy
*/