- if(message==WM_DESTROY)
- {
- ::SetWindowLong(hWnd, GWL_WNDPROC, (LONG) DefWindowProc);
- return DefWindowProc(hWnd, message, wParam, lParam);
- }
- wxSocketHandler *h_sock = (wxSocketHandler *)GetWindowLong(hWnd, GWL_USERDATA);
- wxNode *node = h_sock->smsg_list->Find(message);
- wxSocketBase *sock;
- wxSocketBase::wxRequestEvent sk_req;
- UINT event = WSAGETSELECTEVENT(lParam);
-
- if (!node)
- return DefWindowProc(hWnd, message, wParam, lParam);
-
- sock = (wxSocketBase *)node->Data();
-
- switch (event) {
- case FD_READ:
- sk_req = wxSocketBase::EVT_READ;
- break;
- case FD_WRITE:
- sk_req = wxSocketBase::EVT_WRITE;
- break;
- case FD_CLOSE:
- sk_req = wxSocketBase::EVT_LOST;
- break;
- case FD_ACCEPT:
- sk_req = wxSocketBase::EVT_ACCEPT;
- break;
- case FD_CONNECT:
- sk_req = wxSocketBase::EVT_CONNECT;
- break;
- }
- sock->OnRequest(sk_req);
-
- return (LRESULT)0;
-}
-
-FARPROC wxSocketSubClassProc = NULL;