I have been reading the information out there on this function. It seems like it might be what I am looking for but I don't really understand many of the explanations. Am I right in thinking that calling this function on a socket will cause a message to be sent to my window procedure as and when data arrives at the socket? In effect negating the need to regualrly poll the socket.

Thanks